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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
19 additions and
4 deletions
-
cranelift/filetests/filetests/runtests/call.clif
-
cranelift/filetests/src/function_runner.rs
|
|
@ -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 |
|
|
|
|
|
@ -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), |
|
|
|