blob: ef43399dcd68adb9cdba638e5d3021a5b2f3179d [file] [log] [blame]
#ifndef __CS_X86_H__
#define __CS_X86_H__
/* Capstone Disassembler Engine */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> */
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
// Calculate relative address for X86-64, given cs_insn structure
#define X86_REL_ADDR(insn) (insn.addr + insn.size + insn.x86.disp)
typedef enum x86_reg {
X86_REG_INVALID = 0,
X86_REG_AH, X86_REG_AL, X86_REG_AX, X86_REG_BH, X86_REG_BL,
X86_REG_BP, X86_REG_BPL, X86_REG_BX, X86_REG_CH, X86_REG_CL,
X86_REG_CS, X86_REG_CX, X86_REG_DH, X86_REG_DI, X86_REG_DIL,
X86_REG_DL, X86_REG_DS, X86_REG_DX, X86_REG_EAX, X86_REG_EBP,
X86_REG_EBX, X86_REG_ECX, X86_REG_EDI, X86_REG_EDX, X86_REG_EFLAGS,
X86_REG_EIP, X86_REG_EIZ, X86_REG_ES, X86_REG_ESI, X86_REG_ESP,
X86_REG_FPSW, X86_REG_FS, X86_REG_GS, X86_REG_IP, X86_REG_RAX,
X86_REG_RBP, X86_REG_RBX, X86_REG_RCX, X86_REG_RDI, X86_REG_RDX,
X86_REG_RIP, X86_REG_RIZ, X86_REG_RSI, X86_REG_RSP, X86_REG_SI,
X86_REG_SIL, X86_REG_SP, X86_REG_SPL, X86_REG_SS, X86_REG_CR0,
X86_REG_CR1, X86_REG_CR2, X86_REG_CR3, X86_REG_CR4, X86_REG_CR5,
X86_REG_CR6, X86_REG_CR7, X86_REG_CR8, X86_REG_CR9, X86_REG_CR10,
X86_REG_CR11, X86_REG_CR12, X86_REG_CR13, X86_REG_CR14, X86_REG_CR15,
X86_REG_DR0, X86_REG_DR1, X86_REG_DR2, X86_REG_DR3, X86_REG_DR4,
X86_REG_DR5, X86_REG_DR6, X86_REG_DR7, X86_REG_FP0, X86_REG_FP1,
X86_REG_FP2, X86_REG_FP3, X86_REG_FP4, X86_REG_FP5, X86_REG_FP6,
X86_REG_K0, X86_REG_K1, X86_REG_K2, X86_REG_K3, X86_REG_K4,
X86_REG_K5, X86_REG_K6, X86_REG_K7, X86_REG_MM0, X86_REG_MM1,
X86_REG_MM2, X86_REG_MM3, X86_REG_MM4, X86_REG_MM5, X86_REG_MM6,
X86_REG_MM7, X86_REG_R8, X86_REG_R9, X86_REG_R10, X86_REG_R11,
X86_REG_R12, X86_REG_R13, X86_REG_R14, X86_REG_R15,
X86_REG_ST0, X86_REG_ST1, X86_REG_ST2, X86_REG_ST3,
X86_REG_ST4, X86_REG_ST5, X86_REG_ST6, X86_REG_ST7,
X86_REG_XMM0, X86_REG_XMM1, X86_REG_XMM2, X86_REG_XMM3, X86_REG_XMM4,
X86_REG_XMM5, X86_REG_XMM6, X86_REG_XMM7, X86_REG_XMM8, X86_REG_XMM9,
X86_REG_XMM10, X86_REG_XMM11, X86_REG_XMM12, X86_REG_XMM13, X86_REG_XMM14,
X86_REG_XMM15, X86_REG_XMM16, X86_REG_XMM17, X86_REG_XMM18, X86_REG_XMM19,
X86_REG_XMM20, X86_REG_XMM21, X86_REG_XMM22, X86_REG_XMM23, X86_REG_XMM24,
X86_REG_XMM25, X86_REG_XMM26, X86_REG_XMM27, X86_REG_XMM28, X86_REG_XMM29,
X86_REG_XMM30, X86_REG_XMM31, X86_REG_YMM0, X86_REG_YMM1, X86_REG_YMM2,
X86_REG_YMM3, X86_REG_YMM4, X86_REG_YMM5, X86_REG_YMM6, X86_REG_YMM7,
X86_REG_YMM8, X86_REG_YMM9, X86_REG_YMM10, X86_REG_YMM11, X86_REG_YMM12,
X86_REG_YMM13, X86_REG_YMM14, X86_REG_YMM15, X86_REG_YMM16, X86_REG_YMM17,
X86_REG_YMM18, X86_REG_YMM19, X86_REG_YMM20, X86_REG_YMM21, X86_REG_YMM22,
X86_REG_YMM23, X86_REG_YMM24, X86_REG_YMM25, X86_REG_YMM26, X86_REG_YMM27,
X86_REG_YMM28, X86_REG_YMM29, X86_REG_YMM30, X86_REG_YMM31, X86_REG_ZMM0,
X86_REG_ZMM1, X86_REG_ZMM2, X86_REG_ZMM3, X86_REG_ZMM4, X86_REG_ZMM5,
X86_REG_ZMM6, X86_REG_ZMM7, X86_REG_ZMM8, X86_REG_ZMM9, X86_REG_ZMM10,
X86_REG_ZMM11, X86_REG_ZMM12, X86_REG_ZMM13, X86_REG_ZMM14, X86_REG_ZMM15,
X86_REG_ZMM16, X86_REG_ZMM17, X86_REG_ZMM18, X86_REG_ZMM19, X86_REG_ZMM20,
X86_REG_ZMM21, X86_REG_ZMM22, X86_REG_ZMM23, X86_REG_ZMM24, X86_REG_ZMM25,
X86_REG_ZMM26, X86_REG_ZMM27, X86_REG_ZMM28, X86_REG_ZMM29, X86_REG_ZMM30,
X86_REG_ZMM31, X86_REG_R8B, X86_REG_R9B, X86_REG_R10B, X86_REG_R11B,
X86_REG_R12B, X86_REG_R13B, X86_REG_R14B, X86_REG_R15B, X86_REG_R8D,
X86_REG_R9D, X86_REG_R10D, X86_REG_R11D, X86_REG_R12D, X86_REG_R13D,
X86_REG_R14D, X86_REG_R15D, X86_REG_R8W, X86_REG_R9W, X86_REG_R10W,
X86_REG_R11W, X86_REG_R12W, X86_REG_R13W, X86_REG_R14W, X86_REG_R15W,
X86_REG_MAX
} x86_reg;
// Operand type for instruction's operands
typedef enum x86_op_type {
X86_OP_INVALID = 0, // Uninitialized.
X86_OP_REG, // Register operand.
X86_OP_IMM, // Immediate operand.
X86_OP_FP, // Floating-Point immediate operand.
X86_OP_MEM, // Memory operand
} x86_op_type;
// Instruction's operand referring to memory
// This is associated with X86_OP_MEM operand type above
typedef struct x86_op_mem {
unsigned int base; // base register
unsigned int index; // index register
int scale; // scale for index register (can be 1, or -1)
int64_t disp; // displacement value
} x86_op_mem;
// Instruction operand
typedef struct cs_x86_op {
x86_op_type type; // operand type
union {
unsigned int reg; // register value for REG operand
int64_t imm; // immediate value for C-IMM, P-IMM or IMM operand
double fp; // floating point value for FP operand
x86_op_mem mem; // base/index/scale/disp value for MEM operand
};
} cs_x86_op;
// Instruction structure
typedef struct cs_x86 {
// (Optional) instruction prefix, which can be up to 5 bytes.
// A prefix byte gets value 0 when irrelevant.
uint8_t prefix[5];
// (Optional) segment override, which can be among CS, DS, SS, ES, FS, GS.
// This field get value 0 when irrelevant.
x86_reg segment;
// Instruction opcode, wich can be from 1 to 3 bytes in size.
// This contains VEX opcode as well.
// An opcode byte gets value 0 when irrelevant.
uint8_t opcode[3];
// Operand size, which can be overrided with above prefix[5].
uint8_t op_size;
// Address size, which can be overrided with above prefix[5].
uint8_t addr_size;
// Size of (optional) displacement.
// This field get value 0 when irrelevant.
uint8_t disp_size;
// Size of immediate operand
uint8_t imm_size;
// ModR/M byte
uint8_t modrm;
// SIB value, or 0 when irrelevant.
uint8_t sib;
// Displacement value, or 0 when irrelevant.
int32_t disp;
/* SIB state */
// SIB index register, or X86_REG_INVALID when irrelevant.
x86_reg sib_index;
// SIB scale. only applicable if sib_index is relavant.
int8_t sib_scale;
// SIB base register, or X86_REG_INVALID when irrelevant.
x86_reg sib_base;
// Number of operands of this instruction,
// or 0 when instruction has no operand.
uint8_t op_count;
cs_x86_op operands[8]; // operands for this instruction.
} cs_x86;
typedef enum x86_insn {
X86_INS_INVALID = 0,
X86_INS_AAA = 1,
X86_INS_AAD = 2,
X86_INS_AAM = 3,
X86_INS_AAS = 4,
X86_INS_FABS = 5,
X86_INS_ADC = 6,
X86_INS_ADCX = 7,
X86_INS_ADD = 8,
X86_INS_ADDPD = 9,
X86_INS_ADDPS = 10,
X86_INS_ADDSD = 11,
X86_INS_ADDSS = 12,
X86_INS_ADDSUBPD = 13,
X86_INS_ADDSUBPS = 14,
X86_INS_FADD = 15,
X86_INS_FIADD = 16,
X86_INS_FADDP = 17,
X86_INS_ADOX = 18,
X86_INS_AESDECLAST = 19,
X86_INS_AESDEC = 20,
X86_INS_AESENCLAST = 21,
X86_INS_AESENC = 22,
X86_INS_AESIMC = 23,
X86_INS_AESKEYGENASSIST = 24,
X86_INS_AND = 25,
X86_INS_ANDN = 26,
X86_INS_ANDNPD = 27,
X86_INS_ANDNPS = 28,
X86_INS_ANDPD = 29,
X86_INS_ANDPS = 30,
X86_INS_ARPL = 31,
X86_INS_BEXTR = 32,
X86_INS_BLCFILL = 33,
X86_INS_BLCI = 34,
X86_INS_BLCIC = 35,
X86_INS_BLCMSK = 36,
X86_INS_BLCS = 37,
X86_INS_BLENDPD = 38,
X86_INS_BLENDPS = 39,
X86_INS_BLENDVPD = 40,
X86_INS_BLENDVPS = 41,
X86_INS_BLSFILL = 42,
X86_INS_BLSI = 43,
X86_INS_BLSIC = 44,
X86_INS_BLSMSK = 45,
X86_INS_BLSR = 46,
X86_INS_BOUND = 47,
X86_INS_BSF = 48,
X86_INS_BSR = 49,
X86_INS_BSWAP = 50,
X86_INS_BT = 51,
X86_INS_BTC = 52,
X86_INS_BTR = 53,
X86_INS_BTS = 54,
X86_INS_BZHI = 55,
X86_INS_CALL = 56,
X86_INS_CALLW = 57,
X86_INS_CBW = 58,
X86_INS_CDQ = 59,
X86_INS_CDQE = 60,
X86_INS_FCHS = 61,
X86_INS_CLAC = 62,
X86_INS_CLC = 63,
X86_INS_CLD = 64,
X86_INS_CLFLUSH = 65,
X86_INS_CLGI = 66,
X86_INS_CLI = 67,
X86_INS_CLTS = 68,
X86_INS_CMC = 69,
X86_INS_CMOVA = 70,
X86_INS_CMOVAE = 71,
X86_INS_CMOVB = 72,
X86_INS_CMOVBE = 73,
X86_INS_FCMOVBE = 74,
X86_INS_FCMOVB = 75,
X86_INS_CMOVE = 76,
X86_INS_FCMOVE = 77,
X86_INS_CMOVG = 78,
X86_INS_CMOVGE = 79,
X86_INS_CMOVL = 80,
X86_INS_CMOVLE = 81,
X86_INS_FCMOVNBE = 82,
X86_INS_FCMOVNB = 83,
X86_INS_CMOVNE = 84,
X86_INS_FCMOVNE = 85,
X86_INS_CMOVNO = 86,
X86_INS_CMOVNP = 87,
X86_INS_FCMOVNU = 88,
X86_INS_CMOVNS = 89,
X86_INS_CMOVO = 90,
X86_INS_CMOVP = 91,
X86_INS_FCMOVU = 92,
X86_INS_CMOVS = 93,
X86_INS_CMP = 94,
X86_INS_CMPPD = 95,
X86_INS_CMPPS = 96,
X86_INS_CMPSW = 97,
X86_INS_CMPSD = 98,
X86_INS_CMPSQ = 99,
X86_INS_CMPSB = 100,
X86_INS_CMPSS = 101,
X86_INS_CMPXCHG16B = 102,
X86_INS_CMPXCHG = 103,
X86_INS_CMPXCHG8B = 104,
X86_INS_COMISD = 105,
X86_INS_COMISS = 106,
X86_INS_FCOMP = 107,
X86_INS_FCOMPI = 108,
X86_INS_FCOMI = 109,
X86_INS_FCOM = 110,
X86_INS_FCOS = 111,
X86_INS_CPUID = 112,
X86_INS_CQO = 113,
X86_INS_CRC32 = 114,
X86_INS_CS = 115,
X86_INS_CVTDQ2PD = 116,
X86_INS_CVTDQ2PS = 117,
X86_INS_CVTPD2DQ = 118,
X86_INS_CVTPD2PS = 119,
X86_INS_CVTPS2DQ = 120,
X86_INS_CVTPS2PD = 121,
X86_INS_CVTSD2SI = 122,
X86_INS_CVTSD2SS = 123,
X86_INS_CVTSI2SD = 124,
X86_INS_CVTSI2SS = 125,
X86_INS_CVTSS2SD = 126,
X86_INS_CVTSS2SI = 127,
X86_INS_CVTTPD2DQ = 128,
X86_INS_CVTTPS2DQ = 129,
X86_INS_CVTTSD2SI = 130,
X86_INS_CVTTSS2SI = 131,
X86_INS_CWD = 132,
X86_INS_CWDE = 133,
X86_INS_DAA = 134,
X86_INS_DAS = 135,
X86_INS_DATA16 = 136,
X86_INS_DEC = 137,
X86_INS_DIV = 138,
X86_INS_DIVPD = 139,
X86_INS_DIVPS = 140,
X86_INS_FDIVR = 141,
X86_INS_FIDIVR = 142,
X86_INS_FDIVRP = 143,
X86_INS_DIVSD = 144,
X86_INS_DIVSS = 145,
X86_INS_FDIV = 146,
X86_INS_FIDIV = 147,
X86_INS_FDIVP = 148,
X86_INS_DPPD = 149,
X86_INS_DPPS = 150,
X86_INS_DS = 151,
X86_INS_ENTER = 152,
X86_INS_ES = 153,
X86_INS_EXTRACTPS = 154,
X86_INS_EXTRQ = 155,
X86_INS_F2XM1 = 156,
X86_INS_LCALL = 157,
X86_INS_LJMP = 158,
X86_INS_FBLD = 159,
X86_INS_FBSTP = 160,
X86_INS_FCOMPP = 161,
X86_INS_FDECSTP = 162,
X86_INS_FEMMS = 163,
X86_INS_FFREE = 164,
X86_INS_FICOM = 165,
X86_INS_FICOMP = 166,
X86_INS_FINCSTP = 167,
X86_INS_FLDCW = 168,
X86_INS_FLDENV = 169,
X86_INS_FLDL2E = 170,
X86_INS_FLDL2T = 171,
X86_INS_FLDLG2 = 172,
X86_INS_FLDLN2 = 173,
X86_INS_FLDPI = 174,
X86_INS_FNCLEX = 175,
X86_INS_FNINIT = 176,
X86_INS_FNOP = 177,
X86_INS_FNSTCW = 178,
X86_INS_FNSTSW = 179,
X86_INS_FPATAN = 180,
X86_INS_FPREM = 181,
X86_INS_FPREM1 = 182,
X86_INS_FPTAN = 183,
X86_INS_FRNDINT = 184,
X86_INS_FRSTOR = 185,
X86_INS_FNSAVE = 186,
X86_INS_FSCALE = 187,
X86_INS_FSINCOS = 188,
X86_INS_FNSTENV = 189,
X86_INS_FS = 190,
X86_INS_FXAM = 191,
X86_INS_FXRSTOR = 192,
X86_INS_FXRSTORQ = 193,
X86_INS_FXSAVE = 194,
X86_INS_FXSAVEQ = 195,
X86_INS_FXTRACT = 196,
X86_INS_FYL2X = 197,
X86_INS_FYL2XP1 = 198,
X86_INS_MOVAPD = 199,
X86_INS_MOVAPS = 200,
X86_INS_ORPD = 201,
X86_INS_ORPS = 202,
X86_INS_VMOVAPD = 203,
X86_INS_VMOVAPS = 204,
X86_INS_XORPD = 205,
X86_INS_XORPS = 206,
X86_INS_GS = 207,
X86_INS_HADDPD = 208,
X86_INS_HADDPS = 209,
X86_INS_HLT = 210,
X86_INS_HSUBPD = 211,
X86_INS_HSUBPS = 212,
X86_INS_IDIV = 213,
X86_INS_FILD = 214,
X86_INS_IMUL = 215,
X86_INS_INS = 216,
X86_INS_IN = 217,
X86_INS_INC = 218,
X86_INS_INSERTPS = 219,
X86_INS_INSERTQ = 220,
X86_INS_INT = 221,
X86_INS_INT3 = 222,
X86_INS_INTO = 223,
X86_INS_INVD = 224,
X86_INS_INVEPT = 225,
X86_INS_INVLPG = 226,
X86_INS_INVLPGA = 227,
X86_INS_INVPCID = 228,
X86_INS_INVVPID = 229,
X86_INS_IRET = 230,
X86_INS_IRETD = 231,
X86_INS_IRETQ = 232,
X86_INS_FISTTP = 233,
X86_INS_FIST = 234,
X86_INS_FISTP = 235,
X86_INS_UCOMISD = 236,
X86_INS_UCOMISS = 237,
X86_INS_VCMP = 238,
X86_INS_VCOMISD = 239,
X86_INS_VCOMISS = 240,
X86_INS_VCVTSD2SS = 241,
X86_INS_VCVTSI2SD = 242,
X86_INS_VCVTSI2SS = 243,
X86_INS_VCVTSS2SD = 244,
X86_INS_VCVTTSD2SI = 245,
X86_INS_VCVTTSD2USI = 246,
X86_INS_VCVTTSS2SI = 247,
X86_INS_VCVTTSS2USI = 248,
X86_INS_VCVTUSI2SD = 249,
X86_INS_VCVTUSI2SS = 250,
X86_INS_VUCOMISD = 251,
X86_INS_VUCOMISS = 252,
X86_INS_JAE = 253,
X86_INS_JA = 254,
X86_INS_JBE = 255,
X86_INS_JB = 256,
X86_INS_JCXZ = 257,
X86_INS_JECXZ = 258,
X86_INS_JE = 259,
X86_INS_JGE = 260,
X86_INS_JG = 261,
X86_INS_JLE = 262,
X86_INS_JL = 263,
X86_INS_JMP = 264,
X86_INS_JMPQ = 265,
X86_INS_JNE = 266,
X86_INS_JNO = 267,
X86_INS_JNP = 268,
X86_INS_JNS = 269,
X86_INS_JO = 270,
X86_INS_JP = 271,
X86_INS_JRCXZ = 272,
X86_INS_JS = 273,
X86_INS_KADDW = 274,
X86_INS_KANDNW = 275,
X86_INS_KANDW = 276,
X86_INS_KMOVW = 277,
X86_INS_KNOTW = 278,
X86_INS_KORTESTW = 279,
X86_INS_KORW = 280,
X86_INS_KSHIFTLW = 281,
X86_INS_KSHIFTRW = 282,
X86_INS_KTESTW = 283,
X86_INS_KUNPCKBW = 284,
X86_INS_KXNORW = 285,
X86_INS_KXORW = 286,
X86_INS_LAHF = 287,
X86_INS_LAR = 288,
X86_INS_LDDQU = 289,
X86_INS_LDMXCSR = 290,
X86_INS_LDS = 291,
X86_INS_FLDZ = 292,
X86_INS_FLD1 = 293,
X86_INS_FLD = 294,
X86_INS_LEA = 295,
X86_INS_LEAVE = 296,
X86_INS_LES = 297,
X86_INS_LFENCE = 298,
X86_INS_LFS = 299,
X86_INS_LGDT = 300,
X86_INS_LGS = 301,
X86_INS_LIDT = 302,
X86_INS_LLDT = 303,
X86_INS_LMSW = 304,
X86_INS_OR = 305,
X86_INS_LOCK = 306,
X86_INS_SUB = 307,
X86_INS_XOR = 308,
X86_INS_LODSB = 309,
X86_INS_LODSD = 310,
X86_INS_LODSQ = 311,
X86_INS_LODSW = 312,
X86_INS_LOOP = 313,
X86_INS_LOOPE = 314,
X86_INS_LOOPNE = 315,
X86_INS_RETF = 316,
X86_INS_LSL = 317,
X86_INS_LSS = 318,
X86_INS_LTR = 319,
X86_INS_XADD = 320,
X86_INS_LZCNT = 321,
X86_INS_MASKMOVDQU = 322,
X86_INS_MAXPD = 323,
X86_INS_MAXPS = 324,
X86_INS_MAXSD = 325,
X86_INS_MAXSS = 326,
X86_INS_MFENCE = 327,
X86_INS_MINPD = 328,
X86_INS_MINPS = 329,
X86_INS_MINSD = 330,
X86_INS_MINSS = 331,
X86_INS_CVTPD2PI = 332,
X86_INS_CVTPI2PD = 333,
X86_INS_CVTPI2PS = 334,
X86_INS_CVTPS2PI = 335,
X86_INS_CVTTPD2PI = 336,
X86_INS_CVTTPS2PI = 337,
X86_INS_EMMS = 338,
X86_INS_MASKMOVQ = 339,
X86_INS_MOVD = 340,
X86_INS_MOVDQ2Q = 341,
X86_INS_MOVNTQ = 342,
X86_INS_MOVQ2DQ = 343,
X86_INS_MOVQ = 344,
X86_INS_PABSB = 345,
X86_INS_PABSD = 346,
X86_INS_PABSW = 347,
X86_INS_PACKSSDW = 348,
X86_INS_PACKSSWB = 349,
X86_INS_PACKUSWB = 350,
X86_INS_PADDB = 351,
X86_INS_PADDD = 352,
X86_INS_PADDQ = 353,
X86_INS_PADDSB = 354,
X86_INS_PADDSW = 355,
X86_INS_PADDUSB = 356,
X86_INS_PADDUSW = 357,
X86_INS_PADDW = 358,
X86_INS_PALIGNR = 359,
X86_INS_PANDN = 360,
X86_INS_PAND = 361,
X86_INS_PAVGB = 362,
X86_INS_PAVGW = 363,
X86_INS_PCMPEQB = 364,
X86_INS_PCMPEQD = 365,
X86_INS_PCMPEQW = 366,
X86_INS_PCMPGTB = 367,
X86_INS_PCMPGTD = 368,
X86_INS_PCMPGTW = 369,
X86_INS_PEXTRW = 370,
X86_INS_PHADDSW = 371,
X86_INS_PHADDW = 372,
X86_INS_PHADDD = 373,
X86_INS_PHSUBD = 374,
X86_INS_PHSUBSW = 375,
X86_INS_PHSUBW = 376,
X86_INS_PINSRW = 377,
X86_INS_PMADDUBSW = 378,
X86_INS_PMADDWD = 379,
X86_INS_PMAXSW = 380,
X86_INS_PMAXUB = 381,
X86_INS_PMINSW = 382,
X86_INS_PMINUB = 383,
X86_INS_PMOVMSKB = 384,
X86_INS_PMULHRSW = 385,
X86_INS_PMULHUW = 386,
X86_INS_PMULHW = 387,
X86_INS_PMULLW = 388,
X86_INS_PMULUDQ = 389,
X86_INS_POR = 390,
X86_INS_PSADBW = 391,
X86_INS_PSHUFB = 392,
X86_INS_PSHUFW = 393,
X86_INS_PSIGNB = 394,
X86_INS_PSIGND = 395,
X86_INS_PSIGNW = 396,
X86_INS_PSLLD = 397,
X86_INS_PSLLQ = 398,
X86_INS_PSLLW = 399,
X86_INS_PSRAD = 400,
X86_INS_PSRAW = 401,
X86_INS_PSRLD = 402,
X86_INS_PSRLQ = 403,
X86_INS_PSRLW = 404,
X86_INS_PSUBB = 405,
X86_INS_PSUBD = 406,
X86_INS_PSUBQ = 407,
X86_INS_PSUBSB = 408,
X86_INS_PSUBSW = 409,
X86_INS_PSUBUSB = 410,
X86_INS_PSUBUSW = 411,
X86_INS_PSUBW = 412,
X86_INS_PUNPCKHBW = 413,
X86_INS_PUNPCKHDQ = 414,
X86_INS_PUNPCKHWD = 415,
X86_INS_PUNPCKLBW = 416,
X86_INS_PUNPCKLDQ = 417,
X86_INS_PUNPCKLWD = 418,
X86_INS_PXOR = 419,
X86_INS_MONITOR = 420,
X86_INS_MONTMUL = 421,
X86_INS_MOV = 422,
X86_INS_MOVABS = 423,
X86_INS_MOVBE = 424,
X86_INS_MOVDDUP = 425,
X86_INS_MOVDQA = 426,
X86_INS_MOVDQU = 427,
X86_INS_MOVHLPS = 428,
X86_INS_MOVHPD = 429,
X86_INS_MOVHPS = 430,
X86_INS_MOVLHPS = 431,
X86_INS_MOVLPD = 432,
X86_INS_MOVLPS = 433,
X86_INS_MOVMSKPD = 434,
X86_INS_MOVMSKPS = 435,
X86_INS_MOVNTDQA = 436,
X86_INS_MOVNTDQ = 437,
X86_INS_MOVNTI = 438,
X86_INS_MOVNTPD = 439,
X86_INS_MOVNTPS = 440,
X86_INS_MOVNTSD = 441,
X86_INS_MOVNTSS = 442,
X86_INS_MOVSB = 443,
X86_INS_MOVSD = 444,
X86_INS_MOVSHDUP = 445,
X86_INS_MOVSLDUP = 446,
X86_INS_MOVSQ = 447,
X86_INS_MOVSS = 448,
X86_INS_MOVSW = 449,
X86_INS_MOVSX = 450,
X86_INS_MOVSXD = 451,
X86_INS_MOVUPD = 452,
X86_INS_MOVUPS = 453,
X86_INS_MOVZX = 454,
X86_INS_MPSADBW = 455,
X86_INS_MUL = 456,
X86_INS_MULPD = 457,
X86_INS_MULPS = 458,
X86_INS_MULSD = 459,
X86_INS_MULSS = 460,
X86_INS_MULX = 461,
X86_INS_FMUL = 462,
X86_INS_FIMUL = 463,
X86_INS_FMULP = 464,
X86_INS_MWAIT = 465,
X86_INS_NEG = 466,
X86_INS_NOP = 467,
X86_INS_NOT = 468,
X86_INS_OUT = 469,
X86_INS_OUTSB = 470,
X86_INS_OUTSD = 471,
X86_INS_OUTSW = 472,
X86_INS_PACKUSDW = 473,
X86_INS_PAUSE = 474,
X86_INS_PAVGUSB = 475,
X86_INS_PBLENDVB = 476,
X86_INS_PBLENDW = 477,
X86_INS_PCLMULQDQ = 478,
X86_INS_PCMPEQQ = 479,
X86_INS_PCMPESTRI = 480,
X86_INS_PCMPESTRM = 481,
X86_INS_PCMPGTQ = 482,
X86_INS_PCMPISTRI = 483,
X86_INS_PCMPISTRM = 484,
X86_INS_PDEP = 485,
X86_INS_PEXT = 486,
X86_INS_PEXTRB = 487,
X86_INS_PEXTRD = 488,
X86_INS_PEXTRQ = 489,
X86_INS_PF2ID = 490,
X86_INS_PF2IW = 491,
X86_INS_PFACC = 492,
X86_INS_PFADD = 493,
X86_INS_PFCMPEQ = 494,
X86_INS_PFCMPGE = 495,
X86_INS_PFCMPGT = 496,
X86_INS_PFMAX = 497,
X86_INS_PFMIN = 498,
X86_INS_PFMUL = 499,
X86_INS_PFNACC = 500,
X86_INS_PFPNACC = 501,
X86_INS_PFRCPIT1 = 502,
X86_INS_PFRCPIT2 = 503,
X86_INS_PFRCP = 504,
X86_INS_PFRSQIT1 = 505,
X86_INS_PFRSQRT = 506,
X86_INS_PFSUBR = 507,
X86_INS_PFSUB = 508,
X86_INS_PHMINPOSUW = 509,
X86_INS_PI2FD = 510,
X86_INS_PI2FW = 511,
X86_INS_PINSRB = 512,
X86_INS_PINSRD = 513,
X86_INS_PINSRQ = 514,
X86_INS_PMAXSB = 515,
X86_INS_PMAXSD = 516,
X86_INS_PMAXUD = 517,
X86_INS_PMAXUW = 518,
X86_INS_PMINSB = 519,
X86_INS_PMINSD = 520,
X86_INS_PMINUD = 521,
X86_INS_PMINUW = 522,
X86_INS_PMOVSXBD = 523,
X86_INS_PMOVSXBQ = 524,
X86_INS_PMOVSXBW = 525,
X86_INS_PMOVSXDQ = 526,
X86_INS_PMOVSXWD = 527,
X86_INS_PMOVSXWQ = 528,
X86_INS_PMOVZXBD = 529,
X86_INS_PMOVZXBQ = 530,
X86_INS_PMOVZXBW = 531,
X86_INS_PMOVZXDQ = 532,
X86_INS_PMOVZXWD = 533,
X86_INS_PMOVZXWQ = 534,
X86_INS_PMULDQ = 535,
X86_INS_PMULHRW = 536,
X86_INS_PMULLD = 537,
X86_INS_POP = 538,
X86_INS_POPA = 539,
X86_INS_POPCNT = 540,
X86_INS_POPF = 541,
X86_INS_POPFD = 542,
X86_INS_POPFQ = 543,
X86_INS_PREFETCH = 544,
X86_INS_PREFETCHNTA = 545,
X86_INS_PREFETCHT0 = 546,
X86_INS_PREFETCHT1 = 547,
X86_INS_PREFETCHT2 = 548,
X86_INS_PREFETCHW = 549,
X86_INS_PSHUFD = 550,
X86_INS_PSHUFHW = 551,
X86_INS_PSHUFLW = 552,
X86_INS_PSLLDQ = 553,
X86_INS_PSRLDQ = 554,
X86_INS_PSWAPD = 555,
X86_INS_PTEST = 556,
X86_INS_PUNPCKHQDQ = 557,
X86_INS_PUNPCKLQDQ = 558,
X86_INS_PUSH = 559,
X86_INS_PUSHA = 560,
X86_INS_PUSHF = 561,
X86_INS_PUSHFD = 562,
X86_INS_PUSHFQ = 563,
X86_INS_RCL = 564,
X86_INS_RCPPS = 565,
X86_INS_RCPSS = 566,
X86_INS_RCR = 567,
X86_INS_RDFSBASE = 568,
X86_INS_RDGSBASE = 569,
X86_INS_RDMSR = 570,
X86_INS_RDPMC = 571,
X86_INS_RDRAND = 572,
X86_INS_RDSEED = 573,
X86_INS_RDTSC = 574,
X86_INS_RDTSCP = 575,
X86_INS_REPNE = 576,
X86_INS_REP = 577,
X86_INS_RET = 578,
X86_INS_REX64 = 579,
X86_INS_ROL = 580,
X86_INS_ROR = 581,
X86_INS_RORX = 582,
X86_INS_ROUNDPD = 583,
X86_INS_ROUNDPS = 584,
X86_INS_ROUNDSD = 585,
X86_INS_ROUNDSS = 586,
X86_INS_RSM = 587,
X86_INS_RSQRTPS = 588,
X86_INS_RSQRTSS = 589,
X86_INS_SAHF = 590,
X86_INS_SAR = 591,
X86_INS_SARX = 592,
X86_INS_SBB = 593,
X86_INS_SCASW = 594,
X86_INS_SCASD = 595,
X86_INS_SCASQ = 596,
X86_INS_SCASB = 597,
X86_INS_SETAE = 598,
X86_INS_SETA = 599,
X86_INS_SETBE = 600,
X86_INS_SETB = 601,
X86_INS_SETE = 602,
X86_INS_SETGE = 603,
X86_INS_SETG = 604,
X86_INS_SETLE = 605,
X86_INS_SETL = 606,
X86_INS_SETNE = 607,
X86_INS_SETNO = 608,
X86_INS_SETNP = 609,
X86_INS_SETNS = 610,
X86_INS_SETO = 611,
X86_INS_SETP = 612,
X86_INS_SETS = 613,
X86_INS_SFENCE = 614,
X86_INS_SGDT = 615,
X86_INS_SHA1MSG1 = 616,
X86_INS_SHA1MSG2 = 617,
X86_INS_SHA1NEXTE = 618,
X86_INS_SHA1RNDS4 = 619,
X86_INS_SHA256MSG1 = 620,
X86_INS_SHA256MSG2 = 621,
X86_INS_SHA256RNDS2 = 622,
X86_INS_SHL = 623,
X86_INS_SHLD = 624,
X86_INS_SHLX = 625,
X86_INS_SHR = 626,
X86_INS_SHRD = 627,
X86_INS_SHRX = 628,
X86_INS_SHUFPD = 629,
X86_INS_SHUFPS = 630,
X86_INS_SIDT = 631,
X86_INS_FSIN = 632,
X86_INS_SKINIT = 633,
X86_INS_SLDT = 634,
X86_INS_SMSW = 635,
X86_INS_SQRTPD = 636,
X86_INS_SQRTPS = 637,
X86_INS_SQRTSD = 638,
X86_INS_SQRTSS = 639,
X86_INS_FSQRT = 640,
X86_INS_SS = 641,
X86_INS_STAC = 642,
X86_INS_STC = 643,
X86_INS_STD = 644,
X86_INS_STGI = 645,
X86_INS_STI = 646,
X86_INS_STMXCSR = 647,
X86_INS_STOSB = 648,
X86_INS_STOSD = 649,
X86_INS_STOSQ = 650,
X86_INS_STOSW = 651,
X86_INS_STR = 652,
X86_INS_FST = 653,
X86_INS_FSTP = 654,
X86_INS_SUBPD = 655,
X86_INS_SUBPS = 656,
X86_INS_FSUBR = 657,
X86_INS_FISUBR = 658,
X86_INS_FSUBRP = 659,
X86_INS_SUBSD = 660,
X86_INS_SUBSS = 661,
X86_INS_FSUB = 662,
X86_INS_FISUB = 663,
X86_INS_FSUBP = 664,
X86_INS_SWAPGS = 665,
X86_INS_SYSCALL = 666,
X86_INS_SYSENTER = 667,
X86_INS_SYSEXIT = 668,
X86_INS_SYSRET = 669,
X86_INS_T1MSKC = 670,
X86_INS_TEST = 671,
X86_INS_UD2 = 672,
X86_INS_FTST = 673,
X86_INS_TZCNT = 674,
X86_INS_TZMSK = 675,
X86_INS_FUCOMPI = 676,
X86_INS_FUCOMI = 677,
X86_INS_FUCOMPP = 678,
X86_INS_FUCOMP = 679,
X86_INS_FUCOM = 680,
X86_INS_UD2B = 681,
X86_INS_UNPCKHPD = 682,
X86_INS_UNPCKHPS = 683,
X86_INS_UNPCKLPD = 684,
X86_INS_UNPCKLPS = 685,
X86_INS_VADDPD = 686,
X86_INS_VADDPS = 687,
X86_INS_VADDSD = 688,
X86_INS_VADDSS = 689,
X86_INS_VADDSUBPD = 690,
X86_INS_VADDSUBPS = 691,
X86_INS_VAESDECLAST = 692,
X86_INS_VAESDEC = 693,
X86_INS_VAESENCLAST = 694,
X86_INS_VAESENC = 695,
X86_INS_VAESIMC = 696,
X86_INS_VAESKEYGENASSIST = 697,
X86_INS_VALIGND = 698,
X86_INS_VALIGNQ = 699,
X86_INS_VANDNPD = 700,
X86_INS_VANDNPS = 701,
X86_INS_VANDPD = 702,
X86_INS_VANDPS = 703,
X86_INS_VBLENDMPD = 704,
X86_INS_VBLENDMPS = 705,
X86_INS_VBLENDPD = 706,
X86_INS_VBLENDPS = 707,
X86_INS_VBLENDVPD = 708,
X86_INS_VBLENDVPS = 709,
X86_INS_VBROADCASTF128 = 710,
X86_INS_VBROADCASTI128 = 711,
X86_INS_VBROADCASTSD = 712,
X86_INS_VBROADCASTSS = 713,
X86_INS_VCMPPD = 714,
X86_INS_VCMPPS = 715,
X86_INS_VCMPSD = 716,
X86_INS_VCMPSS = 717,
X86_INS_VCVTDQ2PD = 718,
X86_INS_VCVTDQ2PS = 719,
X86_INS_VCVTPD2DQX = 720,
X86_INS_VCVTPD2DQ = 721,
X86_INS_VCVTPD2PSX = 722,
X86_INS_VCVTPD2PS = 723,
X86_INS_VCVTPH2PS = 724,
X86_INS_VCVTPS2DQ = 725,
X86_INS_VCVTPS2PD = 726,
X86_INS_VCVTPS2PH = 727,
X86_INS_VCVTSD2SI = 728,
X86_INS_VCVTSD2USI = 729,
X86_INS_VCVTSS2SI = 730,
X86_INS_VCVTSS2USI = 731,
X86_INS_VCVTTPD2DQX = 732,
X86_INS_VCVTTPD2DQ = 733,
X86_INS_VCVTTPD2UDQ = 734,
X86_INS_VCVTTPS2DQ = 735,
X86_INS_VCVTTPS2UDQ = 736,
X86_INS_VCVTUDQ2PD = 737,
X86_INS_VCVTUDQ2PS = 738,
X86_INS_VDIVPD = 739,
X86_INS_VDIVPS = 740,
X86_INS_VDIVSD = 741,
X86_INS_VDIVSS = 742,
X86_INS_VDPPD = 743,
X86_INS_VDPPS = 744,
X86_INS_VERR = 745,
X86_INS_VERW = 746,
X86_INS_VEXTRACTF128 = 747,
X86_INS_VEXTRACTF32X4 = 748,
X86_INS_VEXTRACTF64X4 = 749,
X86_INS_VEXTRACTI128 = 750,
X86_INS_VEXTRACTI32X4 = 751,
X86_INS_VEXTRACTI64X4 = 752,
X86_INS_VEXTRACTPS = 753,
X86_INS_VFMADD132PD = 754,
X86_INS_VFMADD132PS = 755,
X86_INS_VFMADD213PD = 756,
X86_INS_VFMADD213PS = 757,
X86_INS_VFMADDPD = 758,
X86_INS_VFMADD231PD = 759,
X86_INS_VFMADDPS = 760,
X86_INS_VFMADD231PS = 761,
X86_INS_VFMADDSD = 762,
X86_INS_VFMADD213SD = 763,
X86_INS_VFMADD132SD = 764,
X86_INS_VFMADD231SD = 765,
X86_INS_VFMADDSS = 766,
X86_INS_VFMADD213SS = 767,
X86_INS_VFMADD132SS = 768,
X86_INS_VFMADD231SS = 769,
X86_INS_VFMADDSUB132PD = 770,
X86_INS_VFMADDSUB132PS = 771,
X86_INS_VFMADDSUB213PD = 772,
X86_INS_VFMADDSUB213PS = 773,
X86_INS_VFMADDSUBPD = 774,
X86_INS_VFMADDSUB231PD = 775,
X86_INS_VFMADDSUBPS = 776,
X86_INS_VFMADDSUB231PS = 777,
X86_INS_VFMSUB132PD = 778,
X86_INS_VFMSUB132PS = 779,
X86_INS_VFMSUB213PD = 780,
X86_INS_VFMSUB213PS = 781,
X86_INS_VFMSUBADD132PD = 782,
X86_INS_VFMSUBADD132PS = 783,
X86_INS_VFMSUBADD213PD = 784,
X86_INS_VFMSUBADD213PS = 785,
X86_INS_VFMSUBADDPD = 786,
X86_INS_VFMSUBADD231PD = 787,
X86_INS_VFMSUBADDPS = 788,
X86_INS_VFMSUBADD231PS = 789,
X86_INS_VFMSUBPD = 790,
X86_INS_VFMSUB231PD = 791,
X86_INS_VFMSUBPS = 792,
X86_INS_VFMSUB231PS = 793,
X86_INS_VFMSUBSD = 794,
X86_INS_VFMSUB213SD = 795,
X86_INS_VFMSUB132SD = 796,
X86_INS_VFMSUB231SD = 797,
X86_INS_VFMSUBSS = 798,
X86_INS_VFMSUB213SS = 799,
X86_INS_VFMSUB132SS = 800,
X86_INS_VFMSUB231SS = 801,
X86_INS_VFNMADD132PD = 802,
X86_INS_VFNMADD132PS = 803,
X86_INS_VFNMADD213PD = 804,
X86_INS_VFNMADD213PS = 805,
X86_INS_VFNMADDPD = 806,
X86_INS_VFNMADD231PD = 807,
X86_INS_VFNMADDPS = 808,
X86_INS_VFNMADD231PS = 809,
X86_INS_VFNMADDSD = 810,
X86_INS_VFNMADD213SD = 811,
X86_INS_VFNMADD132SD = 812,
X86_INS_VFNMADD231SD = 813,
X86_INS_VFNMADDSS = 814,
X86_INS_VFNMADD213SS = 815,
X86_INS_VFNMADD132SS = 816,
X86_INS_VFNMADD231SS = 817,
X86_INS_VFNMSUB132PD = 818,
X86_INS_VFNMSUB132PS = 819,
X86_INS_VFNMSUB213PD = 820,
X86_INS_VFNMSUB213PS = 821,
X86_INS_VFNMSUBPD = 822,
X86_INS_VFNMSUB231PD = 823,
X86_INS_VFNMSUBPS = 824,
X86_INS_VFNMSUB231PS = 825,
X86_INS_VFNMSUBSD = 826,
X86_INS_VFNMSUB213SD = 827,
X86_INS_VFNMSUB132SD = 828,
X86_INS_VFNMSUB231SD = 829,
X86_INS_VFNMSUBSS = 830,
X86_INS_VFNMSUB213SS = 831,
X86_INS_VFNMSUB132SS = 832,
X86_INS_VFNMSUB231SS = 833,
X86_INS_VFRCZPD = 834,
X86_INS_VFRCZPS = 835,
X86_INS_VFRCZSD = 836,
X86_INS_VFRCZSS = 837,
X86_INS_VORPD = 838,
X86_INS_VORPS = 839,
X86_INS_VXORPD = 840,
X86_INS_VXORPS = 841,
X86_INS_VGATHERDPD = 842,
X86_INS_VGATHERDPS = 843,
X86_INS_VGATHERQPD = 844,
X86_INS_VGATHERQPS = 845,
X86_INS_VHADDPD = 846,
X86_INS_VHADDPS = 847,
X86_INS_VHSUBPD = 848,
X86_INS_VHSUBPS = 849,
X86_INS_VINSERTF128 = 850,
X86_INS_VINSERTF32X4 = 851,
X86_INS_VINSERTF64X4 = 852,
X86_INS_VINSERTI128 = 853,
X86_INS_VINSERTI32X4 = 854,
X86_INS_VINSERTI64X4 = 855,
X86_INS_VINSERTPS = 856,
X86_INS_VLDDQU = 857,
X86_INS_VLDMXCSR = 858,
X86_INS_VMASKMOVDQU = 859,
X86_INS_VMASKMOVPD = 860,
X86_INS_VMASKMOVPS = 861,
X86_INS_VMAXPD = 862,
X86_INS_VMAXPS = 863,
X86_INS_VMAXSD = 864,
X86_INS_VMAXSS = 865,
X86_INS_VMCALL = 866,
X86_INS_VMCLEAR = 867,
X86_INS_VMFUNC = 868,
X86_INS_VMINPD = 869,
X86_INS_VMINPS = 870,
X86_INS_VMINSD = 871,
X86_INS_VMINSS = 872,
X86_INS_VMLAUNCH = 873,
X86_INS_VMLOAD = 874,
X86_INS_VMMCALL = 875,
X86_INS_VMOVQ = 876,
X86_INS_VMOVDDUP = 877,
X86_INS_VMOVD = 878,
X86_INS_VMOVDQA32 = 879,
X86_INS_VMOVDQA64 = 880,
X86_INS_VMOVDQA = 881,
X86_INS_VMOVDQU32 = 882,
X86_INS_VMOVDQU64 = 883,
X86_INS_VMOVDQU = 884,
X86_INS_VMOVHLPS = 885,
X86_INS_VMOVHPD = 886,
X86_INS_VMOVHPS = 887,
X86_INS_VMOVLHPS = 888,
X86_INS_VMOVLPD = 889,
X86_INS_VMOVLPS = 890,
X86_INS_VMOVMSKPD = 891,
X86_INS_VMOVMSKPS = 892,
X86_INS_VMOVNTDQA = 893,
X86_INS_VMOVNTDQ = 894,
X86_INS_VMOVNTPD = 895,
X86_INS_VMOVNTPS = 896,
X86_INS_VMOVSD = 897,
X86_INS_VMOVSHDUP = 898,
X86_INS_VMOVSLDUP = 899,
X86_INS_VMOVSS = 900,
X86_INS_VMOVUPD = 901,
X86_INS_VMOVUPS = 902,
X86_INS_VMPSADBW = 903,
X86_INS_VMPTRLD = 904,
X86_INS_VMPTRST = 905,
X86_INS_VMREAD = 906,
X86_INS_VMRESUME = 907,
X86_INS_VMRUN = 908,
X86_INS_VMSAVE = 909,
X86_INS_VMULPD = 910,
X86_INS_VMULPS = 911,
X86_INS_VMULSD = 912,
X86_INS_VMULSS = 913,
X86_INS_VMWRITE = 914,
X86_INS_VMXOFF = 915,
X86_INS_VMXON = 916,
X86_INS_VPABSB = 917,
X86_INS_VPABSD = 918,
X86_INS_VPABSQ = 919,
X86_INS_VPABSW = 920,
X86_INS_VPACKSSDW = 921,
X86_INS_VPACKSSWB = 922,
X86_INS_VPACKUSDW = 923,
X86_INS_VPACKUSWB = 924,
X86_INS_VPADDB = 925,
X86_INS_VPADDD = 926,
X86_INS_VPADDQ = 927,
X86_INS_VPADDSB = 928,
X86_INS_VPADDSW = 929,
X86_INS_VPADDUSB = 930,
X86_INS_VPADDUSW = 931,
X86_INS_VPADDW = 932,
X86_INS_VPALIGNR = 933,
X86_INS_VPANDD = 934,
X86_INS_VPANDND = 935,
X86_INS_VPANDNQ = 936,
X86_INS_VPANDN = 937,
X86_INS_VPANDQ = 938,
X86_INS_VPAND = 939,
X86_INS_VPAVGB = 940,
X86_INS_VPAVGW = 941,
X86_INS_VPBLENDD = 942,
X86_INS_VPBLENDMD = 943,
X86_INS_VPBLENDMQ = 944,
X86_INS_VPBLENDVB = 945,
X86_INS_VPBLENDW = 946,
X86_INS_VPBROADCASTB = 947,
X86_INS_VPBROADCASTD = 948,
X86_INS_VPBROADCASTMB2Q = 949,
X86_INS_VPBROADCASTMW2D = 950,
X86_INS_VPBROADCASTQ = 951,
X86_INS_VPBROADCASTW = 952,
X86_INS_VPCLMULQDQ = 953,
X86_INS_VPCMOV = 954,
X86_INS_VPCMP = 955,
X86_INS_VPCMPD = 956,
X86_INS_VPCMPEQB = 957,
X86_INS_VPCMPEQD = 958,
X86_INS_VPCMPEQQ = 959,
X86_INS_VPCMPEQW = 960,
X86_INS_VPCMPESTRI = 961,
X86_INS_VPCMPESTRM = 962,
X86_INS_VPCMPGTB = 963,
X86_INS_VPCMPGTD = 964,
X86_INS_VPCMPGTQ = 965,
X86_INS_VPCMPGTW = 966,
X86_INS_VPCMPISTRI = 967,
X86_INS_VPCMPISTRM = 968,
X86_INS_VPCMPQ = 969,
X86_INS_VPCMPUD = 970,
X86_INS_VPCMPUQ = 971,
X86_INS_VPCOMB = 972,
X86_INS_VPCOMD = 973,
X86_INS_VPCOMQ = 974,
X86_INS_VPCOMUB = 975,
X86_INS_VPCOMUD = 976,
X86_INS_VPCOMUQ = 977,
X86_INS_VPCOMUW = 978,
X86_INS_VPCOMW = 979,
X86_INS_VPCONFLICTD = 980,
X86_INS_VPCONFLICTQ = 981,
X86_INS_VPERM2F128 = 982,
X86_INS_VPERM2I128 = 983,
X86_INS_VPERMD = 984,
X86_INS_VPERMI2D = 985,
X86_INS_VPERMI2PD = 986,
X86_INS_VPERMI2PS = 987,
X86_INS_VPERMI2Q = 988,
X86_INS_VPERMIL2PD = 989,
X86_INS_VPERMIL2PS = 990,
X86_INS_VPERMILPD = 991,
X86_INS_VPERMILPS = 992,
X86_INS_VPERMPD = 993,
X86_INS_VPERMPS = 994,
X86_INS_VPERMQ = 995,
X86_INS_VPEXTRB = 996,
X86_INS_VPEXTRD = 997,
X86_INS_VPEXTRQ = 998,
X86_INS_VPEXTRW = 999,
X86_INS_VPGATHERDD = 1000,
X86_INS_VPGATHERDQ = 1001,
X86_INS_VPGATHERQD = 1002,
X86_INS_VPGATHERQQ = 1003,
X86_INS_VPHADDBD = 1004,
X86_INS_VPHADDBQ = 1005,
X86_INS_VPHADDBW = 1006,
X86_INS_VPHADDDQ = 1007,
X86_INS_VPHADDD = 1008,
X86_INS_VPHADDSW = 1009,
X86_INS_VPHADDUBD = 1010,
X86_INS_VPHADDUBQ = 1011,
X86_INS_VPHADDUBW = 1012,
X86_INS_VPHADDUDQ = 1013,
X86_INS_VPHADDUWD = 1014,
X86_INS_VPHADDUWQ = 1015,
X86_INS_VPHADDWD = 1016,
X86_INS_VPHADDWQ = 1017,
X86_INS_VPHADDW = 1018,
X86_INS_VPHMINPOSUW = 1019,
X86_INS_VPHSUBBW = 1020,
X86_INS_VPHSUBDQ = 1021,
X86_INS_VPHSUBD = 1022,
X86_INS_VPHSUBSW = 1023,
X86_INS_VPHSUBWD = 1024,
X86_INS_VPHSUBW = 1025,
X86_INS_VPINSRB = 1026,
X86_INS_VPINSRD = 1027,
X86_INS_VPINSRQ = 1028,
X86_INS_VPINSRW = 1029,
X86_INS_VPMACSDD = 1030,
X86_INS_VPMACSDQH = 1031,
X86_INS_VPMACSDQL = 1032,
X86_INS_VPMACSSDD = 1033,
X86_INS_VPMACSSDQH = 1034,
X86_INS_VPMACSSDQL = 1035,
X86_INS_VPMACSSWD = 1036,
X86_INS_VPMACSSWW = 1037,
X86_INS_VPMACSWD = 1038,
X86_INS_VPMACSWW = 1039,
X86_INS_VPMADCSSWD = 1040,
X86_INS_VPMADCSWD = 1041,
X86_INS_VPMADDUBSW = 1042,
X86_INS_VPMADDWD = 1043,
X86_INS_VPMASKMOVD = 1044,
X86_INS_VPMASKMOVQ = 1045,
X86_INS_VPMAXSB = 1046,
X86_INS_VPMAXSD = 1047,
X86_INS_VPMAXSQ = 1048,
X86_INS_VPMAXSW = 1049,
X86_INS_VPMAXUB = 1050,
X86_INS_VPMAXUD = 1051,
X86_INS_VPMAXUQ = 1052,
X86_INS_VPMAXUW = 1053,
X86_INS_VPMINSB = 1054,
X86_INS_VPMINSD = 1055,
X86_INS_VPMINSQ = 1056,
X86_INS_VPMINSW = 1057,
X86_INS_VPMINUB = 1058,
X86_INS_VPMINUD = 1059,
X86_INS_VPMINUQ = 1060,
X86_INS_VPMINUW = 1061,
X86_INS_VPMOVDB = 1062,
X86_INS_VPMOVDW = 1063,
X86_INS_VPMOVMSKB = 1064,
X86_INS_VPMOVQB = 1065,
X86_INS_VPMOVQD = 1066,
X86_INS_VPMOVQW = 1067,
X86_INS_VPMOVSDB = 1068,
X86_INS_VPMOVSDW = 1069,
X86_INS_VPMOVSQB = 1070,
X86_INS_VPMOVSQD = 1071,
X86_INS_VPMOVSQW = 1072,
X86_INS_VPMOVSXBD = 1073,
X86_INS_VPMOVSXBQ = 1074,
X86_INS_VPMOVSXBW = 1075,
X86_INS_VPMOVSXDQ = 1076,
X86_INS_VPMOVSXWD = 1077,
X86_INS_VPMOVSXWQ = 1078,
X86_INS_VPMOVUSDB = 1079,
X86_INS_VPMOVUSDW = 1080,
X86_INS_VPMOVUSQB = 1081,
X86_INS_VPMOVUSQD = 1082,
X86_INS_VPMOVUSQW = 1083,
X86_INS_VPMOVZXBD = 1084,
X86_INS_VPMOVZXBQ = 1085,
X86_INS_VPMOVZXBW = 1086,
X86_INS_VPMOVZXDQ = 1087,
X86_INS_VPMOVZXWD = 1088,
X86_INS_VPMOVZXWQ = 1089,
X86_INS_VPMULDQ = 1090,
X86_INS_VPMULHRSW = 1091,
X86_INS_VPMULHUW = 1092,
X86_INS_VPMULHW = 1093,
X86_INS_VPMULLD = 1094,
X86_INS_VPMULLW = 1095,
X86_INS_VPMULUDQ = 1096,
X86_INS_VPORD = 1097,
X86_INS_VPORQ = 1098,
X86_INS_VPOR = 1099,
X86_INS_VPPERM = 1100,
X86_INS_VPROTB = 1101,
X86_INS_VPROTD = 1102,
X86_INS_VPROTQ = 1103,
X86_INS_VPROTW = 1104,
X86_INS_VPSADBW = 1105,
X86_INS_VPSCATTERDD = 1106,
X86_INS_VPSCATTERDQ = 1107,
X86_INS_VPSCATTERQD = 1108,
X86_INS_VPSCATTERQQ = 1109,
X86_INS_VPSHAB = 1110,
X86_INS_VPSHAD = 1111,
X86_INS_VPSHAQ = 1112,
X86_INS_VPSHAW = 1113,
X86_INS_VPSHLB = 1114,
X86_INS_VPSHLD = 1115,
X86_INS_VPSHLQ = 1116,
X86_INS_VPSHLW = 1117,
X86_INS_VPSHUFB = 1118,
X86_INS_VPSHUFD = 1119,
X86_INS_VPSHUFHW = 1120,
X86_INS_VPSHUFLW = 1121,
X86_INS_VPSIGNB = 1122,
X86_INS_VPSIGND = 1123,
X86_INS_VPSIGNW = 1124,
X86_INS_VPSLLDQ = 1125,
X86_INS_VPSLLD = 1126,
X86_INS_VPSLLQ = 1127,
X86_INS_VPSLLVD = 1128,
X86_INS_VPSLLVQ = 1129,
X86_INS_VPSLLW = 1130,
X86_INS_VPSRAD = 1131,
X86_INS_VPSRAQ = 1132,
X86_INS_VPSRAVD = 1133,
X86_INS_VPSRAVQ = 1134,
X86_INS_VPSRAW = 1135,
X86_INS_VPSRLDQ = 1136,
X86_INS_VPSRLD = 1137,
X86_INS_VPSRLQ = 1138,
X86_INS_VPSRLVD = 1139,
X86_INS_VPSRLVQ = 1140,
X86_INS_VPSRLW = 1141,
X86_INS_VPSUBB = 1142,
X86_INS_VPSUBD = 1143,
X86_INS_VPSUBQ = 1144,
X86_INS_VPSUBSB = 1145,
X86_INS_VPSUBSW = 1146,
X86_INS_VPSUBUSB = 1147,
X86_INS_VPSUBUSW = 1148,
X86_INS_VPSUBW = 1149,
X86_INS_VPTESTMD = 1150,
X86_INS_VPTESTMQ = 1151,
X86_INS_VPTEST = 1152,
X86_INS_VPUNPCKHBW = 1153,
X86_INS_VPUNPCKHDQ = 1154,
X86_INS_VPUNPCKHQDQ = 1155,
X86_INS_VPUNPCKHWD = 1156,
X86_INS_VPUNPCKLBW = 1157,
X86_INS_VPUNPCKLDQ = 1158,
X86_INS_VPUNPCKLQDQ = 1159,
X86_INS_VPUNPCKLWD = 1160,
X86_INS_VPXORD = 1161,
X86_INS_VPXORQ = 1162,
X86_INS_VPXOR = 1163,
X86_INS_VRCP14PD = 1164,
X86_INS_VRCP14PS = 1165,
X86_INS_VRCP14SD = 1166,
X86_INS_VRCP14SS = 1167,
X86_INS_VRCP28PD = 1168,
X86_INS_VRCP28PS = 1169,
X86_INS_VRCP28SD = 1170,
X86_INS_VRCP28SS = 1171,
X86_INS_VRCPPS = 1172,
X86_INS_VRCPSS = 1173,
X86_INS_VRNDSCALESD = 1174,
X86_INS_VRNDSCALESS = 1175,
X86_INS_VRNDSCALEPD = 1176,
X86_INS_VRNDSCALEPS = 1177,
X86_INS_VROUNDPD = 1178,
X86_INS_VROUNDPS = 1179,
X86_INS_VROUNDSD = 1180,
X86_INS_VROUNDSS = 1181,
X86_INS_VRSQRT14PD = 1182,
X86_INS_VRSQRT14PS = 1183,
X86_INS_VRSQRT14SD = 1184,
X86_INS_VRSQRT14SS = 1185,
X86_INS_VRSQRT28PD = 1186,
X86_INS_VRSQRT28PS = 1187,
X86_INS_VRSQRT28SD = 1188,
X86_INS_VRSQRT28SS = 1189,
X86_INS_VRSQRTPS = 1190,
X86_INS_VRSQRTSS = 1191,
X86_INS_VSCATTERDPD = 1192,
X86_INS_VSCATTERDPS = 1193,
X86_INS_VSCATTERQPD = 1194,
X86_INS_VSCATTERQPS = 1195,
X86_INS_VSHUFPD = 1196,
X86_INS_VSHUFPS = 1197,
X86_INS_VSQRTPD = 1198,
X86_INS_VSQRT = 1199,
X86_INS_VSQRTPS = 1200,
X86_INS_VSQRTSD = 1201,
X86_INS_VSQRTSS = 1202,
X86_INS_VSTMXCSR = 1203,
X86_INS_VSUBPD = 1204,
X86_INS_VSUBPS = 1205,
X86_INS_VSUBSD = 1206,
X86_INS_VSUBSS = 1207,
X86_INS_VTESTPD = 1208,
X86_INS_VTESTPS = 1209,
X86_INS_VUNPCKHPD = 1210,
X86_INS_VUNPCKHPS = 1211,
X86_INS_VUNPCKLPD = 1212,
X86_INS_VUNPCKLPS = 1213,
X86_INS_VZEROALL = 1214,
X86_INS_VZEROUPPER = 1215,
X86_INS_WAIT = 1216,
X86_INS_WBINVD = 1217,
X86_INS_WRFSBASE = 1218,
X86_INS_WRGSBASE = 1219,
X86_INS_WRMSR = 1220,
X86_INS_XABORT = 1221,
X86_INS_XACQUIRE = 1222,
X86_INS_XBEGIN = 1223,
X86_INS_XCHG = 1224,
X86_INS_FXCH = 1225,
X86_INS_XCRYPTCBC = 1226,
X86_INS_XCRYPTCFB = 1227,
X86_INS_XCRYPTCTR = 1228,
X86_INS_XCRYPTECB = 1229,
X86_INS_XCRYPTOFB = 1230,
X86_INS_XEND = 1231,
X86_INS_XGETBV = 1232,
X86_INS_XLATB = 1233,
X86_INS_XRELEASE = 1234,
X86_INS_XRSTOR = 1235,
X86_INS_XRSTOR64 = 1236,
X86_INS_XSAVE = 1237,
X86_INS_XSAVE64 = 1238,
X86_INS_XSAVEOPT = 1239,
X86_INS_XSAVEOPT64 = 1240,
X86_INS_XSETBV = 1241,
X86_INS_XSHA1 = 1242,
X86_INS_XSHA256 = 1243,
X86_INS_XSTORE = 1244,
X86_INS_XTEST = 1245,
X86_INS_MAX,
} x86_insn;
// group of X86 instructions
typedef enum x86_insn_group {
X86_GRP_INVALID = 0,
X86_GRP_3DNOW,
X86_GRP_AES,
X86_GRP_ADX,
X86_GRP_AVX,
X86_GRP_AVX2,
X86_GRP_AVX512,
X86_GRP_BMI,
X86_GRP_BMI2,
X86_GRP_CMOV,
X86_GRP_F16C,
X86_GRP_FMA,
X86_GRP_FMA4,
X86_GRP_FSGSBASE,
X86_GRP_HLE,
X86_GRP_MMX,
X86_GRP_MODE32,
X86_GRP_MODE64,
X86_GRP_RTM,
X86_GRP_SHA,
X86_GRP_SSE1,
X86_GRP_SSE2,
X86_GRP_SSE3,
X86_GRP_SSE41,
X86_GRP_SSE42,
X86_GRP_SSE4A,
X86_GRP_SSSE3,
X86_GRP_PCLMUL,
X86_GRP_XOP,
X86_GRP_CDI,
X86_GRP_ERI,
X86_GRP_TBM,
X86_GRP_JUMP, // all jump instructions (conditional+direct+indirect jumps)
X86_GRP_MAX
} x86_insn_group;
#ifdef __cplusplus
}
#endif
#endif