Enum rustc_target::abi::call::aarch64::ParamExtension
source · pub enum ParamExtension {
ExtendTo32Bits,
NoExtension,
}
Expand description
Given integer-types M and register width N (e.g. M=u16 and N=32 bits), the
ParamExtension
policy specifies how a uM value should be treated when
passed via register or stack-slot of width N. See also rust-lang/rust#97463.
Variants§
ExtendTo32Bits
Indicates that when passing an i8/i16, either as a function argument or as a return value, it must be sign-extended to 32 bits, and likewise a u8/u16 must be zero-extended to 32-bits. (This variant is here to accommodate Apple’s deviation from the usual AArch64 ABI as defined by ARM.)
NoExtension
Indicates that no sign- nor zero-extension is performed: if a value of type with bitwidth M is passed as function argument or return value, then M bits are copied into the least significant M bits, and the remaining bits of the register (or word of memory) are untouched.
Trait Implementations§
source§impl Clone for ParamExtension
impl Clone for ParamExtension
source§fn clone(&self) -> ParamExtension
fn clone(&self) -> ParamExtension
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq<ParamExtension> for ParamExtension
impl PartialEq<ParamExtension> for ParamExtension
source§fn eq(&self, other: &ParamExtension) -> bool
fn eq(&self, other: &ParamExtension) -> bool
impl Copy for ParamExtension
impl StructuralPartialEq for ParamExtension
Auto Trait Implementations§
impl RefUnwindSafe for ParamExtension
impl Send for ParamExtension
impl Sync for ParamExtension
impl Unpin for ParamExtension
impl UnwindSafe for ParamExtension
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
ExtendTo32Bits
: 0 bytesNoExtension
: 0 bytes