Zydis v4.0.0
|
The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction. More...
#include <DecoderTypes.h>
Data Fields | ||
const void * | definition | |
A pointer to the internal instruction definition. | ||
ZyanU8 | eosz_index | |
Contains the effective operand-size index. | ||
ZyanU8 | easz_index | |
Contains the effective address-size index. | ||
struct { | ||
ZyanU8 W | ||
ZyanU8 R | ||
ZyanU8 X | ||
ZyanU8 B | ||
ZyanU8 L | ||
ZyanU8 LL | ||
ZyanU8 R2 | ||
ZyanU8 V2 | ||
ZyanU8 vvvv | ||
ZyanU8 mask | ||
} | vector_unified | |
Contains some cached REX/XOP/VEX/EVEX/MVEX values to provide uniform access. | ||
struct { | ||
ZyanBool is_mod_reg | ||
Signals if the modrm.mod == 3 or reg form is forced for the instruction. | ||
ZyanU8 id_reg | ||
The final register id for the reg encoded register. | ||
ZyanU8 id_rm | ||
The final register id for the rm encoded register. More... | ||
ZyanU8 id_ndsndd | ||
The final register id for the ndsndd (.vvvv ) encoded register. | ||
ZyanU8 id_base | ||
The final register id for the base register. More... | ||
ZyanU8 id_index | ||
The final register id for the index register. More... | ||
} | reg_info | |
Information about encoded operand registers. | ||
struct { | ||
ZyanU8 tuple_type | ||
The EVEX tuple-type. | ||
ZyanU8 element_size | ||
The EVEX element-size. | ||
} | evex | |
Internal EVEX-specific information. | ||
struct { | ||
ZyanU8 functionality | ||
The MVEX functionality. | ||
} | mvex | |
Internal MVEX-specific information. | ||
ZyanU8 | cd8_scale | |
The scale factor for EVEX/MVEX compressed 8-bit displacement values. | ||
The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction.
The context is initialized by ZydisDecoderDecodeInstruction
and required by e.g. ZydisDecoderDecodeOperands
.
All fields in this struct should be considered as "private". Any changes may lead to unexpected behavior.
This struct is neither ABI nor API stable!
ZyanU8 easz_index |
Contains the effective address-size index.
0 = 16 bit, 1 = 32 bit, 2 = 64 bit
ZyanU8 eosz_index |
Contains the effective operand-size index.
0 = 16 bit, 1 = 32 bit, 2 = 64 bit
ZyanU8 id_base |
The final register id for the base register.
This value is only set, if a memory operand is encoded in modrm.rm
.
ZyanU8 id_index |
The final register id for the index register.
This value is only set, if a memory operand is encoded in modrm.rm
and the SIB
byte is present.
ZyanU8 id_rm |
The final register id for the rm
encoded register.
This value is only set, if a register is encoded in modrm.rm
.