Enum target_lexicon::CallingConvention[][src]

#[non_exhaustive]pub enum CallingConvention {
    SystemV,
    WasmBasicCAbi,
    WindowsFastcall,
    AppleAarch64,
}

The calling convention, which specifies things like which registers are used for passing arguments, which registers are callee-saved, and so on.

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
SystemV

“System V”, which is used on most Unix-like platfoms. Note that the specific conventions vary between hardware architectures; for example, x86-32’s “System V” is entirely different from x86-64’s “System V”.

WasmBasicCAbi

The WebAssembly C ABI. https://github.com/WebAssembly/tool-conventions/blob/master/BasicCABI.md

WindowsFastcall

“Windows Fastcall”, which is used on Windows. Note that like “System V”, this varies between hardware architectures. On x86-32 it describes what Windows documentation calls “fastcall”, and on x86-64 it describes what Windows documentation often just calls the Windows x64 calling convention (though the compiler still recognizes “fastcall” as an alias for it).

AppleAarch64

Apple Aarch64 platforms use their own variant of the common Aarch64 calling convention.

https://developer.apple.com/documentation/xcode/writing_arm64_code_for_apple_platforms

Trait Implementations

impl Clone for CallingConvention[src]

impl Copy for CallingConvention[src]

impl Debug for CallingConvention[src]

impl Eq for CallingConvention[src]

impl Hash for CallingConvention[src]

impl PartialEq<CallingConvention> for CallingConvention[src]

impl StructuralEq for CallingConvention[src]

impl StructuralPartialEq for CallingConvention[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.