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