Zydis v4.0.0
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. More...
 
ZyanU8 easz_index
 Contains the effective address-size index. More...
 
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: