mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-14 01:21:19 +00:00
Fixed simple spectests example compilation
This commit is contained in:
@ -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)],
|
||||||
});
|
});
|
||||||
|
@ -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!(" ]");
|
||||||
}
|
}
|
||||||
|
@ -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!()
|
||||||
|
@ -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);
|
||||||
|
Reference in New Issue
Block a user