X86OperandType

Enum X86OperandType 

Source
pub enum X86OperandType {
Show 43 variants ModRM(X86RegisterClass), ModRMMem, Reg(X86RegisterClass), OpReg(X86RegisterClass), ModRMGeneral, ModRMMode, ModRMSib(X86RegisterClass), ModRMReal(X86RegisterClass), ModRMReg(X86RegisterClass), ModRMScalar(X86RegisterClass), VexReg, VexModRM, VexModRMScalar(X86RegisterClass), VexPrefix(X86RegisterClass), RegGeneral, OpRegGeneral, OpRegMode, AReg(X86RegisterClass), ARegGeneral, ARegMode, DReg(X86RegisterClass), DRegGeneral, CReg(X86RegisterClass), CRegGeneral, Flags(X86RegisterClass), FlagsMode, Insn, VecInsn, Imm(usize), ImmGeneral, ImmGeneralWide, Rel(usize), RelGeneral, RControlBits(u8), Seg, AvxReg, AvxMem, Moff(X86RegisterClass), MoffGeneral, MemDest(X86RegisterClass), MemDestGeneral, MemSrc(X86RegisterClass), MemSrcGeneral,
}

Variants§

§

ModRM(X86RegisterClass)

The Mod and R/M portions of a ModR/M byte (potentially with a trailing SIB byte) If an 1-byte register is used, use the class Byte. REX prefix will correctly shift it to ByteRex

§

ModRMMem

The Mod and R/M portions of a ModR/M Byte, except that no registers cannot be used and size checking should not be performed

§

Reg(X86RegisterClass)

The R portion of a ModR/M byte If an 1-byte register is used, use the class Byte. REX prefix will correctly shift it to ByteRex

§

OpReg(X86RegisterClass)

A Register Number embedded in the Opcode If an 1-byte register is used, use the class Byte. REX prefix will correctly shift it to ByteRex

§

ModRMGeneral

m/r16/32/64 depending on mode and prefixes

§

ModRMMode

m/r16/32/64 depending on mode and 66h prefix

§

ModRMSib(X86RegisterClass)

A memory operand that must be encoded in an SIB byte

§

ModRMReal(X86RegisterClass)

Either STi or a memory reference with a given size

§

ModRMReg(X86RegisterClass)

A register encoded in the r/m field of the ModRM byte

§

ModRMScalar(X86RegisterClass)

§

VexReg

§

VexModRM

§

VexModRMScalar(X86RegisterClass)

§

VexPrefix(X86RegisterClass)

§

RegGeneral

r16/32/64 depending on mode and prefixes

§

OpRegGeneral

A register Number embedded in the opcode, with size depending on mode and prefix

§

OpRegMode

A register number emebedded in the opcode, with size depending on the mode and 66h prefix

§

AReg(X86RegisterClass)

AL/rAX depending on class Note: Suprising results may occur if a class other than Byte, Word, Double, or Quad is Used

§

ARegGeneral

rAX depending on mode and prefixes

§

ARegMode

rAX depening on the mode only

§

DReg(X86RegisterClass)

§

DRegGeneral

§

CReg(X86RegisterClass)

§

CRegGeneral

§

Flags(X86RegisterClass)

§

FlagsMode

§

Insn

A trailing Instruciton (prefix opcode other than 0x0F or VEX)

§

VecInsn

Vector Instruction (VEX prefix)

§

Imm(usize)

Immediate value

§

ImmGeneral

Immediate value depending on prefix and mode (no REX.W)

§

ImmGeneralWide

Immediate value depending on prefix and mode (respects REX.W in 64-bit mode)

§

Rel(usize)

A relative Word with a given Instruction Address size

§

RelGeneral

A relative address with size given by mode and 66h prefix

§

RControlBits(u8)

Sets bits in the R field of the ModR/M byte.

§

Seg

§

AvxReg

xmm/ymm/zmm depending on prefixes and control bits in prefixes

§

AvxMem

m128/256/512 depending on prefixes and control bits in prefixes

§

Moff(X86RegisterClass)

§

MoffGeneral

§

MemDest(X86RegisterClass)

Memory Reference referring to the destination address, which is always es:eDI or rDI depending on mode. In legacy mode, es is not controlled by any segment override prefix

§

MemDestGeneral

m16/32/64, which is always es:eDI or rDI depending on mode. In legacy mode, es is not controlled by any segment override prefix

§

MemSrc(X86RegisterClass)

Memory Reference referring to the source address, which is always ds:eSI or rSI depending on mode. In legacy mode, ds is controlled by the segment override prefix.

§

MemSrcGeneral

Trait Implementations§

Source§

impl Clone for X86OperandType

Source§

fn clone(&self) -> X86OperandType

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for X86OperandType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for X86OperandType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for X86OperandType

Source§

fn eq(&self, other: &X86OperandType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for X86OperandType

Source§

impl Eq for X86OperandType

Source§

impl StructuralPartialEq for X86OperandType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.