pub struct Evex {
pub length: Length,
pub pp: Option<VexPrefix>,
pub mmm: Option<VexEscape>,
pub w: WBit,
pub opcode: u8,
pub modrm: Option<ModRmKind>,
pub imm: Imm,
pub tuple_type: TupleType,
}Fields§
§length: LengthThe vector length of the operand (e.g., 128-bit, 256-bit, or 512-bit).
pp: Option<VexPrefix>Any SIMD prefixes, but encoded in the EVEX.pp bit field (see similar:
Vex::pp).
mmm: Option<VexEscape>The mmm bits.
Bits 1:0 are identical to the lowest 2 bits of VEX.mmmmm; EVEX adds
one more bit here. From the reference manual: “provides access to up to
eight decoding maps. Currently, only the following decoding maps are
supported: 1, 2, 3, 5, and 6. Map ids 1, 2, and 3 are denoted by 0F,
0F38, and 0F3A, respectively, in the instruction encoding descriptions.”
w: WBitThe W bit.
opcode: u8EVEX-encoded instructions opcode byte“
modrm: Option<ModRmKind>See Rex.modrm.
imm: ImmSee Rex.imm.
tuple_type: TupleTypeThe “Tuple Type” corresponding to scaling of the 8-bit displacement
parameter for memory operands. See TupleType for more information.
Implementations§
Source§impl Evex
impl Evex
Sourcepub fn _66(self) -> Self
pub fn _66(self) -> Self
Set the pp field to use VexPrefix::_66; equivalent to .66 in the
manual.
Sourcepub fn _f2(self) -> Self
pub fn _f2(self) -> Self
Set the pp field to use VexPrefix::_F2; equivalent to .F2 in the
manual.
Sourcepub fn _f3(self) -> Self
pub fn _f3(self) -> Self
Set the pp field to use VexPrefix::_F3; equivalent to .F3 in the
manual.
Sourcepub fn _0f(self) -> Self
pub fn _0f(self) -> Self
Set the mmmmmm field to use VexEscape::_0F; equivalent to .0F in
the manual.
Sourcepub fn _0f3a(self) -> Self
pub fn _0f3a(self) -> Self
Set the mmmmmm field to use VexEscape::_0F3A; equivalent to
.0F3A in the manual.
Sourcepub fn _0f38(self) -> Self
pub fn _0f38(self) -> Self
Set the mmmmmm field to use VexEscape::_0F38; equivalent to
.0F38 in the manual.
Sourcepub fn unwrap_digit(&self) -> Option<u8>
pub fn unwrap_digit(&self) -> Option<u8>
Retrieve the digit extending the opcode, if available.