27 #ifndef ZYDIS_INTERNAL_DECODERDATA_H 28 #define ZYDIS_INTERNAL_DECODERDATA_H 30 #include <Zycore/Defines.h> 31 #include <Zycore/Types.h> 44 # pragma warning(push) 45 # pragma warning(disable:4214) 57 typedef ZyanU8 ZydisDecoderTreeNodeType;
62 enum ZydisDecoderTreeNodeTypes
64 ZYDIS_NODETYPE_INVALID = 0x00,
68 ZYDIS_NODETYPE_DEFINITION_MASK = 0x80,
72 ZYDIS_NODETYPE_FILTER_XOP = 0x01,
76 ZYDIS_NODETYPE_FILTER_VEX = 0x02,
80 ZYDIS_NODETYPE_FILTER_EMVEX = 0x03,
84 ZYDIS_NODETYPE_FILTER_OPCODE = 0x04,
88 ZYDIS_NODETYPE_FILTER_MODE = 0x05,
92 ZYDIS_NODETYPE_FILTER_MODE_COMPACT = 0x06,
96 ZYDIS_NODETYPE_FILTER_MODRM_MOD = 0x07,
100 ZYDIS_NODETYPE_FILTER_MODRM_MOD_COMPACT = 0x08,
104 ZYDIS_NODETYPE_FILTER_MODRM_REG = 0x09,
108 ZYDIS_NODETYPE_FILTER_MODRM_RM = 0x0A,
112 ZYDIS_NODETYPE_FILTER_PREFIX_GROUP1 = 0x0B,
116 ZYDIS_NODETYPE_FILTER_MANDATORY_PREFIX = 0x0C,
120 ZYDIS_NODETYPE_FILTER_OPERAND_SIZE = 0x0D,
124 ZYDIS_NODETYPE_FILTER_ADDRESS_SIZE = 0x0E,
128 ZYDIS_NODETYPE_FILTER_VECTOR_LENGTH = 0x0F,
132 ZYDIS_NODETYPE_FILTER_REX_W = 0x10,
136 ZYDIS_NODETYPE_FILTER_REX_B = 0x11,
140 ZYDIS_NODETYPE_FILTER_EVEX_B = 0x12,
144 ZYDIS_NODETYPE_FILTER_MVEX_E = 0x13,
148 ZYDIS_NODETYPE_FILTER_MODE_AMD = 0x14,
152 ZYDIS_NODETYPE_FILTER_MODE_KNC = 0x15,
156 ZYDIS_NODETYPE_FILTER_MODE_MPX = 0x16,
160 ZYDIS_NODETYPE_FILTER_MODE_CET = 0x17,
164 ZYDIS_NODETYPE_FILTER_MODE_LZCNT = 0x18,
168 ZYDIS_NODETYPE_FILTER_MODE_TZCNT = 0x19,
172 ZYDIS_NODETYPE_FILTER_MODE_WBNOINVD = 0x1A,
176 ZYDIS_NODETYPE_FILTER_MODE_CLDEMOTE = 0x1B
184 typedef ZyanU16 ZydisDecoderTreeNodeValue;
193 ZydisDecoderTreeNodeType type;
194 ZydisDecoderTreeNodeValue value;
202 # pragma warning(pop) 212 typedef ZyanU8 ZydisInstructionEncodingFlags;
217 #define ZYDIS_INSTR_ENC_FLAG_HAS_MODRM 0x01 222 #define ZYDIS_INSTR_ENC_FLAG_HAS_DISP 0x02 227 #define ZYDIS_INSTR_ENC_FLAG_HAS_IMM0 0x04 232 #define ZYDIS_INSTR_ENC_FLAG_HAS_IMM1 0x08 240 #define ZYDIS_INSTR_ENC_FLAG_FORCE_REG_FORM 0x10 250 ZydisInstructionEncodingFlags
flags;
300 return &zydis_decoder_tree_root;
ZyanU8 size[3]
The size of the displacement value.
Definition: DecoderData.h:259
struct ZydisInstructionEncodingInfo_::@9 disp
Displacement info.
Import/export defines for MSVC builds.
Defines the ZydisDecoderTreeNode struct.
Definition: DecoderData.h:191
struct ZydisInstructionEncodingInfo_::@10 imm[2]
Immediate info.
ZyanBool is_relative
Signals, if the value is a relative offset.
Definition: DecoderData.h:277
#define ZYDIS_NO_EXPORT
Symbol is not exported and for internal use only.
Definition: Defines.h:74
ZydisInstructionEncodingFlags flags
Contains flags with information about the physical instruction-encoding.
Definition: DecoderData.h:250
ZyanBool is_signed
Signals, if the value is signed.
Definition: DecoderData.h:273
Defines the ZydisInstructionEncodingInfo struct.
Definition: DecoderData.h:245