Zydis: include/Zydis/Internal/SharedData.h File Reference

Zydis v4.1.0

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
SharedData.h File Reference
`#include <Zycore/Defines.h>`
`#include <Zydis/Mnemonic.h>`
`#include <Zydis/Register.h>`
`#include <Zydis/SharedTypes.h>`
`#include <Zydis/DecoderTypes.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.
typedef enum ZydisInternalElementType_ | ZydisInternalElementType
| Defines the `ZydisInternalElementType` enum.
typedef enum ZydisImplicitRegisterType_ | ZydisImplicitRegisterType
| Defines the `ZydisImplicitRegisterType` enum.
typedef enum ZydisImplicitMemBase_ | ZydisImplicitMemBase
| Defines the `ZydisImplicitMemBase` enum.
typedef struct ZydisOperandDefinition_ | ZydisOperandDefinition
| Defines the `ZydisOperandDefinition` struct.
typedef enum ZydisReadWriteAction_ | ZydisReadWriteAction
| Defines the `ZydisReadWriteAction` enum.
typedef enum ZydisInternalVectorLength_ | ZydisInternalVectorLength
| Defines the `ZydisInternalVectorLength` enum.
typedef enum ZydisInternalElementSize_ | ZydisInternalElementSize
| Defines the `ZydisInternalElementSize` enum.
typedef enum ZydisEVEXFunctionality_ | ZydisEVEXFunctionality
| Defines the `ZydisEVEXFunctionality` enum.
typedef enum ZydisEVEXTupleType_ | ZydisEVEXTupleType
| Defines the `ZydisEVEXTupleType` enum.
typedef enum ZydisMVEXFunctionality_ | ZydisMVEXFunctionality
| Defines the `ZydisMVEXFunctionality` enum.
typedef enum ZydisVEXStaticBroadcast | ZydisVEXStaticBroadcast
| Defines the `ZydisVEXStaticBroadcast` enum.
typedef enum ZydisEVEXStaticBroadcast_ | ZydisEVEXStaticBroadcast
| Defines the `ZydisEVEXStaticBroadcast` enum.
typedef enum ZydisMVEXStaticBroadcast_ | ZydisMVEXStaticBroadcast
| Defines the `ZydisMVEXStaticBroadcast` enum.
typedef enum ZydisMaskPolicy_ | ZydisMaskPolicy
| Defines the `ZydisMaskPolicy` enum.
typedef enum ZydisMaskOverride_ | ZydisMaskOverride
| Defines the `ZydisMaskOverride` enum.
typedef struct ZydisInstructionDefinition_ | ZydisInstructionDefinition
| Defines the `ZydisInstructionDefinition` struct.
typedef struct ZydisInstructionDefinitionLEGACY_ | ZydisInstructionDefinitionLEGACY
| Defines the `ZydisInstructionDefinitionLEGACY` struct.
typedef struct ZydisInstructionDefinition3DNOW_ | ZydisInstructionDefinition3DNOW
| Defines the `ZydisInstructionDefinition3DNOW` struct.
typedef struct ZydisInstructionDefinitionXOP_ | ZydisInstructionDefinitionXOP
| Defines the `ZydisInstructionDefinitionXOP` struct.
typedef struct ZydisInstructionDefinitionVEX_ | ZydisInstructionDefinitionVEX
| Defines the `ZydisInstructionDefinitionVEX` struct.
typedef struct ZydisInstructionDefinitionEVEX_ | ZydisInstructionDefinitionEVEX
| Defines the `ZydisInstructionDefinitionEVEX` struct.
typedef struct ZydisInstructionDefinitionMVEX_ | ZydisInstructionDefinitionMVEX
| Defines the `ZydisInstructionDefinitionMVEX` struct.
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`.
ZYDIS_NO_EXPORT const ZydisOperandDefinition * | ZydisGetOperandDefinitions (const ZydisInstructionDefinition *definition)
| Returns the the operand-definitions for the given instruction-`definition`.
ZYDIS_NO_EXPORT void | ZydisGetElementInfo (ZydisInternalElementType element, ZydisElementType *type, ZydisElementSize *size)
| Returns the actual type and size of an internal element-type.
ZYDIS_NO_EXPORT ZyanBool | ZydisGetAccessedFlags (const ZydisInstructionDefinition *definition, const ZydisDefinitionAccessedFlags **flags)
| Returns the the operand-definitions for the given instruction-`definition`.

## 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
@ ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition DecoderTypes.h:509
ZYDIS_BRANCH_TYPE_REQUIRED_BITS
@ ZYDIS_BRANCH_TYPE_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition DecoderTypes.h:442
ZYDIS_ISA_EXT_REQUIRED_BITS
@ ZYDIS_ISA_EXT_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition EnumISAExt.h:117
ZYDIS_ISA_SET_REQUIRED_BITS
@ ZYDIS_ISA_SET_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition EnumISASet.h:212
ZYDIS_CATEGORY_REQUIRED_BITS
@ ZYDIS_CATEGORY_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition EnumInstructionCategory.h:129
ZYDIS_MNEMONIC_REQUIRED_BITS
@ ZYDIS_MNEMONIC_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition EnumMnemonic.h:1807
ZYDIS_OPDEF_REQUIRED_BITS
#define ZYDIS_OPDEF_REQUIRED_BITS
Definition SharedData.h:694
ZYDIS_RW_ACTION_REQUIRED_BITS
@ 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:
ZYDIS_INSTRUCTION_DEFINITION_BASE; \
ZyanU8 op_ndsndd ZYAN_BITFIELD(ZYDIS_OPDEF_REQUIRED_BITS)
ZYDIS_INSTRUCTION_DEFINITION_BASE
#define ZYDIS_INSTRUCTION_DEFINITION_BASE
Definition SharedData.h:721

## ◆ ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL

#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL

Value:
ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR; \
ZyanBool is_gather ZYAN_BITFIELD( 1); \
ZyanBool no_source_dest_match ZYAN_BITFIELD( 1); \
ZyanBool no_source_source_match ZYAN_BITFIELD( 1)
ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
#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

typedef struct ZydisDefinitionAccessedFlags_ ZydisDefinitionAccessedFlags

## ◆ ZydisEVEXFunctionality

typedef enum ZydisEVEXFunctionality_ ZydisEVEXFunctionality

Defines the `ZydisEVEXFunctionality` enum.

## ◆ ZydisEVEXStaticBroadcast

typedef enum ZydisEVEXStaticBroadcast_ ZydisEVEXStaticBroadcast

Defines the `ZydisEVEXStaticBroadcast` enum.

## ◆ ZydisEVEXTupleType

typedef enum ZydisEVEXTupleType_ ZydisEVEXTupleType

Defines the `ZydisEVEXTupleType` enum.

## ◆ ZydisImplicitMemBase

typedef enum ZydisImplicitMemBase_ ZydisImplicitMemBase

Defines the `ZydisImplicitMemBase` enum.

## ◆ ZydisImplicitRegisterType

typedef enum ZydisImplicitRegisterType_ ZydisImplicitRegisterType

Defines the `ZydisImplicitRegisterType` enum.

## ◆ ZydisInstructionDefinition

typedef struct ZydisInstructionDefinition_ ZydisInstructionDefinition

Defines the `ZydisInstructionDefinition` struct.

## ◆ ZydisInstructionDefinition3DNOW

typedef struct ZydisInstructionDefinition3DNOW_ ZydisInstructionDefinition3DNOW

Defines the `ZydisInstructionDefinition3DNOW` struct.

## ◆ ZydisInstructionDefinitionEVEX

typedef struct ZydisInstructionDefinitionEVEX_ ZydisInstructionDefinitionEVEX

Defines the `ZydisInstructionDefinitionEVEX` struct.

## ◆ ZydisInstructionDefinitionLEGACY

typedef struct ZydisInstructionDefinitionLEGACY_ ZydisInstructionDefinitionLEGACY

Defines the `ZydisInstructionDefinitionLEGACY` struct.

## ◆ ZydisInstructionDefinitionMVEX

typedef struct ZydisInstructionDefinitionMVEX_ ZydisInstructionDefinitionMVEX

Defines the `ZydisInstructionDefinitionMVEX` struct.

## ◆ ZydisInstructionDefinitionVEX

typedef struct ZydisInstructionDefinitionVEX_ ZydisInstructionDefinitionVEX

Defines the `ZydisInstructionDefinitionVEX` struct.

## ◆ ZydisInstructionDefinitionXOP

typedef struct ZydisInstructionDefinitionXOP_ ZydisInstructionDefinitionXOP

Defines the `ZydisInstructionDefinitionXOP` struct.

## ◆ ZydisInternalElementSize

typedef enum ZydisInternalElementSize_ ZydisInternalElementSize

Defines the `ZydisInternalElementSize` enum.

## ◆ ZydisInternalElementType

typedef enum ZydisInternalElementType_ ZydisInternalElementType

Defines the `ZydisInternalElementType` enum.

## ◆ ZydisInternalVectorLength

typedef enum ZydisInternalVectorLength_ ZydisInternalVectorLength

Defines the `ZydisInternalVectorLength` enum.

## ◆ ZydisMaskOverride

typedef enum ZydisMaskOverride_ ZydisMaskOverride

Defines the `ZydisMaskOverride` enum.

## ◆ ZydisMaskPolicy

typedef enum ZydisMaskPolicy_ ZydisMaskPolicy

Defines the `ZydisMaskPolicy` enum.

## ◆ ZydisMVEXFunctionality

typedef enum ZydisMVEXFunctionality_ ZydisMVEXFunctionality

Defines the `ZydisMVEXFunctionality` enum.

## ◆ ZydisMVEXStaticBroadcast

typedef enum ZydisMVEXStaticBroadcast_ ZydisMVEXStaticBroadcast

Defines the `ZydisMVEXStaticBroadcast` enum.

## ◆ ZydisOperandDefinition

typedef struct ZydisOperandDefinition_ ZydisOperandDefinition

Defines the `ZydisOperandDefinition` struct.

## ◆ ZydisReadWriteAction

typedef enum ZydisReadWriteAction_ ZydisReadWriteAction

Defines the `ZydisReadWriteAction` enum.

## ◆ ZydisSemanticOperandType

typedef enum ZydisSemanticOperandType_ ZydisSemanticOperandType

Defines the `ZydisSemanticOperandType` enum.

## ◆ ZydisVEXStaticBroadcast

typedef enum ZydisVEXStaticBroadcast ZydisVEXStaticBroadcast

Defines the `ZydisVEXStaticBroadcast` enum.

## Enumeration Type Documentation

## ◆ ZydisEVEXFunctionality_

enum 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_

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_

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_

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_

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_

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_

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_

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_

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_

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_

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_

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_

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_

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

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

  definition | A pointer to the instruction-definition.
  flags | A 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

  element | The internal element type.
  type | The actual element type.
  size | The 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

  encoding | The instruction-encoding.
  id | The definition-id.
  definition | A 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

  definition | A pointer to the instruction-definition.

Returns
  A pointer to the first operand definition of the instruction, or `ZYAN_NULL`.