Add updates from feedback

Co-authored-by: Nick Lewycky <nick@wasmer.io>
This commit is contained in:
Mark McCaskey
2020-02-20 11:20:40 -08:00
parent 3bca20d3d3
commit 65a9e04f3c
4 changed files with 18 additions and 26 deletions

View File

@@ -257,7 +257,11 @@ pub struct CraneliftFunctionCodeGenerator {
next_local: usize, next_local: usize,
position: Position, position: Position,
func_env: FunctionEnvironment, func_env: FunctionEnvironment,
/// Start location of the function as an offset in bytes in the Wasm module
/// from the beginning of the code section.
start: u32, start: u32,
/// End location of the function as an offset in bytes in the Wasm module
/// from the beginning of the code section.
end: u32, end: u32,
} }
@@ -1255,11 +1259,9 @@ fn declare_wasm_parameters(builder: &mut FunctionBuilder, entry_block: Ebb) -> u
// This is a normal WebAssembly signature parameter, so create a local for it. // This is a normal WebAssembly signature parameter, so create a local for it.
let local = Variable::new(next_local); let local = Variable::new(next_local);
builder.declare_var(local, param_type.value_type); builder.declare_var(local, param_type.value_type);
//let value_label = ValueLabel::from_u32(next_local as u32);
next_local += 1; next_local += 1;
let param_value = builder.ebb_params(entry_block)[i]; let param_value = builder.ebb_params(entry_block)[i];
//builder.set_val_label(param_value, value_label);
builder.def_var(local, param_value); builder.def_var(local, param_value);
} }
if param_type.purpose == ir::ArgumentPurpose::VMContext { if param_type.purpose == ir::ArgumentPurpose::VMContext {

View File

@@ -112,18 +112,18 @@ impl FuncResolverBuilder {
let generate_debug_info = info.generate_debug_info; let generate_debug_info = info.generate_debug_info;
let fb = function_bodies.iter().collect::<Vec<(_, _)>>(); let fb = function_bodies.iter().collect::<Vec<(_, _)>>();
let compiled_functions: Result< /// Data about the the compiled machine code.
Vec<( type CompileMetadata = (
Vec<u8>, LocalFuncIndex,
( Option<(CompiledFunctionData, ValueLabelsRanges, Vec<Option<i32>>)>,
LocalFuncIndex, RelocSink,
Option<(CompiledFunctionData, ValueLabelsRanges, Vec<Option<i32>>)>, LocalTrapSink,
RelocSink, );
LocalTrapSink,
), /// Compiled machine code and information about it
)>, type CompileData = (Vec<u8>, CompileMetadata);
CompileError,
> = fb let compiled_functions: Result<Vec<CompileData>, CompileError> = fb
.par_iter() .par_iter()
.map_init( .map_init(
|| Context::new(), || Context::new(),

View File

@@ -79,13 +79,12 @@ impl Instance {
unsafe { unsafe {
let backing = &mut *(&mut inner.backing as *mut _); let backing = &mut *(&mut inner.backing as *mut _);
let import_backing = &mut *(&mut inner.import_backing as *mut _); let import_backing = &mut *(&mut inner.import_backing as *mut _);
let mut real_ctx = match imports.call_state_creator() { let real_ctx = match imports.call_state_creator() {
Some((data, dtor)) => { Some((data, dtor)) => {
vm::Ctx::new_with_data(backing, import_backing, &module, data, dtor) vm::Ctx::new_with_data(backing, import_backing, &module, data, dtor)
} }
None => vm::Ctx::new(backing, import_backing, &module), None => vm::Ctx::new(backing, import_backing, &module),
}; };
real_ctx.internal.ctx = vmctx.as_mut_ptr();
vmctx.as_mut_ptr().write(real_ctx); vmctx.as_mut_ptr().write(real_ctx);
}; };
Box::leak(vmctx); Box::leak(vmctx);

View File

@@ -134,9 +134,6 @@ pub struct InternalCtx {
/// Interrupt signal mem. /// Interrupt signal mem.
pub interrupt_signal_mem: *mut u8, pub interrupt_signal_mem: *mut u8,
/// hmm
pub ctx: *mut Ctx,
} }
static INTERNAL_FIELDS: AtomicUsize = AtomicUsize::new(0); static INTERNAL_FIELDS: AtomicUsize = AtomicUsize::new(0);
@@ -309,7 +306,6 @@ impl Ctx {
internals: &mut local_backing.internals.0, internals: &mut local_backing.internals.0,
interrupt_signal_mem: get_interrupt_signal_mem(), interrupt_signal_mem: get_interrupt_signal_mem(),
ctx: std::ptr::null_mut(), //local_backing.vm_memories[LocalMemoryIndex::new(0)],
}, },
local_functions: local_backing.local_functions.as_ptr(), local_functions: local_backing.local_functions.as_ptr(),
@@ -340,8 +336,6 @@ impl Ctx {
}; };
((*mem).base, (*mem).bound) ((*mem).base, (*mem).bound)
}; };
dbg!(mem_bound);
Self { Self {
internal: InternalCtx { internal: InternalCtx {
memories: local_backing.vm_memories.as_mut_ptr(), memories: local_backing.vm_memories.as_mut_ptr(),
@@ -365,9 +359,6 @@ impl Ctx {
internals: &mut local_backing.internals.0, internals: &mut local_backing.internals.0,
interrupt_signal_mem: get_interrupt_signal_mem(), interrupt_signal_mem: get_interrupt_signal_mem(),
ctx: std::ptr::null_mut(),
//first_mem: local_backing.vm_memories[LocalMemoryIndex::new(0)],
}, },
local_functions: local_backing.local_functions.as_ptr(), local_functions: local_backing.local_functions.as_ptr(),
@@ -546,7 +537,7 @@ impl Ctx {
} }
pub const fn offset_local_functions() -> u8 { pub const fn offset_local_functions() -> u8 {
15 * (mem::size_of::<usize>() as u8) 14 * (mem::size_of::<usize>() as u8)
} }
} }