cranelift: Test calling across different calling conventions (#4801)

* cranelift: Test calling across different calling conventions

* cranelift: Use `wasmtime_system_v` calling convention for cross cc tests
This commit is contained in:
Afonso Bordado
2022-08-31 23:16:41 +01:00
committed by GitHub
parent 328727644f
commit 2beaf7352f
2 changed files with 19 additions and 4 deletions

View File

@@ -67,3 +67,22 @@ block0(v0: b1):
} }
; run: %call_b1(true) == false ; run: %call_b1(true) == false
; run: %call_b1(false) == true ; run: %call_b1(false) == true
; Tests calling across different calling conventions
function %callee_wasm_i64(i64) -> i64 wasmtime_system_v {
block0(v0: i64):
v1 = iadd_imm.i64 v0, 10
return v1
}
function %call_sysv_i64(i64) -> i64 system_v {
fn0 = %callee_wasm_i64(i64) -> i64 wasmtime_system_v
block0(v0: i64):
v1 = call fn0(v0)
return v1
}
; run: %call_sysv_i64(10) == 20

View File

@@ -326,10 +326,6 @@ impl<'a> Trampoline<'a> {
/// Compilation Error when compiling a function. /// Compilation Error when compiling a function.
#[derive(Error, Debug)] #[derive(Error, Debug)]
pub enum CompilationError { pub enum CompilationError {
/// This Target ISA is invalid for the current host.
#[error("Cross-compilation not currently supported; use the host's default calling convention \
or remove the specified calling convention in the function signature to use the host's default.")]
InvalidTargetIsa,
/// Cranelift codegen error. /// Cranelift codegen error.
#[error("Cranelift codegen error")] #[error("Cranelift codegen error")]
CodegenError(#[from] CodegenError), CodegenError(#[from] CodegenError),