Zydis  master
SharedData.h File Reference
#include <Zycore/Defines.h>
#include <Zydis/Mnemonic.h>
#include <Zydis/Register.h>
#include <Zydis/SharedTypes.h>
#include <Zydis/DecoderTypes.h>
Include dependency graph for SharedData.h:

Go to the source code of this file.

Data Structures

struct  ZydisOperandDefinition_
 Defines the ZydisOperandDefinition struct. More...
 
struct  ZydisInstructionDefinition_
 Defines the ZydisInstructionDefinition struct. More...
 
struct  ZydisInstructionDefinitionLEGACY_
 Defines the ZydisInstructionDefinitionLEGACY struct. More...
 
struct  ZydisInstructionDefinition3DNOW_
 Defines the ZydisInstructionDefinition3DNOW struct. More...
 
struct  ZydisInstructionDefinitionXOP_
 Defines the ZydisInstructionDefinitionXOP struct. More...
 
struct  ZydisInstructionDefinitionVEX_
 Defines the ZydisInstructionDefinitionVEX struct. More...
 
struct  ZydisInstructionDefinitionEVEX_
 Defines the ZydisInstructionDefinitionEVEX struct. More...
 
struct  ZydisInstructionDefinitionMVEX_
 Defines the ZydisInstructionDefinitionMVEX struct. More...
 
struct  ZydisDefinitionAccessedFlags_
 

Macros

#define ZYDIS_OPDEF_REQUIRED_BITS    ZYAN_MAX(ZYDIS_REGKIND_REQUIRED_BITS, ZYDIS_MEMOP_TYPE_REQUIRED_BITS + 1) + 1
 
#define ZYDIS_OPDEF_GET_REG(operand_definition)    ((operand_definition) & ((1 << ZYDIS_REGKIND_REQUIRED_BITS ) - 1))
 
#define ZYDIS_OPDEF_GET_MEM(operand_definition)    ((operand_definition) & ((1 << ZYDIS_MEMOP_TYPE_REQUIRED_BITS) - 1))
 
#define ZYDIS_OPDEF_GET_REG_HIGH_BIT(operand_definition)    (((operand_definition) >> ZYDIS_REGKIND_REQUIRED_BITS ) & 0x01)
 
#define ZYDIS_OPDEF_GET_MEM_HIGH_BIT(operand_definition)    (((operand_definition) >> ZYDIS_MEMOP_TYPE_REQUIRED_BITS) & 0x01)
 
#define ZYDIS_INSTRUCTION_DEFINITION_BASE
 
#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
 
#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL
 

Typedefs

typedef enum ZydisSemanticOperandType_ ZydisSemanticOperandType
 Defines the ZydisSemanticOperandType enum. More...
 
typedef enum ZydisInternalElementType_ ZydisInternalElementType
 Defines the ZydisInternalElementType enum. More...
 
typedef enum ZydisImplicitRegisterType_ ZydisImplicitRegisterType
 Defines the ZydisImplicitRegisterType enum. More...
 
typedef enum ZydisImplicitMemBase_ ZydisImplicitMemBase
 Defines the ZydisImplicitMemBase enum. More...
 
typedef struct ZydisOperandDefinition_ ZydisOperandDefinition
 Defines the ZydisOperandDefinition struct. More...
 
typedef enum ZydisReadWriteAction_ ZydisReadWriteAction
 Defines the ZydisReadWriteAction enum. More...
 
typedef enum ZydisInternalVectorLength_ ZydisInternalVectorLength
 Defines the ZydisInternalVectorLength enum. More...
 
typedef enum ZydisInternalElementSize_ ZydisInternalElementSize
 Defines the ZydisInternalElementSize enum. More...
 
typedef enum ZydisEVEXFunctionality_ ZydisEVEXFunctionality
 Defines the ZydisEVEXFunctionality enum. More...
 
typedef enum ZydisEVEXTupleType_ ZydisEVEXTupleType
 Defines the ZydisEVEXTupleType enum. More...
 
typedef enum ZydisMVEXFunctionality_ ZydisMVEXFunctionality
 Defines the ZydisMVEXFunctionality enum. More...
 
typedef enum ZydisVEXStaticBroadcast ZydisVEXStaticBroadcast
 Defines the ZydisVEXStaticBroadcast enum. More...
 
typedef enum ZydisEVEXStaticBroadcast_ ZydisEVEXStaticBroadcast
 Defines the ZydisEVEXStaticBroadcast enum. More...
 
typedef enum ZydisMVEXStaticBroadcast_ ZydisMVEXStaticBroadcast
 Defines the ZydisMVEXStaticBroadcast enum. More...
 
typedef enum ZydisMaskPolicy_ ZydisMaskPolicy
 Defines the ZydisMaskPolicy enum. More...
 
typedef enum ZydisMaskOverride_ ZydisMaskOverride
 Defines the ZydisMaskOverride enum. More...
 
typedef struct ZydisInstructionDefinition_ ZydisInstructionDefinition
 Defines the ZydisInstructionDefinition struct. More...
 
typedef struct ZydisInstructionDefinitionLEGACY_ ZydisInstructionDefinitionLEGACY
 Defines the ZydisInstructionDefinitionLEGACY struct. More...
 
typedef struct ZydisInstructionDefinition3DNOW_ ZydisInstructionDefinition3DNOW
 Defines the ZydisInstructionDefinition3DNOW struct. More...
 
typedef struct ZydisInstructionDefinitionXOP_ ZydisInstructionDefinitionXOP
 Defines the ZydisInstructionDefinitionXOP struct. More...
 
typedef struct ZydisInstructionDefinitionVEX_ ZydisInstructionDefinitionVEX
 Defines the ZydisInstructionDefinitionVEX struct. More...
 
typedef struct ZydisInstructionDefinitionEVEX_ ZydisInstructionDefinitionEVEX
 Defines the ZydisInstructionDefinitionEVEX struct. More...
 
typedef struct ZydisInstructionDefinitionMVEX_ ZydisInstructionDefinitionMVEX
 Defines the ZydisInstructionDefinitionMVEX struct. More...
 
typedef struct ZydisDefinitionAccessedFlags_ ZydisDefinitionAccessedFlags
 

Enumerations

enum  ZydisSemanticOperandType_ {
  ZYDIS_SEMANTIC_OPTYPE_UNUSED , ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG , ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM , ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_IMM1 ,
  ZYDIS_SEMANTIC_OPTYPE_GPR8 , ZYDIS_SEMANTIC_OPTYPE_GPR16 , ZYDIS_SEMANTIC_OPTYPE_GPR32 , ZYDIS_SEMANTIC_OPTYPE_GPR64 ,
  ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64 , ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64 , ZYDIS_SEMANTIC_OPTYPE_GPR16_32_32 , ZYDIS_SEMANTIC_OPTYPE_GPR_ASZ ,
  ZYDIS_SEMANTIC_OPTYPE_FPR , ZYDIS_SEMANTIC_OPTYPE_MMX , ZYDIS_SEMANTIC_OPTYPE_XMM , ZYDIS_SEMANTIC_OPTYPE_YMM ,
  ZYDIS_SEMANTIC_OPTYPE_ZMM , ZYDIS_SEMANTIC_OPTYPE_TMM , ZYDIS_SEMANTIC_OPTYPE_BND , ZYDIS_SEMANTIC_OPTYPE_SREG ,
  ZYDIS_SEMANTIC_OPTYPE_CR , ZYDIS_SEMANTIC_OPTYPE_DR , ZYDIS_SEMANTIC_OPTYPE_MASK , ZYDIS_SEMANTIC_OPTYPE_MEM ,
  ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBX , ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBY , ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBZ , ZYDIS_SEMANTIC_OPTYPE_IMM ,
  ZYDIS_SEMANTIC_OPTYPE_REL , ZYDIS_SEMANTIC_OPTYPE_PTR , ZYDIS_SEMANTIC_OPTYPE_AGEN , ZYDIS_SEMANTIC_OPTYPE_MOFFS ,
  ZYDIS_SEMANTIC_OPTYPE_MIB , ZYDIS_SEMANTIC_OPTYPE_MAX_VALUE = ZYDIS_SEMANTIC_OPTYPE_MIB , ZYDIS_SEMANTIC_OPTYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_SEMANTIC_OPTYPE_MAX_VALUE)
}
 Defines the ZydisSemanticOperandType enum. More...
 
enum  ZydisInternalElementType_ {
  ZYDIS_IELEMENT_TYPE_INVALID , ZYDIS_IELEMENT_TYPE_VARIABLE , ZYDIS_IELEMENT_TYPE_STRUCT , ZYDIS_IELEMENT_TYPE_INT ,
  ZYDIS_IELEMENT_TYPE_UINT , ZYDIS_IELEMENT_TYPE_INT1 , ZYDIS_IELEMENT_TYPE_INT8 , ZYDIS_IELEMENT_TYPE_INT8X4 ,
  ZYDIS_IELEMENT_TYPE_INT16 , ZYDIS_IELEMENT_TYPE_INT16X2 , ZYDIS_IELEMENT_TYPE_INT32 , ZYDIS_IELEMENT_TYPE_INT64 ,
  ZYDIS_IELEMENT_TYPE_UINT8 , ZYDIS_IELEMENT_TYPE_UINT8X4 , ZYDIS_IELEMENT_TYPE_UINT16 , ZYDIS_IELEMENT_TYPE_UINT16X2 ,
  ZYDIS_IELEMENT_TYPE_UINT32 , ZYDIS_IELEMENT_TYPE_UINT64 , ZYDIS_IELEMENT_TYPE_UINT128 , ZYDIS_IELEMENT_TYPE_UINT256 ,
  ZYDIS_IELEMENT_TYPE_FLOAT16 , ZYDIS_IELEMENT_TYPE_FLOAT16X2 , ZYDIS_IELEMENT_TYPE_FLOAT32 , ZYDIS_IELEMENT_TYPE_FLOAT64 ,
  ZYDIS_IELEMENT_TYPE_FLOAT80 , ZYDIS_IELEMENT_TYPE_BFLOAT16X2 , ZYDIS_IELEMENT_TYPE_BCD80 , ZYDIS_IELEMENT_TYPE_CC3 ,
  ZYDIS_IELEMENT_TYPE_CC5 , ZYDIS_IELEMENT_TYPE_MAX_VALUE = ZYDIS_IELEMENT_TYPE_CC5 , ZYDIS_IELEMENT_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_IELEMENT_TYPE_MAX_VALUE)
}
 Defines the ZydisInternalElementType enum. More...
 
enum  ZydisImplicitRegisterType_ {
  ZYDIS_IMPLREG_TYPE_STATIC , ZYDIS_IMPLREG_TYPE_GPR_OSZ , ZYDIS_IMPLREG_TYPE_GPR_ASZ , ZYDIS_IMPLREG_TYPE_IP_ASZ ,
  ZYDIS_IMPLREG_TYPE_IP_SSZ , ZYDIS_IMPLREG_TYPE_GPR_SSZ , ZYDIS_IMPLREG_TYPE_FLAGS_SSZ , ZYDIS_IMPLREG_TYPE_MAX_VALUE = ZYDIS_IMPLREG_TYPE_FLAGS_SSZ ,
  ZYDIS_IMPLREG_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_IMPLREG_TYPE_MAX_VALUE)
}
 Defines the ZydisImplicitRegisterType enum. More...
 
enum  ZydisImplicitMemBase_ {
  ZYDIS_IMPLMEM_BASE_AGPR_REG , ZYDIS_IMPLMEM_BASE_AGPR_RM , ZYDIS_IMPLMEM_BASE_AAX , ZYDIS_IMPLMEM_BASE_ADX ,
  ZYDIS_IMPLMEM_BASE_ABX , ZYDIS_IMPLMEM_BASE_ASI , ZYDIS_IMPLMEM_BASE_ADI , ZYDIS_IMPLMEM_BASE_SSP ,
  ZYDIS_IMPLMEM_BASE_SBP , ZYDIS_IMPLMEM_BASE_MAX_VALUE = ZYDIS_IMPLMEM_BASE_SBP , ZYDIS_IMPLMEM_BASE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_IMPLMEM_BASE_MAX_VALUE)
}
 Defines the ZydisImplicitMemBase enum. More...
 
enum  ZydisReadWriteAction_ {
  ZYDIS_RW_ACTION_NONE , ZYDIS_RW_ACTION_READ , ZYDIS_RW_ACTION_WRITE , ZYDIS_RW_ACTION_READWRITE ,
  ZYDIS_RW_ACTION_MAX_VALUE = ZYDIS_RW_ACTION_READWRITE , ZYDIS_RW_ACTION_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_RW_ACTION_MAX_VALUE)
}
 Defines the ZydisReadWriteAction enum. More...
 
enum  ZydisInternalVectorLength_ {
  ZYDIS_IVECTOR_LENGTH_DEFAULT , ZYDIS_IVECTOR_LENGTH_FIXED_128 , ZYDIS_IVECTOR_LENGTH_FIXED_256 , ZYDIS_IVECTOR_LENGTH_FIXED_512 ,
  ZYDIS_IVECTOR_LENGTH_MAX_VALUE = ZYDIS_IVECTOR_LENGTH_FIXED_512 , ZYDIS_IVECTOR_LENGTH_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_IVECTOR_LENGTH_MAX_VALUE)
}
 Defines the ZydisInternalVectorLength enum. More...
 
enum  ZydisInternalElementSize_ {
  ZYDIS_IELEMENT_SIZE_INVALID , ZYDIS_IELEMENT_SIZE_8 , ZYDIS_IELEMENT_SIZE_16 , ZYDIS_IELEMENT_SIZE_32 ,
  ZYDIS_IELEMENT_SIZE_64 , ZYDIS_IELEMENT_SIZE_128 , ZYDIS_IELEMENT_SIZE_MAX_VALUE = ZYDIS_IELEMENT_SIZE_128 , ZYDIS_IELEMENT_SIZE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_IELEMENT_SIZE_MAX_VALUE)
}
 Defines the ZydisInternalElementSize enum. More...
 
enum  ZydisEVEXFunctionality_ {
  ZYDIS_EVEX_FUNC_INVALID , ZYDIS_EVEX_FUNC_BC , ZYDIS_EVEX_FUNC_RC , ZYDIS_EVEX_FUNC_SAE ,
  ZYDIS_EVEX_FUNC_MAX_VALUE = ZYDIS_EVEX_FUNC_SAE , ZYDIS_EVEX_FUNC_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_EVEX_FUNC_MAX_VALUE)
}
 Defines the ZydisEVEXFunctionality enum. More...
 
enum  ZydisEVEXTupleType_ {
  ZYDIS_TUPLETYPE_INVALID , ZYDIS_TUPLETYPE_FV , ZYDIS_TUPLETYPE_HV , ZYDIS_TUPLETYPE_FVM ,
  ZYDIS_TUPLETYPE_T1S , ZYDIS_TUPLETYPE_T1F , ZYDIS_TUPLETYPE_T1_4X , ZYDIS_TUPLETYPE_GSCAT ,
  ZYDIS_TUPLETYPE_T2 , ZYDIS_TUPLETYPE_T4 , ZYDIS_TUPLETYPE_T8 , ZYDIS_TUPLETYPE_HVM ,
  ZYDIS_TUPLETYPE_QVM , ZYDIS_TUPLETYPE_OVM , ZYDIS_TUPLETYPE_M128 , ZYDIS_TUPLETYPE_DUP ,
  ZYDIS_TUPLETYPE_QUARTER , ZYDIS_TUPLETYPE_MAX_VALUE = ZYDIS_TUPLETYPE_QUARTER , ZYDIS_TUPLETYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_TUPLETYPE_MAX_VALUE)
}
 Defines the ZydisEVEXTupleType enum. More...
 
enum  ZydisMVEXFunctionality_ {
  ZYDIS_MVEX_FUNC_IGNORED , ZYDIS_MVEX_FUNC_INVALID , ZYDIS_MVEX_FUNC_RC , ZYDIS_MVEX_FUNC_SAE ,
  ZYDIS_MVEX_FUNC_F_32 , ZYDIS_MVEX_FUNC_I_32 , ZYDIS_MVEX_FUNC_F_64 , ZYDIS_MVEX_FUNC_I_64 ,
  ZYDIS_MVEX_FUNC_SWIZZLE_32 , ZYDIS_MVEX_FUNC_SWIZZLE_64 , ZYDIS_MVEX_FUNC_SF_32 , ZYDIS_MVEX_FUNC_SF_32_BCST ,
  ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16 , ZYDIS_MVEX_FUNC_SF_64 , ZYDIS_MVEX_FUNC_SI_32 , ZYDIS_MVEX_FUNC_SI_32_BCST ,
  ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16 , ZYDIS_MVEX_FUNC_SI_64 , ZYDIS_MVEX_FUNC_UF_32 , ZYDIS_MVEX_FUNC_UF_64 ,
  ZYDIS_MVEX_FUNC_UI_32 , ZYDIS_MVEX_FUNC_UI_64 , ZYDIS_MVEX_FUNC_DF_32 , ZYDIS_MVEX_FUNC_DF_64 ,
  ZYDIS_MVEX_FUNC_DI_32 , ZYDIS_MVEX_FUNC_DI_64 , ZYDIS_MVEX_FUNC_MAX_VALUE = ZYDIS_MVEX_FUNC_DI_64 , ZYDIS_MVEX_FUNC_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MVEX_FUNC_MAX_VALUE)
}
 Defines the ZydisMVEXFunctionality enum. More...
 
enum  ZydisVEXStaticBroadcast {
  ZYDIS_VEX_STATIC_BROADCAST_NONE , ZYDIS_VEX_STATIC_BROADCAST_1_TO_2 , ZYDIS_VEX_STATIC_BROADCAST_1_TO_4 , ZYDIS_VEX_STATIC_BROADCAST_1_TO_8 ,
  ZYDIS_VEX_STATIC_BROADCAST_1_TO_16 , ZYDIS_VEX_STATIC_BROADCAST_1_TO_32 , ZYDIS_VEX_STATIC_BROADCAST_2_TO_4 , ZYDIS_VEX_STATIC_BROADCAST_MAX_VALUE = ZYDIS_VEX_STATIC_BROADCAST_2_TO_4 ,
  ZYDIS_VEX_STATIC_BROADCAST_REQUIRED_BITS =
}
 Defines the ZydisVEXStaticBroadcast enum. More...
 
enum  ZydisEVEXStaticBroadcast_ {
  ZYDIS_EVEX_STATIC_BROADCAST_NONE , ZYDIS_EVEX_STATIC_BROADCAST_1_TO_2 , ZYDIS_EVEX_STATIC_BROADCAST_1_TO_4 , ZYDIS_EVEX_STATIC_BROADCAST_1_TO_8 ,
  ZYDIS_EVEX_STATIC_BROADCAST_1_TO_16 , ZYDIS_EVEX_STATIC_BROADCAST_1_TO_32 , ZYDIS_EVEX_STATIC_BROADCAST_1_TO_64 , ZYDIS_EVEX_STATIC_BROADCAST_2_TO_4 ,
  ZYDIS_EVEX_STATIC_BROADCAST_2_TO_8 , ZYDIS_EVEX_STATIC_BROADCAST_2_TO_16 , ZYDIS_EVEX_STATIC_BROADCAST_4_TO_8 , ZYDIS_EVEX_STATIC_BROADCAST_4_TO_16 ,
  ZYDIS_EVEX_STATIC_BROADCAST_8_TO_16 , ZYDIS_EVEX_STATIC_BROADCAST_MAX_VALUE = ZYDIS_EVEX_STATIC_BROADCAST_8_TO_16 , ZYDIS_EVEX_STATIC_BROADCAST_REQUIRED_BITS =
}
 Defines the ZydisEVEXStaticBroadcast enum. More...
 
enum  ZydisMVEXStaticBroadcast_ {
  ZYDIS_MVEX_STATIC_BROADCAST_NONE , ZYDIS_MVEX_STATIC_BROADCAST_1_TO_8 , ZYDIS_MVEX_STATIC_BROADCAST_1_TO_16 , ZYDIS_MVEX_STATIC_BROADCAST_4_TO_8 ,
  ZYDIS_MVEX_STATIC_BROADCAST_4_TO_16 , ZYDIS_MVEX_STATIC_BROADCAST_MAX_VALUE = ZYDIS_MVEX_STATIC_BROADCAST_4_TO_16 , ZYDIS_MVEX_STATIC_BROADCAST_REQUIRED_BITS =
}
 Defines the ZydisMVEXStaticBroadcast enum. More...
 
enum  ZydisMaskPolicy_ {
  ZYDIS_MASK_POLICY_INVALID , ZYDIS_MASK_POLICY_ALLOWED , ZYDIS_MASK_POLICY_REQUIRED , ZYDIS_MASK_POLICY_FORBIDDEN ,
  ZYDIS_MASK_POLICY_MAX_VALUE = ZYDIS_MASK_POLICY_FORBIDDEN , ZYDIS_MASK_POLICY_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MASK_POLICY_MAX_VALUE)
}
 Defines the ZydisMaskPolicy enum. More...
 
enum  ZydisMaskOverride_ {
  ZYDIS_MASK_OVERRIDE_DEFAULT , ZYDIS_MASK_OVERRIDE_ZEROING , ZYDIS_MASK_OVERRIDE_CONTROL , ZYDIS_MASK_OVERRIDE_MAX_VALUE = ZYDIS_MASK_OVERRIDE_CONTROL ,
  ZYDIS_MASK_OVERRIDE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MASK_OVERRIDE_MAX_VALUE)
}
 Defines the ZydisMaskOverride enum. More...
 

Functions

 ZYAN_STATIC_ASSERT (ZYDIS_SEMANTIC_OPTYPE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_OPERAND_VISIBILITY_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_OPERAND_ACTION_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_IELEMENT_TYPE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_OPERAND_ENCODING_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_IMPLREG_TYPE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_REGISTER_REQUIRED_BITS<=16)
 
 ZYAN_STATIC_ASSERT (ZYDIS_IMPLMEM_BASE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_MNEMONIC_REQUIRED_BITS<=16)
 
 ZYAN_STATIC_ASSERT (ZYDIS_CATEGORY_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_ISA_SET_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_ISA_EXT_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_BRANCH_TYPE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_OPDEF_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_RW_ACTION_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_VEX_STATIC_BROADCAST_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_IVECTOR_LENGTH_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_TUPLETYPE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_IELEMENT_SIZE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_EVEX_FUNC_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_MASK_POLICY_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_MASK_OVERRIDE_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_EVEX_STATIC_BROADCAST_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_MVEX_FUNC_REQUIRED_BITS<=8)
 
 ZYAN_STATIC_ASSERT (ZYDIS_MVEX_STATIC_BROADCAST_REQUIRED_BITS<=8)
 
ZYDIS_NO_EXPORT void ZydisGetInstructionDefinition (ZydisInstructionEncoding encoding, ZyanU16 id, const ZydisInstructionDefinition **definition)
 Returns the instruction-definition with the given encoding and id. More...
 
ZYDIS_NO_EXPORT const ZydisOperandDefinitionZydisGetOperandDefinitions (const ZydisInstructionDefinition *definition)
 Returns the the operand-definitions for the given instruction-definition. More...
 
ZYDIS_NO_EXPORT void ZydisGetElementInfo (ZydisInternalElementType element, ZydisElementType *type, ZydisElementSize *size)
 Returns the actual type and size of an internal element-type. More...
 
ZYDIS_NO_EXPORT ZyanBool ZydisGetAccessedFlags (const ZydisInstructionDefinition *definition, const ZydisDefinitionAccessedFlags **flags)
 Returns the the operand-definitions for the given instruction-definition. More...
 

Macro Definition Documentation

◆ ZYDIS_INSTRUCTION_DEFINITION_BASE

#define ZYDIS_INSTRUCTION_DEFINITION_BASE
Value:
ZyanU16 mnemonic ZYAN_BITFIELD(ZYDIS_MNEMONIC_REQUIRED_BITS); \
ZyanU8 operand_count ZYAN_BITFIELD( 4); \
ZyanU8 operand_count_visible ZYAN_BITFIELD( 3); \
ZyanU16 operand_reference ZYAN_BITFIELD(15); \
ZyanU8 operand_size_map ZYAN_BITFIELD( 3); \
ZyanU8 address_size_map ZYAN_BITFIELD( 2); \
ZyanU8 flags_reference ZYAN_BITFIELD( 7); \
ZyanBool requires_protected_mode ZYAN_BITFIELD( 1); \
ZyanBool no_compat_mode ZYAN_BITFIELD( 1); \
ZyanU8 category ZYAN_BITFIELD(ZYDIS_CATEGORY_REQUIRED_BITS); \
ZyanU8 isa_set ZYAN_BITFIELD(ZYDIS_ISA_SET_REQUIRED_BITS); \
ZyanU8 isa_ext ZYAN_BITFIELD(ZYDIS_ISA_EXT_REQUIRED_BITS); \
ZyanU8 branch_type ZYAN_BITFIELD(ZYDIS_BRANCH_TYPE_REQUIRED_BITS); \
ZyanU8 exception_class ZYAN_BITFIELD(ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS); \
ZyanU8 op_reg ZYAN_BITFIELD(ZYDIS_OPDEF_REQUIRED_BITS); \
ZyanU8 op_rm ZYAN_BITFIELD(ZYDIS_OPDEF_REQUIRED_BITS); \
ZyanU8 cpu_state ZYAN_BITFIELD(ZYDIS_RW_ACTION_REQUIRED_BITS); \
ZyanU8 fpu_state ZYAN_BITFIELD(ZYDIS_RW_ACTION_REQUIRED_BITS); \
ZyanU8 xmm_state ZYAN_BITFIELD(ZYDIS_RW_ACTION_REQUIRED_BITS); \
ZyanBool accepts_segment ZYAN_BITFIELD( 1)
@ ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: DecoderTypes.h:523
@ ZYDIS_BRANCH_TYPE_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: DecoderTypes.h:456
@ ZYDIS_ISA_EXT_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: EnumISAExt.h:119
@ ZYDIS_ISA_SET_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: EnumISASet.h:214
@ ZYDIS_CATEGORY_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: EnumInstructionCategory.h:131
@ ZYDIS_MNEMONIC_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: EnumMnemonic.h:1810
#define ZYDIS_OPDEF_REQUIRED_BITS
Definition: SharedData.h:694
@ ZYDIS_RW_ACTION_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: SharedData.h:272

◆ ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR

#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
Value:
ZyanU8 op_ndsndd ZYAN_BITFIELD(ZYDIS_OPDEF_REQUIRED_BITS)
#define ZYDIS_INSTRUCTION_DEFINITION_BASE
Definition: SharedData.h:721

◆ ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL

#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL
Value:
ZyanBool is_gather ZYAN_BITFIELD( 1); \
ZyanBool no_source_dest_match ZYAN_BITFIELD( 1); \
ZyanBool no_source_source_match ZYAN_BITFIELD( 1)
#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
Definition: SharedData.h:753

◆ ZYDIS_OPDEF_GET_MEM

#define ZYDIS_OPDEF_GET_MEM (   operand_definition)     ((operand_definition) & ((1 << ZYDIS_MEMOP_TYPE_REQUIRED_BITS) - 1))

◆ ZYDIS_OPDEF_GET_MEM_HIGH_BIT

#define ZYDIS_OPDEF_GET_MEM_HIGH_BIT (   operand_definition)     (((operand_definition) >> ZYDIS_MEMOP_TYPE_REQUIRED_BITS) & 0x01)

◆ ZYDIS_OPDEF_GET_REG

#define ZYDIS_OPDEF_GET_REG (   operand_definition)     ((operand_definition) & ((1 << ZYDIS_REGKIND_REQUIRED_BITS ) - 1))

◆ ZYDIS_OPDEF_GET_REG_HIGH_BIT

#define ZYDIS_OPDEF_GET_REG_HIGH_BIT (   operand_definition)     (((operand_definition) >> ZYDIS_REGKIND_REQUIRED_BITS ) & 0x01)

◆ ZYDIS_OPDEF_REQUIRED_BITS

#define ZYDIS_OPDEF_REQUIRED_BITS    ZYAN_MAX(ZYDIS_REGKIND_REQUIRED_BITS, ZYDIS_MEMOP_TYPE_REQUIRED_BITS + 1) + 1

Typedef Documentation

◆ ZydisDefinitionAccessedFlags

◆ ZydisEVEXFunctionality

Defines the ZydisEVEXFunctionality enum.

◆ ZydisEVEXStaticBroadcast

Defines the ZydisEVEXStaticBroadcast enum.

◆ ZydisEVEXTupleType

Defines the ZydisEVEXTupleType enum.

◆ ZydisImplicitMemBase

Defines the ZydisImplicitMemBase enum.

◆ ZydisImplicitRegisterType

Defines the ZydisImplicitRegisterType enum.

◆ ZydisInstructionDefinition

Defines the ZydisInstructionDefinition struct.

◆ ZydisInstructionDefinition3DNOW

Defines the ZydisInstructionDefinition3DNOW struct.

◆ ZydisInstructionDefinitionEVEX

Defines the ZydisInstructionDefinitionEVEX struct.

◆ ZydisInstructionDefinitionLEGACY

Defines the ZydisInstructionDefinitionLEGACY struct.

◆ ZydisInstructionDefinitionMVEX

Defines the ZydisInstructionDefinitionMVEX struct.

◆ ZydisInstructionDefinitionVEX

Defines the ZydisInstructionDefinitionVEX struct.

◆ ZydisInstructionDefinitionXOP

Defines the ZydisInstructionDefinitionXOP struct.

◆ ZydisInternalElementSize

Defines the ZydisInternalElementSize enum.

◆ ZydisInternalElementType

Defines the ZydisInternalElementType enum.

◆ ZydisInternalVectorLength

Defines the ZydisInternalVectorLength enum.

◆ ZydisMaskOverride

Defines the ZydisMaskOverride enum.

◆ ZydisMaskPolicy

Defines the ZydisMaskPolicy enum.

◆ ZydisMVEXFunctionality

Defines the ZydisMVEXFunctionality enum.

◆ ZydisMVEXStaticBroadcast

Defines the ZydisMVEXStaticBroadcast enum.

◆ ZydisOperandDefinition

Defines the ZydisOperandDefinition struct.

◆ ZydisReadWriteAction

Defines the ZydisReadWriteAction enum.

◆ ZydisSemanticOperandType

Defines the ZydisSemanticOperandType enum.

◆ ZydisVEXStaticBroadcast

Defines the ZydisVEXStaticBroadcast enum.

Enumeration Type Documentation

◆ ZydisEVEXFunctionality_

Defines the ZydisEVEXFunctionality enum.

Enumerator
ZYDIS_EVEX_FUNC_INVALID 
ZYDIS_EVEX_FUNC_BC 

EVEX.b enables broadcast functionality.

ZYDIS_EVEX_FUNC_RC 

EVEX.b enables embedded-rounding functionality.

ZYDIS_EVEX_FUNC_SAE 

EVEX.b enables sae functionality.

ZYDIS_EVEX_FUNC_MAX_VALUE 

Maximum value of this enum.

ZYDIS_EVEX_FUNC_REQUIRED_BITS 

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

◆ ZydisEVEXStaticBroadcast_

Defines the ZydisEVEXStaticBroadcast enum.

Enumerator
ZYDIS_EVEX_STATIC_BROADCAST_NONE 
ZYDIS_EVEX_STATIC_BROADCAST_1_TO_2 
ZYDIS_EVEX_STATIC_BROADCAST_1_TO_4 
ZYDIS_EVEX_STATIC_BROADCAST_1_TO_8 
ZYDIS_EVEX_STATIC_BROADCAST_1_TO_16 
ZYDIS_EVEX_STATIC_BROADCAST_1_TO_32 
ZYDIS_EVEX_STATIC_BROADCAST_1_TO_64 
ZYDIS_EVEX_STATIC_BROADCAST_2_TO_4 
ZYDIS_EVEX_STATIC_BROADCAST_2_TO_8 
ZYDIS_EVEX_STATIC_BROADCAST_2_TO_16 
ZYDIS_EVEX_STATIC_BROADCAST_4_TO_8 
ZYDIS_EVEX_STATIC_BROADCAST_4_TO_16 
ZYDIS_EVEX_STATIC_BROADCAST_8_TO_16 
ZYDIS_EVEX_STATIC_BROADCAST_MAX_VALUE 

Maximum value of this enum.

ZYDIS_EVEX_STATIC_BROADCAST_REQUIRED_BITS 

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

◆ ZydisEVEXTupleType_

Defines the ZydisEVEXTupleType enum.

Enumerator
ZYDIS_TUPLETYPE_INVALID 
ZYDIS_TUPLETYPE_FV 

Full Vector.

ZYDIS_TUPLETYPE_HV 

Half Vector.

ZYDIS_TUPLETYPE_FVM 

Full Vector Mem.

ZYDIS_TUPLETYPE_T1S 

Tuple1 Scalar.

ZYDIS_TUPLETYPE_T1F 

Tuple1 Fixed.

ZYDIS_TUPLETYPE_T1_4X 

Tuple1 4x32.

ZYDIS_TUPLETYPE_GSCAT 

Gather / Scatter.

ZYDIS_TUPLETYPE_T2 

Tuple2.

ZYDIS_TUPLETYPE_T4 

Tuple4.

ZYDIS_TUPLETYPE_T8 

Tuple8.

ZYDIS_TUPLETYPE_HVM 

Half Mem.

ZYDIS_TUPLETYPE_QVM 

QuarterMem.

ZYDIS_TUPLETYPE_OVM 

OctMem.

ZYDIS_TUPLETYPE_M128 

Mem128.

ZYDIS_TUPLETYPE_DUP 

MOVDDUP.

ZYDIS_TUPLETYPE_QUARTER 

Quarter of the vector-length.

ZYDIS_TUPLETYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_TUPLETYPE_REQUIRED_BITS 

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

◆ ZydisImplicitMemBase_

Defines the ZydisImplicitMemBase enum.

Enumerator
ZYDIS_IMPLMEM_BASE_AGPR_REG 
ZYDIS_IMPLMEM_BASE_AGPR_RM 
ZYDIS_IMPLMEM_BASE_AAX 
ZYDIS_IMPLMEM_BASE_ADX 
ZYDIS_IMPLMEM_BASE_ABX 
ZYDIS_IMPLMEM_BASE_ASI 
ZYDIS_IMPLMEM_BASE_ADI 
ZYDIS_IMPLMEM_BASE_SSP 
ZYDIS_IMPLMEM_BASE_SBP 
ZYDIS_IMPLMEM_BASE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_IMPLMEM_BASE_REQUIRED_BITS 

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

◆ ZydisImplicitRegisterType_

Defines the ZydisImplicitRegisterType enum.

Enumerator
ZYDIS_IMPLREG_TYPE_STATIC 
ZYDIS_IMPLREG_TYPE_GPR_OSZ 
ZYDIS_IMPLREG_TYPE_GPR_ASZ 
ZYDIS_IMPLREG_TYPE_IP_ASZ 
ZYDIS_IMPLREG_TYPE_IP_SSZ 
ZYDIS_IMPLREG_TYPE_GPR_SSZ 
ZYDIS_IMPLREG_TYPE_FLAGS_SSZ 
ZYDIS_IMPLREG_TYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_IMPLREG_TYPE_REQUIRED_BITS 

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

◆ ZydisInternalElementSize_

Defines the ZydisInternalElementSize enum.

Enumerator
ZYDIS_IELEMENT_SIZE_INVALID 
ZYDIS_IELEMENT_SIZE_8 
ZYDIS_IELEMENT_SIZE_16 
ZYDIS_IELEMENT_SIZE_32 
ZYDIS_IELEMENT_SIZE_64 
ZYDIS_IELEMENT_SIZE_128 
ZYDIS_IELEMENT_SIZE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_IELEMENT_SIZE_REQUIRED_BITS 

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

◆ ZydisInternalElementType_

Defines the ZydisInternalElementType enum.

Enumerator
ZYDIS_IELEMENT_TYPE_INVALID 
ZYDIS_IELEMENT_TYPE_VARIABLE 
ZYDIS_IELEMENT_TYPE_STRUCT 
ZYDIS_IELEMENT_TYPE_INT 
ZYDIS_IELEMENT_TYPE_UINT 
ZYDIS_IELEMENT_TYPE_INT1 
ZYDIS_IELEMENT_TYPE_INT8 
ZYDIS_IELEMENT_TYPE_INT8X4 
ZYDIS_IELEMENT_TYPE_INT16 
ZYDIS_IELEMENT_TYPE_INT16X2 
ZYDIS_IELEMENT_TYPE_INT32 
ZYDIS_IELEMENT_TYPE_INT64 
ZYDIS_IELEMENT_TYPE_UINT8 
ZYDIS_IELEMENT_TYPE_UINT8X4 
ZYDIS_IELEMENT_TYPE_UINT16 
ZYDIS_IELEMENT_TYPE_UINT16X2 
ZYDIS_IELEMENT_TYPE_UINT32 
ZYDIS_IELEMENT_TYPE_UINT64 
ZYDIS_IELEMENT_TYPE_UINT128 
ZYDIS_IELEMENT_TYPE_UINT256 
ZYDIS_IELEMENT_TYPE_FLOAT16 
ZYDIS_IELEMENT_TYPE_FLOAT16X2 
ZYDIS_IELEMENT_TYPE_FLOAT32 
ZYDIS_IELEMENT_TYPE_FLOAT64 
ZYDIS_IELEMENT_TYPE_FLOAT80 
ZYDIS_IELEMENT_TYPE_BFLOAT16X2 
ZYDIS_IELEMENT_TYPE_BCD80 
ZYDIS_IELEMENT_TYPE_CC3 
ZYDIS_IELEMENT_TYPE_CC5 
ZYDIS_IELEMENT_TYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_IELEMENT_TYPE_REQUIRED_BITS 

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

◆ ZydisInternalVectorLength_

Defines the ZydisInternalVectorLength enum.

Enumerator
ZYDIS_IVECTOR_LENGTH_DEFAULT 
ZYDIS_IVECTOR_LENGTH_FIXED_128 
ZYDIS_IVECTOR_LENGTH_FIXED_256 
ZYDIS_IVECTOR_LENGTH_FIXED_512 
ZYDIS_IVECTOR_LENGTH_MAX_VALUE 

Maximum value of this enum.

ZYDIS_IVECTOR_LENGTH_REQUIRED_BITS 

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

◆ ZydisMaskOverride_

Defines the ZydisMaskOverride enum.

Enumerator
ZYDIS_MASK_OVERRIDE_DEFAULT 
ZYDIS_MASK_OVERRIDE_ZEROING 
ZYDIS_MASK_OVERRIDE_CONTROL 
ZYDIS_MASK_OVERRIDE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_MASK_OVERRIDE_REQUIRED_BITS 

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

◆ ZydisMaskPolicy_

Defines the ZydisMaskPolicy enum.

Enumerator
ZYDIS_MASK_POLICY_INVALID 
ZYDIS_MASK_POLICY_ALLOWED 

The instruction accepts mask-registers other than the default-mask (K0), but does not require them.

ZYDIS_MASK_POLICY_REQUIRED 

The instruction requires a mask-register other than the default-mask (K0).

ZYDIS_MASK_POLICY_FORBIDDEN 

The instruction does not allow a mask-register other than the default-mask (K0).

ZYDIS_MASK_POLICY_MAX_VALUE 

Maximum value of this enum.

ZYDIS_MASK_POLICY_REQUIRED_BITS 

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

◆ ZydisMVEXFunctionality_

Defines the ZydisMVEXFunctionality enum.

Enumerator
ZYDIS_MVEX_FUNC_IGNORED 

The MVEX.SSS value is ignored.

ZYDIS_MVEX_FUNC_INVALID 

MVEX.SSS must be 000b.

ZYDIS_MVEX_FUNC_RC 

MVEX.SSS controls embedded-rounding functionality.

ZYDIS_MVEX_FUNC_SAE 

MVEX.SSS controls sae functionality.

ZYDIS_MVEX_FUNC_F_32 

No special operation (32bit float elements).

ZYDIS_MVEX_FUNC_I_32 

No special operation (32bit uint elements).

ZYDIS_MVEX_FUNC_F_64 

No special operation (64bit float elements).

ZYDIS_MVEX_FUNC_I_64 

No special operation (64bit uint elements).

ZYDIS_MVEX_FUNC_SWIZZLE_32 

Sf32(reg) or Si32(reg).

ZYDIS_MVEX_FUNC_SWIZZLE_64 

Sf64(reg) or Si64(reg).

ZYDIS_MVEX_FUNC_SF_32 

Sf32(mem).

ZYDIS_MVEX_FUNC_SF_32_BCST 

Sf32(mem) broadcast only.

ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16 

Sf32(mem) broadcast 4to16 only.

ZYDIS_MVEX_FUNC_SF_64 

Sf64(mem).

ZYDIS_MVEX_FUNC_SI_32 

Si32(mem).

ZYDIS_MVEX_FUNC_SI_32_BCST 

Si32(mem) broadcast only.

ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16 

Si32(mem) broadcast 4to16 only.

ZYDIS_MVEX_FUNC_SI_64 

Si64(mem).

ZYDIS_MVEX_FUNC_UF_32 

Uf32.

ZYDIS_MVEX_FUNC_UF_64 

Uf64.

ZYDIS_MVEX_FUNC_UI_32 

Ui32.

ZYDIS_MVEX_FUNC_UI_64 

Ui64.

ZYDIS_MVEX_FUNC_DF_32 

Df32.

ZYDIS_MVEX_FUNC_DF_64 

Df64.

ZYDIS_MVEX_FUNC_DI_32 

Di32.

ZYDIS_MVEX_FUNC_DI_64 

Di64.

ZYDIS_MVEX_FUNC_MAX_VALUE 

Maximum value of this enum.

ZYDIS_MVEX_FUNC_REQUIRED_BITS 

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

◆ ZydisMVEXStaticBroadcast_

Defines the ZydisMVEXStaticBroadcast enum.

Enumerator
ZYDIS_MVEX_STATIC_BROADCAST_NONE 
ZYDIS_MVEX_STATIC_BROADCAST_1_TO_8 
ZYDIS_MVEX_STATIC_BROADCAST_1_TO_16 
ZYDIS_MVEX_STATIC_BROADCAST_4_TO_8 
ZYDIS_MVEX_STATIC_BROADCAST_4_TO_16 
ZYDIS_MVEX_STATIC_BROADCAST_MAX_VALUE 

Maximum value of this enum.

ZYDIS_MVEX_STATIC_BROADCAST_REQUIRED_BITS 

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

◆ ZydisReadWriteAction_

Defines the ZydisReadWriteAction enum.

Enumerator
ZYDIS_RW_ACTION_NONE 
ZYDIS_RW_ACTION_READ 
ZYDIS_RW_ACTION_WRITE 
ZYDIS_RW_ACTION_READWRITE 
ZYDIS_RW_ACTION_MAX_VALUE 

Maximum value of this enum.

ZYDIS_RW_ACTION_REQUIRED_BITS 

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

◆ ZydisSemanticOperandType_

Defines the ZydisSemanticOperandType enum.

Enumerator
ZYDIS_SEMANTIC_OPTYPE_UNUSED 
ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_REG 
ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_MEM 
ZYDIS_SEMANTIC_OPTYPE_IMPLICIT_IMM1 
ZYDIS_SEMANTIC_OPTYPE_GPR8 
ZYDIS_SEMANTIC_OPTYPE_GPR16 
ZYDIS_SEMANTIC_OPTYPE_GPR32 
ZYDIS_SEMANTIC_OPTYPE_GPR64 
ZYDIS_SEMANTIC_OPTYPE_GPR16_32_64 
ZYDIS_SEMANTIC_OPTYPE_GPR32_32_64 
ZYDIS_SEMANTIC_OPTYPE_GPR16_32_32 
ZYDIS_SEMANTIC_OPTYPE_GPR_ASZ 
ZYDIS_SEMANTIC_OPTYPE_FPR 
ZYDIS_SEMANTIC_OPTYPE_MMX 
ZYDIS_SEMANTIC_OPTYPE_XMM 
ZYDIS_SEMANTIC_OPTYPE_YMM 
ZYDIS_SEMANTIC_OPTYPE_ZMM 
ZYDIS_SEMANTIC_OPTYPE_TMM 
ZYDIS_SEMANTIC_OPTYPE_BND 
ZYDIS_SEMANTIC_OPTYPE_SREG 
ZYDIS_SEMANTIC_OPTYPE_CR 
ZYDIS_SEMANTIC_OPTYPE_DR 
ZYDIS_SEMANTIC_OPTYPE_MASK 
ZYDIS_SEMANTIC_OPTYPE_MEM 
ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBX 
ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBY 
ZYDIS_SEMANTIC_OPTYPE_MEM_VSIBZ 
ZYDIS_SEMANTIC_OPTYPE_IMM 
ZYDIS_SEMANTIC_OPTYPE_REL 
ZYDIS_SEMANTIC_OPTYPE_PTR 
ZYDIS_SEMANTIC_OPTYPE_AGEN 
ZYDIS_SEMANTIC_OPTYPE_MOFFS 
ZYDIS_SEMANTIC_OPTYPE_MIB 
ZYDIS_SEMANTIC_OPTYPE_MAX_VALUE 

Maximum value of this enum.

ZYDIS_SEMANTIC_OPTYPE_REQUIRED_BITS 

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

◆ ZydisVEXStaticBroadcast

Defines the ZydisVEXStaticBroadcast enum.

Enumerator
ZYDIS_VEX_STATIC_BROADCAST_NONE 
ZYDIS_VEX_STATIC_BROADCAST_1_TO_2 
ZYDIS_VEX_STATIC_BROADCAST_1_TO_4 
ZYDIS_VEX_STATIC_BROADCAST_1_TO_8 
ZYDIS_VEX_STATIC_BROADCAST_1_TO_16 
ZYDIS_VEX_STATIC_BROADCAST_1_TO_32 
ZYDIS_VEX_STATIC_BROADCAST_2_TO_4 
ZYDIS_VEX_STATIC_BROADCAST_MAX_VALUE 

Maximum value of this enum.

ZYDIS_VEX_STATIC_BROADCAST_REQUIRED_BITS 

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

Function Documentation

◆ ZYAN_STATIC_ASSERT() [1/26]

ZYAN_STATIC_ASSERT ( ZYDIS_BRANCH_TYPE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [2/26]

ZYAN_STATIC_ASSERT ( ZYDIS_CATEGORY_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [3/26]

ZYAN_STATIC_ASSERT ( ZYDIS_EVEX_FUNC_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [4/26]

ZYAN_STATIC_ASSERT ( ZYDIS_EVEX_STATIC_BROADCAST_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [5/26]

ZYAN_STATIC_ASSERT ( ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [6/26]

ZYAN_STATIC_ASSERT ( ZYDIS_IELEMENT_SIZE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [7/26]

ZYAN_STATIC_ASSERT ( ZYDIS_IELEMENT_TYPE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [8/26]

ZYAN_STATIC_ASSERT ( ZYDIS_IMPLMEM_BASE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [9/26]

ZYAN_STATIC_ASSERT ( ZYDIS_IMPLREG_TYPE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [10/26]

ZYAN_STATIC_ASSERT ( ZYDIS_ISA_EXT_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [11/26]

ZYAN_STATIC_ASSERT ( ZYDIS_ISA_SET_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [12/26]

ZYAN_STATIC_ASSERT ( ZYDIS_IVECTOR_LENGTH_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [13/26]

ZYAN_STATIC_ASSERT ( ZYDIS_MASK_OVERRIDE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [14/26]

ZYAN_STATIC_ASSERT ( ZYDIS_MASK_POLICY_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [15/26]

ZYAN_STATIC_ASSERT ( ZYDIS_MNEMONIC_REQUIRED_BITS<=  16)

◆ ZYAN_STATIC_ASSERT() [16/26]

ZYAN_STATIC_ASSERT ( ZYDIS_MVEX_FUNC_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [17/26]

ZYAN_STATIC_ASSERT ( ZYDIS_MVEX_STATIC_BROADCAST_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [18/26]

ZYAN_STATIC_ASSERT ( ZYDIS_OPDEF_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [19/26]

ZYAN_STATIC_ASSERT ( ZYDIS_OPERAND_ACTION_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [20/26]

ZYAN_STATIC_ASSERT ( ZYDIS_OPERAND_ENCODING_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [21/26]

ZYAN_STATIC_ASSERT ( ZYDIS_OPERAND_VISIBILITY_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [22/26]

ZYAN_STATIC_ASSERT ( ZYDIS_REGISTER_REQUIRED_BITS<=  16)

◆ ZYAN_STATIC_ASSERT() [23/26]

ZYAN_STATIC_ASSERT ( ZYDIS_RW_ACTION_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [24/26]

ZYAN_STATIC_ASSERT ( ZYDIS_SEMANTIC_OPTYPE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [25/26]

ZYAN_STATIC_ASSERT ( ZYDIS_TUPLETYPE_REQUIRED_BITS<=  8)

◆ ZYAN_STATIC_ASSERT() [26/26]

ZYAN_STATIC_ASSERT ( ZYDIS_VEX_STATIC_BROADCAST_REQUIRED_BITS<=  8)

◆ ZydisGetAccessedFlags()

ZYDIS_NO_EXPORT ZyanBool ZydisGetAccessedFlags ( const ZydisInstructionDefinition definition,
const ZydisDefinitionAccessedFlags **  flags 
)

Returns the the operand-definitions for the given instruction-definition.

Parameters
definitionA pointer to the instruction-definition.
flagsA pointer to the variable that receives the ZydisDefinitionAccessedFlags struct.
Returns
ZYAN_TRUE, if the instruction accesses any flags, or ZYAN_FALSE, if not.

◆ ZydisGetElementInfo()

ZYDIS_NO_EXPORT void ZydisGetElementInfo ( ZydisInternalElementType  element,
ZydisElementType type,
ZydisElementSize size 
)

Returns the actual type and size of an internal element-type.

Parameters
elementThe internal element type.
typeThe actual element type.
sizeThe element size.

◆ ZydisGetInstructionDefinition()

ZYDIS_NO_EXPORT void ZydisGetInstructionDefinition ( ZydisInstructionEncoding  encoding,
ZyanU16  id,
const ZydisInstructionDefinition **  definition 
)

Returns the instruction-definition with the given encoding and id.

Parameters
encodingThe instruction-encoding.
idThe definition-id.
definitionA pointer to the variable that receives a pointer to the instruction- definition.

◆ ZydisGetOperandDefinitions()

ZYDIS_NO_EXPORT const ZydisOperandDefinition* ZydisGetOperandDefinitions ( const ZydisInstructionDefinition definition)

Returns the the operand-definitions for the given instruction-definition.

Parameters
definitionA pointer to the instruction-definition.
Returns
A pointer to the first operand definition of the instruction, or ZYAN_NULL.