Enum winch_codegen::isa::CallingConvention
source · pub enum CallingConvention {
SystemV,
WindowsFastcall,
AppleAarch64,
Default,
}
Expand description
Calling conventions supported by Winch. Winch supports a variation of the calling conventions defined in this enum plus an internal default calling convention.
This enum is a reduced subset of the calling conventions defined in cranelift_codegen::isa::CallConv. Introducing this enum makes it easier to enforce the invariant of all the calling conventions supported by Winch.
The main difference between the system calling conventions defined in this enum and their native counterparts is how multiple returns are handled. Given that Winch is not meant to be a standalone code generator, the code it generates is tightly coupled to how Wasmtime expects multiple returns to be handled: the first return in a register, dictated by the calling convention and the rest, if any, via a return pointer.
Variants§
SystemV
WindowsFastcall
AppleAarch64
Default
The default calling convention for Winch. It largely follows SystemV for parameter and result handling. This calling convention is part of Winch’s default ABI [crate::abi::ABI].
Implementations§
source§impl CallingConvention
impl CallingConvention
sourcepub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
Returns true if the current calling convention is Default
.
Trait Implementations§
source§impl Clone for CallingConvention
impl Clone for CallingConvention
source§fn clone(&self) -> CallingConvention
fn clone(&self) -> CallingConvention
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more