Enum CallConv
pub enum CallConv {
Fast,
Cold,
Tail,
SystemV,
WindowsFastcall,
AppleAarch64,
Probestack,
Winch,
}
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.
Winch
The winch calling convention, not ABI-stable.
The main difference to SystemV is that the winch calling convention defines no callee-save registers, and restricts the number of return registers to one integer, and one floating point.
Implementations§
§impl CallConv
impl CallConv
pub fn triple_default(triple: &Triple) -> CallConv
pub fn triple_default(triple: &Triple) -> CallConv
Return the default calling convention for the given target triple.
pub fn for_libcall(flags: &Flags, default_call_conv: CallConv) -> CallConv
pub fn for_libcall(flags: &Flags, default_call_conv: CallConv) -> CallConv
Returns the calling convention used for libcalls according to the current flags.
pub fn supports_tail_calls(&self) -> bool
pub fn supports_tail_calls(&self) -> bool
Does this calling convention support tail calls?
Trait Implementations§
§impl<'de> Deserialize<'de> for CallConv
impl<'de> Deserialize<'de> for CallConv
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<CallConv, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<CallConv, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for CallConv
impl Serialize for CallConv
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.