Browse Source

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
pull/4837/head
Afonso Bordado 2 years ago
committed by GitHub
parent
commit
2beaf7352f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      cranelift/filetests/filetests/runtests/call.clif
  2. 4
      cranelift/filetests/src/function_runner.rs

19
cranelift/filetests/filetests/runtests/call.clif

@ -67,3 +67,22 @@ block0(v0: b1):
}
; run: %call_b1(true) == false
; 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

4
cranelift/filetests/src/function_runner.rs

@ -326,10 +326,6 @@ impl<'a> Trampoline<'a> {
/// Compilation Error when compiling a function.
#[derive(Error, Debug)]
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.
#[error("Cranelift codegen error")]
CodegenError(#[from] CodegenError),

Loading…
Cancel
Save