pub enum ShiftOp {
Show 14 variants
Lsl,
Lsr,
Asr,
Ror,
Rrx,
Msl,
Uxtb,
Uxth,
Uxtw,
Uxtx,
Sxtb,
Sxth,
Sxtw,
Sxtx,
}Expand description
A barrel-shift or register-extend operation.
Variants§
Lsl
Logical shift left.
Lsr
Logical shift right.
Asr
Arithmetic shift right.
Ror
Rotate right.
Rrx
Rotate right with extend (ARM32 only; shifts by exactly one through C).
Msl
Move shifted left, filling with ones (AArch64 SIMD immediates).
Uxtb
Zero-extend byte (AArch64 register extend).
Uxth
Zero-extend halfword.
Uxtw
Zero-extend word.
Uxtx
Zero-extend doubleword (no-op; the canonical LSL form for X registers).
Sxtb
Sign-extend byte.
Sxth
Sign-extend halfword.
Sxtw
Sign-extend word.
Sxtx
Sign-extend doubleword.
Implementations§
Source§impl ShiftOp
impl ShiftOp
Sourcepub fn from_lower(s: &str) -> Option<Self>
pub fn from_lower(s: &str) -> Option<Self>
Parse a shift/extend keyword. Input must already be lowercase.
Sourcepub fn shift_type_bits(self) -> Option<u32>
pub fn shift_type_bits(self) -> Option<u32>
The 2-bit shift-type field used by ARM32 and AArch64 data-processing
instructions, or None for extends (which use a 3-bit option field).
Sourcepub fn extend_option_bits(self) -> Option<u32>
pub fn extend_option_bits(self) -> Option<u32>
The 3-bit option field for AArch64 register-extend operands.
Trait Implementations§
impl Copy for ShiftOp
impl Eq for ShiftOp
impl StructuralPartialEq for ShiftOp
Auto Trait Implementations§
impl Freeze for ShiftOp
impl RefUnwindSafe for ShiftOp
impl Send for ShiftOp
impl Sync for ShiftOp
impl Unpin for ShiftOp
impl UnsafeUnpin for ShiftOp
impl UnwindSafe for ShiftOp
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
Mutably borrows from an owned value. Read more