pub enum InlineAsmRegClass {
Show 19 variants
X86(X86InlineAsmRegClass),
Arm(ArmInlineAsmRegClass),
AArch64(AArch64InlineAsmRegClass),
RiscV(RiscVInlineAsmRegClass),
Nvptx(NvptxInlineAsmRegClass),
PowerPC(PowerPCInlineAsmRegClass),
Hexagon(HexagonInlineAsmRegClass),
LoongArch(LoongArchInlineAsmRegClass),
Mips(MipsInlineAsmRegClass),
S390x(S390xInlineAsmRegClass),
Sparc(SparcInlineAsmRegClass),
SpirV(SpirVInlineAsmRegClass),
Wasm(WasmInlineAsmRegClass),
Bpf(BpfInlineAsmRegClass),
Avr(AvrInlineAsmRegClass),
Msp430(Msp430InlineAsmRegClass),
M68k(M68kInlineAsmRegClass),
CSKY(CSKYInlineAsmRegClass),
Err,
}
Variants§
X86(X86InlineAsmRegClass)
Arm(ArmInlineAsmRegClass)
AArch64(AArch64InlineAsmRegClass)
RiscV(RiscVInlineAsmRegClass)
Nvptx(NvptxInlineAsmRegClass)
PowerPC(PowerPCInlineAsmRegClass)
Hexagon(HexagonInlineAsmRegClass)
LoongArch(LoongArchInlineAsmRegClass)
Mips(MipsInlineAsmRegClass)
S390x(S390xInlineAsmRegClass)
Sparc(SparcInlineAsmRegClass)
SpirV(SpirVInlineAsmRegClass)
Wasm(WasmInlineAsmRegClass)
Bpf(BpfInlineAsmRegClass)
Avr(AvrInlineAsmRegClass)
Msp430(Msp430InlineAsmRegClass)
M68k(M68kInlineAsmRegClass)
CSKY(CSKYInlineAsmRegClass)
Err
Implementations§
Source§impl InlineAsmRegClass
impl InlineAsmRegClass
pub fn name(self) -> Symbol
Sourcepub fn suggest_class(
self,
arch: InlineAsmArch,
ty: InlineAsmType,
) -> Option<Self>
pub fn suggest_class( self, arch: InlineAsmArch, ty: InlineAsmType, ) -> Option<Self>
Returns a suggested register class to use for this type. This is called
when supported_types
fails to give a better error
message to the user.
Sourcepub fn suggest_modifier(
self,
arch: InlineAsmArch,
ty: InlineAsmType,
) -> Option<ModifierInfo>
pub fn suggest_modifier( self, arch: InlineAsmArch, ty: InlineAsmType, ) -> Option<ModifierInfo>
Returns a suggested template modifier to use for this type and an example of a register named formatted with it.
Such suggestions are useful if a type smaller than the full register size is used and a modifier can be used to point to the subregister of the correct size.
Sourcepub fn default_modifier(self, arch: InlineAsmArch) -> Option<ModifierInfo>
pub fn default_modifier(self, arch: InlineAsmArch) -> Option<ModifierInfo>
Returns the default modifier for this register and an example of a register named formatted with it.
This is only needed when the register class can suggest a modifier, so that the user can be shown how to get the default behavior without a warning.
Sourcepub fn supported_types(
self,
arch: InlineAsmArch,
allow_experimental_reg: bool,
) -> &'static [(InlineAsmType, Option<Symbol>)]
pub fn supported_types( self, arch: InlineAsmArch, allow_experimental_reg: bool, ) -> &'static [(InlineAsmType, Option<Symbol>)]
Returns a list of supported types for this register class, each with an options target feature required to use this type.
At the codegen stage, it is fine to always pass true for allow_experimental_reg
,
since all the stability checking will have been done in prior stages.
pub fn parse(arch: InlineAsmArch, name: Symbol) -> Result<Self, &'static str>
Sourcepub fn valid_modifiers(self, arch: InlineAsmArch) -> &'static [char]
pub fn valid_modifiers(self, arch: InlineAsmArch) -> &'static [char]
Returns the list of template modifiers that can be used with this register class.
Sourcepub fn is_clobber_only(
self,
arch: InlineAsmArch,
allow_experimental_reg: bool,
) -> bool
pub fn is_clobber_only( self, arch: InlineAsmArch, allow_experimental_reg: bool, ) -> bool
Returns whether registers in this class can only be used as clobbers and not as inputs/outputs.
At the codegen stage, it is fine to always pass true for allow_experimental_reg
,
since all the stability checking will have been done in prior stages.
Trait Implementations§
Source§impl Clone for InlineAsmRegClass
impl Clone for InlineAsmRegClass
Source§fn clone(&self) -> InlineAsmRegClass
fn clone(&self) -> InlineAsmRegClass
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for InlineAsmRegClass
impl Debug for InlineAsmRegClass
Source§impl<__D: SpanDecoder> Decodable<__D> for InlineAsmRegClass
impl<__D: SpanDecoder> Decodable<__D> for InlineAsmRegClass
Source§impl<__E: SpanEncoder> Encodable<__E> for InlineAsmRegClass
impl<__E: SpanEncoder> Encodable<__E> for InlineAsmRegClass
Source§impl Hash for InlineAsmRegClass
impl Hash for InlineAsmRegClass
Source§impl<__CTX> HashStable<__CTX> for InlineAsmRegClasswhere
__CTX: HashStableContext,
impl<__CTX> HashStable<__CTX> for InlineAsmRegClasswhere
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
Source§impl PartialEq for InlineAsmRegClass
impl PartialEq for InlineAsmRegClass
Source§impl PartialOrd for InlineAsmRegClass
impl PartialOrd for InlineAsmRegClass
impl Copy for InlineAsmRegClass
impl Eq for InlineAsmRegClass
impl StructuralPartialEq for InlineAsmRegClass
Auto Trait Implementations§
impl DynSend for InlineAsmRegClass
impl DynSync for InlineAsmRegClass
impl Freeze for InlineAsmRegClass
impl RefUnwindSafe for InlineAsmRegClass
impl Send for InlineAsmRegClass
impl Sync for InlineAsmRegClass
impl Unpin for InlineAsmRegClass
impl UnwindSafe for InlineAsmRegClass
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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: 2 bytes
Size for each variant:
X86
: 1 byteArm
: 1 byteAArch64
: 1 byteRiscV
: 1 byteNvptx
: 1 bytePowerPC
: 1 byteHexagon
: 1 byteLoongArch
: 1 byteMips
: 1 byteS390x
: 1 byteSparc
: 1 byteSpirV
: 1 byteWasm
: 1 byteBpf
: 1 byteAvr
: 1 byteMsp430
: 1 byteM68k
: 1 byteCSKY
: 1 byteErr
: 0 bytes