Enum cranelift_codegen::isa::CallConv
source · pub enum CallConv {
Fast,
Cold,
Tail,
SystemV,
WindowsFastcall,
AppleAarch64,
Probestack,
WasmtimeSystemV,
WasmtimeFastcall,
WasmtimeAppleAarch64,
}
Expand description
Calling convention identifiers.
Variants§
Fast
Best performance, not ABI-stable.
Cold
Smallest caller code size, not ABI-stable.
Tail
Supports tail calls, not ABI-stable.
SystemV
System V-style convention used on many platforms.
WindowsFastcall
Windows “fastcall” convention, also used for x64 and ARM.
AppleAarch64
Mac aarch64 calling convention, which is a tweaked aarch64 ABI.
Probestack
Specialized convention for the probestack function.
WasmtimeSystemV
Wasmtime equivalent of SystemV, not ABI-stable.
Currently only differs in how multiple return values are handled, returning the first return value in a register and everything else through a return-pointer.
WasmtimeFastcall
Wasmtime equivalent of WindowsFastcall, not ABI-stable.
Differs from fastcall in the same way as WasmtimeSystemV
.
WasmtimeAppleAarch64
Wasmtime equivalent of AppleAarch64, not ABI-stable.
Differs from apple-aarch64 in the same way as WasmtimeSystemV
.
Implementations§
source§impl CallConv
impl CallConv
sourcepub fn triple_default(triple: &Triple) -> Self
pub fn triple_default(triple: &Triple) -> Self
Return the default calling convention for the given target triple.
sourcepub fn for_libcall(flags: &Flags, default_call_conv: CallConv) -> Self
pub fn for_libcall(flags: &Flags, default_call_conv: CallConv) -> Self
Returns the calling convention used for libcalls according to the current flags.
sourcepub fn supports_tail_calls(&self) -> bool
pub fn supports_tail_calls(&self) -> bool
Does this calling convention support tail calls?
sourcepub fn extends_windows_fastcall(self) -> bool
pub fn extends_windows_fastcall(self) -> bool
Is the calling convention extending the Windows Fastcall ABI?
sourcepub fn extends_apple_aarch64(self) -> bool
pub fn extends_apple_aarch64(self) -> bool
Is the calling convention extending the Apple aarch64 ABI?
sourcepub fn extends_wasmtime(self) -> bool
pub fn extends_wasmtime(self) -> bool
Is the calling convention extending the Wasmtime ABI?
Trait Implementations§
source§impl PartialEq for CallConv
impl PartialEq for CallConv
impl Copy for CallConv
impl Eq for CallConv
impl StructuralPartialEq for CallConv
Auto Trait Implementations§
impl Freeze for CallConv
impl RefUnwindSafe for CallConv
impl Send for CallConv
impl Sync for CallConv
impl Unpin for CallConv
impl UnwindSafe for CallConv
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.