Fixed simple spectests example compilation

This commit is contained in:
Syrus
2019-02-09 14:19:04 -08:00
parent 227d5e24cf
commit 4311a37def
4 changed files with 21 additions and 22 deletions

View File

@ -32,7 +32,7 @@ impl<'env, 'module, 'isa> FuncEnv<'env, 'module, 'isa> {
let mut signature = self.env.signatures[Converter(clif_sig_index).into()].clone(); let mut signature = self.env.signatures[Converter(clif_sig_index).into()].clone();
// Add the vmctx parameter type to it // Add the vmctx parameter type to it
signature.params.push(ir::AbiParam::special( signature.params.insert(0, ir::AbiParam::special(
self.pointer_type(), self.pointer_type(),
ir::ArgumentPurpose::VMContext, ir::ArgumentPurpose::VMContext,
)); ));
@ -559,9 +559,9 @@ impl<'env, 'module, 'isa> FuncEnvironment for FuncEnv<'env, 'module, 'isa> {
let signature = pos.func.import_signature(ir::Signature { let signature = pos.func.import_signature(ir::Signature {
call_conv: self.target_config().default_call_conv, call_conv: self.target_config().default_call_conv,
params: vec![ params: vec![
ir::AbiParam::new(ir::types::I32),
ir::AbiParam::new(ir::types::I32),
ir::AbiParam::special(self.pointer_type(), ir::ArgumentPurpose::VMContext), ir::AbiParam::special(self.pointer_type(), ir::ArgumentPurpose::VMContext),
ir::AbiParam::new(ir::types::I32),
ir::AbiParam::new(ir::types::I32),
], ],
returns: vec![ir::AbiParam::new(ir::types::I32)], returns: vec![ir::AbiParam::new(ir::types::I32)],
}); });
@ -623,8 +623,8 @@ impl<'env, 'module, 'isa> FuncEnvironment for FuncEnv<'env, 'module, 'isa> {
let signature = pos.func.import_signature(ir::Signature { let signature = pos.func.import_signature(ir::Signature {
call_conv: self.target_config().default_call_conv, call_conv: self.target_config().default_call_conv,
params: vec![ params: vec![
ir::AbiParam::new(ir::types::I32),
ir::AbiParam::special(self.pointer_type(), ir::ArgumentPurpose::VMContext), ir::AbiParam::special(self.pointer_type(), ir::ArgumentPurpose::VMContext),
ir::AbiParam::new(ir::types::I32),
], ],
returns: vec![ir::AbiParam::new(ir::types::I32)], returns: vec![ir::AbiParam::new(ir::types::I32)],
}); });

View File

@ -34,7 +34,6 @@ use wasmer_runtime_core::{
types::{FuncSig, LocalFuncIndex, SigIndex}, types::{FuncSig, LocalFuncIndex, SigIndex},
vm, vmcalls, vm, vmcalls,
}; };
use wasmer_runtime_core::vm::Ctx;
extern "C" { extern "C" {
#[cfg(not(target_os = "windows"))] #[cfg(not(target_os = "windows"))]
@ -351,21 +350,21 @@ fn round_up(n: usize, multiple: usize) -> usize {
(n + multiple - 1) & !(multiple - 1) (n + multiple - 1) & !(multiple - 1)
} }
extern "C" fn i32_print(_ctx: &mut Ctx, n: i32) { extern "C" fn i32_print(_ctx: &mut vm::Ctx, n: i32) {
print!(" i32: {},", n); print!(" i32: {},", n);
} }
extern "C" fn i64_print(_ctx: &mut Ctx, n: i64) { extern "C" fn i64_print(_ctx: &mut vm::Ctx, n: i64) {
print!(" i64: {},", n); print!(" i64: {},", n);
} }
extern "C" fn f32_print(_ctx: &mut Ctx, n: f32) { extern "C" fn f32_print(_ctx: &mut vm::Ctx, n: f32) {
print!(" f32: {},", n); print!(" f32: {},", n);
} }
extern "C" fn f64_print(_ctx: &mut Ctx, n: f64) { extern "C" fn f64_print(_ctx: &mut vm::Ctx, n: f64) {
print!(" f64: {},", n); print!(" f64: {},", n);
} }
extern "C" fn start_debug(_ctx: &mut Ctx, func_index: u32) { extern "C" fn start_debug(_ctx: &mut vm::Ctx, func_index: u32) {
print!("func ({}), args: [", func_index); print!("func ({}), args: [", func_index);
} }
extern "C" fn end_debug(_ctx: &mut Ctx) { extern "C" fn end_debug(_ctx: &mut vm::Ctx) {
println!(" ]"); println!(" ]");
} }

View File

@ -13,9 +13,9 @@ use crate::{
// +****************************+ // +****************************+
pub unsafe extern "C" fn local_static_memory_grow( pub unsafe extern "C" fn local_static_memory_grow(
ctx: &mut vm::Ctx,
memory_index: LocalMemoryIndex, memory_index: LocalMemoryIndex,
delta: Pages, delta: Pages,
ctx: &mut vm::Ctx,
) -> i32 { ) -> i32 {
let local_memory = *ctx.memories.add(memory_index.index()); let local_memory = *ctx.memories.add(memory_index.index());
let memory = (*local_memory).memory as *mut StaticMemory; let memory = (*local_memory).memory as *mut StaticMemory;
@ -28,8 +28,8 @@ pub unsafe extern "C" fn local_static_memory_grow(
} }
pub unsafe extern "C" fn local_static_memory_size( pub unsafe extern "C" fn local_static_memory_size(
memory_index: LocalMemoryIndex,
ctx: &vm::Ctx, ctx: &vm::Ctx,
memory_index: LocalMemoryIndex,
) -> Pages { ) -> Pages {
let local_memory = *ctx.memories.add(memory_index.index()); let local_memory = *ctx.memories.add(memory_index.index());
let memory = (*local_memory).memory as *mut StaticMemory; let memory = (*local_memory).memory as *mut StaticMemory;
@ -38,9 +38,9 @@ pub unsafe extern "C" fn local_static_memory_size(
} }
pub unsafe extern "C" fn local_dynamic_memory_grow( pub unsafe extern "C" fn local_dynamic_memory_grow(
ctx: &mut vm::Ctx,
memory_index: LocalMemoryIndex, memory_index: LocalMemoryIndex,
delta: Pages, delta: Pages,
ctx: &mut vm::Ctx,
) -> i32 { ) -> i32 {
let local_memory = *ctx.memories.add(memory_index.index()); let local_memory = *ctx.memories.add(memory_index.index());
let memory = (*local_memory).memory as *mut DynamicMemory; let memory = (*local_memory).memory as *mut DynamicMemory;
@ -53,8 +53,8 @@ pub unsafe extern "C" fn local_dynamic_memory_grow(
} }
pub unsafe extern "C" fn local_dynamic_memory_size( pub unsafe extern "C" fn local_dynamic_memory_size(
memory_index: LocalMemoryIndex,
ctx: &vm::Ctx, ctx: &vm::Ctx,
memory_index: LocalMemoryIndex,
) -> Pages { ) -> Pages {
let local_memory = *ctx.memories.add(memory_index.index()); let local_memory = *ctx.memories.add(memory_index.index());
let memory = (*local_memory).memory as *mut DynamicMemory; let memory = (*local_memory).memory as *mut DynamicMemory;
@ -67,9 +67,9 @@ pub unsafe extern "C" fn local_dynamic_memory_size(
// +****************************+ // +****************************+
pub unsafe extern "C" fn imported_static_memory_grow( pub unsafe extern "C" fn imported_static_memory_grow(
ctx: &mut vm::Ctx,
import_memory_index: ImportedMemoryIndex, import_memory_index: ImportedMemoryIndex,
delta: Pages, delta: Pages,
ctx: &mut vm::Ctx,
) -> i32 { ) -> i32 {
let local_memory = *ctx.imported_memories.add(import_memory_index.index()); let local_memory = *ctx.imported_memories.add(import_memory_index.index());
let memory = (*local_memory).memory as *mut StaticMemory; let memory = (*local_memory).memory as *mut StaticMemory;
@ -82,8 +82,8 @@ pub unsafe extern "C" fn imported_static_memory_grow(
} }
pub unsafe extern "C" fn imported_static_memory_size( pub unsafe extern "C" fn imported_static_memory_size(
import_memory_index: ImportedMemoryIndex,
ctx: &vm::Ctx, ctx: &vm::Ctx,
import_memory_index: ImportedMemoryIndex,
) -> Pages { ) -> Pages {
let local_memory = *ctx.imported_memories.add(import_memory_index.index()); let local_memory = *ctx.imported_memories.add(import_memory_index.index());
let memory = (*local_memory).memory as *mut StaticMemory; let memory = (*local_memory).memory as *mut StaticMemory;
@ -92,9 +92,9 @@ pub unsafe extern "C" fn imported_static_memory_size(
} }
pub unsafe extern "C" fn imported_dynamic_memory_grow( pub unsafe extern "C" fn imported_dynamic_memory_grow(
ctx: &mut vm::Ctx,
memory_index: ImportedMemoryIndex, memory_index: ImportedMemoryIndex,
delta: Pages, delta: Pages,
ctx: &mut vm::Ctx,
) -> i32 { ) -> i32 {
let local_memory = *ctx.imported_memories.add(memory_index.index()); let local_memory = *ctx.imported_memories.add(memory_index.index());
let memory = (*local_memory).memory as *mut DynamicMemory; let memory = (*local_memory).memory as *mut DynamicMemory;
@ -107,8 +107,8 @@ pub unsafe extern "C" fn imported_dynamic_memory_grow(
} }
pub unsafe extern "C" fn imported_dynamic_memory_size( pub unsafe extern "C" fn imported_dynamic_memory_size(
memory_index: ImportedMemoryIndex,
ctx: &vm::Ctx, ctx: &vm::Ctx,
memory_index: ImportedMemoryIndex,
) -> Pages { ) -> Pages {
let local_memory = *ctx.imported_memories.add(memory_index.index()); let local_memory = *ctx.imported_memories.add(memory_index.index());
let memory = (*local_memory).memory as *mut DynamicMemory; let memory = (*local_memory).memory as *mut DynamicMemory;
@ -121,9 +121,9 @@ pub unsafe extern "C" fn imported_dynamic_memory_size(
// +****************************+ // +****************************+
pub unsafe extern "C" fn local_table_grow( pub unsafe extern "C" fn local_table_grow(
ctx: &mut vm::Ctx,
table_index: LocalTableIndex, table_index: LocalTableIndex,
delta: u32, delta: u32,
ctx: &mut vm::Ctx,
) -> i32 { ) -> i32 {
let _ = table_index; let _ = table_index;
let _ = delta; let _ = delta;
@ -131,7 +131,7 @@ pub unsafe extern "C" fn local_table_grow(
unimplemented!() unimplemented!()
} }
pub unsafe extern "C" fn local_table_size(table_index: LocalTableIndex, ctx: &vm::Ctx) -> u32 { pub unsafe extern "C" fn local_table_size(ctx: &vm::Ctx, table_index: LocalTableIndex) -> u32 {
let _ = table_index; let _ = table_index;
let _ = ctx; let _ = ctx;
unimplemented!() unimplemented!()

View File

@ -61,7 +61,7 @@ fn main() -> error::Result<()> {
Ok(()) Ok(())
} }
fn print_num(n: i32, ctx: &mut vm::Ctx) -> Result<i32, ()> { fn print_num(ctx: &mut vm::Ctx, n: i32) -> Result<i32, ()> {
println!("print_num({})", n); println!("print_num({})", n);
let memory: &Memory = ctx.memory(0); let memory: &Memory = ctx.memory(0);