Fix bulk memory stores

This commit is contained in:
Rerumu
2023-06-23 15:16:34 -04:00
parent 32f5197b88
commit 4bd5fb8d43
7 changed files with 140 additions and 73 deletions
+13 -9
View File
@@ -288,10 +288,14 @@ impl DriverNoContext for MemoryGrow {
impl DriverNoContext for MemoryCopy {
fn write(&self, w: &mut dyn Write) -> Result<()> {
let dst = self.dst();
let src = self.src();
let memory_1 = self.destination().memory();
let memory_2 = self.source().memory();
write!(w, "rt.allocator.copy(memory_at_0, {dst}, {src}, ")?;
write!(w, "rt.store.copy(memory_at_{memory_1}, ")?;
self.destination().pointer().write(w)?;
write!(w, ", memory_at_{memory_2}, ")?;
self.source().pointer().write(w)?;
write!(w, ", ")?;
self.size().write(w)?;
write!(w, ")")
}
@@ -299,14 +303,14 @@ impl DriverNoContext for MemoryCopy {
impl DriverNoContext for MemoryFill {
fn write(&self, w: &mut dyn Write) -> Result<()> {
let mem = self.mem();
let value = self.value();
let n = self.n();
let memory = self.destination().memory();
write!(w, "rt.allocator.fill(memory_at_0, {mem}, ")?;
value.write(w)?;
write!(w, "rt.store.fill(memory_at_{memory}, ")?;
self.destination().pointer().write(w)?;
write!(w, ", ")?;
n.write(w)?;
self.size().write(w)?;
write!(w, ", ")?;
self.value().write(w)?;
write!(w, ")")
}
}