Zydis  v4.0.0
DecoderTypes.h File Reference

Defines the basic ZydisDecodedInstruction and ZydisDecodedOperand structs. More...

#include <Zycore/Types.h>
#include <Zydis/MetaInfo.h>
#include <Zydis/Mnemonic.h>
#include <Zydis/Register.h>
#include <Zydis/SharedTypes.h>
Include dependency graph for DecoderTypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ZydisDecodedOperandReg_
 Extended info for register-operands. More...
 
struct  ZydisDecodedOperandMem_
 Extended info for memory-operands. More...
 
struct  ZydisDecodedOperandMem_::ZydisDecodedOperandMemDisp_
 Extended info for memory-operands with displacement. More...
 
struct  ZydisDecodedOperandPtr_
 Extended info for pointer-operands. More...
 
struct  ZydisDecodedOperandImm_
 Extended info for immediate-operands. More...
 
union  ZydisDecodedOperandImm_::ZydisDecodedOperandImmValue_
 The immediate value. More...
 
struct  ZydisDecodedOperand_
 Defines the ZydisDecodedOperand struct. More...
 
struct  ZydisAccessedFlags_
 
struct  ZydisDecodedInstructionRawRex_
 Detailed info about the REX prefix. More...
 
struct  ZydisDecodedInstructionRawXop_
 Detailed info about the XOP prefix. More...
 
struct  ZydisDecodedInstructionRawVex_
 Detailed info about the VEX prefix. More...
 
struct  ZydisDecodedInstructionRawEvex
 Detailed info about the EVEX prefix. More...
 
struct  ZydisDecodedInstructionRawMvex_
 Detailed info about the MVEX prefix. More...
 
struct  ZydisDecodedInstructionAvx_
 Extended info for AVX instructions. More...
 
struct  ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxMask_
 Info about the embedded writemask-register (AVX-512 and KNC only). More...
 
struct  ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxBroadcast_
 Contains info about the AVX broadcast. More...
 
struct  ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxRounding_
 Contains info about the AVX rounding. More...
 
struct  ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxSwizzle_
 Contains info about the AVX register-swizzle (KNC only). More...
 
struct  ZydisDecodedInstructionAvx_::ZydisDecodedInstructionAvxConversion_
 Contains info about the AVX data-conversion (KNC only). More...
 
struct  ZydisDecodedInstructionMeta_
 Instruction meta info. More...
 
struct  ZydisDecodedInstructionRaw_
 Detailed info about different instruction-parts like ModRM, SIB or encoding-prefixes. More...
 
struct  ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawPrefixes_
 Detailed info about the legacy prefixes (including REX). More...
 
struct  ZydisDecodedInstructionRaw_::ZydisDecodedInstructionModRm_
 Detailed info about the ModRM byte. More...
 
struct  ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawSib_
 Detailed info about the SIB byte. More...
 
struct  ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawDisp_
 Detailed info about displacement-bytes. More...
 
struct  ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawImm_
 Detailed info about immediate-bytes. More...
 
union  ZydisDecodedInstructionRaw_::ZydisDecodedInstructionRawImm_::ZydisDecodedInstructionRawImmValue_
 The immediate value. More...
 
struct  ZydisDecodedInstruction_
 Information about a decoded instruction. More...
 
struct  ZydisDecoderContext_
 The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction. More...
 

Macros

#define ZYDIS_OATTRIB_IS_MULTISOURCE4   0x01
 The operand is a MULTISOURCE4 register operand. More...
 
#define ZYDIS_CPUFLAG_CF   (1ul << 0)
 Carry flag. More...
 
#define ZYDIS_CPUFLAG_PF   (1ul << 2)
 Parity flag. More...
 
#define ZYDIS_CPUFLAG_AF   (1ul << 4)
 Adjust flag. More...
 
#define ZYDIS_CPUFLAG_ZF   (1ul << 6)
 Zero flag. More...
 
#define ZYDIS_CPUFLAG_SF   (1ul << 7)
 Sign flag. More...
 
#define ZYDIS_CPUFLAG_TF   (1ul << 8)
 Trap flag. More...
 
#define ZYDIS_CPUFLAG_IF   (1ul << 9)
 Interrupt enable flag. More...
 
#define ZYDIS_CPUFLAG_DF   (1ul << 10)
 Direction flag. More...
 
#define ZYDIS_CPUFLAG_OF   (1ul << 11)
 Overflow flag. More...
 
#define ZYDIS_CPUFLAG_IOPL   (1ul << 12)
 I/O privilege level flag. More...
 
#define ZYDIS_CPUFLAG_NT   (1ul << 14)
 Nested task flag. More...
 
#define ZYDIS_CPUFLAG_RF   (1ul << 16)
 Resume flag. More...
 
#define ZYDIS_CPUFLAG_VM   (1ul << 17)
 Virtual 8086 mode flag. More...
 
#define ZYDIS_CPUFLAG_AC   (1ul << 18)
 Alignment check. More...
 
#define ZYDIS_CPUFLAG_VIF   (1ul << 19)
 Virtual interrupt flag. More...
 
#define ZYDIS_CPUFLAG_VIP   (1ul << 20)
 Virtual interrupt pending. More...
 
#define ZYDIS_CPUFLAG_ID   (1ul << 21)
 Able to use CPUID instruction. More...
 
#define ZYDIS_FPUFLAG_C0   (1ul << 0)
 FPU condition-code flag 0. More...
 
#define ZYDIS_FPUFLAG_C1   (1ul << 1)
 FPU condition-code flag 1. More...
 
#define ZYDIS_FPUFLAG_C2   (1ul << 2)
 FPU condition-code flag 2. More...
 
#define ZYDIS_FPUFLAG_C3   (1ul << 3)
 FPU condition-code flag 3. More...
 

Typedefs

typedef ZyanU8 ZydisOperandAttributes
 Defines the ZydisOperandAttributes data-type. More...
 
typedef enum ZydisMemoryOperandType_ ZydisMemoryOperandType
 Defines the ZydisMemoryOperandType enum. More...
 
typedef struct ZydisDecodedOperandReg_ ZydisDecodedOperandReg
 Extended info for register-operands. More...
 
typedef struct ZydisDecodedOperandMem_ ZydisDecodedOperandMem
 Extended info for memory-operands. More...
 
typedef struct ZydisDecodedOperandPtr_ ZydisDecodedOperandPtr
 Extended info for pointer-operands. More...
 
typedef struct ZydisDecodedOperandImm_ ZydisDecodedOperandImm
 Extended info for immediate-operands. More...
 
typedef struct ZydisDecodedOperand_ ZydisDecodedOperand
 Defines the ZydisDecodedOperand struct. More...
 
typedef ZyanU32 ZydisAccessedFlagsMask
 Defines the ZydisAccessedFlagsMask data-type. More...
 
typedef struct ZydisAccessedFlags_ ZydisAccessedFlags
 
typedef enum ZydisBranchType_ ZydisBranchType
 Defines the ZydisBranchType enum. More...
 
typedef enum ZydisExceptionClass_ ZydisExceptionClass
 Defines the ZydisExceptionClass enum. More...
 
typedef enum ZydisMaskMode_ ZydisMaskMode
 Defines the ZydisMaskMode enum. More...
 
typedef enum ZydisBroadcastMode_ ZydisBroadcastMode
 Defines the ZydisBroadcastMode enum. More...
 
typedef enum ZydisRoundingMode_ ZydisRoundingMode
 Defines the ZydisRoundingMode enum. More...
 
typedef enum ZydisSwizzleMode_ ZydisSwizzleMode
 Defines the ZydisSwizzleMode enum. More...
 
typedef enum ZydisConversionMode_ ZydisConversionMode
 Defines the ZydisConversionMode enum. More...
 
typedef enum ZydisPrefixType_ ZydisPrefixType
 Defines the ZydisPrefixType enum. More...
 
typedef struct ZydisDecodedInstructionRawRex_ ZydisDecodedInstructionRawRex
 Detailed info about the REX prefix. More...
 
typedef struct ZydisDecodedInstructionRawXop_ ZydisDecodedInstructionRawXop
 Detailed info about the XOP prefix. More...
 
typedef struct ZydisDecodedInstructionRawVex_ ZydisDecodedInstructionRawVex
 Detailed info about the VEX prefix. More...
 
typedef struct ZydisDecodedInstructionRawEvex ZydisDecodedInstructionRawEvex
 Detailed info about the EVEX prefix. More...
 
typedef struct ZydisDecodedInstructionRawMvex_ ZydisDecodedInstructionRawMvex
 Detailed info about the MVEX prefix. More...
 
typedef struct ZydisDecodedInstructionAvx_ ZydisDecodedInstructionAvx
 Extended info for AVX instructions. More...
 
typedef struct ZydisDecodedInstructionMeta_ ZydisDecodedInstructionMeta
 Instruction meta info. More...
 
typedef struct ZydisDecodedInstructionRaw_ ZydisDecodedInstructionRaw
 Detailed info about different instruction-parts like ModRM, SIB or encoding-prefixes. More...
 
typedef struct ZydisDecodedInstruction_ ZydisDecodedInstruction
 Information about a decoded instruction. More...
 
typedef struct ZydisDecoderContext_ ZydisDecoderContext
 The decoder context is used to preserve some internal state between subsequent decode operations for THE SAME instruction. More...
 

Enumerations

enum  ZydisMemoryOperandType_ {
  ZYDIS_MEMOP_TYPE_INVALID , ZYDIS_MEMOP_TYPE_MEM , ZYDIS_MEMOP_TYPE_AGEN , ZYDIS_MEMOP_TYPE_MIB ,
  ZYDIS_MEMOP_TYPE_VSIB , ZYDIS_MEMOP_TYPE_MAX_VALUE = ZYDIS_MEMOP_TYPE_VSIB , ZYDIS_MEMOP_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MEMOP_TYPE_MAX_VALUE)
}
 Defines the ZydisMemoryOperandType enum. More...
 
enum  ZydisBranchType_ {
  ZYDIS_BRANCH_TYPE_NONE , ZYDIS_BRANCH_TYPE_SHORT , ZYDIS_BRANCH_TYPE_NEAR , ZYDIS_BRANCH_TYPE_FAR ,
  ZYDIS_BRANCH_TYPE_MAX_VALUE = ZYDIS_BRANCH_TYPE_FAR , ZYDIS_BRANCH_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_BRANCH_TYPE_MAX_VALUE)
}
 Defines the ZydisBranchType enum. More...
 
enum  ZydisExceptionClass_ {
  ZYDIS_EXCEPTION_CLASS_NONE , ZYDIS_EXCEPTION_CLASS_SSE1 , ZYDIS_EXCEPTION_CLASS_SSE2 , ZYDIS_EXCEPTION_CLASS_SSE3 ,
  ZYDIS_EXCEPTION_CLASS_SSE4 , ZYDIS_EXCEPTION_CLASS_SSE5 , ZYDIS_EXCEPTION_CLASS_SSE7 , ZYDIS_EXCEPTION_CLASS_AVX1 ,
  ZYDIS_EXCEPTION_CLASS_AVX2 , ZYDIS_EXCEPTION_CLASS_AVX3 , ZYDIS_EXCEPTION_CLASS_AVX4 , ZYDIS_EXCEPTION_CLASS_AVX5 ,
  ZYDIS_EXCEPTION_CLASS_AVX6 , ZYDIS_EXCEPTION_CLASS_AVX7 , ZYDIS_EXCEPTION_CLASS_AVX8 , ZYDIS_EXCEPTION_CLASS_AVX11 ,
  ZYDIS_EXCEPTION_CLASS_AVX12 , ZYDIS_EXCEPTION_CLASS_E1 , ZYDIS_EXCEPTION_CLASS_E1NF , ZYDIS_EXCEPTION_CLASS_E2 ,
  ZYDIS_EXCEPTION_CLASS_E2NF , ZYDIS_EXCEPTION_CLASS_E3 , ZYDIS_EXCEPTION_CLASS_E3NF , ZYDIS_EXCEPTION_CLASS_E4 ,
  ZYDIS_EXCEPTION_CLASS_E4NF , ZYDIS_EXCEPTION_CLASS_E5 , ZYDIS_EXCEPTION_CLASS_E5NF , ZYDIS_EXCEPTION_CLASS_E6 ,
  ZYDIS_EXCEPTION_CLASS_E6NF , ZYDIS_EXCEPTION_CLASS_E7NM , ZYDIS_EXCEPTION_CLASS_E7NM128 , ZYDIS_EXCEPTION_CLASS_E9NF ,
  ZYDIS_EXCEPTION_CLASS_E10 , ZYDIS_EXCEPTION_CLASS_E10NF , ZYDIS_EXCEPTION_CLASS_E11 , ZYDIS_EXCEPTION_CLASS_E11NF ,
  ZYDIS_EXCEPTION_CLASS_E12 , ZYDIS_EXCEPTION_CLASS_E12NP , ZYDIS_EXCEPTION_CLASS_K20 , ZYDIS_EXCEPTION_CLASS_K21 ,
  ZYDIS_EXCEPTION_CLASS_AMXE1 , ZYDIS_EXCEPTION_CLASS_AMXE2 , ZYDIS_EXCEPTION_CLASS_AMXE3 , ZYDIS_EXCEPTION_CLASS_AMXE4 ,
  ZYDIS_EXCEPTION_CLASS_AMXE5 , ZYDIS_EXCEPTION_CLASS_AMXE6 , ZYDIS_EXCEPTION_CLASS_MAX_VALUE = ZYDIS_EXCEPTION_CLASS_AMXE6 , ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_EXCEPTION_CLASS_MAX_VALUE)
}
 Defines the ZydisExceptionClass enum. More...
 
enum  ZydisMaskMode_ {
  ZYDIS_MASK_MODE_INVALID , ZYDIS_MASK_MODE_DISABLED , ZYDIS_MASK_MODE_MERGING , ZYDIS_MASK_MODE_ZEROING ,
  ZYDIS_MASK_MODE_CONTROL , ZYDIS_MASK_MODE_CONTROL_ZEROING , ZYDIS_MASK_MODE_MAX_VALUE = ZYDIS_MASK_MODE_CONTROL_ZEROING , ZYDIS_MASK_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MASK_MODE_MAX_VALUE)
}
 Defines the ZydisMaskMode enum. More...
 
enum  ZydisBroadcastMode_ {
  ZYDIS_BROADCAST_MODE_INVALID , ZYDIS_BROADCAST_MODE_1_TO_2 , ZYDIS_BROADCAST_MODE_1_TO_4 , ZYDIS_BROADCAST_MODE_1_TO_8 ,
  ZYDIS_BROADCAST_MODE_1_TO_16 , ZYDIS_BROADCAST_MODE_1_TO_32 , ZYDIS_BROADCAST_MODE_1_TO_64 , ZYDIS_BROADCAST_MODE_2_TO_4 ,
  ZYDIS_BROADCAST_MODE_2_TO_8 , ZYDIS_BROADCAST_MODE_2_TO_16 , ZYDIS_BROADCAST_MODE_4_TO_8 , ZYDIS_BROADCAST_MODE_4_TO_16 ,
  ZYDIS_BROADCAST_MODE_8_TO_16 , ZYDIS_BROADCAST_MODE_MAX_VALUE = ZYDIS_BROADCAST_MODE_8_TO_16 , ZYDIS_BROADCAST_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_BROADCAST_MODE_MAX_VALUE)
}
 Defines the ZydisBroadcastMode enum. More...
 
enum  ZydisRoundingMode_ {
  ZYDIS_ROUNDING_MODE_INVALID , ZYDIS_ROUNDING_MODE_RN , ZYDIS_ROUNDING_MODE_RD , ZYDIS_ROUNDING_MODE_RU ,
  ZYDIS_ROUNDING_MODE_RZ , ZYDIS_ROUNDING_MODE_MAX_VALUE = ZYDIS_ROUNDING_MODE_RZ , ZYDIS_ROUNDING_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_ROUNDING_MODE_MAX_VALUE)
}
 Defines the ZydisRoundingMode enum. More...
 
enum  ZydisSwizzleMode_ {
  ZYDIS_SWIZZLE_MODE_INVALID , ZYDIS_SWIZZLE_MODE_DCBA , ZYDIS_SWIZZLE_MODE_CDAB , ZYDIS_SWIZZLE_MODE_BADC ,
  ZYDIS_SWIZZLE_MODE_DACB , ZYDIS_SWIZZLE_MODE_AAAA , ZYDIS_SWIZZLE_MODE_BBBB , ZYDIS_SWIZZLE_MODE_CCCC ,
  ZYDIS_SWIZZLE_MODE_DDDD , ZYDIS_SWIZZLE_MODE_MAX_VALUE = ZYDIS_SWIZZLE_MODE_DDDD , ZYDIS_SWIZZLE_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_SWIZZLE_MODE_MAX_VALUE)
}
 Defines the ZydisSwizzleMode enum. More...
 
enum  ZydisConversionMode_ {
  ZYDIS_CONVERSION_MODE_INVALID , ZYDIS_CONVERSION_MODE_FLOAT16 , ZYDIS_CONVERSION_MODE_SINT8 , ZYDIS_CONVERSION_MODE_UINT8 ,
  ZYDIS_CONVERSION_MODE_SINT16 , ZYDIS_CONVERSION_MODE_UINT16 , ZYDIS_CONVERSION_MODE_MAX_VALUE = ZYDIS_CONVERSION_MODE_UINT16 , ZYDIS_CONVERSION_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_CONVERSION_MODE_MAX_VALUE)
}
 Defines the ZydisConversionMode enum. More...
 
enum  ZydisPrefixType_ {
  ZYDIS_PREFIX_TYPE_IGNORED , ZYDIS_PREFIX_TYPE_EFFECTIVE , ZYDIS_PREFIX_TYPE_MANDATORY , ZYDIS_PREFIX_TYPE_MAX_VALUE = ZYDIS_PREFIX_TYPE_MANDATORY ,
  ZYDIS_PREFIX_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_PREFIX_TYPE_MAX_VALUE)
}
 Defines the ZydisPrefixType enum. More...
 

Detailed Description

Defines the basic ZydisDecodedInstruction and ZydisDecodedOperand structs.

Macro Definition Documentation

◆ ZYDIS_OATTRIB_IS_MULTISOURCE4

#define ZYDIS_OATTRIB_IS_MULTISOURCE4   0x01

The operand is a MULTISOURCE4 register operand.

This is a special register operand-type used by 4FMAPS instructions where the given register points to the first register of a register range (4 registers in total).

Example: ZMM3 -> [ZMM3..ZMM6]

Typedef Documentation

◆ ZydisAccessedFlags

◆ ZydisAccessedFlagsMask

typedef ZyanU32 ZydisAccessedFlagsMask

Defines the ZydisAccessedFlagsMask data-type.

◆ ZydisBranchType

Defines the ZydisBranchType enum.

◆ ZydisBroadcastMode

Defines the ZydisBroadcastMode enum.

◆ ZydisConversionMode

Defines the ZydisConversionMode enum.

◆ ZydisDecodedInstruction

Information about a decoded instruction.

◆ ZydisDecodedInstructionAvx

Extended info for AVX instructions.

◆ ZydisDecodedInstructionMeta

Instruction meta info.

◆ ZydisDecodedInstructionRaw

Detailed info about different instruction-parts like ModRM, SIB or encoding-prefixes.

◆ ZydisDecodedInstructionRawEvex

Detailed info about the EVEX prefix.

◆ ZydisDecodedInstructionRawMvex

Detailed info about the MVEX prefix.

◆ ZydisDecodedInstructionRawRex

Detailed info about the REX prefix.

◆ ZydisDecodedInstructionRawVex

Detailed info about the VEX prefix.

◆ ZydisDecodedInstructionRawXop

Detailed info about the XOP prefix.

◆ ZydisDecodedOperand

Defines the ZydisDecodedOperand struct.

◆ ZydisDecodedOperandImm

Extended info for immediate-operands.

◆ ZydisDecodedOperandMem

Extended info for memory-operands.

◆ ZydisDecodedOperandPtr

Extended info for pointer-operands.

◆ ZydisDecodedOperandReg

Extended info for register-operands.

◆ ZydisDecoderContext

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!

◆ ZydisExceptionClass

Defines the ZydisExceptionClass enum.

◆ ZydisMaskMode

Defines the ZydisMaskMode enum.

◆ ZydisMemoryOperandType

Defines the ZydisMemoryOperandType enum.

◆ ZydisOperandAttributes

typedef ZyanU8 ZydisOperandAttributes

Defines the ZydisOperandAttributes data-type.

◆ ZydisPrefixType

Defines the ZydisPrefixType enum.

◆ ZydisRoundingMode

Defines the ZydisRoundingMode enum.

◆ ZydisSwizzleMode

Defines the ZydisSwizzleMode enum.

Enumeration Type Documentation

◆ ZydisBranchType_

Defines the ZydisBranchType enum.

Enumerator
ZYDIS_BRANCH_TYPE_NONE 

The instruction is not a branch instruction.

ZYDIS_BRANCH_TYPE_SHORT 

The instruction is a short (8-bit) branch instruction.

ZYDIS_BRANCH_TYPE_NEAR 

The instruction is a near (16-bit or 32-bit) branch instruction.

ZYDIS_BRANCH_TYPE_FAR 

The instruction is a far (inter-segment) branch instruction.

ZYDIS_BRANCH_TYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_BRANCH_TYPE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisBroadcastMode_

Defines the ZydisBroadcastMode enum.

Enumerator
ZYDIS_BROADCAST_MODE_INVALID 
ZYDIS_BROADCAST_MODE_1_TO_2 
ZYDIS_BROADCAST_MODE_1_TO_4 
ZYDIS_BROADCAST_MODE_1_TO_8 
ZYDIS_BROADCAST_MODE_1_TO_16 
ZYDIS_BROADCAST_MODE_1_TO_32 
ZYDIS_BROADCAST_MODE_1_TO_64 
ZYDIS_BROADCAST_MODE_2_TO_4 
ZYDIS_BROADCAST_MODE_2_TO_8 
ZYDIS_BROADCAST_MODE_2_TO_16 
ZYDIS_BROADCAST_MODE_4_TO_8 
ZYDIS_BROADCAST_MODE_4_TO_16 
ZYDIS_BROADCAST_MODE_8_TO_16 
ZYDIS_BROADCAST_MODE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_BROADCAST_MODE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisConversionMode_

Defines the ZydisConversionMode enum.

Enumerator
ZYDIS_CONVERSION_MODE_INVALID 
ZYDIS_CONVERSION_MODE_FLOAT16 
ZYDIS_CONVERSION_MODE_SINT8 
ZYDIS_CONVERSION_MODE_UINT8 
ZYDIS_CONVERSION_MODE_SINT16 
ZYDIS_CONVERSION_MODE_UINT16 
ZYDIS_CONVERSION_MODE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_CONVERSION_MODE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisExceptionClass_

Defines the ZydisExceptionClass enum.

Enumerator
ZYDIS_EXCEPTION_CLASS_NONE 
ZYDIS_EXCEPTION_CLASS_SSE1 
ZYDIS_EXCEPTION_CLASS_SSE2 
ZYDIS_EXCEPTION_CLASS_SSE3 
ZYDIS_EXCEPTION_CLASS_SSE4 
ZYDIS_EXCEPTION_CLASS_SSE5 
ZYDIS_EXCEPTION_CLASS_SSE7 
ZYDIS_EXCEPTION_CLASS_AVX1 
ZYDIS_EXCEPTION_CLASS_AVX2 
ZYDIS_EXCEPTION_CLASS_AVX3 
ZYDIS_EXCEPTION_CLASS_AVX4 
ZYDIS_EXCEPTION_CLASS_AVX5 
ZYDIS_EXCEPTION_CLASS_AVX6 
ZYDIS_EXCEPTION_CLASS_AVX7 
ZYDIS_EXCEPTION_CLASS_AVX8 
ZYDIS_EXCEPTION_CLASS_AVX11 
ZYDIS_EXCEPTION_CLASS_AVX12 
ZYDIS_EXCEPTION_CLASS_E1 
ZYDIS_EXCEPTION_CLASS_E1NF 
ZYDIS_EXCEPTION_CLASS_E2 
ZYDIS_EXCEPTION_CLASS_E2NF 
ZYDIS_EXCEPTION_CLASS_E3 
ZYDIS_EXCEPTION_CLASS_E3NF 
ZYDIS_EXCEPTION_CLASS_E4 
ZYDIS_EXCEPTION_CLASS_E4NF 
ZYDIS_EXCEPTION_CLASS_E5 
ZYDIS_EXCEPTION_CLASS_E5NF 
ZYDIS_EXCEPTION_CLASS_E6 
ZYDIS_EXCEPTION_CLASS_E6NF 
ZYDIS_EXCEPTION_CLASS_E7NM 
ZYDIS_EXCEPTION_CLASS_E7NM128 
ZYDIS_EXCEPTION_CLASS_E9NF 
ZYDIS_EXCEPTION_CLASS_E10 
ZYDIS_EXCEPTION_CLASS_E10NF 
ZYDIS_EXCEPTION_CLASS_E11 
ZYDIS_EXCEPTION_CLASS_E11NF 
ZYDIS_EXCEPTION_CLASS_E12 
ZYDIS_EXCEPTION_CLASS_E12NP 
ZYDIS_EXCEPTION_CLASS_K20 
ZYDIS_EXCEPTION_CLASS_K21 
ZYDIS_EXCEPTION_CLASS_AMXE1 
ZYDIS_EXCEPTION_CLASS_AMXE2 
ZYDIS_EXCEPTION_CLASS_AMXE3 
ZYDIS_EXCEPTION_CLASS_AMXE4 
ZYDIS_EXCEPTION_CLASS_AMXE5 
ZYDIS_EXCEPTION_CLASS_AMXE6 
ZYDIS_EXCEPTION_CLASS_MAX_VALUE 

Maximum value of this enum.

ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisMaskMode_

Defines the ZydisMaskMode enum.

Enumerator
ZYDIS_MASK_MODE_INVALID 
ZYDIS_MASK_MODE_DISABLED 

Masking is disabled for the current instruction (K0 register is used).

ZYDIS_MASK_MODE_MERGING 

The embedded mask register is used as a merge-mask.

ZYDIS_MASK_MODE_ZEROING 

The embedded mask register is used as a zero-mask.

ZYDIS_MASK_MODE_CONTROL 

The embedded mask register is used as a control-mask (element selector).

ZYDIS_MASK_MODE_CONTROL_ZEROING 

The embedded mask register is used as a zeroing control-mask (element selector).

ZYDIS_MASK_MODE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_MASK_MODE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisMemoryOperandType_

Defines the ZydisMemoryOperandType enum.

Enumerator
ZYDIS_MEMOP_TYPE_INVALID 
ZYDIS_MEMOP_TYPE_MEM 

Normal memory operand.

ZYDIS_MEMOP_TYPE_AGEN 

The memory operand is only used for address-generation.

No real memory-access is caused.

ZYDIS_MEMOP_TYPE_MIB 

A memory operand using SIB addressing form, where the index register is not used in address calculation and scale is ignored.

No real memory-access is caused.

ZYDIS_MEMOP_TYPE_VSIB 

A vector SIB memory addressing operand (VSIB).

ZYDIS_MEMOP_TYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_MEMOP_TYPE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisPrefixType_

Defines the ZydisPrefixType enum.

Enumerator
ZYDIS_PREFIX_TYPE_IGNORED 

The prefix is ignored by the instruction.

This applies to all prefixes that are not accepted by the instruction in general or the ones that are overwritten by a prefix of the same group closer to the instruction opcode.

ZYDIS_PREFIX_TYPE_EFFECTIVE 

The prefix is effectively used by the instruction.

ZYDIS_PREFIX_TYPE_MANDATORY 

The prefix is used as a mandatory prefix.

A mandatory prefix is interpreted as an opcode extension and has no further effect on the instruction.

ZYDIS_PREFIX_TYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_PREFIX_TYPE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisRoundingMode_

Defines the ZydisRoundingMode enum.

Enumerator
ZYDIS_ROUNDING_MODE_INVALID 
ZYDIS_ROUNDING_MODE_RN 

Round to nearest.

ZYDIS_ROUNDING_MODE_RD 

Round down.

ZYDIS_ROUNDING_MODE_RU 

Round up.

ZYDIS_ROUNDING_MODE_RZ 

Round towards zero.

ZYDIS_ROUNDING_MODE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_ROUNDING_MODE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.

◆ ZydisSwizzleMode_

Defines the ZydisSwizzleMode enum.

Enumerator
ZYDIS_SWIZZLE_MODE_INVALID 
ZYDIS_SWIZZLE_MODE_DCBA 
ZYDIS_SWIZZLE_MODE_CDAB 
ZYDIS_SWIZZLE_MODE_BADC 
ZYDIS_SWIZZLE_MODE_DACB 
ZYDIS_SWIZZLE_MODE_AAAA 
ZYDIS_SWIZZLE_MODE_BBBB 
ZYDIS_SWIZZLE_MODE_CCCC 
ZYDIS_SWIZZLE_MODE_DDDD 
ZYDIS_SWIZZLE_MODE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_SWIZZLE_MODE_REQUIRED_BITS 

The minimum number of bits required to represent all values of this enum.