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
impl Clone for X86OperandType
Source§fn clone(&self) -> X86OperandType
fn clone(&self) -> X86OperandType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more