Seregon/Hermes

Hermes/Dyforge is a program written in c++ allows you to inject a dll that can analyze all processes in a program, can be used for mod and reverse engeneering

C/3.8 KB/No license
DyMain/include/capstone/x86.h
1#ifndef CAPSTONE_X86_H
2#define CAPSTONE_X86_H
3 
4/* Capstone Disassembly Engine */
5/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
6 
7#ifdef __cplusplus
8extern "C" {
9#endif
10 
11#include "platform.h"
12#include "cs_operand.h"
13 
14/// Calculate relative address for X86-64, given cs_insn structure
15#define X86_REL_ADDR(insn) (((insn).detail->x86.operands[0].type == X86_OP_IMM) \
16 ? (uint64_t)((insn).detail->x86.operands[0].imm) \
17 : (((insn).address + (insn).size) + (uint64_t)(insn).detail->x86.disp))
18 
19/// X86 registers
20typedef enum x86_reg {
21 X86_REG_INVALID = 0,
22 X86_REG_AH, X86_REG_AL, X86_REG_AX, X86_REG_BH, X86_REG_BL,
23 X86_REG_BP, X86_REG_BPL, X86_REG_BX, X86_REG_CH, X86_REG_CL,
24 X86_REG_CS, X86_REG_CX, X86_REG_DH, X86_REG_DI, X86_REG_DIL,
25 X86_REG_DL, X86_REG_DS, X86_REG_DX, X86_REG_EAX, X86_REG_EBP,
26 X86_REG_EBX, X86_REG_ECX, X86_REG_EDI, X86_REG_EDX, X86_REG_EFLAGS,
27 X86_REG_EIP, X86_REG_EIZ, X86_REG_ES, X86_REG_ESI, X86_REG_ESP,
28 X86_REG_FPSW, X86_REG_FS, X86_REG_GS, X86_REG_IP, X86_REG_RAX,
29 X86_REG_RBP, X86_REG_RBX, X86_REG_RCX, X86_REG_RDI, X86_REG_RDX,
30 X86_REG_RIP, X86_REG_RIZ, X86_REG_RSI, X86_REG_RSP, X86_REG_SI,
31 X86_REG_SIL, X86_REG_SP, X86_REG_SPL, X86_REG_SS, X86_REG_CR0,
32 X86_REG_CR1, X86_REG_CR2, X86_REG_CR3, X86_REG_CR4, X86_REG_CR5,
33 X86_REG_CR6, X86_REG_CR7, X86_REG_CR8, X86_REG_CR9, X86_REG_CR10,
34 X86_REG_CR11, X86_REG_CR12, X86_REG_CR13, X86_REG_CR14, X86_REG_CR15,
35 X86_REG_DR0, X86_REG_DR1, X86_REG_DR2, X86_REG_DR3, X86_REG_DR4,
36 X86_REG_DR5, X86_REG_DR6, X86_REG_DR7, X86_REG_DR8, X86_REG_DR9,
37 X86_REG_DR10, X86_REG_DR11, X86_REG_DR12, X86_REG_DR13, X86_REG_DR14,
38 X86_REG_DR15, X86_REG_FP0, X86_REG_FP1, X86_REG_FP2, X86_REG_FP3,
39 X86_REG_FP4, X86_REG_FP5, X86_REG_FP6, X86_REG_FP7,
40 X86_REG_K0, X86_REG_K1, X86_REG_K2, X86_REG_K3, X86_REG_K4,
41 X86_REG_K5, X86_REG_K6, X86_REG_K7, X86_REG_MM0, X86_REG_MM1,
42 X86_REG_MM2, X86_REG_MM3, X86_REG_MM4, X86_REG_MM5, X86_REG_MM6,
43 X86_REG_MM7, X86_REG_R8, X86_REG_R9, X86_REG_R10, X86_REG_R11,
44 X86_REG_R12, X86_REG_R13, X86_REG_R14, X86_REG_R15,
45 X86_REG_ST0, X86_REG_ST1, X86_REG_ST2, X86_REG_ST3,
46 X86_REG_ST4, X86_REG_ST5, X86_REG_ST6, X86_REG_ST7,
47 X86_REG_XMM0, X86_REG_XMM1, X86_REG_XMM2, X86_REG_XMM3, X86_REG_XMM4,
48 X86_REG_XMM5, X86_REG_XMM6, X86_REG_XMM7, X86_REG_XMM8, X86_REG_XMM9,
49 X86_REG_XMM10, X86_REG_XMM11, X86_REG_XMM12, X86_REG_XMM13, X86_REG_XMM14,
50 X86_REG_XMM15, X86_REG_XMM16, X86_REG_XMM17, X86_REG_XMM18, X86_REG_XMM19,
51 X86_REG_XMM20, X86_REG_XMM21, X86_REG_XMM22, X86_REG_XMM23, X86_REG_XMM24,
52 X86_REG_XMM25, X86_REG_XMM26, X86_REG_XMM27, X86_REG_XMM28, X86_REG_XMM29,
53 X86_REG_XMM30, X86_REG_XMM31, X86_REG_YMM0, X86_REG_YMM1, X86_REG_YMM2,
54 X86_REG_YMM3, X86_REG_YMM4, X86_REG_YMM5, X86_REG_YMM6, X86_REG_YMM7,
55 X86_REG_YMM8, X86_REG_YMM9, X86_REG_YMM10, X86_REG_YMM11, X86_REG_YMM12,
56 X86_REG_YMM13, X86_REG_YMM14, X86_REG_YMM15, X86_REG_YMM16, X86_REG_YMM17,
57 X86_REG_YMM18, X86_REG_YMM19, X86_REG_YMM20, X86_REG_YMM21, X86_REG_YMM22,
58 X86_REG_YMM23, X86_REG_YMM24, X86_REG_YMM25, X86_REG_YMM26, X86_REG_YMM27,
59 X86_REG_YMM28, X86_REG_YMM29, X86_REG_YMM30, X86_REG_YMM31, X86_REG_ZMM0,
60 X86_REG_ZMM1, X86_REG_ZMM2, X86_REG_ZMM3, X86_REG_ZMM4, X86_REG_ZMM5,
61 X86_REG_ZMM6, X86_REG_ZMM7, X86_REG_ZMM8, X86_REG_ZMM9, X86_REG_ZMM10,
62 X86_REG_ZMM11, X86_REG_ZMM12, X86_REG_ZMM13, X86_REG_ZMM14, X86_REG_ZMM15,
63 X86_REG_ZMM16, X86_REG_ZMM17, X86_REG_ZMM18, X86_REG_ZMM19, X86_REG_ZMM20,
64 X86_REG_ZMM21, X86_REG_ZMM22, X86_REG_ZMM23, X86_REG_ZMM24, X86_REG_ZMM25,
65 X86_REG_ZMM26, X86_REG_ZMM27, X86_REG_ZMM28, X86_REG_ZMM29, X86_REG_ZMM30,
66 X86_REG_ZMM31, X86_REG_R8B, X86_REG_R9B, X86_REG_R10B, X86_REG_R11B,
67 X86_REG_R12B, X86_REG_R13B, X86_REG_R14B, X86_REG_R15B, X86_REG_R8D,
68 X86_REG_R9D, X86_REG_R10D, X86_REG_R11D, X86_REG_R12D, X86_REG_R13D,
69 X86_REG_R14D, X86_REG_R15D, X86_REG_R8W, X86_REG_R9W, X86_REG_R10W,
70 X86_REG_R11W, X86_REG_R12W, X86_REG_R13W, X86_REG_R14W, X86_REG_R15W,
71 X86_REG_BND0, X86_REG_BND1, X86_REG_BND2, X86_REG_BND3,
72 
73 X86_REG_ENDING // <-- mark the end of the list of registers
74} x86_reg;
75 
76// Sub-flags of EFLAGS
77#define X86_EFLAGS_MODIFY_AF (1ULL << 0)
78#define X86_EFLAGS_MODIFY_CF (1ULL << 1)
79#define X86_EFLAGS_MODIFY_SF (1ULL << 2)
80#define X86_EFLAGS_MODIFY_ZF (1ULL << 3)
81#define X86_EFLAGS_MODIFY_PF (1ULL << 4)
82#define X86_EFLAGS_MODIFY_OF (1ULL << 5)
83#define X86_EFLAGS_MODIFY_TF (1ULL << 6)
84#define X86_EFLAGS_MODIFY_IF (1ULL << 7)
85#define X86_EFLAGS_MODIFY_DF (1ULL << 8)
86#define X86_EFLAGS_MODIFY_NT (1ULL << 9)
87#define X86_EFLAGS_MODIFY_RF (1ULL << 10)
88#define X86_EFLAGS_PRIOR_OF (1ULL << 11)
89#define X86_EFLAGS_PRIOR_SF (1ULL << 12)
90#define X86_EFLAGS_PRIOR_ZF (1ULL << 13)
91#define X86_EFLAGS_PRIOR_AF (1ULL << 14)
92#define X86_EFLAGS_PRIOR_PF (1ULL << 15)
93#define X86_EFLAGS_PRIOR_CF (1ULL << 16)
94#define X86_EFLAGS_PRIOR_TF (1ULL << 17)
95#define X86_EFLAGS_PRIOR_IF (1ULL << 18)
96#define X86_EFLAGS_PRIOR_DF (1ULL << 19)
97#define X86_EFLAGS_PRIOR_NT (1ULL << 20)
98#define X86_EFLAGS_RESET_OF (1ULL << 21)
99#define X86_EFLAGS_RESET_CF (1ULL << 22)
100#define X86_EFLAGS_RESET_DF (1ULL << 23)
101#define X86_EFLAGS_RESET_IF (1ULL << 24)
102#define X86_EFLAGS_RESET_SF (1ULL << 25)
103#define X86_EFLAGS_RESET_AF (1ULL << 26)
104#define X86_EFLAGS_RESET_TF (1ULL << 27)
105#define X86_EFLAGS_RESET_NT (1ULL << 28)
106#define X86_EFLAGS_RESET_PF (1ULL << 29)
107#define X86_EFLAGS_SET_CF (1ULL << 30)
108#define X86_EFLAGS_SET_DF (1ULL << 31)
109#define X86_EFLAGS_SET_IF (1ULL << 32)
110#define X86_EFLAGS_TEST_OF (1ULL << 33)
111#define X86_EFLAGS_TEST_SF (1ULL << 34)
112#define X86_EFLAGS_TEST_ZF (1ULL << 35)
113#define X86_EFLAGS_TEST_PF (1ULL << 36)
114#define X86_EFLAGS_TEST_CF (1ULL << 37)
115#define X86_EFLAGS_TEST_NT (1ULL << 38)
116#define X86_EFLAGS_TEST_DF (1ULL << 39)
117#define X86_EFLAGS_UNDEFINED_OF (1ULL << 40)
118#define X86_EFLAGS_UNDEFINED_SF (1ULL << 41)
119#define X86_EFLAGS_UNDEFINED_ZF (1ULL << 42)
120#define X86_EFLAGS_UNDEFINED_PF (1ULL << 43)
121#define X86_EFLAGS_UNDEFINED_AF (1ULL << 44)
122#define X86_EFLAGS_UNDEFINED_CF (1ULL << 45)
123#define X86_EFLAGS_RESET_RF (1ULL << 46)
124#define X86_EFLAGS_TEST_RF (1ULL << 47)
125#define X86_EFLAGS_TEST_IF (1ULL << 48)
126#define X86_EFLAGS_TEST_TF (1ULL << 49)
127#define X86_EFLAGS_TEST_AF (1ULL << 50)
128#define X86_EFLAGS_RESET_ZF (1ULL << 51)
129#define X86_EFLAGS_SET_OF (1ULL << 52)
130#define X86_EFLAGS_SET_SF (1ULL << 53)
131#define X86_EFLAGS_SET_ZF (1ULL << 54)
132#define X86_EFLAGS_SET_AF (1ULL << 55)
133#define X86_EFLAGS_SET_PF (1ULL << 56)
134#define X86_EFLAGS_RESET_0F (1ULL << 57)
135#define X86_EFLAGS_RESET_AC (1ULL << 58)
136 
137#define X86_FPU_FLAGS_MODIFY_C0 (1ULL << 0)
138#define X86_FPU_FLAGS_MODIFY_C1 (1ULL << 1)
139#define X86_FPU_FLAGS_MODIFY_C2 (1ULL << 2)
140#define X86_FPU_FLAGS_MODIFY_C3 (1ULL << 3)
141#define X86_FPU_FLAGS_RESET_C0 (1ULL << 4)
142#define X86_FPU_FLAGS_RESET_C1 (1ULL << 5)
143#define X86_FPU_FLAGS_RESET_C2 (1ULL << 6)
144#define X86_FPU_FLAGS_RESET_C3 (1ULL << 7)
145#define X86_FPU_FLAGS_SET_C0 (1ULL << 8)
146#define X86_FPU_FLAGS_SET_C1 (1ULL << 9)
147#define X86_FPU_FLAGS_SET_C2 (1ULL << 10)
148#define X86_FPU_FLAGS_SET_C3 (1ULL << 11)
149#define X86_FPU_FLAGS_UNDEFINED_C0 (1ULL << 12)
150#define X86_FPU_FLAGS_UNDEFINED_C1 (1ULL << 13)
151#define X86_FPU_FLAGS_UNDEFINED_C2 (1ULL << 14)
152#define X86_FPU_FLAGS_UNDEFINED_C3 (1ULL << 15)
153#define X86_FPU_FLAGS_TEST_C0 (1ULL << 16)
154#define X86_FPU_FLAGS_TEST_C1 (1ULL << 17)
155#define X86_FPU_FLAGS_TEST_C2 (1ULL << 18)
156#define X86_FPU_FLAGS_TEST_C3 (1ULL << 19)
157 
158 
159/// Operand type for instruction's operands
160typedef enum x86_op_type {
161 X86_OP_INVALID = CS_OP_INVALID, ///< = CS_OP_INVALID (Uninitialized).
162 X86_OP_REG = CS_OP_REG, ///< = CS_OP_REG (Register operand).
163 X86_OP_IMM = CS_OP_IMM, ///< = CS_OP_IMM (Immediate operand).
164 X86_OP_MEM = CS_OP_MEM, ///< = CS_OP_MEM (Memory operand).
165} x86_op_type;
166 
167/// XOP Code Condition type
168typedef enum x86_xop_cc {
169 X86_XOP_CC_INVALID = 0, ///< Uninitialized.
170 X86_XOP_CC_LT,
171 X86_XOP_CC_LE,
172 X86_XOP_CC_GT,
173 X86_XOP_CC_GE,
174 X86_XOP_CC_EQ,
175 X86_XOP_CC_NEQ,
176 X86_XOP_CC_FALSE,
177 X86_XOP_CC_TRUE,
178} x86_xop_cc;
179 
180/// AVX broadcast type
181typedef enum x86_avx_bcast {
182 X86_AVX_BCAST_INVALID = 0, ///< Uninitialized.
183 X86_AVX_BCAST_2, ///< AVX512 broadcast type {1to2}
184 X86_AVX_BCAST_4, ///< AVX512 broadcast type {1to4}
185 X86_AVX_BCAST_8, ///< AVX512 broadcast type {1to8}
186 X86_AVX_BCAST_16, ///< AVX512 broadcast type {1to16}
187} x86_avx_bcast;
188 
189/// SSE Code Condition type
190typedef enum x86_sse_cc {
191 X86_SSE_CC_INVALID = 0, ///< Uninitialized.
192 X86_SSE_CC_EQ,
193 X86_SSE_CC_LT,
194 X86_SSE_CC_LE,
195 X86_SSE_CC_UNORD,
196 X86_SSE_CC_NEQ,
197 X86_SSE_CC_NLT,
198 X86_SSE_CC_NLE,
199 X86_SSE_CC_ORD,
200} x86_sse_cc;
201 
202/// AVX Code Condition type
203typedef enum x86_avx_cc {
204 X86_AVX_CC_INVALID = 0, ///< Uninitialized.
205 X86_AVX_CC_EQ,
206 X86_AVX_CC_LT,
207 X86_AVX_CC_LE,
208 X86_AVX_CC_UNORD,
209 X86_AVX_CC_NEQ,
210 X86_AVX_CC_NLT,
211 X86_AVX_CC_NLE,
212 X86_AVX_CC_ORD,
213 X86_AVX_CC_EQ_UQ,
214 X86_AVX_CC_NGE,
215 X86_AVX_CC_NGT,
216 X86_AVX_CC_FALSE,
217 X86_AVX_CC_NEQ_OQ,
218 X86_AVX_CC_GE,
219 X86_AVX_CC_GT,
220 X86_AVX_CC_TRUE,
221 X86_AVX_CC_EQ_OS,
222 X86_AVX_CC_LT_OQ,
223 X86_AVX_CC_LE_OQ,
224 X86_AVX_CC_UNORD_S,
225 X86_AVX_CC_NEQ_US,
226 X86_AVX_CC_NLT_UQ,
227 X86_AVX_CC_NLE_UQ,
228 X86_AVX_CC_ORD_S,
229 X86_AVX_CC_EQ_US,
230 X86_AVX_CC_NGE_UQ,
231 X86_AVX_CC_NGT_UQ,
232 X86_AVX_CC_FALSE_OS,
233 X86_AVX_CC_NEQ_OS,
234 X86_AVX_CC_GE_OQ,
235 X86_AVX_CC_GT_OQ,
236 X86_AVX_CC_TRUE_US,
237} x86_avx_cc;
238 
239/// AVX static rounding mode type
240typedef enum x86_avx_rm {
241 X86_AVX_RM_INVALID = 0, ///< Uninitialized.
242 X86_AVX_RM_RN, ///< Round to nearest
243 X86_AVX_RM_RD, ///< Round down
244 X86_AVX_RM_RU, ///< Round up
245 X86_AVX_RM_RZ, ///< Round toward zero
246} x86_avx_rm;
247 
248/// Instruction prefixes - to be used in cs_x86.prefix[]
249typedef enum x86_prefix {
250 X86_PREFIX_0 = 0x0,
251 X86_PREFIX_LOCK = 0xf0, ///< lock (cs_x86.prefix[0]
252 X86_PREFIX_REP = 0xf3, ///< rep (cs_x86.prefix[0]
253 X86_PREFIX_REPE = 0xf3, ///< repe/repz (cs_x86.prefix[0]
254 X86_PREFIX_REPNE = 0xf2, ///< repne/repnz (cs_x86.prefix[0]
255 
256 X86_PREFIX_CS = 0x2e, ///< segment override CS (cs_x86.prefix[1]
257 X86_PREFIX_SS = 0x36, ///< segment override SS (cs_x86.prefix[1]
258 X86_PREFIX_DS = 0x3e, ///< segment override DS (cs_x86.prefix[1]
259 X86_PREFIX_ES = 0x26, ///< segment override ES (cs_x86.prefix[1]
260 X86_PREFIX_FS = 0x64, ///< segment override FS (cs_x86.prefix[1]
261 X86_PREFIX_GS = 0x65, ///< segment override GS (cs_x86.prefix[1]
262 
263 X86_PREFIX_OPSIZE = 0x66, ///< operand-size override (cs_x86.prefix[2]
264 X86_PREFIX_ADDRSIZE = 0x67, ///< address-size override (cs_x86.prefix[3]
265} x86_prefix;
266 
267/// Instruction's operand referring to memory
268/// This is associated with X86_OP_MEM operand type above
269typedef struct x86_op_mem {
270 x86_reg segment; ///< segment register (or X86_REG_INVALID if irrelevant)
271 x86_reg base; ///< base register (or X86_REG_INVALID if irrelevant)
272 x86_reg index; ///< index register (or X86_REG_INVALID if irrelevant)
273 int scale; ///< scale for index register
274 int64_t disp; ///< displacement value
275} x86_op_mem;
276 
277/// Instruction operand
278typedef struct cs_x86_op {
279 x86_op_type type; ///< operand type
280 union {
281 x86_reg reg; ///< register value for REG operand
282 int64_t imm; ///< immediate value for IMM operand
283 x86_op_mem mem; ///< base/index/scale/disp value for MEM operand
284 };
285 
286 /// size of this operand (in bytes).
287 uint8_t size;
288 
289 /// How is this operand accessed? (READ, WRITE or READ|WRITE)
290 /// This field is combined of cs_ac_type.
291 /// NOTE: this field is irrelevant if engine is compiled in DIET mode.
292 uint8_t access;
293 
294 /// AVX broadcast type, or 0 if irrelevant
295 x86_avx_bcast avx_bcast;
296 
297 /// AVX zero opmask {z}
298 bool avx_zero_opmask;
299} cs_x86_op;
300 
301typedef struct cs_x86_encoding {
302 /// ModR/M offset, or 0 when irrelevant
303 uint8_t modrm_offset;
304 
305 /// Displacement offset, or 0 when irrelevant.
306 uint8_t disp_offset;
307 uint8_t disp_size;
308 
309 /// Immediate offset, or 0 when irrelevant.
310 uint8_t imm_offset;
311 uint8_t imm_size;
312} cs_x86_encoding;
313 
314/// Instruction structure
315typedef struct cs_x86 {
316 /// Instruction prefix, which can be up to 4 bytes.
317 /// A prefix byte gets value 0 when irrelevant.
318 /// prefix[0] indicates REP/REPNE/LOCK prefix (See X86_PREFIX_REP/REPNE/LOCK above)
319 /// prefix[1] indicates segment override (irrelevant for x86_64):
320 /// See X86_PREFIX_CS/SS/DS/ES/FS/GS above.
321 /// prefix[2] indicates operand-size override (X86_PREFIX_OPSIZE)
322 /// prefix[3] indicates address-size override (X86_PREFIX_ADDRSIZE)
323 uint8_t prefix[4];
324 
325 /// Instruction opcode, which can be from 1 to 4 bytes in size.
326 /// This contains VEX opcode as well.
327 /// An trailing opcode byte gets value 0 when irrelevant.
328 uint8_t opcode[4];
329 
330 /// REX prefix: only a non-zero value is relevant for x86_64
331 uint8_t rex;
332 
333 /// Address size, which can be overridden with above prefix[5].
334 uint8_t addr_size;
335 
336 /// ModR/M byte
337 uint8_t modrm;
338 
339 /// SIB value, or 0 when irrelevant.
340 uint8_t sib;
341 
342 /// Displacement value, valid if encoding.disp_offset != 0
343 int64_t disp;
344 
345 /// SIB index register, or X86_REG_INVALID when irrelevant.
346 x86_reg sib_index;
347 /// SIB scale, only applicable if sib_index is valid.
348 int8_t sib_scale;
349 /// SIB base register, or X86_REG_INVALID when irrelevant.
350 x86_reg sib_base;
351 
352 /// XOP Code Condition
353 x86_xop_cc xop_cc;
354 
355 /// SSE Code Condition
356 x86_sse_cc sse_cc;
357 
358 /// AVX Code Condition
359 x86_avx_cc avx_cc;
360 
361 /// AVX Suppress all Exception
362 bool avx_sae;
363 
364 /// AVX static rounding mode
365 x86_avx_rm avx_rm;
366 
367
368 union {
369 /// EFLAGS updated by this instruction.
370 /// This can be formed from OR combination of X86_EFLAGS_* symbols in x86.h
371 uint64_t eflags;
372 /// FPU_FLAGS updated by this instruction.
373 /// This can be formed from OR combination of X86_FPU_FLAGS_* symbols in x86.h
374 uint64_t fpu_flags;
375 };
376 
377 /// Number of operands of this instruction,
378 /// or 0 when instruction has no operand.
379 uint8_t op_count;
380 
381 cs_x86_op operands[8]; ///< operands for this instruction.
382 
383 cs_x86_encoding encoding; ///< encoding information
384} cs_x86;
385 
386/// X86 instructions
387typedef enum x86_insn {
388 X86_INS_INVALID = 0,
389 
390 X86_INS_AAA,
391 X86_INS_AAD,
392 X86_INS_AAM,
393 X86_INS_AAS,
394 X86_INS_FABS,
395 X86_INS_ADC,
396 X86_INS_ADCX,
397 X86_INS_ADD,
398 X86_INS_ADDPD,
399 X86_INS_ADDPS,
400 X86_INS_ADDSD,
401 X86_INS_ADDSS,
402 X86_INS_ADDSUBPD,
403 X86_INS_ADDSUBPS,
404 X86_INS_FADD,
405 X86_INS_FIADD,
406 X86_INS_ADOX,
407 X86_INS_AESDECLAST,
408 X86_INS_AESDEC,
409 X86_INS_AESENCLAST,
410 X86_INS_AESENC,
411 X86_INS_AESIMC,
412 X86_INS_AESKEYGENASSIST,
413 X86_INS_AND,
414 X86_INS_ANDN,
415 X86_INS_ANDNPD,
416 X86_INS_ANDNPS,
417 X86_INS_ANDPD,
418 X86_INS_ANDPS,
419 X86_INS_ARPL,
420 X86_INS_BEXTR,
421 X86_INS_BLCFILL,
422 X86_INS_BLCI,
423 X86_INS_BLCIC,
424 X86_INS_BLCMSK,
425 X86_INS_BLCS,
426 X86_INS_BLENDPD,
427 X86_INS_BLENDPS,
428 X86_INS_BLENDVPD,
429 X86_INS_BLENDVPS,
430 X86_INS_BLSFILL,
431 X86_INS_BLSI,
432 X86_INS_BLSIC,
433 X86_INS_BLSMSK,
434 X86_INS_BLSR,
435 X86_INS_BNDCL,
436 X86_INS_BNDCN,
437 X86_INS_BNDCU,
438 X86_INS_BNDLDX,
439 X86_INS_BNDMK,
440 X86_INS_BNDMOV,
441 X86_INS_BNDSTX,
442 X86_INS_BOUND,
443 X86_INS_BSF,
444 X86_INS_BSR,
445 X86_INS_BSWAP,
446 X86_INS_BT,
447 X86_INS_BTC,
448 X86_INS_BTR,
449 X86_INS_BTS,
450 X86_INS_BZHI,
451 X86_INS_CALL,
452 X86_INS_CBW,
453 X86_INS_CDQ,
454 X86_INS_CDQE,
455 X86_INS_FCHS,
456 X86_INS_CLAC,
457 X86_INS_CLC,
458 X86_INS_CLD,
459 X86_INS_CLDEMOTE,
460 X86_INS_CLFLUSH,
461 X86_INS_CLFLUSHOPT,
462 X86_INS_CLGI,
463 X86_INS_CLI,
464 X86_INS_CLRSSBSY,
465 X86_INS_CLTS,
466 X86_INS_CLWB,
467 X86_INS_CLZERO,
468 X86_INS_CMC,
469 X86_INS_CMOVA,
470 X86_INS_CMOVAE,
471 X86_INS_CMOVB,
472 X86_INS_CMOVBE,
473 X86_INS_FCMOVBE,
474 X86_INS_FCMOVB,
475 X86_INS_CMOVE,
476 X86_INS_FCMOVE,
477 X86_INS_CMOVG,
478 X86_INS_CMOVGE,
479 X86_INS_CMOVL,
480 X86_INS_CMOVLE,
481 X86_INS_FCMOVNBE,
482 X86_INS_FCMOVNB,
483 X86_INS_CMOVNE,
484 X86_INS_FCMOVNE,
485 X86_INS_CMOVNO,
486 X86_INS_CMOVNP,
487 X86_INS_FCMOVNU,
488 X86_INS_FCMOVNP,
489 X86_INS_CMOVNS,
490 X86_INS_CMOVO,
491 X86_INS_CMOVP,
492 X86_INS_FCMOVU,
493 X86_INS_CMOVS,
494 X86_INS_CMP,
495 X86_INS_CMPPD,
496 X86_INS_CMPPS,
497 X86_INS_CMPSB,
498 X86_INS_CMPSD,
499 X86_INS_CMPSQ,
500 X86_INS_CMPSS,
501 X86_INS_CMPSW,
502 X86_INS_CMPXCHG16B,
503 X86_INS_CMPXCHG,
504 X86_INS_CMPXCHG8B,
505 X86_INS_COMISD,
506 X86_INS_COMISS,
507 X86_INS_FCOMP,
508 X86_INS_FCOMPI,
509 X86_INS_FCOMI,
510 X86_INS_FCOM,
511 X86_INS_FCOS,
512 X86_INS_CPUID,
513 X86_INS_CQO,
514 X86_INS_CRC32,
515 X86_INS_CVTDQ2PD,
516 X86_INS_CVTDQ2PS,
517 X86_INS_CVTPD2DQ,
518 X86_INS_CVTPD2PS,
519 X86_INS_CVTPS2DQ,
520 X86_INS_CVTPS2PD,
521 X86_INS_CVTSD2SI,
522 X86_INS_CVTSD2SS,
523 X86_INS_CVTSI2SD,
524 X86_INS_CVTSI2SS,
525 X86_INS_CVTSS2SD,
526 X86_INS_CVTSS2SI,
527 X86_INS_CVTTPD2DQ,
528 X86_INS_CVTTPS2DQ,
529 X86_INS_CVTTSD2SI,
530 X86_INS_CVTTSS2SI,
531 X86_INS_CWD,
532 X86_INS_CWDE,
533 X86_INS_DAA,
534 X86_INS_DAS,
535 X86_INS_DATA16,
536 X86_INS_DEC,
537 X86_INS_DIV,
538 X86_INS_DIVPD,
539 X86_INS_DIVPS,
540 X86_INS_FDIVR,
541 X86_INS_FIDIVR,
542 X86_INS_FDIVRP,
543 X86_INS_DIVSD,
544 X86_INS_DIVSS,
545 X86_INS_FDIV,
546 X86_INS_FIDIV,
547 X86_INS_FDIVP,
548 X86_INS_DPPD,
549 X86_INS_DPPS,
550 X86_INS_ENCLS,
551 X86_INS_ENCLU,
552 X86_INS_ENCLV,
553 X86_INS_ENDBR32,
554 X86_INS_ENDBR64,
555 X86_INS_ENTER,
556 X86_INS_EXTRACTPS,
557 X86_INS_EXTRQ,
558 X86_INS_F2XM1,
559 X86_INS_LCALL,
560 X86_INS_LJMP,
561 X86_INS_JMP,
562 X86_INS_FBLD,
563 X86_INS_FBSTP,
564 X86_INS_FCOMPP,
565 X86_INS_FDECSTP,
566 X86_INS_FDISI8087_NOP,
567 X86_INS_FEMMS,
568 X86_INS_FENI8087_NOP,
569 X86_INS_FFREE,
570 X86_INS_FFREEP,
571 X86_INS_FICOM,
572 X86_INS_FICOMP,
573 X86_INS_FINCSTP,
574 X86_INS_FLDCW,
575 X86_INS_FLDENV,
576 X86_INS_FLDL2E,
577 X86_INS_FLDL2T,
578 X86_INS_FLDLG2,
579 X86_INS_FLDLN2,
580 X86_INS_FLDPI,
581 X86_INS_FNCLEX,
582 X86_INS_FNINIT,
583 X86_INS_FNOP,
584 X86_INS_FNSTCW,
585 X86_INS_FNSTSW,
586 X86_INS_FPATAN,
587 X86_INS_FSTPNCE,
588 X86_INS_FPREM,
589 X86_INS_FPREM1,
590 X86_INS_FPTAN,
591 X86_INS_FRNDINT,
592 X86_INS_FRSTOR,
593 X86_INS_FNSAVE,
594 X86_INS_FSCALE,
595 X86_INS_FSETPM,
596 X86_INS_FSINCOS,
597 X86_INS_FNSTENV,
598 X86_INS_FXAM,
599 X86_INS_FXRSTOR,
600 X86_INS_FXRSTOR64,
601 X86_INS_FXSAVE,
602 X86_INS_FXSAVE64,
603 X86_INS_FXTRACT,
604 X86_INS_FYL2X,
605 X86_INS_FYL2XP1,
606 X86_INS_GETSEC,
607 X86_INS_GF2P8AFFINEINVQB,
608 X86_INS_GF2P8AFFINEQB,
609 X86_INS_GF2P8MULB,
610 X86_INS_HADDPD,
611 X86_INS_HADDPS,
612 X86_INS_HLT,
613 X86_INS_HSUBPD,
614 X86_INS_HSUBPS,
615 X86_INS_IDIV,
616 X86_INS_FILD,
617 X86_INS_IMUL,
618 X86_INS_IN,
619 X86_INS_INC,
620 X86_INS_INCSSPD,
621 X86_INS_INCSSPQ,
622 X86_INS_INSB,
623 X86_INS_INSERTPS,
624 X86_INS_INSERTQ,
625 X86_INS_INSD,
626 X86_INS_INSW,
627 X86_INS_INT,
628 X86_INS_INT1,
629 X86_INS_INT3,
630 X86_INS_INTO,
631 X86_INS_INVD,
632 X86_INS_INVEPT,
633 X86_INS_INVLPG,
634 X86_INS_INVLPGA,
635 X86_INS_INVPCID,
636 X86_INS_INVVPID,
637 X86_INS_IRET,
638 X86_INS_IRETD,
639 X86_INS_IRETQ,
640 X86_INS_FISTTP,
641 X86_INS_FIST,
642 X86_INS_FISTP,
643 X86_INS_JAE,
644 X86_INS_JA,
645 X86_INS_JBE,
646 X86_INS_JB,
647 X86_INS_JCXZ,
648 X86_INS_JECXZ,
649 X86_INS_JE,
650 X86_INS_JGE,
651 X86_INS_JG,
652 X86_INS_JLE,
653 X86_INS_JL,
654 X86_INS_JNE,
655 X86_INS_JNO,
656 X86_INS_JNP,
657 X86_INS_JNS,
658 X86_INS_JO,
659 X86_INS_JP,
660 X86_INS_JRCXZ,
661 X86_INS_JS,
662 X86_INS_KADDB,
663 X86_INS_KADDD,
664 X86_INS_KADDQ,
665 X86_INS_KADDW,
666 X86_INS_KANDB,
667 X86_INS_KANDD,
668 X86_INS_KANDNB,
669 X86_INS_KANDND,
670 X86_INS_KANDNQ,
671 X86_INS_KANDNW,
672 X86_INS_KANDQ,
673 X86_INS_KANDW,
674 X86_INS_KMOVB,
675 X86_INS_KMOVD,
676 X86_INS_KMOVQ,
677 X86_INS_KMOVW,
678 X86_INS_KNOTB,
679 X86_INS_KNOTD,
680 X86_INS_KNOTQ,
681 X86_INS_KNOTW,
682 X86_INS_KORB,
683 X86_INS_KORD,
684 X86_INS_KORQ,
685 X86_INS_KORTESTB,
686 X86_INS_KORTESTD,
687 X86_INS_KORTESTQ,
688 X86_INS_KORTESTW,
689 X86_INS_KORW,
690 X86_INS_KSHIFTLB,
691 X86_INS_KSHIFTLD,
692 X86_INS_KSHIFTLQ,
693 X86_INS_KSHIFTLW,
694 X86_INS_KSHIFTRB,
695 X86_INS_KSHIFTRD,
696 X86_INS_KSHIFTRQ,
697 X86_INS_KSHIFTRW,
698 X86_INS_KTESTB,
699 X86_INS_KTESTD,
700 X86_INS_KTESTQ,
701 X86_INS_KTESTW,
702 X86_INS_KUNPCKBW,
703 X86_INS_KUNPCKDQ,
704 X86_INS_KUNPCKWD,
705 X86_INS_KXNORB,
706 X86_INS_KXNORD,
707 X86_INS_KXNORQ,
708 X86_INS_KXNORW,
709 X86_INS_KXORB,
710 X86_INS_KXORD,
711 X86_INS_KXORQ,
712 X86_INS_KXORW,
713 X86_INS_LAHF,
714 X86_INS_LAR,
715 X86_INS_LDDQU,
716 X86_INS_LDMXCSR,
717 X86_INS_LDS,
718 X86_INS_FLDZ,
719 X86_INS_FLD1,
720 X86_INS_FLD,
721 X86_INS_LEA,
722 X86_INS_LEAVE,
723 X86_INS_LES,
724 X86_INS_LFENCE,
725 X86_INS_LFS,
726 X86_INS_LGDT,
727 X86_INS_LGS,
728 X86_INS_LIDT,
729 X86_INS_LLDT,
730 X86_INS_LLWPCB,
731 X86_INS_LMSW,
732 X86_INS_LOCK,
733 X86_INS_LODSB,
734 X86_INS_LODSD,
735 X86_INS_LODSQ,
736 X86_INS_LODSW,
737 X86_INS_LOOP,
738 X86_INS_LOOPE,
739 X86_INS_LOOPNE,
740 X86_INS_RETF,
741 X86_INS_RETFQ,
742 X86_INS_LSL,
743 X86_INS_LSS,
744 X86_INS_LTR,
745 X86_INS_LWPINS,
746 X86_INS_LWPVAL,
747 X86_INS_LZCNT,
748 X86_INS_MASKMOVDQU,
749 X86_INS_MAXPD,
750 X86_INS_MAXPS,
751 X86_INS_MAXSD,
752 X86_INS_MAXSS,
753 X86_INS_MFENCE,
754 X86_INS_MINPD,
755 X86_INS_MINPS,
756 X86_INS_MINSD,
757 X86_INS_MINSS,
758 X86_INS_CVTPD2PI,
759 X86_INS_CVTPI2PD,
760 X86_INS_CVTPI2PS,
761 X86_INS_CVTPS2PI,
762 X86_INS_CVTTPD2PI,
763 X86_INS_CVTTPS2PI,
764 X86_INS_EMMS,
765 X86_INS_MASKMOVQ,
766 X86_INS_MOVD,
767 X86_INS_MOVQ,
768 X86_INS_MOVDQ2Q,
769 X86_INS_MOVNTQ,
770 X86_INS_MOVQ2DQ,
771 X86_INS_PABSB,
772 X86_INS_PABSD,
773 X86_INS_PABSW,
774 X86_INS_PACKSSDW,
775 X86_INS_PACKSSWB,
776 X86_INS_PACKUSWB,
777 X86_INS_PADDB,
778 X86_INS_PADDD,
779 X86_INS_PADDQ,
780 X86_INS_PADDSB,
781 X86_INS_PADDSW,
782 X86_INS_PADDUSB,
783 X86_INS_PADDUSW,
784 X86_INS_PADDW,
785 X86_INS_PALIGNR,
786 X86_INS_PANDN,
787 X86_INS_PAND,
788 X86_INS_PAVGB,
789 X86_INS_PAVGW,
790 X86_INS_PCMPEQB,
791 X86_INS_PCMPEQD,
792 X86_INS_PCMPEQW,
793 X86_INS_PCMPGTB,
794 X86_INS_PCMPGTD,
795 X86_INS_PCMPGTW,
796 X86_INS_PEXTRW,
797 X86_INS_PHADDD,
798 X86_INS_PHADDSW,
799 X86_INS_PHADDW,
800 X86_INS_PHSUBD,
801 X86_INS_PHSUBSW,
802 X86_INS_PHSUBW,
803 X86_INS_PINSRW,
804 X86_INS_PMADDUBSW,
805 X86_INS_PMADDWD,
806 X86_INS_PMAXSW,
807 X86_INS_PMAXUB,
808 X86_INS_PMINSW,
809 X86_INS_PMINUB,
810 X86_INS_PMOVMSKB,
811 X86_INS_PMULHRSW,
812 X86_INS_PMULHUW,
813 X86_INS_PMULHW,
814 X86_INS_PMULLW,
815 X86_INS_PMULUDQ,
816 X86_INS_POR,
817 X86_INS_PSADBW,
818 X86_INS_PSHUFB,
819 X86_INS_PSHUFW,
820 X86_INS_PSIGNB,
821 X86_INS_PSIGND,
822 X86_INS_PSIGNW,
823 X86_INS_PSLLD,
824 X86_INS_PSLLQ,
825 X86_INS_PSLLW,
826 X86_INS_PSRAD,
827 X86_INS_PSRAW,
828 X86_INS_PSRLD,
829 X86_INS_PSRLQ,
830 X86_INS_PSRLW,
831 X86_INS_PSUBB,
832 X86_INS_PSUBD,
833 X86_INS_PSUBQ,
834 X86_INS_PSUBSB,
835 X86_INS_PSUBSW,
836 X86_INS_PSUBUSB,
837 X86_INS_PSUBUSW,
838 X86_INS_PSUBW,
839 X86_INS_PUNPCKHBW,
840 X86_INS_PUNPCKHDQ,
841 X86_INS_PUNPCKHWD,
842 X86_INS_PUNPCKLBW,
843 X86_INS_PUNPCKLDQ,
844 X86_INS_PUNPCKLWD,
845 X86_INS_PXOR,
846 X86_INS_MONITORX,
847 X86_INS_MONITOR,
848 X86_INS_MONTMUL,
849 X86_INS_MOV,
850 X86_INS_MOVABS,
851 X86_INS_MOVAPD,
852 X86_INS_MOVAPS,
853 X86_INS_MOVBE,
854 X86_INS_MOVDDUP,
855 X86_INS_MOVDIR64B,
856 X86_INS_MOVDIRI,
857 X86_INS_MOVDQA,
858 X86_INS_MOVDQU,
859 X86_INS_MOVHLPS,
860 X86_INS_MOVHPD,
861 X86_INS_MOVHPS,
862 X86_INS_MOVLHPS,
863 X86_INS_MOVLPD,
864 X86_INS_MOVLPS,
865 X86_INS_MOVMSKPD,
866 X86_INS_MOVMSKPS,
867 X86_INS_MOVNTDQA,
868 X86_INS_MOVNTDQ,
869 X86_INS_MOVNTI,
870 X86_INS_MOVNTPD,
871 X86_INS_MOVNTPS,
872 X86_INS_MOVNTSD,
873 X86_INS_MOVNTSS,
874 X86_INS_MOVSB,
875 X86_INS_MOVSD,
876 X86_INS_MOVSHDUP,
877 X86_INS_MOVSLDUP,
878 X86_INS_MOVSQ,
879 X86_INS_MOVSS,
880 X86_INS_MOVSW,
881 X86_INS_MOVSX,
882 X86_INS_MOVSXD,
883 X86_INS_MOVUPD,
884 X86_INS_MOVUPS,
885 X86_INS_MOVZX,
886 X86_INS_MPSADBW,
887 X86_INS_MUL,
888 X86_INS_MULPD,
889 X86_INS_MULPS,
890 X86_INS_MULSD,
891 X86_INS_MULSS,
892 X86_INS_MULX,
893 X86_INS_FMUL,
894 X86_INS_FIMUL,
895 X86_INS_FMULP,
896 X86_INS_MWAITX,
897 X86_INS_MWAIT,
898 X86_INS_NEG,
899 X86_INS_NOP,
900 X86_INS_NOT,
901 X86_INS_OR,
902 X86_INS_ORPD,
903 X86_INS_ORPS,
904 X86_INS_OUT,
905 X86_INS_OUTSB,
906 X86_INS_OUTSD,
907 X86_INS_OUTSW,
908 X86_INS_PACKUSDW,
909 X86_INS_PAUSE,
910 X86_INS_PAVGUSB,
911 X86_INS_PBLENDVB,
912 X86_INS_PBLENDW,
913 X86_INS_PCLMULQDQ,
914 X86_INS_PCMPEQQ,
915 X86_INS_PCMPESTRI,
916 X86_INS_PCMPESTRM,
917 X86_INS_PCMPGTQ,
918 X86_INS_PCMPISTRI,
919 X86_INS_PCMPISTRM,
920 X86_INS_PCONFIG,
921 X86_INS_PDEP,
922 X86_INS_PEXT,
923 X86_INS_PEXTRB,
924 X86_INS_PEXTRD,
925 X86_INS_PEXTRQ,
926 X86_INS_PF2ID,
927 X86_INS_PF2IW,
928 X86_INS_PFACC,
929 X86_INS_PFADD,
930 X86_INS_PFCMPEQ,
931 X86_INS_PFCMPGE,
932 X86_INS_PFCMPGT,
933 X86_INS_PFMAX,
934 X86_INS_PFMIN,
935 X86_INS_PFMUL,
936 X86_INS_PFNACC,
937 X86_INS_PFPNACC,
938 X86_INS_PFRCPIT1,
939 X86_INS_PFRCPIT2,
940 X86_INS_PFRCP,
941 X86_INS_PFRSQIT1,
942 X86_INS_PFRSQRT,
943 X86_INS_PFSUBR,
944 X86_INS_PFSUB,
945 X86_INS_PHMINPOSUW,
946 X86_INS_PI2FD,
947 X86_INS_PI2FW,
948 X86_INS_PINSRB,
949 X86_INS_PINSRD,
950 X86_INS_PINSRQ,
951 X86_INS_PMAXSB,
952 X86_INS_PMAXSD,
953 X86_INS_PMAXUD,
954 X86_INS_PMAXUW,
955 X86_INS_PMINSB,
956 X86_INS_PMINSD,
957 X86_INS_PMINUD,
958 X86_INS_PMINUW,
959 X86_INS_PMOVSXBD,
960 X86_INS_PMOVSXBQ,
961 X86_INS_PMOVSXBW,
962 X86_INS_PMOVSXDQ,
963 X86_INS_PMOVSXWD,
964 X86_INS_PMOVSXWQ,
965 X86_INS_PMOVZXBD,
966 X86_INS_PMOVZXBQ,
967 X86_INS_PMOVZXBW,
968 X86_INS_PMOVZXDQ,
969 X86_INS_PMOVZXWD,
970 X86_INS_PMOVZXWQ,
971 X86_INS_PMULDQ,
972 X86_INS_PMULHRW,
973 X86_INS_PMULLD,
974 X86_INS_POP,
975 X86_INS_POPAW,
976 X86_INS_POPAL,
977 X86_INS_POPCNT,
978 X86_INS_POPF,
979 X86_INS_POPFD,
980 X86_INS_POPFQ,
981 X86_INS_PREFETCH,
982 X86_INS_PREFETCHNTA,
983 X86_INS_PREFETCHT0,
984 X86_INS_PREFETCHT1,
985 X86_INS_PREFETCHT2,
986 X86_INS_PREFETCHW,
987 X86_INS_PREFETCHWT1,
988 X86_INS_PSHUFD,
989 X86_INS_PSHUFHW,
990 X86_INS_PSHUFLW,
991 X86_INS_PSLLDQ,
992 X86_INS_PSRLDQ,
993 X86_INS_PSWAPD,
994 X86_INS_PTEST,
995 X86_INS_PTWRITE,
996 X86_INS_PUNPCKHQDQ,
997 X86_INS_PUNPCKLQDQ,
998 X86_INS_PUSH,
999 X86_INS_PUSHAW,
1000 X86_INS_PUSHAL,
1001 X86_INS_PUSHF,
1002 X86_INS_PUSHFD,
1003 X86_INS_PUSHFQ,
1004 X86_INS_RCL,
1005 X86_INS_RCPPS,
1006 X86_INS_RCPSS,
1007 X86_INS_RCR,
1008 X86_INS_RDFSBASE,
1009 X86_INS_RDGSBASE,
1010 X86_INS_RDMSR,
1011 X86_INS_RDPID,
1012 X86_INS_RDPKRU,
1013 X86_INS_RDPMC,
1014 X86_INS_RDRAND,
1015 X86_INS_RDSEED,
1016 X86_INS_RDSSPD,
1017 X86_INS_RDSSPQ,
1018 X86_INS_RDTSC,
1019 X86_INS_RDTSCP,
1020 X86_INS_REPNE,
1021 X86_INS_REP,
1022 X86_INS_RET,
1023 X86_INS_REX64,
1024 X86_INS_ROL,
1025 X86_INS_ROR,
1026 X86_INS_RORX,
1027 X86_INS_ROUNDPD,
1028 X86_INS_ROUNDPS,
1029 X86_INS_ROUNDSD,
1030 X86_INS_ROUNDSS,
1031 X86_INS_RSM,
1032 X86_INS_RSQRTPS,
1033 X86_INS_RSQRTSS,
1034 X86_INS_RSTORSSP,
1035 X86_INS_SAHF,
1036 X86_INS_SAL,
1037 X86_INS_SALC,
1038 X86_INS_SAR,
1039 X86_INS_SARX,
1040 X86_INS_SAVEPREVSSP,
1041 X86_INS_SBB,
1042 X86_INS_SCASB,
1043 X86_INS_SCASD,
1044 X86_INS_SCASQ,
1045 X86_INS_SCASW,
1046 X86_INS_SETAE,
1047 X86_INS_SETA,
1048 X86_INS_SETBE,
1049 X86_INS_SETB,
1050 X86_INS_SETE,
1051 X86_INS_SETGE,
1052 X86_INS_SETG,
1053 X86_INS_SETLE,
1054 X86_INS_SETL,
1055 X86_INS_SETNE,
1056 X86_INS_SETNO,
1057 X86_INS_SETNP,
1058 X86_INS_SETNS,
1059 X86_INS_SETO,
1060 X86_INS_SETP,
1061 X86_INS_SETSSBSY,
1062 X86_INS_SETS,
1063 X86_INS_SFENCE,
1064 X86_INS_SGDT,
1065 X86_INS_SHA1MSG1,
1066 X86_INS_SHA1MSG2,
1067 X86_INS_SHA1NEXTE,
1068 X86_INS_SHA1RNDS4,
1069 X86_INS_SHA256MSG1,
1070 X86_INS_SHA256MSG2,
1071 X86_INS_SHA256RNDS2,
1072 X86_INS_SHL,
1073 X86_INS_SHLD,
1074 X86_INS_SHLX,
1075 X86_INS_SHR,
1076 X86_INS_SHRD,
1077 X86_INS_SHRX,
1078 X86_INS_SHUFPD,
1079 X86_INS_SHUFPS,
1080 X86_INS_SIDT,
1081 X86_INS_FSIN,
1082 X86_INS_SKINIT,
1083 X86_INS_SLDT,
1084 X86_INS_SLWPCB,
1085 X86_INS_SMSW,
1086 X86_INS_SQRTPD,
1087 X86_INS_SQRTPS,
1088 X86_INS_SQRTSD,
1089 X86_INS_SQRTSS,
1090 X86_INS_FSQRT,
1091 X86_INS_STAC,
1092 X86_INS_STC,
1093 X86_INS_STD,
1094 X86_INS_STGI,
1095 X86_INS_STI,
1096 X86_INS_STMXCSR,
1097 X86_INS_STOSB,
1098 X86_INS_STOSD,
1099 X86_INS_STOSQ,
1100 X86_INS_STOSW,
1101 X86_INS_STR,
1102 X86_INS_FST,
1103 X86_INS_FSTP,
1104 X86_INS_SUB,
1105 X86_INS_SUBPD,
1106 X86_INS_SUBPS,
1107 X86_INS_FSUBR,
1108 X86_INS_FISUBR,
1109 X86_INS_FSUBRP,
1110 X86_INS_SUBSD,
1111 X86_INS_SUBSS,
1112 X86_INS_FSUB,
1113 X86_INS_FISUB,
1114 X86_INS_FSUBP,
1115 X86_INS_SWAPGS,
1116 X86_INS_SYSCALL,
1117 X86_INS_SYSENTER,
1118 X86_INS_SYSEXIT,
1119 X86_INS_SYSEXITQ,
1120 X86_INS_SYSRET,
1121 X86_INS_SYSRETQ,
1122 X86_INS_T1MSKC,
1123 X86_INS_TEST,
1124 X86_INS_TPAUSE,
1125 X86_INS_FTST,
1126 X86_INS_TZCNT,
1127 X86_INS_TZMSK,
1128 X86_INS_UCOMISD,
1129 X86_INS_UCOMISS,
1130 X86_INS_FUCOMPI,
1131 X86_INS_FUCOMI,
1132 X86_INS_FUCOMPP,
1133 X86_INS_FUCOMP,
1134 X86_INS_FUCOM,
1135 X86_INS_UD0,
1136 X86_INS_UD1,
1137 X86_INS_UD2,
1138 X86_INS_UMONITOR,
1139 X86_INS_UMWAIT,
1140 X86_INS_UNPCKHPD,
1141 X86_INS_UNPCKHPS,
1142 X86_INS_UNPCKLPD,
1143 X86_INS_UNPCKLPS,
1144 X86_INS_V4FMADDPS,
1145 X86_INS_V4FMADDSS,
1146 X86_INS_V4FNMADDPS,
1147 X86_INS_V4FNMADDSS,
1148 X86_INS_VADDPD,
1149 X86_INS_VADDPS,
1150 X86_INS_VADDSD,
1151 X86_INS_VADDSS,
1152 X86_INS_VADDSUBPD,
1153 X86_INS_VADDSUBPS,
1154 X86_INS_VAESDECLAST,
1155 X86_INS_VAESDEC,
1156 X86_INS_VAESENCLAST,
1157 X86_INS_VAESENC,
1158 X86_INS_VAESIMC,
1159 X86_INS_VAESKEYGENASSIST,
1160 X86_INS_VALIGND,
1161 X86_INS_VALIGNQ,
1162 X86_INS_VANDNPD,
1163 X86_INS_VANDNPS,
1164 X86_INS_VANDPD,
1165 X86_INS_VANDPS,
1166 X86_INS_VBLENDMPD,
1167 X86_INS_VBLENDMPS,
1168 X86_INS_VBLENDPD,
1169 X86_INS_VBLENDPS,
1170 X86_INS_VBLENDVPD,
1171 X86_INS_VBLENDVPS,
1172 X86_INS_VBROADCASTF128,
1173 X86_INS_VBROADCASTF32X2,
1174 X86_INS_VBROADCASTF32X4,
1175 X86_INS_VBROADCASTF32X8,
1176 X86_INS_VBROADCASTF64X2,
1177 X86_INS_VBROADCASTF64X4,
1178 X86_INS_VBROADCASTI128,
1179 X86_INS_VBROADCASTI32X2,
1180 X86_INS_VBROADCASTI32X4,
1181 X86_INS_VBROADCASTI32X8,
1182 X86_INS_VBROADCASTI64X2,
1183 X86_INS_VBROADCASTI64X4,
1184 X86_INS_VBROADCASTSD,
1185 X86_INS_VBROADCASTSS,
1186 X86_INS_VCMP,
1187 X86_INS_VCMPPD,
1188 X86_INS_VCMPPS,
1189 X86_INS_VCMPSD,
1190 X86_INS_VCMPSS,
1191 X86_INS_VCOMISD,
1192 X86_INS_VCOMISS,
1193 X86_INS_VCOMPRESSPD,
1194 X86_INS_VCOMPRESSPS,
1195 X86_INS_VCVTDQ2PD,
1196 X86_INS_VCVTDQ2PS,
1197 X86_INS_VCVTPD2DQ,
1198 X86_INS_VCVTPD2PS,
1199 X86_INS_VCVTPD2QQ,
1200 X86_INS_VCVTPD2UDQ,
1201 X86_INS_VCVTPD2UQQ,
1202 X86_INS_VCVTPH2PS,
1203 X86_INS_VCVTPS2DQ,
1204 X86_INS_VCVTPS2PD,
1205 X86_INS_VCVTPS2PH,
1206 X86_INS_VCVTPS2QQ,
1207 X86_INS_VCVTPS2UDQ,
1208 X86_INS_VCVTPS2UQQ,
1209 X86_INS_VCVTQQ2PD,
1210 X86_INS_VCVTQQ2PS,
1211 X86_INS_VCVTSD2SI,
1212 X86_INS_VCVTSD2SS,
1213 X86_INS_VCVTSD2USI,
1214 X86_INS_VCVTSI2SD,
1215 X86_INS_VCVTSI2SS,
1216 X86_INS_VCVTSS2SD,
1217 X86_INS_VCVTSS2SI,
1218 X86_INS_VCVTSS2USI,
1219 X86_INS_VCVTTPD2DQ,
1220 X86_INS_VCVTTPD2QQ,
1221 X86_INS_VCVTTPD2UDQ,
1222 X86_INS_VCVTTPD2UQQ,
1223 X86_INS_VCVTTPS2DQ,
1224 X86_INS_VCVTTPS2QQ,
1225 X86_INS_VCVTTPS2UDQ,
1226 X86_INS_VCVTTPS2UQQ,
1227 X86_INS_VCVTTSD2SI,
1228 X86_INS_VCVTTSD2USI,
1229 X86_INS_VCVTTSS2SI,
1230 X86_INS_VCVTTSS2USI,
1231 X86_INS_VCVTUDQ2PD,
1232 X86_INS_VCVTUDQ2PS,
1233 X86_INS_VCVTUQQ2PD,
1234 X86_INS_VCVTUQQ2PS,
1235 X86_INS_VCVTUSI2SD,
1236 X86_INS_VCVTUSI2SS,
1237 X86_INS_VDBPSADBW,
1238 X86_INS_VDIVPD,
1239 X86_INS_VDIVPS,
1240 X86_INS_VDIVSD,
1241 X86_INS_VDIVSS,
1242 X86_INS_VDPPD,
1243 X86_INS_VDPPS,
1244 X86_INS_VERR,
1245 X86_INS_VERW,
1246 X86_INS_VEXP2PD,
1247 X86_INS_VEXP2PS,
1248 X86_INS_VEXPANDPD,
1249 X86_INS_VEXPANDPS,
1250 X86_INS_VEXTRACTF128,
1251 X86_INS_VEXTRACTF32X4,
1252 X86_INS_VEXTRACTF32X8,
1253 X86_INS_VEXTRACTF64X2,
1254 X86_INS_VEXTRACTF64X4,
1255 X86_INS_VEXTRACTI128,
1256 X86_INS_VEXTRACTI32X4,
1257 X86_INS_VEXTRACTI32X8,
1258 X86_INS_VEXTRACTI64X2,
1259 X86_INS_VEXTRACTI64X4,
1260 X86_INS_VEXTRACTPS,
1261 X86_INS_VFIXUPIMMPD,
1262 X86_INS_VFIXUPIMMPS,
1263 X86_INS_VFIXUPIMMSD,
1264 X86_INS_VFIXUPIMMSS,
1265 X86_INS_VFMADD132PD,
1266 X86_INS_VFMADD132PS,
1267 X86_INS_VFMADD132SD,
1268 X86_INS_VFMADD132SS,
1269 X86_INS_VFMADD213PD,
1270 X86_INS_VFMADD213PS,
1271 X86_INS_VFMADD213SD,
1272 X86_INS_VFMADD213SS,
1273 X86_INS_VFMADD231PD,
1274 X86_INS_VFMADD231PS,
1275 X86_INS_VFMADD231SD,
1276 X86_INS_VFMADD231SS,
1277 X86_INS_VFMADDPD,
1278 X86_INS_VFMADDPS,
1279 X86_INS_VFMADDSD,
1280 X86_INS_VFMADDSS,
1281 X86_INS_VFMADDSUB132PD,
1282 X86_INS_VFMADDSUB132PS,
1283 X86_INS_VFMADDSUB213PD,
1284 X86_INS_VFMADDSUB213PS,
1285 X86_INS_VFMADDSUB231PD,
1286 X86_INS_VFMADDSUB231PS,
1287 X86_INS_VFMADDSUBPD,
1288 X86_INS_VFMADDSUBPS,
1289 X86_INS_VFMSUB132PD,
1290 X86_INS_VFMSUB132PS,
1291 X86_INS_VFMSUB132SD,
1292 X86_INS_VFMSUB132SS,
1293 X86_INS_VFMSUB213PD,
1294 X86_INS_VFMSUB213PS,
1295 X86_INS_VFMSUB213SD,
1296 X86_INS_VFMSUB213SS,
1297 X86_INS_VFMSUB231PD,
1298 X86_INS_VFMSUB231PS,
1299 X86_INS_VFMSUB231SD,
1300 X86_INS_VFMSUB231SS,
1301 X86_INS_VFMSUBADD132PD,
1302 X86_INS_VFMSUBADD132PS,
1303 X86_INS_VFMSUBADD213PD,
1304 X86_INS_VFMSUBADD213PS,
1305 X86_INS_VFMSUBADD231PD,
1306 X86_INS_VFMSUBADD231PS,
1307 X86_INS_VFMSUBADDPD,
1308 X86_INS_VFMSUBADDPS,
1309 X86_INS_VFMSUBPD,
1310 X86_INS_VFMSUBPS,
1311 X86_INS_VFMSUBSD,
1312 X86_INS_VFMSUBSS,
1313 X86_INS_VFNMADD132PD,
1314 X86_INS_VFNMADD132PS,
1315 X86_INS_VFNMADD132SD,
1316 X86_INS_VFNMADD132SS,
1317 X86_INS_VFNMADD213PD,
1318 X86_INS_VFNMADD213PS,
1319 X86_INS_VFNMADD213SD,
1320 X86_INS_VFNMADD213SS,
1321 X86_INS_VFNMADD231PD,
1322 X86_INS_VFNMADD231PS,
1323 X86_INS_VFNMADD231SD,
1324 X86_INS_VFNMADD231SS,
1325 X86_INS_VFNMADDPD,
1326 X86_INS_VFNMADDPS,
1327 X86_INS_VFNMADDSD,
1328 X86_INS_VFNMADDSS,
1329 X86_INS_VFNMSUB132PD,
1330 X86_INS_VFNMSUB132PS,
1331 X86_INS_VFNMSUB132SD,
1332 X86_INS_VFNMSUB132SS,
1333 X86_INS_VFNMSUB213PD,
1334 X86_INS_VFNMSUB213PS,
1335 X86_INS_VFNMSUB213SD,
1336 X86_INS_VFNMSUB213SS,
1337 X86_INS_VFNMSUB231PD,
1338 X86_INS_VFNMSUB231PS,
1339 X86_INS_VFNMSUB231SD,
1340 X86_INS_VFNMSUB231SS,
1341 X86_INS_VFNMSUBPD,
1342 X86_INS_VFNMSUBPS,
1343 X86_INS_VFNMSUBSD,
1344 X86_INS_VFNMSUBSS,
1345 X86_INS_VFPCLASSPD,
1346 X86_INS_VFPCLASSPS,
1347 X86_INS_VFPCLASSSD,
1348 X86_INS_VFPCLASSSS,
1349 X86_INS_VFRCZPD,
1350 X86_INS_VFRCZPS,
1351 X86_INS_VFRCZSD,
1352 X86_INS_VFRCZSS,
1353 X86_INS_VGATHERDPD,
1354 X86_INS_VGATHERDPS,
1355 X86_INS_VGATHERPF0DPD,
1356 X86_INS_VGATHERPF0DPS,
1357 X86_INS_VGATHERPF0QPD,
1358 X86_INS_VGATHERPF0QPS,
1359 X86_INS_VGATHERPF1DPD,
1360 X86_INS_VGATHERPF1DPS,
1361 X86_INS_VGATHERPF1QPD,
1362 X86_INS_VGATHERPF1QPS,
1363 X86_INS_VGATHERQPD,
1364 X86_INS_VGATHERQPS,
1365 X86_INS_VGETEXPPD,
1366 X86_INS_VGETEXPPS,
1367 X86_INS_VGETEXPSD,
1368 X86_INS_VGETEXPSS,
1369 X86_INS_VGETMANTPD,
1370 X86_INS_VGETMANTPS,
1371 X86_INS_VGETMANTSD,
1372 X86_INS_VGETMANTSS,
1373 X86_INS_VGF2P8AFFINEINVQB,
1374 X86_INS_VGF2P8AFFINEQB,
1375 X86_INS_VGF2P8MULB,
1376 X86_INS_VHADDPD,
1377 X86_INS_VHADDPS,
1378 X86_INS_VHSUBPD,
1379 X86_INS_VHSUBPS,
1380 X86_INS_VINSERTF128,
1381 X86_INS_VINSERTF32X4,
1382 X86_INS_VINSERTF32X8,
1383 X86_INS_VINSERTF64X2,
1384 X86_INS_VINSERTF64X4,
1385 X86_INS_VINSERTI128,
1386 X86_INS_VINSERTI32X4,
1387 X86_INS_VINSERTI32X8,
1388 X86_INS_VINSERTI64X2,
1389 X86_INS_VINSERTI64X4,
1390 X86_INS_VINSERTPS,
1391 X86_INS_VLDDQU,
1392 X86_INS_VLDMXCSR,
1393 X86_INS_VMASKMOVDQU,
1394 X86_INS_VMASKMOVPD,
1395 X86_INS_VMASKMOVPS,
1396 X86_INS_VMAXPD,
1397 X86_INS_VMAXPS,
1398 X86_INS_VMAXSD,
1399 X86_INS_VMAXSS,
1400 X86_INS_VMCALL,
1401 X86_INS_VMCLEAR,
1402 X86_INS_VMFUNC,
1403 X86_INS_VMINPD,
1404 X86_INS_VMINPS,
1405 X86_INS_VMINSD,
1406 X86_INS_VMINSS,
1407 X86_INS_VMLAUNCH,
1408 X86_INS_VMLOAD,
1409 X86_INS_VMMCALL,
1410 X86_INS_VMOVQ,
1411 X86_INS_VMOVAPD,
1412 X86_INS_VMOVAPS,
1413 X86_INS_VMOVDDUP,
1414 X86_INS_VMOVD,
1415 X86_INS_VMOVDQA32,
1416 X86_INS_VMOVDQA64,
1417 X86_INS_VMOVDQA,
1418 X86_INS_VMOVDQU16,
1419 X86_INS_VMOVDQU32,
1420 X86_INS_VMOVDQU64,
1421 X86_INS_VMOVDQU8,
1422 X86_INS_VMOVDQU,
1423 X86_INS_VMOVHLPS,
1424 X86_INS_VMOVHPD,
1425 X86_INS_VMOVHPS,
1426 X86_INS_VMOVLHPS,
1427 X86_INS_VMOVLPD,
1428 X86_INS_VMOVLPS,
1429 X86_INS_VMOVMSKPD,
1430 X86_INS_VMOVMSKPS,
1431 X86_INS_VMOVNTDQA,
1432 X86_INS_VMOVNTDQ,
1433 X86_INS_VMOVNTPD,
1434 X86_INS_VMOVNTPS,
1435 X86_INS_VMOVSD,
1436 X86_INS_VMOVSHDUP,
1437 X86_INS_VMOVSLDUP,
1438 X86_INS_VMOVSS,
1439 X86_INS_VMOVUPD,
1440 X86_INS_VMOVUPS,
1441 X86_INS_VMPSADBW,
1442 X86_INS_VMPTRLD,
1443 X86_INS_VMPTRST,
1444 X86_INS_VMREAD,
1445 X86_INS_VMRESUME,
1446 X86_INS_VMRUN,
1447 X86_INS_VMSAVE,
1448 X86_INS_VMULPD,
1449 X86_INS_VMULPS,
1450 X86_INS_VMULSD,
1451 X86_INS_VMULSS,
1452 X86_INS_VMWRITE,
1453 X86_INS_VMXOFF,
1454 X86_INS_VMXON,
1455 X86_INS_VORPD,
1456 X86_INS_VORPS,
1457 X86_INS_VP4DPWSSDS,
1458 X86_INS_VP4DPWSSD,
1459 X86_INS_VPABSB,
1460 X86_INS_VPABSD,
1461 X86_INS_VPABSQ,
1462 X86_INS_VPABSW,
1463 X86_INS_VPACKSSDW,
1464 X86_INS_VPACKSSWB,
1465 X86_INS_VPACKUSDW,
1466 X86_INS_VPACKUSWB,
1467 X86_INS_VPADDB,
1468 X86_INS_VPADDD,
1469 X86_INS_VPADDQ,
1470 X86_INS_VPADDSB,
1471 X86_INS_VPADDSW,
1472 X86_INS_VPADDUSB,
1473 X86_INS_VPADDUSW,
1474 X86_INS_VPADDW,
1475 X86_INS_VPALIGNR,
1476 X86_INS_VPANDD,
1477 X86_INS_VPANDND,
1478 X86_INS_VPANDNQ,
1479 X86_INS_VPANDN,
1480 X86_INS_VPANDQ,
1481 X86_INS_VPAND,
1482 X86_INS_VPAVGB,
1483 X86_INS_VPAVGW,
1484 X86_INS_VPBLENDD,
1485 X86_INS_VPBLENDMB,
1486 X86_INS_VPBLENDMD,
1487 X86_INS_VPBLENDMQ,
1488 X86_INS_VPBLENDMW,
1489 X86_INS_VPBLENDVB,
1490 X86_INS_VPBLENDW,
1491 X86_INS_VPBROADCASTB,
1492 X86_INS_VPBROADCASTD,
1493 X86_INS_VPBROADCASTMB2Q,
1494 X86_INS_VPBROADCASTMW2D,
1495 X86_INS_VPBROADCASTQ,
1496 X86_INS_VPBROADCASTW,
1497 X86_INS_VPCLMULQDQ,
1498 X86_INS_VPCMOV,
1499 X86_INS_VPCMP,
1500 X86_INS_VPCMPB,
1501 X86_INS_VPCMPD,
1502 X86_INS_VPCMPEQB,
1503 X86_INS_VPCMPEQD,
1504 X86_INS_VPCMPEQQ,
1505 X86_INS_VPCMPEQW,
1506 X86_INS_VPCMPESTRI,
1507 X86_INS_VPCMPESTRM,
1508 X86_INS_VPCMPGTB,
1509 X86_INS_VPCMPGTD,
1510 X86_INS_VPCMPGTQ,
1511 X86_INS_VPCMPGTW,
1512 X86_INS_VPCMPISTRI,
1513 X86_INS_VPCMPISTRM,
1514 X86_INS_VPCMPQ,
1515 X86_INS_VPCMPUB,
1516 X86_INS_VPCMPUD,
1517 X86_INS_VPCMPUQ,
1518 X86_INS_VPCMPUW,
1519 X86_INS_VPCMPW,
1520 X86_INS_VPCOM,
1521 X86_INS_VPCOMB,
1522 X86_INS_VPCOMD,
1523 X86_INS_VPCOMPRESSB,
1524 X86_INS_VPCOMPRESSD,
1525 X86_INS_VPCOMPRESSQ,
1526 X86_INS_VPCOMPRESSW,
1527 X86_INS_VPCOMQ,
1528 X86_INS_VPCOMUB,
1529 X86_INS_VPCOMUD,
1530 X86_INS_VPCOMUQ,
1531 X86_INS_VPCOMUW,
1532 X86_INS_VPCOMW,
1533 X86_INS_VPCONFLICTD,
1534 X86_INS_VPCONFLICTQ,
1535 X86_INS_VPDPBUSDS,
1536 X86_INS_VPDPBUSD,
1537 X86_INS_VPDPWSSDS,
1538 X86_INS_VPDPWSSD,
1539 X86_INS_VPERM2F128,
1540 X86_INS_VPERM2I128,
1541 X86_INS_VPERMB,
1542 X86_INS_VPERMD,
1543 X86_INS_VPERMI2B,
1544 X86_INS_VPERMI2D,
1545 X86_INS_VPERMI2PD,
1546 X86_INS_VPERMI2PS,
1547 X86_INS_VPERMI2Q,
1548 X86_INS_VPERMI2W,
1549 X86_INS_VPERMIL2PD,
1550 X86_INS_VPERMILPD,
1551 X86_INS_VPERMIL2PS,
1552 X86_INS_VPERMILPS,
1553 X86_INS_VPERMPD,
1554 X86_INS_VPERMPS,
1555 X86_INS_VPERMQ,
1556 X86_INS_VPERMT2B,
1557 X86_INS_VPERMT2D,
1558 X86_INS_VPERMT2PD,
1559 X86_INS_VPERMT2PS,
1560 X86_INS_VPERMT2Q,
1561 X86_INS_VPERMT2W,
1562 X86_INS_VPERMW,
1563 X86_INS_VPEXPANDB,
1564 X86_INS_VPEXPANDD,
1565 X86_INS_VPEXPANDQ,
1566 X86_INS_VPEXPANDW,
1567 X86_INS_VPEXTRB,
1568 X86_INS_VPEXTRD,
1569 X86_INS_VPEXTRQ,
1570 X86_INS_VPEXTRW,
1571 X86_INS_VPGATHERDD,
1572 X86_INS_VPGATHERDQ,
1573 X86_INS_VPGATHERQD,
1574 X86_INS_VPGATHERQQ,
1575 X86_INS_VPHADDBD,
1576 X86_INS_VPHADDBQ,
1577 X86_INS_VPHADDBW,
1578 X86_INS_VPHADDDQ,
1579 X86_INS_VPHADDD,
1580 X86_INS_VPHADDSW,
1581 X86_INS_VPHADDUBD,
1582 X86_INS_VPHADDUBQ,
1583 X86_INS_VPHADDUBW,
1584 X86_INS_VPHADDUDQ,
1585 X86_INS_VPHADDUWD,
1586 X86_INS_VPHADDUWQ,
1587 X86_INS_VPHADDWD,
1588 X86_INS_VPHADDWQ,
1589 X86_INS_VPHADDW,
1590 X86_INS_VPHMINPOSUW,
1591 X86_INS_VPHSUBBW,
1592 X86_INS_VPHSUBDQ,
1593 X86_INS_VPHSUBD,
1594 X86_INS_VPHSUBSW,
1595 X86_INS_VPHSUBWD,
1596 X86_INS_VPHSUBW,
1597 X86_INS_VPINSRB,
1598 X86_INS_VPINSRD,
1599 X86_INS_VPINSRQ,
1600 X86_INS_VPINSRW,
1601 X86_INS_VPLZCNTD,
1602 X86_INS_VPLZCNTQ,
1603 X86_INS_VPMACSDD,
1604 X86_INS_VPMACSDQH,
1605 X86_INS_VPMACSDQL,
1606 X86_INS_VPMACSSDD,
1607 X86_INS_VPMACSSDQH,
1608 X86_INS_VPMACSSDQL,
1609 X86_INS_VPMACSSWD,
1610 X86_INS_VPMACSSWW,
1611 X86_INS_VPMACSWD,
1612 X86_INS_VPMACSWW,
1613 X86_INS_VPMADCSSWD,
1614 X86_INS_VPMADCSWD,
1615 X86_INS_VPMADD52HUQ,
1616 X86_INS_VPMADD52LUQ,
1617 X86_INS_VPMADDUBSW,
1618 X86_INS_VPMADDWD,
1619 X86_INS_VPMASKMOVD,
1620 X86_INS_VPMASKMOVQ,
1621 X86_INS_VPMAXSB,
1622 X86_INS_VPMAXSD,
1623 X86_INS_VPMAXSQ,
1624 X86_INS_VPMAXSW,
1625 X86_INS_VPMAXUB,
1626 X86_INS_VPMAXUD,
1627 X86_INS_VPMAXUQ,
1628 X86_INS_VPMAXUW,
1629 X86_INS_VPMINSB,
1630 X86_INS_VPMINSD,
1631 X86_INS_VPMINSQ,
1632 X86_INS_VPMINSW,
1633 X86_INS_VPMINUB,
1634 X86_INS_VPMINUD,
1635 X86_INS_VPMINUQ,
1636 X86_INS_VPMINUW,
1637 X86_INS_VPMOVB2M,
1638 X86_INS_VPMOVD2M,
1639 X86_INS_VPMOVDB,
1640 X86_INS_VPMOVDW,
1641 X86_INS_VPMOVM2B,
1642 X86_INS_VPMOVM2D,
1643 X86_INS_VPMOVM2Q,
1644 X86_INS_VPMOVM2W,
1645 X86_INS_VPMOVMSKB,
1646 X86_INS_VPMOVQ2M,
1647 X86_INS_VPMOVQB,
1648 X86_INS_VPMOVQD,
1649 X86_INS_VPMOVQW,
1650 X86_INS_VPMOVSDB,
1651 X86_INS_VPMOVSDW,
1652 X86_INS_VPMOVSQB,
1653 X86_INS_VPMOVSQD,
1654 X86_INS_VPMOVSQW,
1655 X86_INS_VPMOVSWB,
1656 X86_INS_VPMOVSXBD,
1657 X86_INS_VPMOVSXBQ,
1658 X86_INS_VPMOVSXBW,
1659 X86_INS_VPMOVSXDQ,
1660 X86_INS_VPMOVSXWD,
1661 X86_INS_VPMOVSXWQ,
1662 X86_INS_VPMOVUSDB,
1663 X86_INS_VPMOVUSDW,
1664 X86_INS_VPMOVUSQB,
1665 X86_INS_VPMOVUSQD,
1666 X86_INS_VPMOVUSQW,
1667 X86_INS_VPMOVUSWB,
1668 X86_INS_VPMOVW2M,
1669 X86_INS_VPMOVWB,
1670 X86_INS_VPMOVZXBD,
1671 X86_INS_VPMOVZXBQ,
1672 X86_INS_VPMOVZXBW,
1673 X86_INS_VPMOVZXDQ,
1674 X86_INS_VPMOVZXWD,
1675 X86_INS_VPMOVZXWQ,
1676 X86_INS_VPMULDQ,
1677 X86_INS_VPMULHRSW,
1678 X86_INS_VPMULHUW,
1679 X86_INS_VPMULHW,
1680 X86_INS_VPMULLD,
1681 X86_INS_VPMULLQ,
1682 X86_INS_VPMULLW,
1683 X86_INS_VPMULTISHIFTQB,
1684 X86_INS_VPMULUDQ,
1685 X86_INS_VPOPCNTB,
1686 X86_INS_VPOPCNTD,
1687 X86_INS_VPOPCNTQ,
1688 X86_INS_VPOPCNTW,
1689 X86_INS_VPORD,
1690 X86_INS_VPORQ,
1691 X86_INS_VPOR,
1692 X86_INS_VPPERM,
1693 X86_INS_VPROLD,
1694 X86_INS_VPROLQ,
1695 X86_INS_VPROLVD,
1696 X86_INS_VPROLVQ,
1697 X86_INS_VPRORD,
1698 X86_INS_VPRORQ,
1699 X86_INS_VPRORVD,
1700 X86_INS_VPRORVQ,
1701 X86_INS_VPROTB,
1702 X86_INS_VPROTD,
1703 X86_INS_VPROTQ,
1704 X86_INS_VPROTW,
1705 X86_INS_VPSADBW,
1706 X86_INS_VPSCATTERDD,
1707 X86_INS_VPSCATTERDQ,
1708 X86_INS_VPSCATTERQD,
1709 X86_INS_VPSCATTERQQ,
1710 X86_INS_VPSHAB,
1711 X86_INS_VPSHAD,
1712 X86_INS_VPSHAQ,
1713 X86_INS_VPSHAW,
1714 X86_INS_VPSHLB,
1715 X86_INS_VPSHLDD,
1716 X86_INS_VPSHLDQ,
1717 X86_INS_VPSHLDVD,
1718 X86_INS_VPSHLDVQ,
1719 X86_INS_VPSHLDVW,
1720 X86_INS_VPSHLDW,
1721 X86_INS_VPSHLD,
1722 X86_INS_VPSHLQ,
1723 X86_INS_VPSHLW,
1724 X86_INS_VPSHRDD,
1725 X86_INS_VPSHRDQ,
1726 X86_INS_VPSHRDVD,
1727 X86_INS_VPSHRDVQ,
1728 X86_INS_VPSHRDVW,
1729 X86_INS_VPSHRDW,
1730 X86_INS_VPSHUFBITQMB,
1731 X86_INS_VPSHUFB,
1732 X86_INS_VPSHUFD,
1733 X86_INS_VPSHUFHW,
1734 X86_INS_VPSHUFLW,
1735 X86_INS_VPSIGNB,
1736 X86_INS_VPSIGND,
1737 X86_INS_VPSIGNW,
1738 X86_INS_VPSLLDQ,
1739 X86_INS_VPSLLD,
1740 X86_INS_VPSLLQ,
1741 X86_INS_VPSLLVD,
1742 X86_INS_VPSLLVQ,
1743 X86_INS_VPSLLVW,
1744 X86_INS_VPSLLW,
1745 X86_INS_VPSRAD,
1746 X86_INS_VPSRAQ,
1747 X86_INS_VPSRAVD,
1748 X86_INS_VPSRAVQ,
1749 X86_INS_VPSRAVW,
1750 X86_INS_VPSRAW,
1751 X86_INS_VPSRLDQ,
1752 X86_INS_VPSRLD,
1753 X86_INS_VPSRLQ,
1754 X86_INS_VPSRLVD,
1755 X86_INS_VPSRLVQ,
1756 X86_INS_VPSRLVW,
1757 X86_INS_VPSRLW,
1758 X86_INS_VPSUBB,
1759 X86_INS_VPSUBD,
1760 X86_INS_VPSUBQ,
1761 X86_INS_VPSUBSB,
1762 X86_INS_VPSUBSW,
1763 X86_INS_VPSUBUSB,
1764 X86_INS_VPSUBUSW,
1765 X86_INS_VPSUBW,
1766 X86_INS_VPTERNLOGD,
1767 X86_INS_VPTERNLOGQ,
1768 X86_INS_VPTESTMB,
1769 X86_INS_VPTESTMD,
1770 X86_INS_VPTESTMQ,
1771 X86_INS_VPTESTMW,
1772 X86_INS_VPTESTNMB,
1773 X86_INS_VPTESTNMD,
1774 X86_INS_VPTESTNMQ,
1775 X86_INS_VPTESTNMW,
1776 X86_INS_VPTEST,
1777 X86_INS_VPUNPCKHBW,
1778 X86_INS_VPUNPCKHDQ,
1779 X86_INS_VPUNPCKHQDQ,
1780 X86_INS_VPUNPCKHWD,
1781 X86_INS_VPUNPCKLBW,
1782 X86_INS_VPUNPCKLDQ,
1783 X86_INS_VPUNPCKLQDQ,
1784 X86_INS_VPUNPCKLWD,
1785 X86_INS_VPXORD,
1786 X86_INS_VPXORQ,
1787 X86_INS_VPXOR,
1788 X86_INS_VRANGEPD,
1789 X86_INS_VRANGEPS,
1790 X86_INS_VRANGESD,
1791 X86_INS_VRANGESS,
1792 X86_INS_VRCP14PD,
1793 X86_INS_VRCP14PS,
1794 X86_INS_VRCP14SD,
1795 X86_INS_VRCP14SS,
1796 X86_INS_VRCP28PD,
1797 X86_INS_VRCP28PS,
1798 X86_INS_VRCP28SD,
1799 X86_INS_VRCP28SS,
1800 X86_INS_VRCPPS,
1801 X86_INS_VRCPSS,
1802 X86_INS_VREDUCEPD,
1803 X86_INS_VREDUCEPS,
1804 X86_INS_VREDUCESD,
1805 X86_INS_VREDUCESS,
1806 X86_INS_VRNDSCALEPD,
1807 X86_INS_VRNDSCALEPS,
1808 X86_INS_VRNDSCALESD,
1809 X86_INS_VRNDSCALESS,
1810 X86_INS_VROUNDPD,
1811 X86_INS_VROUNDPS,
1812 X86_INS_VROUNDSD,
1813 X86_INS_VROUNDSS,
1814 X86_INS_VRSQRT14PD,
1815 X86_INS_VRSQRT14PS,
1816 X86_INS_VRSQRT14SD,
1817 X86_INS_VRSQRT14SS,
1818 X86_INS_VRSQRT28PD,
1819 X86_INS_VRSQRT28PS,
1820 X86_INS_VRSQRT28SD,
1821 X86_INS_VRSQRT28SS,
1822 X86_INS_VRSQRTPS,
1823 X86_INS_VRSQRTSS,
1824 X86_INS_VSCALEFPD,
1825 X86_INS_VSCALEFPS,
1826 X86_INS_VSCALEFSD,
1827 X86_INS_VSCALEFSS,
1828 X86_INS_VSCATTERDPD,
1829 X86_INS_VSCATTERDPS,
1830 X86_INS_VSCATTERPF0DPD,
1831 X86_INS_VSCATTERPF0DPS,
1832 X86_INS_VSCATTERPF0QPD,
1833 X86_INS_VSCATTERPF0QPS,
1834 X86_INS_VSCATTERPF1DPD,
1835 X86_INS_VSCATTERPF1DPS,
1836 X86_INS_VSCATTERPF1QPD,
1837 X86_INS_VSCATTERPF1QPS,
1838 X86_INS_VSCATTERQPD,
1839 X86_INS_VSCATTERQPS,
1840 X86_INS_VSHUFF32X4,
1841 X86_INS_VSHUFF64X2,
1842 X86_INS_VSHUFI32X4,
1843 X86_INS_VSHUFI64X2,
1844 X86_INS_VSHUFPD,
1845 X86_INS_VSHUFPS,
1846 X86_INS_VSQRTPD,
1847 X86_INS_VSQRTPS,
1848 X86_INS_VSQRTSD,
1849 X86_INS_VSQRTSS,
1850 X86_INS_VSTMXCSR,
1851 X86_INS_VSUBPD,
1852 X86_INS_VSUBPS,
1853 X86_INS_VSUBSD,
1854 X86_INS_VSUBSS,
1855 X86_INS_VTESTPD,
1856 X86_INS_VTESTPS,
1857 X86_INS_VUCOMISD,
1858 X86_INS_VUCOMISS,
1859 X86_INS_VUNPCKHPD,
1860 X86_INS_VUNPCKHPS,
1861 X86_INS_VUNPCKLPD,
1862 X86_INS_VUNPCKLPS,
1863 X86_INS_VXORPD,
1864 X86_INS_VXORPS,
1865 X86_INS_VZEROALL,
1866 X86_INS_VZEROUPPER,
1867 X86_INS_WAIT,
1868 X86_INS_WBINVD,
1869 X86_INS_WBNOINVD,
1870 X86_INS_WRFSBASE,
1871 X86_INS_WRGSBASE,
1872 X86_INS_WRMSR,
1873 X86_INS_WRPKRU,
1874 X86_INS_WRSSD,
1875 X86_INS_WRSSQ,
1876 X86_INS_WRUSSD,
1877 X86_INS_WRUSSQ,
1878 X86_INS_XABORT,
1879 X86_INS_XACQUIRE,
1880 X86_INS_XADD,
1881 X86_INS_XBEGIN,
1882 X86_INS_XCHG,
1883 X86_INS_FXCH,
1884 X86_INS_XCRYPTCBC,
1885 X86_INS_XCRYPTCFB,
1886 X86_INS_XCRYPTCTR,
1887 X86_INS_XCRYPTECB,
1888 X86_INS_XCRYPTOFB,
1889 X86_INS_XEND,
1890 X86_INS_XGETBV,
1891 X86_INS_XLATB,
1892 X86_INS_XOR,
1893 X86_INS_XORPD,
1894 X86_INS_XORPS,
1895 X86_INS_XRELEASE,
1896 X86_INS_XRSTOR,
1897 X86_INS_XRSTOR64,
1898 X86_INS_XRSTORS,
1899 X86_INS_XRSTORS64,
1900 X86_INS_XSAVE,
1901 X86_INS_XSAVE64,
1902 X86_INS_XSAVEC,
1903 X86_INS_XSAVEC64,
1904 X86_INS_XSAVEOPT,
1905 X86_INS_XSAVEOPT64,
1906 X86_INS_XSAVES,
1907 X86_INS_XSAVES64,
1908 X86_INS_XSETBV,
1909 X86_INS_XSHA1,
1910 X86_INS_XSHA256,
1911 X86_INS_XSTORE,
1912 X86_INS_XTEST,
1913 
1914 X86_INS_ENDING, // mark the end of the list of insn
1915} x86_insn;
1916 
1917/// Group of X86 instructions
1918typedef enum x86_insn_group {
1919 X86_GRP_INVALID = 0, ///< = CS_GRP_INVALID
1920 
1921 // Generic groups
1922 // all jump instructions (conditional+direct+indirect jumps)
1923 X86_GRP_JUMP, ///< = CS_GRP_JUMP
1924 // all call instructions
1925 X86_GRP_CALL, ///< = CS_GRP_CALL
1926 // all return instructions
1927 X86_GRP_RET, ///< = CS_GRP_RET
1928 // all interrupt instructions (int+syscall)
1929 X86_GRP_INT, ///< = CS_GRP_INT
1930 // all interrupt return instructions
1931 X86_GRP_IRET, ///< = CS_GRP_IRET
1932 // all privileged instructions
1933 X86_GRP_PRIVILEGE, ///< = CS_GRP_PRIVILEGE
1934 // all relative branching instructions
1935 X86_GRP_BRANCH_RELATIVE, ///< = CS_GRP_BRANCH_RELATIVE
1936 
1937 // Architecture-specific groups
1938 X86_GRP_VM = 128, ///< all virtualization instructions (VT-x + AMD-V)
1939 X86_GRP_3DNOW,
1940 X86_GRP_AES,
1941 X86_GRP_ADX,
1942 X86_GRP_AVX,
1943 X86_GRP_AVX2,
1944 X86_GRP_AVX512,
1945 X86_GRP_BMI,
1946 X86_GRP_BMI2,
1947 X86_GRP_CMOV,
1948 X86_GRP_F16C,
1949 X86_GRP_FMA,
1950 X86_GRP_FMA4,
1951 X86_GRP_FSGSBASE,
1952 X86_GRP_HLE,
1953 X86_GRP_MMX,
1954 X86_GRP_MODE32,
1955 X86_GRP_MODE64,
1956 X86_GRP_RTM,
1957 X86_GRP_SHA,
1958 X86_GRP_SSE1,
1959 X86_GRP_SSE2,
1960 X86_GRP_SSE3,
1961 X86_GRP_SSE41,
1962 X86_GRP_SSE42,
1963 X86_GRP_SSE4A,
1964 X86_GRP_SSSE3,
1965 X86_GRP_PCLMUL,
1966 X86_GRP_XOP,
1967 X86_GRP_CDI,
1968 X86_GRP_ERI,
1969 X86_GRP_TBM,
1970 X86_GRP_16BITMODE,
1971 X86_GRP_NOT64BITMODE,
1972 X86_GRP_SGX,
1973 X86_GRP_DQI,
1974 X86_GRP_BWI,
1975 X86_GRP_PFI,
1976 X86_GRP_VLX,
1977 X86_GRP_SMAP,
1978 X86_GRP_NOVLX,
1979 X86_GRP_FPU,
1980 
1981 X86_GRP_ENDING
1982} x86_insn_group;
1983 
1984#ifdef __cplusplus
1985}
1986#endif
1987 
1988#endif
1989