pub struct RexFlags(/* private fields */);
Expand description
A small bit field to record a REX prefix specification:
- bit 0 set to 1 indicates REX.W must be 0 (cleared).
- bit 1 set to 1 indicates the REX prefix must always be emitted.
Implementations§
source§impl RexFlags
impl RexFlags
sourcepub fn always_emit(&mut self) -> &mut Self
pub fn always_emit(&mut self) -> &mut Self
Require that the REX prefix is emitted.
sourcepub fn always_emit_if_8bit_needed(&mut self, reg: Reg) -> &mut Self
pub fn always_emit_if_8bit_needed(&mut self, reg: Reg) -> &mut Self
Emit the rex prefix if the referenced register would require it for 8-bit operations.
sourcepub fn must_clear_w(&self) -> bool
pub fn must_clear_w(&self) -> bool
True if 64-bit operands are used.
sourcepub fn must_always_emit(&self) -> bool
pub fn must_always_emit(&self) -> bool
True if the REX prefix must always be emitted.
sourcepub fn emit_one_op(&self, sink: &mut MachBuffer<Inst>, enc_e: u8)
pub fn emit_one_op(&self, sink: &mut MachBuffer<Inst>, enc_e: u8)
Emit a unary instruction.
sourcepub fn emit_two_op(&self, sink: &mut MachBuffer<Inst>, enc_g: u8, enc_e: u8)
pub fn emit_two_op(&self, sink: &mut MachBuffer<Inst>, enc_g: u8, enc_e: u8)
Emit a binary instruction.
sourcepub fn emit_three_op(
&self,
sink: &mut MachBuffer<Inst>,
enc_g: u8,
enc_index: u8,
enc_base: u8,
)
pub fn emit_three_op( &self, sink: &mut MachBuffer<Inst>, enc_g: u8, enc_index: u8, enc_base: u8, )
Emit a ternary instruction.
Trait Implementations§
source§impl From<(OperandSize, Reg)> for RexFlags
impl From<(OperandSize, Reg)> for RexFlags
Generate Rex flags for an OperandSize/register tuple.
source§fn from((size, reg): (OperandSize, Reg)) -> Self
fn from((size, reg): (OperandSize, Reg)) -> Self
Converts to this type from the input type.
source§impl From<OperandSize> for RexFlags
impl From<OperandSize> for RexFlags
Generate the proper Rex flags for the given operand size.
source§fn from(size: OperandSize) -> Self
fn from(size: OperandSize) -> Self
Converts to this type from the input type.
impl Copy for RexFlags
Auto Trait Implementations§
impl Freeze for RexFlags
impl RefUnwindSafe for RexFlags
impl Send for RexFlags
impl Sync for RexFlags
impl Unpin for RexFlags
impl UnwindSafe for RexFlags
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)