This commit is contained in:
Brian Carroll 2022-11-25 15:46:02 +00:00
parent e8f78a9618
commit 65fc079393
No known key found for this signature in database
GPG key ID: 5C7B2EC4101703C0
2 changed files with 11 additions and 11 deletions

View file

@ -379,55 +379,55 @@ impl<'a> ExecutionState<'a> {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i32(); let unwrapped = value.unwrap_i32();
let mut target = &mut self.memory[addr..][..4]; let mut target = &mut self.memory[addr..][..4];
target.write(&unwrapped.to_le_bytes()).unwrap(); target.write_all(&unwrapped.to_le_bytes()).unwrap();
} }
I64STORE => { I64STORE => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i64(); let unwrapped = value.unwrap_i64();
let mut target = &mut self.memory[addr..][..8]; let mut target = &mut self.memory[addr..][..8];
target.write(&unwrapped.to_le_bytes()).unwrap(); target.write_all(&unwrapped.to_le_bytes()).unwrap();
} }
F32STORE => { F32STORE => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_f32(); let unwrapped = value.unwrap_f32();
let mut target = &mut self.memory[addr..][..4]; let mut target = &mut self.memory[addr..][..4];
target.write(&unwrapped.to_le_bytes()).unwrap(); target.write_all(&unwrapped.to_le_bytes()).unwrap();
} }
F64STORE => { F64STORE => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_f64(); let unwrapped = value.unwrap_f64();
let mut target = &mut self.memory[addr..][..8]; let mut target = &mut self.memory[addr..][..8];
target.write(&unwrapped.to_le_bytes()).unwrap(); target.write_all(&unwrapped.to_le_bytes()).unwrap();
} }
I32STORE8 => { I32STORE8 => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i32(); let unwrapped = value.unwrap_i32();
let mut target = &mut self.memory[addr..][..1]; let mut target = &mut self.memory[addr..][..1];
target.write(&unwrapped.to_le_bytes()[..1]).unwrap(); target.write_all(&unwrapped.to_le_bytes()[..1]).unwrap();
} }
I32STORE16 => { I32STORE16 => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i32(); let unwrapped = value.unwrap_i32();
let mut target = &mut self.memory[addr..][..2]; let mut target = &mut self.memory[addr..][..2];
target.write(&unwrapped.to_le_bytes()[..2]).unwrap(); target.write_all(&unwrapped.to_le_bytes()[..2]).unwrap();
} }
I64STORE8 => { I64STORE8 => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i64(); let unwrapped = value.unwrap_i64();
let mut target = &mut self.memory[addr..][..1]; let mut target = &mut self.memory[addr..][..1];
target.write(&unwrapped.to_le_bytes()[..1]).unwrap(); target.write_all(&unwrapped.to_le_bytes()[..1]).unwrap();
} }
I64STORE16 => { I64STORE16 => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i64(); let unwrapped = value.unwrap_i64();
let mut target = &mut self.memory[addr..][..2]; let mut target = &mut self.memory[addr..][..2];
target.write(&unwrapped.to_le_bytes()[..2]).unwrap(); target.write_all(&unwrapped.to_le_bytes()[..2]).unwrap();
} }
I64STORE32 => { I64STORE32 => {
let (addr, value) = self.get_store_addr_value(module); let (addr, value) = self.get_store_addr_value(module);
let unwrapped = value.unwrap_i64(); let unwrapped = value.unwrap_i64();
let mut target = &mut self.memory[addr..][..4]; let mut target = &mut self.memory[addr..][..4];
target.write(&unwrapped.to_le_bytes()[..4]).unwrap(); target.write_all(&unwrapped.to_le_bytes()[..4]).unwrap();
} }
CURRENTMEMORY => { CURRENTMEMORY => {
let size = self.memory.len() as i32 / MemorySection::PAGE_SIZE as i32; let size = self.memory.len() as i32 / MemorySection::PAGE_SIZE as i32;

View file

@ -248,7 +248,7 @@ fn create_exported_function_no_locals<'a, F>(
signature: Signature<'a>, signature: Signature<'a>,
write_instructions: F, write_instructions: F,
) where ) where
F: FnOnce(&mut Vec<'a, u8>) -> (), F: FnOnce(&mut Vec<'a, u8>),
{ {
let internal_fn_index = module.code.function_offsets.len(); let internal_fn_index = module.code.function_offsets.len();
let fn_index = module.import.function_count() + internal_fn_index; let fn_index = module.import.function_count() + internal_fn_index;
@ -283,7 +283,7 @@ fn test_load(load_op: OpCode, ty: ValueType, data: &[u8], addr: u32, offset: u32
mode: DataMode::Active { mode: DataMode::Active {
offset: ConstExpr::I32(addr as i32), offset: ConstExpr::I32(addr as i32),
}, },
init: Vec::from_iter_in(data.iter().map(|x| *x), &arena), init: Vec::from_iter_in(data.iter().copied(), &arena),
}); });
let signature = Signature { let signature = Signature {