cranelift: Test calling across different calling conventions#4801
cranelift: Test calling across different calling conventions#4801jameysharp merged 2 commits intobytecodealliance:mainfrom
Conversation
jameysharp
left a comment
There was a problem hiding this comment.
Seems straightforward to me. @cfallin, do you have any concerns about calls between different calling conventions?
I imagine this new test would trivially pass if we accidentally ignore the calling convention specifier. Anyone have any thoughts on how we could detect that particular kind of bug?
cfallin
left a comment
There was a problem hiding this comment.
Seems reasonable to me; one note below on the specific calling conventions chosen.
|
|
||
| ; Tests calling across different calling conventions | ||
|
|
||
| function %callee_fast_i64(i64) -> i64 fast { |
There was a problem hiding this comment.
fast and system_v are actually the same in practice right now -- perhaps we could try system_v and windows_fastcall ?
There was a problem hiding this comment.
That might not work on aarch64 and s390x, but we can try one of the wasmtime ones.
|
This test still passes after merging with main. It's been a few days since CI ran so I thought I'd double-check. |
👋 Hey,
This is a continuation of the TODO items in #4667 . It looks like #4667 accidentally already enables us to mix calling conventions so we don't need to do anything except remove an unused error.
This is an important feature for #4566 since we decided to mark big/little endian behaviour via calling convention, so this allows us to write runtests for that.