Zydis v4.0.0
|
Defines decoder/encoder-shared macros and types. More...
#include <Zycore/Types.h>
Go to the source code of this file.
Macros | |
#define | ZYDIS_MAX_INSTRUCTION_LENGTH 15 |
#define | ZYDIS_MAX_OPERAND_COUNT 10 |
#define | ZYDIS_MAX_OPERAND_COUNT_VISIBLE 5 |
#define | ZYDIS_ATTRIB_HAS_MODRM (1ULL << 0) |
The instruction has the ModRM byte. | |
#define | ZYDIS_ATTRIB_HAS_SIB (1ULL << 1) |
The instruction has the SIB byte. | |
#define | ZYDIS_ATTRIB_HAS_REX (1ULL << 2) |
The instruction has the REX prefix. | |
#define | ZYDIS_ATTRIB_HAS_XOP (1ULL << 3) |
The instruction has the XOP prefix. | |
#define | ZYDIS_ATTRIB_HAS_VEX (1ULL << 4) |
The instruction has the VEX prefix. | |
#define | ZYDIS_ATTRIB_HAS_EVEX (1ULL << 5) |
The instruction has the EVEX prefix. | |
#define | ZYDIS_ATTRIB_HAS_MVEX (1ULL << 6) |
The instruction has the MVEX prefix. | |
#define | ZYDIS_ATTRIB_IS_RELATIVE (1ULL << 7) |
The instruction has one or more operands with position-relative offsets. | |
#define | ZYDIS_ATTRIB_IS_PRIVILEGED (1ULL << 8) |
The instruction is privileged. More... | |
#define | ZYDIS_ATTRIB_CPUFLAG_ACCESS (1ULL << 9) |
The instruction accesses one or more CPU-flags. | |
#define | ZYDIS_ATTRIB_CPU_STATE_CR (1ULL << 10) |
The instruction may conditionally read the general CPU state. | |
#define | ZYDIS_ATTRIB_CPU_STATE_CW (1ULL << 11) |
The instruction may conditionally write the general CPU state. | |
#define | ZYDIS_ATTRIB_FPU_STATE_CR (1ULL << 12) |
The instruction may conditionally read the FPU state (X87, MMX). | |
#define | ZYDIS_ATTRIB_FPU_STATE_CW (1ULL << 13) |
The instruction may conditionally write the FPU state (X87, MMX). | |
#define | ZYDIS_ATTRIB_XMM_STATE_CR (1ULL << 14) |
The instruction may conditionally read the XMM state (AVX, AVX2, AVX-512). | |
#define | ZYDIS_ATTRIB_XMM_STATE_CW (1ULL << 15) |
The instruction may conditionally write the XMM state (AVX, AVX2, AVX-512). | |
#define | ZYDIS_ATTRIB_ACCEPTS_LOCK (1ULL << 16) |
The instruction accepts the LOCK prefix (0xF0 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_REP (1ULL << 17) |
The instruction accepts the REP prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPE (1ULL << 18) |
The instruction accepts the REPE /REPZ prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPZ ZYDIS_ATTRIB_ACCEPTS_REPE |
The instruction accepts the REPE /REPZ prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPNE (1ULL << 19) |
The instruction accepts the REPNE /REPNZ prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPNZ ZYDIS_ATTRIB_ACCEPTS_REPNE |
The instruction accepts the REPNE /REPNZ prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_BND (1ULL << 20) |
The instruction accepts the BND prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_XACQUIRE (1ULL << 21) |
The instruction accepts the XACQUIRE prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_XRELEASE (1ULL << 22) |
The instruction accepts the XRELEASE prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK (1ULL << 23) |
The instruction accepts the XACQUIRE /XRELEASE prefixes (0xF2 , 0xF3 ) without the LOCK prefix (0x0F ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_BRANCH_HINTS (1ULL << 24) |
The instruction accepts branch hints (0x2E, 0x3E). | |
#define | ZYDIS_ATTRIB_ACCEPTS_NOTRACK (1ULL << 25) |
The instruction accepts the CET no-track prefix (0x3E ). | |
#define | ZYDIS_ATTRIB_ACCEPTS_SEGMENT (1ULL << 26) |
The instruction accepts segment prefixes (0x2E , 0x36 , 0x3E , 0x26 , 0x64 , 0x65 ). | |
#define | ZYDIS_ATTRIB_HAS_LOCK (1ULL << 27) |
The instruction has the LOCK prefix (0xF0 ). | |
#define | ZYDIS_ATTRIB_HAS_REP (1ULL << 28) |
The instruction has the REP prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_HAS_REPE (1ULL << 29) |
The instruction has the REPE /REPZ prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_HAS_REPZ ZYDIS_ATTRIB_HAS_REPE |
The instruction has the REPE /REPZ prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_HAS_REPNE (1ULL << 30) |
The instruction has the REPNE /REPNZ prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_HAS_REPNZ ZYDIS_ATTRIB_HAS_REPNE |
The instruction has the REPNE /REPNZ prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_HAS_BND (1ULL << 31) |
The instruction has the BND prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_HAS_XACQUIRE (1ULL << 32) |
The instruction has the XACQUIRE prefix (0xF2 ). | |
#define | ZYDIS_ATTRIB_HAS_XRELEASE (1ULL << 33) |
The instruction has the XRELEASE prefix (0xF3 ). | |
#define | ZYDIS_ATTRIB_HAS_BRANCH_NOT_TAKEN (1ULL << 34) |
The instruction has the branch-not-taken hint (0x2E ). | |
#define | ZYDIS_ATTRIB_HAS_BRANCH_TAKEN (1ULL << 35) |
The instruction has the branch-taken hint (0x3E ). | |
#define | ZYDIS_ATTRIB_HAS_NOTRACK (1ULL << 36) |
The instruction has the CET no-track prefix (0x3E ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_CS (1ULL << 37) |
The instruction has the CS segment modifier (0x2E ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_SS (1ULL << 38) |
The instruction has the SS segment modifier (0x36 ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_DS (1ULL << 39) |
The instruction has the DS segment modifier (0x3E ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_ES (1ULL << 40) |
The instruction has the ES segment modifier (0x26 ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_FS (1ULL << 41) |
The instruction has the FS segment modifier (0x64 ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_GS (1ULL << 42) |
The instruction has the GS segment modifier (0x65 ). | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT |
The instruction has a segment modifier. More... | |
#define | ZYDIS_ATTRIB_HAS_OPERANDSIZE (1ULL << 43) |
The instruction has the operand-size override prefix (0x66 ). | |
#define | ZYDIS_ATTRIB_HAS_ADDRESSSIZE (1ULL << 44) |
The instruction has the address-size override prefix (0x67 ). | |
#define | ZYDIS_ATTRIB_HAS_EVEX_B (1ULL << 45) |
The instruction has the EVEX.b bit set. More... | |
Typedefs | |
typedef enum ZydisMachineMode_ | ZydisMachineMode |
Defines the ZydisMachineMode enum. | |
typedef enum ZydisStackWidth_ | ZydisStackWidth |
Defines the ZydisStackWidth enum. | |
typedef enum ZydisElementType_ | ZydisElementType |
Defines the ZydisElementType enum. | |
typedef ZyanU16 | ZydisElementSize |
Defines the ZydisElementSize datatype. | |
typedef enum ZydisOperandType_ | ZydisOperandType |
Defines the ZydisOperandType enum. | |
typedef enum ZydisOperandEncoding_ | ZydisOperandEncoding |
Defines the ZydisOperandEncoding enum. | |
typedef enum ZydisOperandVisibility_ | ZydisOperandVisibility |
Defines the ZydisOperandVisibility enum. | |
typedef enum ZydisOperandAction_ | ZydisOperandAction |
Defines the ZydisOperandAction enum. | |
typedef ZyanU8 | ZydisOperandActions |
Defines the ZydisOperandActions data-type. | |
typedef enum ZydisInstructionEncoding_ | ZydisInstructionEncoding |
Defines the ZydisInstructionEncoding enum. | |
typedef enum ZydisOpcodeMap_ | ZydisOpcodeMap |
Defines the ZydisOpcodeMap enum. | |
typedef ZyanU64 | ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes data-type. | |
Enumerations | |
enum | ZydisMachineMode_ { ZYDIS_MACHINE_MODE_LONG_64 , ZYDIS_MACHINE_MODE_LONG_COMPAT_32 , ZYDIS_MACHINE_MODE_LONG_COMPAT_16 , ZYDIS_MACHINE_MODE_LEGACY_32 , ZYDIS_MACHINE_MODE_LEGACY_16 , ZYDIS_MACHINE_MODE_REAL_16 , ZYDIS_MACHINE_MODE_MAX_VALUE = ZYDIS_MACHINE_MODE_REAL_16 , ZYDIS_MACHINE_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MACHINE_MODE_MAX_VALUE) } |
Defines the ZydisMachineMode enum. More... | |
enum | ZydisStackWidth_ { ZYDIS_STACK_WIDTH_16 , ZYDIS_STACK_WIDTH_32 , ZYDIS_STACK_WIDTH_64 , ZYDIS_STACK_WIDTH_MAX_VALUE = ZYDIS_STACK_WIDTH_64 , ZYDIS_STACK_WIDTH_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_STACK_WIDTH_MAX_VALUE) } |
Defines the ZydisStackWidth enum. More... | |
enum | ZydisElementType_ { ZYDIS_ELEMENT_TYPE_INVALID , ZYDIS_ELEMENT_TYPE_STRUCT , ZYDIS_ELEMENT_TYPE_UINT , ZYDIS_ELEMENT_TYPE_INT , ZYDIS_ELEMENT_TYPE_FLOAT16 , ZYDIS_ELEMENT_TYPE_FLOAT32 , ZYDIS_ELEMENT_TYPE_FLOAT64 , ZYDIS_ELEMENT_TYPE_FLOAT80 , ZYDIS_ELEMENT_TYPE_LONGBCD , ZYDIS_ELEMENT_TYPE_CC , ZYDIS_ELEMENT_TYPE_MAX_VALUE = ZYDIS_ELEMENT_TYPE_CC , ZYDIS_ELEMENT_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_ELEMENT_TYPE_MAX_VALUE) } |
Defines the ZydisElementType enum. More... | |
enum | ZydisOperandType_ { ZYDIS_OPERAND_TYPE_UNUSED , ZYDIS_OPERAND_TYPE_REGISTER , ZYDIS_OPERAND_TYPE_MEMORY , ZYDIS_OPERAND_TYPE_POINTER , ZYDIS_OPERAND_TYPE_IMMEDIATE , ZYDIS_OPERAND_TYPE_MAX_VALUE = ZYDIS_OPERAND_TYPE_IMMEDIATE , ZYDIS_OPERAND_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_OPERAND_TYPE_MAX_VALUE) } |
Defines the ZydisOperandType enum. More... | |
enum | ZydisOperandEncoding_ { ZYDIS_OPERAND_ENCODING_NONE , ZYDIS_OPERAND_ENCODING_MODRM_REG , ZYDIS_OPERAND_ENCODING_MODRM_RM , ZYDIS_OPERAND_ENCODING_OPCODE , ZYDIS_OPERAND_ENCODING_NDSNDD , ZYDIS_OPERAND_ENCODING_IS4 , ZYDIS_OPERAND_ENCODING_MASK , ZYDIS_OPERAND_ENCODING_DISP8 , ZYDIS_OPERAND_ENCODING_DISP16 , ZYDIS_OPERAND_ENCODING_DISP32 , ZYDIS_OPERAND_ENCODING_DISP64 , ZYDIS_OPERAND_ENCODING_DISP16_32_64 , ZYDIS_OPERAND_ENCODING_DISP32_32_64 , ZYDIS_OPERAND_ENCODING_DISP16_32_32 , ZYDIS_OPERAND_ENCODING_UIMM8 , ZYDIS_OPERAND_ENCODING_UIMM16 , ZYDIS_OPERAND_ENCODING_UIMM32 , ZYDIS_OPERAND_ENCODING_UIMM64 , ZYDIS_OPERAND_ENCODING_UIMM16_32_64 , ZYDIS_OPERAND_ENCODING_UIMM32_32_64 , ZYDIS_OPERAND_ENCODING_UIMM16_32_32 , ZYDIS_OPERAND_ENCODING_SIMM8 , ZYDIS_OPERAND_ENCODING_SIMM16 , ZYDIS_OPERAND_ENCODING_SIMM32 , ZYDIS_OPERAND_ENCODING_SIMM64 , ZYDIS_OPERAND_ENCODING_SIMM16_32_64 , ZYDIS_OPERAND_ENCODING_SIMM32_32_64 , ZYDIS_OPERAND_ENCODING_SIMM16_32_32 , ZYDIS_OPERAND_ENCODING_JIMM8 , ZYDIS_OPERAND_ENCODING_JIMM16 , ZYDIS_OPERAND_ENCODING_JIMM32 , ZYDIS_OPERAND_ENCODING_JIMM64 , ZYDIS_OPERAND_ENCODING_JIMM16_32_64 , ZYDIS_OPERAND_ENCODING_JIMM32_32_64 , ZYDIS_OPERAND_ENCODING_JIMM16_32_32 , ZYDIS_OPERAND_ENCODING_MAX_VALUE = ZYDIS_OPERAND_ENCODING_JIMM16_32_32 , ZYDIS_OPERAND_ENCODING_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_OPERAND_ENCODING_MAX_VALUE) } |
Defines the ZydisOperandEncoding enum. More... | |
enum | ZydisOperandVisibility_ { ZYDIS_OPERAND_VISIBILITY_INVALID , ZYDIS_OPERAND_VISIBILITY_EXPLICIT , ZYDIS_OPERAND_VISIBILITY_IMPLICIT , ZYDIS_OPERAND_VISIBILITY_HIDDEN , ZYDIS_OPERAND_VISIBILITY_MAX_VALUE = ZYDIS_OPERAND_VISIBILITY_HIDDEN , ZYDIS_OPERAND_VISIBILITY_REQUIRED_BITS = } |
Defines the ZydisOperandVisibility enum. More... | |
enum | ZydisOperandAction_ { ZYDIS_OPERAND_ACTION_READ = 0x01 , ZYDIS_OPERAND_ACTION_WRITE = 0x02 , ZYDIS_OPERAND_ACTION_CONDREAD = 0x04 , ZYDIS_OPERAND_ACTION_CONDWRITE = 0x08 , ZYDIS_OPERAND_ACTION_READWRITE = ZYDIS_OPERAND_ACTION_READ | ZYDIS_OPERAND_ACTION_WRITE , ZYDIS_OPERAND_ACTION_CONDREAD_CONDWRITE , ZYDIS_OPERAND_ACTION_READ_CONDWRITE , ZYDIS_OPERAND_ACTION_CONDREAD_WRITE , ZYDIS_OPERAND_ACTION_MASK_READ = ZYDIS_OPERAND_ACTION_READ | ZYDIS_OPERAND_ACTION_CONDREAD , ZYDIS_OPERAND_ACTION_MASK_WRITE = ZYDIS_OPERAND_ACTION_WRITE | ZYDIS_OPERAND_ACTION_CONDWRITE , ZYDIS_OPERAND_ACTION_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_OPERAND_ACTION_CONDWRITE) } |
Defines the ZydisOperandAction enum. More... | |
enum | ZydisInstructionEncoding_ { ZYDIS_INSTRUCTION_ENCODING_LEGACY , ZYDIS_INSTRUCTION_ENCODING_3DNOW , ZYDIS_INSTRUCTION_ENCODING_XOP , ZYDIS_INSTRUCTION_ENCODING_VEX , ZYDIS_INSTRUCTION_ENCODING_EVEX , ZYDIS_INSTRUCTION_ENCODING_MVEX , ZYDIS_INSTRUCTION_ENCODING_MAX_VALUE = ZYDIS_INSTRUCTION_ENCODING_MVEX , ZYDIS_INSTRUCTION_ENCODING_REQUIRED_BITS = } |
Defines the ZydisInstructionEncoding enum. More... | |
enum | ZydisOpcodeMap_ { ZYDIS_OPCODE_MAP_DEFAULT , ZYDIS_OPCODE_MAP_0F , ZYDIS_OPCODE_MAP_0F38 , ZYDIS_OPCODE_MAP_0F3A , ZYDIS_OPCODE_MAP_MAP4 , ZYDIS_OPCODE_MAP_MAP5 , ZYDIS_OPCODE_MAP_MAP6 , ZYDIS_OPCODE_MAP_MAP7 , ZYDIS_OPCODE_MAP_0F0F , ZYDIS_OPCODE_MAP_XOP8 , ZYDIS_OPCODE_MAP_XOP9 , ZYDIS_OPCODE_MAP_XOPA , ZYDIS_OPCODE_MAP_MAX_VALUE = ZYDIS_OPCODE_MAP_XOPA , ZYDIS_OPCODE_MAP_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_OPCODE_MAP_MAX_VALUE) } |
Defines the ZydisOpcodeMap enum. More... | |
Functions | |
ZYAN_STATIC_ASSERT (ZYAN_BITS_TO_REPRESENT(ZYDIS_OPERAND_TYPE_MAX_VALUE - ZYDIS_OPERAND_TYPE_REGISTER)==2) | |
Defines decoder/encoder-shared macros and types.
enum ZydisElementType_ |
Defines the ZydisElementType
enum.
Defines the ZydisInstructionEncoding
enum.
enum ZydisMachineMode_ |
Defines the ZydisMachineMode
enum.
enum ZydisOpcodeMap_ |
enum ZydisOperandAction_ |
Defines the ZydisOperandAction
enum.
enum ZydisOperandType_ |
Defines the ZydisOperandType
enum.
Defines the ZydisOperandVisibility
enum.
enum ZydisStackWidth_ |