pub enum Operand {
Register(Register),
Immediate(i128),
Memory(Box<MemoryOperand>),
Label(String),
Expression(Expr),
RegisterList(Vec<Register>),
LiteralPoolValue(i128),
VectorRegister(Register, VectorArrangement),
SvePredicate(Register, SvePredQual),
}Expand description
A resolved or unresolved operand.
Variants§
Register(Register)
A register operand.
Immediate(i128)
An immediate value.
Memory(Box<MemoryOperand>)
A memory (indirect) operand.
Label(String)
A label reference (resolved later).
Expression(Expr)
An expression (e.g., label + 4).
RegisterList(Vec<Register>)
A register list (ARM {R0, R1, R4, LR}).
LiteralPoolValue(i128)
A literal pool value (LDR Xn, =0x1234).
The assembler will place the constant in a nearby literal pool
and emit a PC-relative LDR to load it.
VectorRegister(Register, VectorArrangement)
A vector register with arrangement specifier (AArch64 NEON/SVE).
E.g., V0.4S, V1.16B, Z0.S, Z1.D.
SvePredicate(Register, SvePredQual)
SVE predicate register with qualifier (P0/M, P0/Z).
Trait Implementations§
Source§impl Default for Operand
impl Default for Operand
Source§fn default() -> Self
fn default() -> Self
Returns a sentinel default value (Immediate(0)).
Only used for unoccupied slots in OperandList; never exposed.
impl StructuralPartialEq for Operand
Auto Trait Implementations§
impl Freeze for Operand
impl RefUnwindSafe for Operand
impl Send for Operand
impl Sync for Operand
impl Unpin for Operand
impl UnwindSafe for Operand
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