diff --git a/src/integrations/mod.rs b/src/integrations/mod.rs index b4edc7843..fc17cb14e 100644 --- a/src/integrations/mod.rs +++ b/src/integrations/mod.rs @@ -38,8 +38,7 @@ pub fn generate_libc_env<'a, 'b>() -> ImportObject<&'a str, &'b str> { mod tests { use super::generate_libc_env; use crate::webassembly::{ - instantiate, ErrorKind, Export, ImportObject, Instance, Module, ResultObject, - VmCtx + instantiate, ErrorKind, Export, ImportObject, Instance, Module, ResultObject, VmCtx, }; use libc::putchar; diff --git a/src/main.rs b/src/main.rs index 617b7b507..492d31d48 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,8 +14,8 @@ extern crate wabt; extern crate target_lexicon; extern crate spin; -use std::time::{Duration, Instant}; use std::alloc::System; +use std::time::{Duration, Instant}; // #[global_allocator] // static A: System = System; @@ -75,9 +75,11 @@ fn execute_wasm(wasm_path: PathBuf) -> Result<(), String> { } let import_object = integrations::generate_libc_env(); - let webassembly::ResultObject { module, mut instance } = - webassembly::instantiate(wasm_binary, import_object) - .map_err(|err| String::from(err.description()))?; + let webassembly::ResultObject { + module, + mut instance, + } = webassembly::instantiate(wasm_binary, import_object) + .map_err(|err| String::from(err.description()))?; let func_index = instance .start_func .unwrap_or_else(|| match module.info.exports.get("main") { diff --git a/src/webassembly/instance.rs b/src/webassembly/instance.rs index f775fb05d..24b9936e2 100644 --- a/src/webassembly/instance.rs +++ b/src/webassembly/instance.rs @@ -68,7 +68,6 @@ fn get_function_addr( // (base as usize + offset) as _ // } - // #[derive(Debug)] #[repr(C, packed)] pub struct VmCtx<'phantom> { @@ -506,8 +505,10 @@ impl Instance { } pub fn generate_context(&mut self) -> VmCtx { - let memories: Vec> = self.memories.iter().map(|mem| mem[..].into()).collect(); - let tables: Vec> = self.tables.iter().map(|table| table[..].into()).collect(); + let memories: Vec> = + self.memories.iter().map(|mem| mem[..].into()).collect(); + let tables: Vec> = + self.tables.iter().map(|table| table[..].into()).collect(); let globals: UncheckedSlice = self.globals[..].into(); // println!("GENERATING CONTEXT {:?}", self.tables); @@ -570,7 +571,6 @@ impl Clone for Instance { } extern "C" fn grow_memory(size: u32, memory_index: u32, vmctx: &mut VmCtx) -> i32 { - return 0; // unimplemented!(); // let instance = &vmctx.user_data.instance; diff --git a/src/webassembly/memory.rs b/src/webassembly/memory.rs index dcc5b816e..307ad6d59 100644 --- a/src/webassembly/memory.rs +++ b/src/webassembly/memory.rs @@ -36,10 +36,11 @@ impl LinearMemory { initial, maximum ); - let len: u64 = PAGE_SIZE as u64 * match maximum { - Some(val) => val as u64, - None => initial as u64, - }; + let len: u64 = PAGE_SIZE as u64 + * match maximum { + Some(val) => val as u64, + None => initial as u64, + }; let len = if len == 0 { PAGE_SIZE as u64 } else { len }; let mmap = MmapMut::map_anon(len as usize).unwrap(); diff --git a/src/webassembly/module.rs b/src/webassembly/module.rs index 49352229e..5848e9bac 100644 --- a/src/webassembly/module.rs +++ b/src/webassembly/module.rs @@ -409,7 +409,7 @@ impl<'environment> FuncEnvironmentTrait for FuncEnvironment<'environment> { fn make_table(&mut self, func: &mut ir::Function, table_index: TableIndex) -> ir::Table { let vmctx = func.create_global_value(ir::GlobalValueData::VMContext); let ptr_size = self.ptr_size(); - + // Given a vmctx, we want to retrieve vmctx.tables // Create a table whose base address is stored at `vmctx+112`. // 112 is the offset of the vmctx.tables pointer respect to vmctx pointer @@ -433,7 +433,7 @@ impl<'environment> FuncEnvironmentTrait for FuncEnvironment<'environment> { offset: Offset32::new(table_data_offset), global_type: I64, }); - + let table = func.create_table(ir::TableData { base_gv: base_gv, min_size: Imm64::new(0), @@ -539,12 +539,9 @@ impl<'environment> FuncEnvironmentTrait for FuncEnvironment<'environment> { ext // pos.ins().imul_imm(ext, 4) }; - let entry_addr = pos.ins().table_addr( - self.pointer_type(), - table, - callee_offset, - 0, - ); + let entry_addr = pos + .ins() + .table_addr(self.pointer_type(), table, callee_offset, 0); let mut mflags = ir::MemFlags::new(); mflags.set_notrap(); mflags.set_aligned();