Zydis v4.0.0
Loading...
Searching...
No Matches
ZydisDecoderContext_ Struct Reference

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.
 

Detailed Description

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!

Field Documentation

◆ easz_index

ZyanU8 easz_index

Contains the effective address-size index.

0 = 16 bit, 1 = 32 bit, 2 = 64 bit

◆ eosz_index

ZyanU8 eosz_index

Contains the effective operand-size index.

0 = 16 bit, 1 = 32 bit, 2 = 64 bit

◆ id_base

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.

◆ id_index

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.

◆ id_rm

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.


The documentation for this struct was generated from the following file: