Zydis  v2.0.0
SharedData.h File Reference
#include <Zydis/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  ZydisInstructionDefinitionDEFAULT_
 Defines the ZydisInstructionDefinitionDEFAULT 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  ZydisAccessedFlags_
 

Macros

#define ZYDIS_INSTRUCTION_DEFINITION_BASE
 
#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
 
#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL
 

Typedefs

typedef ZydisU8 ZydisSemanticOperandType
 Defines the ZydisSemanticOperandType datatype. More...
 
typedef ZydisU8 ZydisInternalElementType
 Defines the ZydisInternalElementType datatype. More...
 
typedef struct ZydisOperandDefinition_ ZydisOperandDefinition
 Defines the ZydisOperandDefinition struct. More...
 
typedef ZydisU8 ZydisRegisterConstraint
 Defines the ZydisRegisterConstraint datatype. More...
 
typedef ZydisU8 ZydisInternalVectorLength
 Defines the ZydisInternalVectorLength datatype. More...
 
typedef ZydisU8 ZydisInternalElementSize
 Defines the ZydisInternalElementSize datatype. More...
 
typedef ZydisU8 ZydisEVEXFunctionality
 Defines the ZydisEVEXFunctionality datatype. More...
 
typedef ZydisU8 ZydisEVEXTupleType
 Defines the ZydisEVEXTupleType datatype. More...
 
typedef ZydisU8 ZydisMVEXFunctionality
 Defines the ZydisMVEXFunctionality datatype. More...
 
typedef ZydisU8 ZydisVEXStaticBroadcast
 Defines the ZydisVEXStaticBroadcast datatype. More...
 
typedef ZydisU8 ZydisEVEXStaticBroadcast
 Defines the ZydisEVEXStaticBroadcast datatype. More...
 
typedef ZydisU8 ZydisMVEXStaticBroadcast
 Defines the ZydisMVEXStaticBroadcast datatype. More...
 
typedef ZydisU8 ZydisMaskPolicy
 Defines the ZydisMaskPolicy datatype. More...
 
typedef struct ZydisInstructionDefinition_ ZydisInstructionDefinition
 Defines the ZydisInstructionDefinition struct. More...
 
typedef struct ZydisInstructionDefinitionDEFAULT_ ZydisInstructionDefinitionDEFAULT
 Defines the ZydisInstructionDefinitionDEFAULT 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 ZydisAccessedFlags_ ZydisAccessedFlags
 

Enumerations

enum  ZydisSemanticOperandTypes {
  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_FPR ,
  ZYDIS_SEMANTIC_OPTYPE_MMX , ZYDIS_SEMANTIC_OPTYPE_XMM , ZYDIS_SEMANTIC_OPTYPE_YMM , ZYDIS_SEMANTIC_OPTYPE_ZMM ,
  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
}
 Values that represent semantic operand-types. More...
 
enum  ZydisInternalElementTypes {
  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_INT16 ,
  ZYDIS_IELEMENT_TYPE_INT32 , ZYDIS_IELEMENT_TYPE_INT64 , ZYDIS_IELEMENT_TYPE_UINT8 , ZYDIS_IELEMENT_TYPE_UINT16 ,
  ZYDIS_IELEMENT_TYPE_UINT32 , ZYDIS_IELEMENT_TYPE_UINT64 , ZYDIS_IELEMENT_TYPE_UINT128 , ZYDIS_IELEMENT_TYPE_UINT256 ,
  ZYDIS_IELEMENT_TYPE_FLOAT16 , ZYDIS_IELEMENT_TYPE_FLOAT32 , ZYDIS_IELEMENT_TYPE_FLOAT64 , ZYDIS_IELEMENT_TYPE_FLOAT80 ,
  ZYDIS_IELEMENT_TYPE_BCD80
}
 Values that represent internal element-types. More...
 
enum  ZydisImplicitRegisterType {
  ZYDIS_IMPLREG_TYPE_STATIC , ZYDIS_IMPLREG_TYPE_GPR_OSZ , ZYDIS_IMPLREG_TYPE_GPR_ASZ , ZYDIS_IMPLREG_TYPE_GPR_SSZ ,
  ZYDIS_IMPLREG_TYPE_IP_ASZ , ZYDIS_IMPLREG_TYPE_IP_SSZ , ZYDIS_IMPLREG_TYPE_FLAGS_SSZ
}
 Values that represent implicit-register types. More...
 
enum  ZydisImplicitMemBase {
  ZYDIS_IMPLMEM_BASE_ABX , ZYDIS_IMPLMEM_BASE_ASP , ZYDIS_IMPLMEM_BASE_ABP , ZYDIS_IMPLMEM_BASE_ASI ,
  ZYDIS_IMPLMEM_BASE_ADI
}
 Values that represent implicit-memory base-registers. More...
 
enum  ZydisRegisterConstraints {
  ZYDIS_REG_CONSTRAINTS_UNUSED , ZYDIS_REG_CONSTRAINTS_NONE , ZYDIS_REG_CONSTRAINTS_GPR , ZYDIS_REG_CONSTRAINTS_SR_DEST ,
  ZYDIS_REG_CONSTRAINTS_SR , ZYDIS_REG_CONSTRAINTS_CR , ZYDIS_REG_CONSTRAINTS_DR , ZYDIS_REG_CONSTRAINTS_MASK ,
  ZYDIS_REG_CONSTRAINTS_BND , ZYDIS_REG_CONSTRAINTS_VSIB , ZYDIS_REG_CONSTRAINTS_MAX_VALUE = ZYDIS_REG_CONSTRAINTS_VSIB , ZYDIS_REG_CONSTRAINTS_MIN_BITS = 4
}
 Values that represent register-constraints. More...
 
enum  ZydisInternalVectorLengths { ZYDIS_IVECTOR_LENGTH_DEFAULT , ZYDIS_IVECTOR_LENGTH_FIXED_128 , ZYDIS_IVECTOR_LENGTH_FIXED_256 , ZYDIS_IVECTOR_LENGTH_FIXED_512 }
 Values that represent internal vector-lengths. More...
 
enum  ZydisInternalElementSizes {
  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
}
 Values that represent internal element-sizes. More...
 
enum  ZydisEVEXFunctionalities { ZYDIS_EVEX_FUNC_INVALID , ZYDIS_EVEX_FUNC_BC , ZYDIS_EVEX_FUNC_RC , ZYDIS_EVEX_FUNC_SAE }
 Values that represent EVEX-functionalities. More...
 
enum  ZydisEVEXTupleTypes {
  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
}
 Values that represent EVEX tuple-types. More...
 
enum  ZydisMVEXFunctionalities {
  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
}
 Values that represent MVEX-functionalities. More...
 
enum  ZydisVEXStaticBroadcasts {
  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
}
 Values that represent static VEX-broadcasts. More...
 
enum  ZydisEVEXStaticBroadcasts {
  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
}
 Values that represent static EVEX-broadcasts. More...
 
enum  ZydisMVEXStaticBroadcasts {
  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
}
 Values that represent static MVEX-broadcasts. More...
 
enum  ZydisMaskPolicies { ZYDIS_MASK_POLICY_INVALID , ZYDIS_MASK_POLICY_ALLOWED , ZYDIS_MASK_POLICY_REQUIRED , ZYDIS_MASK_POLICY_FORBIDDEN }
 Values that represent AVX mask policies. More...
 

Functions

ZYDIS_NO_EXPORT void ZydisGetInstructionDefinition (ZydisInstructionEncoding encoding, ZydisU16 id, const ZydisInstructionDefinition **definition)
 Returns the instruction-definition with the given encoding and id. More...
 
ZYDIS_NO_EXPORT ZydisU8 ZydisGetOperandDefinitions (const ZydisInstructionDefinition *definition, const ZydisOperandDefinition **operand)
 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 void ZydisGetAccessedFlags (const ZydisInstructionDefinition *definition, const ZydisAccessedFlags **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:
ZydisU8 operandCount ZYDIS_BITFIELD( 4); \
ZydisU16 operandReference ZYDIS_BITFIELD(15); \
ZydisU8 operandSizeMap ZYDIS_BITFIELD( 3); \
ZydisU8 flagsReference ZYDIS_BITFIELD( 7); \
ZydisBool requiresProtectedMode ZYDIS_BITFIELD( 1); \
ZydisBool acceptsAddressSizeOverride ZYDIS_BITFIELD( 1); \
ZydisInstructionCategory category ZYDIS_BITFIELD(ZYDIS_CATEGORY_MIN_BITS); \
ZydisISASet isaSet ZYDIS_BITFIELD(ZYDIS_ISA_SET_MIN_BITS); \
ZydisISAExt isaExt ZYDIS_BITFIELD(ZYDIS_ISA_EXT_MIN_BITS); \
ZydisExceptionClass exceptionClass ZYDIS_BITFIELD( 6); \
ZydisRegisterConstraint constrREG ZYDIS_BITFIELD(ZYDIS_REG_CONSTRAINTS_MIN_BITS); \
ZydisRegisterConstraint constrRM ZYDIS_BITFIELD(ZYDIS_REG_CONSTRAINTS_MIN_BITS)
#define ZYDIS_BITFIELD(x)
Declares a bitfield.
Definition: Defines.h:179
@ ZYDIS_ISA_EXT_MIN_BITS
Minimum amount of bits required to store a value of this enum.
Definition: EnumISAExt.h:167
@ ZYDIS_ISA_SET_MIN_BITS
Minimum amount of bits required to store a value of this enum.
Definition: EnumISASet.h:87
@ ZYDIS_CATEGORY_MIN_BITS
Minimum amount of bits required to store a value of this enum.
Definition: EnumInstructionCategory.h:111
@ ZYDIS_MNEMONIC_MIN_BITS
Minimum amount of bits required to store a value of this enum.
Definition: EnumMnemonic.h:1602
ZydisU16 ZydisMnemonic
Defines the ZydisMnemonic datatype.
Definition: EnumMnemonic.h:4
@ ZYDIS_REG_CONSTRAINTS_MIN_BITS
Definition: SharedData.h:214

◆ ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR

#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
Value:
ZydisRegisterConstraint constrNDSNDD ZYDIS_BITFIELD(ZYDIS_REG_CONSTRAINTS_MIN_BITS)
#define ZYDIS_INSTRUCTION_DEFINITION_BASE
Definition: SharedData.h:578

◆ ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL

#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR_INTEL
Value:
ZydisBool isGather ZYDIS_BITFIELD( 1)
#define ZYDIS_INSTRUCTION_DEFINITION_BASE_VECTOR
Definition: SharedData.h:593

Typedef Documentation

◆ ZydisAccessedFlags

◆ ZydisEVEXFunctionality

Defines the ZydisEVEXFunctionality datatype.

◆ ZydisEVEXStaticBroadcast

Defines the ZydisEVEXStaticBroadcast datatype.

◆ ZydisEVEXTupleType

Defines the ZydisEVEXTupleType datatype.

◆ ZydisInstructionDefinition

Defines the ZydisInstructionDefinition struct.

◆ ZydisInstructionDefinition3DNOW

Defines the ZydisInstructionDefinition3DNOW struct.

◆ ZydisInstructionDefinitionDEFAULT

Defines the ZydisInstructionDefinitionDEFAULT struct.

◆ ZydisInstructionDefinitionEVEX

Defines the ZydisInstructionDefinitionEVEX struct.

◆ ZydisInstructionDefinitionMVEX

Defines the ZydisInstructionDefinitionMVEX struct.

◆ ZydisInstructionDefinitionVEX

Defines the ZydisInstructionDefinitionVEX struct.

◆ ZydisInstructionDefinitionXOP

Defines the ZydisInstructionDefinitionXOP struct.

◆ ZydisInternalElementSize

Defines the ZydisInternalElementSize datatype.

◆ ZydisInternalElementType

Defines the ZydisInternalElementType datatype.

◆ ZydisInternalVectorLength

Defines the ZydisInternalVectorLength datatype.

◆ ZydisMaskPolicy

Defines the ZydisMaskPolicy datatype.

◆ ZydisMVEXFunctionality

Defines the ZydisMVEXFunctionality datatype.

◆ ZydisMVEXStaticBroadcast

Defines the ZydisMVEXStaticBroadcast datatype.

◆ ZydisOperandDefinition

Defines the ZydisOperandDefinition struct.

◆ ZydisRegisterConstraint

Defines the ZydisRegisterConstraint datatype.

◆ ZydisSemanticOperandType

Defines the ZydisSemanticOperandType datatype.

◆ ZydisVEXStaticBroadcast

Defines the ZydisVEXStaticBroadcast datatype.

Enumeration Type Documentation

◆ ZydisEVEXFunctionalities

Values that represent EVEX-functionalities.

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.

◆ ZydisEVEXStaticBroadcasts

Values that represent static EVEX-broadcasts.

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 

◆ ZydisEVEXTupleTypes

Values that represent EVEX tuple-types.

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.

◆ ZydisImplicitMemBase

Values that represent implicit-memory base-registers.

Enumerator
ZYDIS_IMPLMEM_BASE_ABX 
ZYDIS_IMPLMEM_BASE_ASP 
ZYDIS_IMPLMEM_BASE_ABP 
ZYDIS_IMPLMEM_BASE_ASI 
ZYDIS_IMPLMEM_BASE_ADI 

◆ ZydisImplicitRegisterType

Values that represent implicit-register types.

Enumerator
ZYDIS_IMPLREG_TYPE_STATIC 
ZYDIS_IMPLREG_TYPE_GPR_OSZ 
ZYDIS_IMPLREG_TYPE_GPR_ASZ 
ZYDIS_IMPLREG_TYPE_GPR_SSZ 
ZYDIS_IMPLREG_TYPE_IP_ASZ 
ZYDIS_IMPLREG_TYPE_IP_SSZ 
ZYDIS_IMPLREG_TYPE_FLAGS_SSZ 

◆ ZydisInternalElementSizes

Values that represent internal element-sizes.

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 

◆ ZydisInternalElementTypes

Values that represent internal element-types.

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_INT16 
ZYDIS_IELEMENT_TYPE_INT32 
ZYDIS_IELEMENT_TYPE_INT64 
ZYDIS_IELEMENT_TYPE_UINT8 
ZYDIS_IELEMENT_TYPE_UINT16 
ZYDIS_IELEMENT_TYPE_UINT32 
ZYDIS_IELEMENT_TYPE_UINT64 
ZYDIS_IELEMENT_TYPE_UINT128 
ZYDIS_IELEMENT_TYPE_UINT256 
ZYDIS_IELEMENT_TYPE_FLOAT16 
ZYDIS_IELEMENT_TYPE_FLOAT32 
ZYDIS_IELEMENT_TYPE_FLOAT64 
ZYDIS_IELEMENT_TYPE_FLOAT80 
ZYDIS_IELEMENT_TYPE_BCD80 

◆ ZydisInternalVectorLengths

Values that represent internal vector-lengths.

Enumerator
ZYDIS_IVECTOR_LENGTH_DEFAULT 
ZYDIS_IVECTOR_LENGTH_FIXED_128 
ZYDIS_IVECTOR_LENGTH_FIXED_256 
ZYDIS_IVECTOR_LENGTH_FIXED_512 

◆ ZydisMaskPolicies

Values that represent AVX mask policies.

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).

◆ ZydisMVEXFunctionalities

Values that represent MVEX-functionalities.

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.

◆ ZydisMVEXStaticBroadcasts

Values that represent static MVEX-broadcasts.

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 

◆ ZydisRegisterConstraints

Values that represent register-constraints.

Enumerator
ZYDIS_REG_CONSTRAINTS_UNUSED 
ZYDIS_REG_CONSTRAINTS_NONE 
ZYDIS_REG_CONSTRAINTS_GPR 
ZYDIS_REG_CONSTRAINTS_SR_DEST 
ZYDIS_REG_CONSTRAINTS_SR 
ZYDIS_REG_CONSTRAINTS_CR 
ZYDIS_REG_CONSTRAINTS_DR 
ZYDIS_REG_CONSTRAINTS_MASK 
ZYDIS_REG_CONSTRAINTS_BND 
ZYDIS_REG_CONSTRAINTS_VSIB 
ZYDIS_REG_CONSTRAINTS_MAX_VALUE 
ZYDIS_REG_CONSTRAINTS_MIN_BITS 

◆ ZydisSemanticOperandTypes

Values that represent semantic operand-types.

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_FPR 
ZYDIS_SEMANTIC_OPTYPE_MMX 
ZYDIS_SEMANTIC_OPTYPE_XMM 
ZYDIS_SEMANTIC_OPTYPE_YMM 
ZYDIS_SEMANTIC_OPTYPE_ZMM 
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 

◆ ZydisVEXStaticBroadcasts

Values that represent static VEX-broadcasts.

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 

Function Documentation

◆ ZydisGetAccessedFlags()

ZYDIS_NO_EXPORT void ZydisGetAccessedFlags ( const ZydisInstructionDefinition definition,
const ZydisAccessedFlags **  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 ZydisAccessedFlags struct.

◆ 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,
ZydisU16  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 ZydisU8 ZydisGetOperandDefinitions ( const ZydisInstructionDefinition definition,
const ZydisOperandDefinition **  operand 
)

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

Parameters
definitionA pointer to the instruction-definition.
operandA pointer to the variable that receives a pointer to the first operand- definition of the instruction.
Returns
The number of operands for the given instruction-definition.