1*9a0e4156SSadaf Ebrahimi/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ 2*9a0e4156SSadaf Ebrahimi|* *| 3*9a0e4156SSadaf Ebrahimi|*Target Register Enum Values *| 4*9a0e4156SSadaf Ebrahimi|* *| 5*9a0e4156SSadaf Ebrahimi|* Automatically generated file, do not edit! *| 6*9a0e4156SSadaf Ebrahimi|* *| 7*9a0e4156SSadaf Ebrahimi\*===----------------------------------------------------------------------===*/ 8*9a0e4156SSadaf Ebrahimi 9*9a0e4156SSadaf Ebrahimi/* Capstone Disassembly Engine, http://www.capstone-engine.org */ 10*9a0e4156SSadaf Ebrahimi/* By Nguyen Anh Quynh <[email protected]>, 2013-2015 */ 11*9a0e4156SSadaf Ebrahimi 12*9a0e4156SSadaf Ebrahimi 13*9a0e4156SSadaf Ebrahimi#ifdef GET_REGINFO_ENUM 14*9a0e4156SSadaf Ebrahimi#undef GET_REGINFO_ENUM 15*9a0e4156SSadaf Ebrahimi 16*9a0e4156SSadaf Ebrahimienum { 17*9a0e4156SSadaf Ebrahimi X86_NoRegister, 18*9a0e4156SSadaf Ebrahimi X86_AH = 1, 19*9a0e4156SSadaf Ebrahimi X86_AL = 2, 20*9a0e4156SSadaf Ebrahimi X86_AX = 3, 21*9a0e4156SSadaf Ebrahimi X86_BH = 4, 22*9a0e4156SSadaf Ebrahimi X86_BL = 5, 23*9a0e4156SSadaf Ebrahimi X86_BP = 6, 24*9a0e4156SSadaf Ebrahimi X86_BPL = 7, 25*9a0e4156SSadaf Ebrahimi X86_BX = 8, 26*9a0e4156SSadaf Ebrahimi X86_CH = 9, 27*9a0e4156SSadaf Ebrahimi X86_CL = 10, 28*9a0e4156SSadaf Ebrahimi X86_CS = 11, 29*9a0e4156SSadaf Ebrahimi X86_CX = 12, 30*9a0e4156SSadaf Ebrahimi X86_DH = 13, 31*9a0e4156SSadaf Ebrahimi X86_DI = 14, 32*9a0e4156SSadaf Ebrahimi X86_DIL = 15, 33*9a0e4156SSadaf Ebrahimi X86_DL = 16, 34*9a0e4156SSadaf Ebrahimi X86_DS = 17, 35*9a0e4156SSadaf Ebrahimi X86_DX = 18, 36*9a0e4156SSadaf Ebrahimi X86_EAX = 19, 37*9a0e4156SSadaf Ebrahimi X86_EBP = 20, 38*9a0e4156SSadaf Ebrahimi X86_EBX = 21, 39*9a0e4156SSadaf Ebrahimi X86_ECX = 22, 40*9a0e4156SSadaf Ebrahimi X86_EDI = 23, 41*9a0e4156SSadaf Ebrahimi X86_EDX = 24, 42*9a0e4156SSadaf Ebrahimi X86_EFLAGS = 25, 43*9a0e4156SSadaf Ebrahimi X86_EIP = 26, 44*9a0e4156SSadaf Ebrahimi X86_EIZ = 27, 45*9a0e4156SSadaf Ebrahimi X86_ES = 28, 46*9a0e4156SSadaf Ebrahimi X86_ESI = 29, 47*9a0e4156SSadaf Ebrahimi X86_ESP = 30, 48*9a0e4156SSadaf Ebrahimi X86_FPSW = 31, 49*9a0e4156SSadaf Ebrahimi X86_FS = 32, 50*9a0e4156SSadaf Ebrahimi X86_GS = 33, 51*9a0e4156SSadaf Ebrahimi X86_IP = 34, 52*9a0e4156SSadaf Ebrahimi X86_RAX = 35, 53*9a0e4156SSadaf Ebrahimi X86_RBP = 36, 54*9a0e4156SSadaf Ebrahimi X86_RBX = 37, 55*9a0e4156SSadaf Ebrahimi X86_RCX = 38, 56*9a0e4156SSadaf Ebrahimi X86_RDI = 39, 57*9a0e4156SSadaf Ebrahimi X86_RDX = 40, 58*9a0e4156SSadaf Ebrahimi X86_RIP = 41, 59*9a0e4156SSadaf Ebrahimi X86_RIZ = 42, 60*9a0e4156SSadaf Ebrahimi X86_RSI = 43, 61*9a0e4156SSadaf Ebrahimi X86_RSP = 44, 62*9a0e4156SSadaf Ebrahimi X86_SI = 45, 63*9a0e4156SSadaf Ebrahimi X86_SIL = 46, 64*9a0e4156SSadaf Ebrahimi X86_SP = 47, 65*9a0e4156SSadaf Ebrahimi X86_SPL = 48, 66*9a0e4156SSadaf Ebrahimi X86_SS = 49, 67*9a0e4156SSadaf Ebrahimi X86_CR0 = 50, 68*9a0e4156SSadaf Ebrahimi X86_CR1 = 51, 69*9a0e4156SSadaf Ebrahimi X86_CR2 = 52, 70*9a0e4156SSadaf Ebrahimi X86_CR3 = 53, 71*9a0e4156SSadaf Ebrahimi X86_CR4 = 54, 72*9a0e4156SSadaf Ebrahimi X86_CR5 = 55, 73*9a0e4156SSadaf Ebrahimi X86_CR6 = 56, 74*9a0e4156SSadaf Ebrahimi X86_CR7 = 57, 75*9a0e4156SSadaf Ebrahimi X86_CR8 = 58, 76*9a0e4156SSadaf Ebrahimi X86_CR9 = 59, 77*9a0e4156SSadaf Ebrahimi X86_CR10 = 60, 78*9a0e4156SSadaf Ebrahimi X86_CR11 = 61, 79*9a0e4156SSadaf Ebrahimi X86_CR12 = 62, 80*9a0e4156SSadaf Ebrahimi X86_CR13 = 63, 81*9a0e4156SSadaf Ebrahimi X86_CR14 = 64, 82*9a0e4156SSadaf Ebrahimi X86_CR15 = 65, 83*9a0e4156SSadaf Ebrahimi X86_DR0 = 66, 84*9a0e4156SSadaf Ebrahimi X86_DR1 = 67, 85*9a0e4156SSadaf Ebrahimi X86_DR2 = 68, 86*9a0e4156SSadaf Ebrahimi X86_DR3 = 69, 87*9a0e4156SSadaf Ebrahimi X86_DR4 = 70, 88*9a0e4156SSadaf Ebrahimi X86_DR5 = 71, 89*9a0e4156SSadaf Ebrahimi X86_DR6 = 72, 90*9a0e4156SSadaf Ebrahimi X86_DR7 = 73, 91*9a0e4156SSadaf Ebrahimi X86_DR8 = 74, 92*9a0e4156SSadaf Ebrahimi X86_DR9 = 75, 93*9a0e4156SSadaf Ebrahimi X86_DR10 = 76, 94*9a0e4156SSadaf Ebrahimi X86_DR11 = 77, 95*9a0e4156SSadaf Ebrahimi X86_DR12 = 78, 96*9a0e4156SSadaf Ebrahimi X86_DR13 = 79, 97*9a0e4156SSadaf Ebrahimi X86_DR14 = 80, 98*9a0e4156SSadaf Ebrahimi X86_DR15 = 81, 99*9a0e4156SSadaf Ebrahimi X86_FP0 = 82, 100*9a0e4156SSadaf Ebrahimi X86_FP1 = 83, 101*9a0e4156SSadaf Ebrahimi X86_FP2 = 84, 102*9a0e4156SSadaf Ebrahimi X86_FP3 = 85, 103*9a0e4156SSadaf Ebrahimi X86_FP4 = 86, 104*9a0e4156SSadaf Ebrahimi X86_FP5 = 87, 105*9a0e4156SSadaf Ebrahimi X86_FP6 = 88, 106*9a0e4156SSadaf Ebrahimi X86_FP7 = 89, 107*9a0e4156SSadaf Ebrahimi X86_K0 = 90, 108*9a0e4156SSadaf Ebrahimi X86_K1 = 91, 109*9a0e4156SSadaf Ebrahimi X86_K2 = 92, 110*9a0e4156SSadaf Ebrahimi X86_K3 = 93, 111*9a0e4156SSadaf Ebrahimi X86_K4 = 94, 112*9a0e4156SSadaf Ebrahimi X86_K5 = 95, 113*9a0e4156SSadaf Ebrahimi X86_K6 = 96, 114*9a0e4156SSadaf Ebrahimi X86_K7 = 97, 115*9a0e4156SSadaf Ebrahimi X86_MM0 = 98, 116*9a0e4156SSadaf Ebrahimi X86_MM1 = 99, 117*9a0e4156SSadaf Ebrahimi X86_MM2 = 100, 118*9a0e4156SSadaf Ebrahimi X86_MM3 = 101, 119*9a0e4156SSadaf Ebrahimi X86_MM4 = 102, 120*9a0e4156SSadaf Ebrahimi X86_MM5 = 103, 121*9a0e4156SSadaf Ebrahimi X86_MM6 = 104, 122*9a0e4156SSadaf Ebrahimi X86_MM7 = 105, 123*9a0e4156SSadaf Ebrahimi X86_R8 = 106, 124*9a0e4156SSadaf Ebrahimi X86_R9 = 107, 125*9a0e4156SSadaf Ebrahimi X86_R10 = 108, 126*9a0e4156SSadaf Ebrahimi X86_R11 = 109, 127*9a0e4156SSadaf Ebrahimi X86_R12 = 110, 128*9a0e4156SSadaf Ebrahimi X86_R13 = 111, 129*9a0e4156SSadaf Ebrahimi X86_R14 = 112, 130*9a0e4156SSadaf Ebrahimi X86_R15 = 113, 131*9a0e4156SSadaf Ebrahimi X86_ST0 = 114, 132*9a0e4156SSadaf Ebrahimi X86_ST1 = 115, 133*9a0e4156SSadaf Ebrahimi X86_ST2 = 116, 134*9a0e4156SSadaf Ebrahimi X86_ST3 = 117, 135*9a0e4156SSadaf Ebrahimi X86_ST4 = 118, 136*9a0e4156SSadaf Ebrahimi X86_ST5 = 119, 137*9a0e4156SSadaf Ebrahimi X86_ST6 = 120, 138*9a0e4156SSadaf Ebrahimi X86_ST7 = 121, 139*9a0e4156SSadaf Ebrahimi X86_XMM0 = 122, 140*9a0e4156SSadaf Ebrahimi X86_XMM1 = 123, 141*9a0e4156SSadaf Ebrahimi X86_XMM2 = 124, 142*9a0e4156SSadaf Ebrahimi X86_XMM3 = 125, 143*9a0e4156SSadaf Ebrahimi X86_XMM4 = 126, 144*9a0e4156SSadaf Ebrahimi X86_XMM5 = 127, 145*9a0e4156SSadaf Ebrahimi X86_XMM6 = 128, 146*9a0e4156SSadaf Ebrahimi X86_XMM7 = 129, 147*9a0e4156SSadaf Ebrahimi X86_XMM8 = 130, 148*9a0e4156SSadaf Ebrahimi X86_XMM9 = 131, 149*9a0e4156SSadaf Ebrahimi X86_XMM10 = 132, 150*9a0e4156SSadaf Ebrahimi X86_XMM11 = 133, 151*9a0e4156SSadaf Ebrahimi X86_XMM12 = 134, 152*9a0e4156SSadaf Ebrahimi X86_XMM13 = 135, 153*9a0e4156SSadaf Ebrahimi X86_XMM14 = 136, 154*9a0e4156SSadaf Ebrahimi X86_XMM15 = 137, 155*9a0e4156SSadaf Ebrahimi X86_XMM16 = 138, 156*9a0e4156SSadaf Ebrahimi X86_XMM17 = 139, 157*9a0e4156SSadaf Ebrahimi X86_XMM18 = 140, 158*9a0e4156SSadaf Ebrahimi X86_XMM19 = 141, 159*9a0e4156SSadaf Ebrahimi X86_XMM20 = 142, 160*9a0e4156SSadaf Ebrahimi X86_XMM21 = 143, 161*9a0e4156SSadaf Ebrahimi X86_XMM22 = 144, 162*9a0e4156SSadaf Ebrahimi X86_XMM23 = 145, 163*9a0e4156SSadaf Ebrahimi X86_XMM24 = 146, 164*9a0e4156SSadaf Ebrahimi X86_XMM25 = 147, 165*9a0e4156SSadaf Ebrahimi X86_XMM26 = 148, 166*9a0e4156SSadaf Ebrahimi X86_XMM27 = 149, 167*9a0e4156SSadaf Ebrahimi X86_XMM28 = 150, 168*9a0e4156SSadaf Ebrahimi X86_XMM29 = 151, 169*9a0e4156SSadaf Ebrahimi X86_XMM30 = 152, 170*9a0e4156SSadaf Ebrahimi X86_XMM31 = 153, 171*9a0e4156SSadaf Ebrahimi X86_YMM0 = 154, 172*9a0e4156SSadaf Ebrahimi X86_YMM1 = 155, 173*9a0e4156SSadaf Ebrahimi X86_YMM2 = 156, 174*9a0e4156SSadaf Ebrahimi X86_YMM3 = 157, 175*9a0e4156SSadaf Ebrahimi X86_YMM4 = 158, 176*9a0e4156SSadaf Ebrahimi X86_YMM5 = 159, 177*9a0e4156SSadaf Ebrahimi X86_YMM6 = 160, 178*9a0e4156SSadaf Ebrahimi X86_YMM7 = 161, 179*9a0e4156SSadaf Ebrahimi X86_YMM8 = 162, 180*9a0e4156SSadaf Ebrahimi X86_YMM9 = 163, 181*9a0e4156SSadaf Ebrahimi X86_YMM10 = 164, 182*9a0e4156SSadaf Ebrahimi X86_YMM11 = 165, 183*9a0e4156SSadaf Ebrahimi X86_YMM12 = 166, 184*9a0e4156SSadaf Ebrahimi X86_YMM13 = 167, 185*9a0e4156SSadaf Ebrahimi X86_YMM14 = 168, 186*9a0e4156SSadaf Ebrahimi X86_YMM15 = 169, 187*9a0e4156SSadaf Ebrahimi X86_YMM16 = 170, 188*9a0e4156SSadaf Ebrahimi X86_YMM17 = 171, 189*9a0e4156SSadaf Ebrahimi X86_YMM18 = 172, 190*9a0e4156SSadaf Ebrahimi X86_YMM19 = 173, 191*9a0e4156SSadaf Ebrahimi X86_YMM20 = 174, 192*9a0e4156SSadaf Ebrahimi X86_YMM21 = 175, 193*9a0e4156SSadaf Ebrahimi X86_YMM22 = 176, 194*9a0e4156SSadaf Ebrahimi X86_YMM23 = 177, 195*9a0e4156SSadaf Ebrahimi X86_YMM24 = 178, 196*9a0e4156SSadaf Ebrahimi X86_YMM25 = 179, 197*9a0e4156SSadaf Ebrahimi X86_YMM26 = 180, 198*9a0e4156SSadaf Ebrahimi X86_YMM27 = 181, 199*9a0e4156SSadaf Ebrahimi X86_YMM28 = 182, 200*9a0e4156SSadaf Ebrahimi X86_YMM29 = 183, 201*9a0e4156SSadaf Ebrahimi X86_YMM30 = 184, 202*9a0e4156SSadaf Ebrahimi X86_YMM31 = 185, 203*9a0e4156SSadaf Ebrahimi X86_ZMM0 = 186, 204*9a0e4156SSadaf Ebrahimi X86_ZMM1 = 187, 205*9a0e4156SSadaf Ebrahimi X86_ZMM2 = 188, 206*9a0e4156SSadaf Ebrahimi X86_ZMM3 = 189, 207*9a0e4156SSadaf Ebrahimi X86_ZMM4 = 190, 208*9a0e4156SSadaf Ebrahimi X86_ZMM5 = 191, 209*9a0e4156SSadaf Ebrahimi X86_ZMM6 = 192, 210*9a0e4156SSadaf Ebrahimi X86_ZMM7 = 193, 211*9a0e4156SSadaf Ebrahimi X86_ZMM8 = 194, 212*9a0e4156SSadaf Ebrahimi X86_ZMM9 = 195, 213*9a0e4156SSadaf Ebrahimi X86_ZMM10 = 196, 214*9a0e4156SSadaf Ebrahimi X86_ZMM11 = 197, 215*9a0e4156SSadaf Ebrahimi X86_ZMM12 = 198, 216*9a0e4156SSadaf Ebrahimi X86_ZMM13 = 199, 217*9a0e4156SSadaf Ebrahimi X86_ZMM14 = 200, 218*9a0e4156SSadaf Ebrahimi X86_ZMM15 = 201, 219*9a0e4156SSadaf Ebrahimi X86_ZMM16 = 202, 220*9a0e4156SSadaf Ebrahimi X86_ZMM17 = 203, 221*9a0e4156SSadaf Ebrahimi X86_ZMM18 = 204, 222*9a0e4156SSadaf Ebrahimi X86_ZMM19 = 205, 223*9a0e4156SSadaf Ebrahimi X86_ZMM20 = 206, 224*9a0e4156SSadaf Ebrahimi X86_ZMM21 = 207, 225*9a0e4156SSadaf Ebrahimi X86_ZMM22 = 208, 226*9a0e4156SSadaf Ebrahimi X86_ZMM23 = 209, 227*9a0e4156SSadaf Ebrahimi X86_ZMM24 = 210, 228*9a0e4156SSadaf Ebrahimi X86_ZMM25 = 211, 229*9a0e4156SSadaf Ebrahimi X86_ZMM26 = 212, 230*9a0e4156SSadaf Ebrahimi X86_ZMM27 = 213, 231*9a0e4156SSadaf Ebrahimi X86_ZMM28 = 214, 232*9a0e4156SSadaf Ebrahimi X86_ZMM29 = 215, 233*9a0e4156SSadaf Ebrahimi X86_ZMM30 = 216, 234*9a0e4156SSadaf Ebrahimi X86_ZMM31 = 217, 235*9a0e4156SSadaf Ebrahimi X86_R8B = 218, 236*9a0e4156SSadaf Ebrahimi X86_R9B = 219, 237*9a0e4156SSadaf Ebrahimi X86_R10B = 220, 238*9a0e4156SSadaf Ebrahimi X86_R11B = 221, 239*9a0e4156SSadaf Ebrahimi X86_R12B = 222, 240*9a0e4156SSadaf Ebrahimi X86_R13B = 223, 241*9a0e4156SSadaf Ebrahimi X86_R14B = 224, 242*9a0e4156SSadaf Ebrahimi X86_R15B = 225, 243*9a0e4156SSadaf Ebrahimi X86_R8D = 226, 244*9a0e4156SSadaf Ebrahimi X86_R9D = 227, 245*9a0e4156SSadaf Ebrahimi X86_R10D = 228, 246*9a0e4156SSadaf Ebrahimi X86_R11D = 229, 247*9a0e4156SSadaf Ebrahimi X86_R12D = 230, 248*9a0e4156SSadaf Ebrahimi X86_R13D = 231, 249*9a0e4156SSadaf Ebrahimi X86_R14D = 232, 250*9a0e4156SSadaf Ebrahimi X86_R15D = 233, 251*9a0e4156SSadaf Ebrahimi X86_R8W = 234, 252*9a0e4156SSadaf Ebrahimi X86_R9W = 235, 253*9a0e4156SSadaf Ebrahimi X86_R10W = 236, 254*9a0e4156SSadaf Ebrahimi X86_R11W = 237, 255*9a0e4156SSadaf Ebrahimi X86_R12W = 238, 256*9a0e4156SSadaf Ebrahimi X86_R13W = 239, 257*9a0e4156SSadaf Ebrahimi X86_R14W = 240, 258*9a0e4156SSadaf Ebrahimi X86_R15W = 241, 259*9a0e4156SSadaf Ebrahimi X86_NUM_TARGET_REGS // 242 260*9a0e4156SSadaf Ebrahimi}; 261*9a0e4156SSadaf Ebrahimi 262*9a0e4156SSadaf Ebrahimi// Register classes 263*9a0e4156SSadaf Ebrahimienum { 264*9a0e4156SSadaf Ebrahimi X86_GR8RegClassID = 0, 265*9a0e4156SSadaf Ebrahimi X86_GR8_NOREXRegClassID = 1, 266*9a0e4156SSadaf Ebrahimi X86_VK1RegClassID = 2, 267*9a0e4156SSadaf Ebrahimi X86_VK2RegClassID = 3, 268*9a0e4156SSadaf Ebrahimi X86_VK4RegClassID = 4, 269*9a0e4156SSadaf Ebrahimi X86_VK8RegClassID = 5, 270*9a0e4156SSadaf Ebrahimi X86_VK1WMRegClassID = 6, 271*9a0e4156SSadaf Ebrahimi X86_VK2WMRegClassID = 7, 272*9a0e4156SSadaf Ebrahimi X86_VK4WMRegClassID = 8, 273*9a0e4156SSadaf Ebrahimi X86_VK8WMRegClassID = 9, 274*9a0e4156SSadaf Ebrahimi X86_GR8_ABCD_HRegClassID = 10, 275*9a0e4156SSadaf Ebrahimi X86_GR8_ABCD_LRegClassID = 11, 276*9a0e4156SSadaf Ebrahimi X86_GR16RegClassID = 12, 277*9a0e4156SSadaf Ebrahimi X86_GR16_NOREXRegClassID = 13, 278*9a0e4156SSadaf Ebrahimi X86_VK16RegClassID = 14, 279*9a0e4156SSadaf Ebrahimi X86_VK16WMRegClassID = 15, 280*9a0e4156SSadaf Ebrahimi X86_SEGMENT_REGRegClassID = 16, 281*9a0e4156SSadaf Ebrahimi X86_GR16_ABCDRegClassID = 17, 282*9a0e4156SSadaf Ebrahimi X86_FPCCRRegClassID = 18, 283*9a0e4156SSadaf Ebrahimi X86_FR32XRegClassID = 19, 284*9a0e4156SSadaf Ebrahimi X86_FR32RegClassID = 20, 285*9a0e4156SSadaf Ebrahimi X86_GR32RegClassID = 21, 286*9a0e4156SSadaf Ebrahimi X86_GR32_NOAXRegClassID = 22, 287*9a0e4156SSadaf Ebrahimi X86_GR32_NOSPRegClassID = 23, 288*9a0e4156SSadaf Ebrahimi X86_GR32_NOAX_and_GR32_NOSPRegClassID = 24, 289*9a0e4156SSadaf Ebrahimi X86_DEBUG_REGRegClassID = 25, 290*9a0e4156SSadaf Ebrahimi X86_GR32_NOREXRegClassID = 26, 291*9a0e4156SSadaf Ebrahimi X86_VK32RegClassID = 27, 292*9a0e4156SSadaf Ebrahimi X86_GR32_NOAX_and_GR32_NOREXRegClassID = 28, 293*9a0e4156SSadaf Ebrahimi X86_GR32_NOREX_NOSPRegClassID = 29, 294*9a0e4156SSadaf Ebrahimi X86_RFP32RegClassID = 30, 295*9a0e4156SSadaf Ebrahimi X86_VK32WMRegClassID = 31, 296*9a0e4156SSadaf Ebrahimi X86_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID = 32, 297*9a0e4156SSadaf Ebrahimi X86_GR32_ABCDRegClassID = 33, 298*9a0e4156SSadaf Ebrahimi X86_GR32_ABCD_and_GR32_NOAXRegClassID = 34, 299*9a0e4156SSadaf Ebrahimi X86_GR32_TCRegClassID = 35, 300*9a0e4156SSadaf Ebrahimi X86_GR32_ADRegClassID = 36, 301*9a0e4156SSadaf Ebrahimi X86_GR32_NOAX_and_GR32_TCRegClassID = 37, 302*9a0e4156SSadaf Ebrahimi X86_CCRRegClassID = 38, 303*9a0e4156SSadaf Ebrahimi X86_GR32_AD_and_GR32_NOAXRegClassID = 39, 304*9a0e4156SSadaf Ebrahimi X86_RFP64RegClassID = 40, 305*9a0e4156SSadaf Ebrahimi X86_FR64XRegClassID = 41, 306*9a0e4156SSadaf Ebrahimi X86_GR64RegClassID = 42, 307*9a0e4156SSadaf Ebrahimi X86_CONTROL_REGRegClassID = 43, 308*9a0e4156SSadaf Ebrahimi X86_FR64RegClassID = 44, 309*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_8bitRegClassID = 45, 310*9a0e4156SSadaf Ebrahimi X86_GR64_NOSPRegClassID = 46, 311*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 47, 312*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPRegClassID = 48, 313*9a0e4156SSadaf Ebrahimi X86_GR64_NOREXRegClassID = 49, 314*9a0e4156SSadaf Ebrahimi X86_GR64_TCRegClassID = 50, 315*9a0e4156SSadaf Ebrahimi X86_GR64_NOSP_and_GR64_TCRegClassID = 51, 316*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_16bit_in_GR16_NOREXRegClassID = 52, 317*9a0e4156SSadaf Ebrahimi X86_VK64RegClassID = 53, 318*9a0e4156SSadaf Ebrahimi X86_VR64RegClassID = 54, 319*9a0e4156SSadaf Ebrahimi X86_GR64_NOREX_NOSPRegClassID = 55, 320*9a0e4156SSadaf Ebrahimi X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 56, 321*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID = 57, 322*9a0e4156SSadaf Ebrahimi X86_VK64WMRegClassID = 58, 323*9a0e4156SSadaf Ebrahimi X86_GR64_NOREX_and_GR64_TCRegClassID = 59, 324*9a0e4156SSadaf Ebrahimi X86_GR64_TCW64RegClassID = 60, 325*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID = 61, 326*9a0e4156SSadaf Ebrahimi X86_GR64_NOREX_NOSP_and_GR64_TCRegClassID = 62, 327*9a0e4156SSadaf Ebrahimi X86_GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 63, 328*9a0e4156SSadaf Ebrahimi X86_GR64_ABCDRegClassID = 64, 329*9a0e4156SSadaf Ebrahimi X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID = 65, 330*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXRegClassID = 66, 331*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_TCRegClassID = 67, 332*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_ADRegClassID = 68, 333*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCRegClassID = 69, 334*9a0e4156SSadaf Ebrahimi X86_GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXRegClassID = 70, 335*9a0e4156SSadaf Ebrahimi X86_RSTRegClassID = 71, 336*9a0e4156SSadaf Ebrahimi X86_RFP80RegClassID = 72, 337*9a0e4156SSadaf Ebrahimi X86_VR128XRegClassID = 73, 338*9a0e4156SSadaf Ebrahimi X86_VR128RegClassID = 74, 339*9a0e4156SSadaf Ebrahimi X86_VR256XRegClassID = 75, 340*9a0e4156SSadaf Ebrahimi X86_VR256RegClassID = 76, 341*9a0e4156SSadaf Ebrahimi X86_VR512RegClassID = 77, 342*9a0e4156SSadaf Ebrahimi X86_VR512_with_sub_xmm_in_FR32RegClassID = 78, 343*9a0e4156SSadaf Ebrahimi}; 344*9a0e4156SSadaf Ebrahimi 345*9a0e4156SSadaf Ebrahimi#endif // GET_REGINFO_ENUM 346*9a0e4156SSadaf Ebrahimi 347*9a0e4156SSadaf Ebrahimi#ifdef GET_REGINFO_MC_DESC 348*9a0e4156SSadaf Ebrahimi#undef GET_REGINFO_MC_DESC 349*9a0e4156SSadaf Ebrahimi 350*9a0e4156SSadaf Ebrahimistatic const MCPhysReg X86RegDiffLists[] = { 351*9a0e4156SSadaf Ebrahimi /* 0 */ 0, 1, 0, 352*9a0e4156SSadaf Ebrahimi /* 3 */ 2, 1, 0, 353*9a0e4156SSadaf Ebrahimi /* 6 */ 5, 1, 0, 354*9a0e4156SSadaf Ebrahimi /* 9 */ 65522, 16, 1, 0, 355*9a0e4156SSadaf Ebrahimi /* 13 */ 65522, 17, 1, 0, 356*9a0e4156SSadaf Ebrahimi /* 17 */ 65427, 1, 0, 357*9a0e4156SSadaf Ebrahimi /* 20 */ 65475, 1, 0, 358*9a0e4156SSadaf Ebrahimi /* 23 */ 65520, 65522, 1, 0, 359*9a0e4156SSadaf Ebrahimi /* 27 */ 65520, 65527, 1, 0, 360*9a0e4156SSadaf Ebrahimi /* 31 */ 8, 2, 0, 361*9a0e4156SSadaf Ebrahimi /* 34 */ 4, 0, 362*9a0e4156SSadaf Ebrahimi /* 36 */ 65521, 8, 0, 363*9a0e4156SSadaf Ebrahimi /* 39 */ 9, 0, 364*9a0e4156SSadaf Ebrahimi /* 41 */ 13, 0, 365*9a0e4156SSadaf Ebrahimi /* 43 */ 65535, 65519, 14, 0, 366*9a0e4156SSadaf Ebrahimi /* 47 */ 65535, 65520, 14, 0, 367*9a0e4156SSadaf Ebrahimi /* 51 */ 65528, 15, 0, 368*9a0e4156SSadaf Ebrahimi /* 54 */ 2, 6, 16, 0, 369*9a0e4156SSadaf Ebrahimi /* 58 */ 5, 6, 16, 0, 370*9a0e4156SSadaf Ebrahimi /* 62 */ 65535, 9, 16, 0, 371*9a0e4156SSadaf Ebrahimi /* 66 */ 2, 10, 16, 0, 372*9a0e4156SSadaf Ebrahimi /* 70 */ 3, 10, 16, 0, 373*9a0e4156SSadaf Ebrahimi /* 74 */ 3, 13, 16, 0, 374*9a0e4156SSadaf Ebrahimi /* 78 */ 4, 13, 16, 0, 375*9a0e4156SSadaf Ebrahimi /* 82 */ 65535, 14, 16, 0, 376*9a0e4156SSadaf Ebrahimi /* 86 */ 1, 16, 16, 0, 377*9a0e4156SSadaf Ebrahimi /* 90 */ 2, 16, 16, 0, 378*9a0e4156SSadaf Ebrahimi /* 94 */ 17, 0, 379*9a0e4156SSadaf Ebrahimi /* 96 */ 32, 32, 0, 380*9a0e4156SSadaf Ebrahimi /* 99 */ 65221, 0, 381*9a0e4156SSadaf Ebrahimi /* 101 */ 65381, 0, 382*9a0e4156SSadaf Ebrahimi /* 103 */ 65389, 0, 383*9a0e4156SSadaf Ebrahimi /* 105 */ 65397, 0, 384*9a0e4156SSadaf Ebrahimi /* 107 */ 16, 65528, 65416, 0, 385*9a0e4156SSadaf Ebrahimi /* 111 */ 65445, 0, 386*9a0e4156SSadaf Ebrahimi /* 113 */ 65477, 0, 387*9a0e4156SSadaf Ebrahimi /* 115 */ 65504, 65504, 0, 388*9a0e4156SSadaf Ebrahimi /* 118 */ 65509, 0, 389*9a0e4156SSadaf Ebrahimi /* 120 */ 120, 8, 65520, 0, 390*9a0e4156SSadaf Ebrahimi /* 124 */ 65523, 0, 391*9a0e4156SSadaf Ebrahimi /* 126 */ 65530, 0, 392*9a0e4156SSadaf Ebrahimi /* 128 */ 65531, 0, 393*9a0e4156SSadaf Ebrahimi /* 130 */ 65532, 0, 394*9a0e4156SSadaf Ebrahimi /* 132 */ 65520, 65530, 65534, 65533, 0, 395*9a0e4156SSadaf Ebrahimi /* 137 */ 65534, 0, 396*9a0e4156SSadaf Ebrahimi /* 139 */ 65520, 65523, 65533, 65535, 0, 397*9a0e4156SSadaf Ebrahimi /* 144 */ 65520, 65526, 65534, 65535, 0, 398*9a0e4156SSadaf Ebrahimi /* 149 */ 65520, 65520, 65535, 65535, 0, 399*9a0e4156SSadaf Ebrahimi}; 400*9a0e4156SSadaf Ebrahimi 401*9a0e4156SSadaf Ebrahimistatic const uint16_t X86SubRegIdxLists[] = { 402*9a0e4156SSadaf Ebrahimi /* 0 */ 4, 3, 1, 0, 403*9a0e4156SSadaf Ebrahimi /* 4 */ 4, 3, 1, 2, 0, 404*9a0e4156SSadaf Ebrahimi /* 9 */ 4, 3, 0, 405*9a0e4156SSadaf Ebrahimi /* 12 */ 6, 5, 0, 406*9a0e4156SSadaf Ebrahimi}; 407*9a0e4156SSadaf Ebrahimi 408*9a0e4156SSadaf Ebrahimistatic MCRegisterDesc X86RegDesc[] = { // Descriptors 409*9a0e4156SSadaf Ebrahimi { 5, 0, 0, 0, 0, 0 }, 410*9a0e4156SSadaf Ebrahimi { 850, 2, 90, 3, 2273, 0 }, 411*9a0e4156SSadaf Ebrahimi { 878, 2, 86, 3, 2273, 0 }, 412*9a0e4156SSadaf Ebrahimi { 996, 151, 87, 6, 0, 2 }, 413*9a0e4156SSadaf Ebrahimi { 853, 2, 78, 3, 2193, 0 }, 414*9a0e4156SSadaf Ebrahimi { 881, 2, 74, 3, 2193, 0 }, 415*9a0e4156SSadaf Ebrahimi { 907, 1, 83, 2, 544, 3 }, 416*9a0e4156SSadaf Ebrahimi { 898, 2, 82, 3, 544, 0 }, 417*9a0e4156SSadaf Ebrahimi { 1004, 141, 75, 6, 48, 2 }, 418*9a0e4156SSadaf Ebrahimi { 856, 2, 70, 3, 2081, 0 }, 419*9a0e4156SSadaf Ebrahimi { 884, 2, 66, 3, 2081, 0 }, 420*9a0e4156SSadaf Ebrahimi { 930, 2, 2, 3, 2081, 0 }, 421*9a0e4156SSadaf Ebrahimi { 1012, 146, 67, 6, 96, 2 }, 422*9a0e4156SSadaf Ebrahimi { 859, 2, 58, 3, 2049, 0 }, 423*9a0e4156SSadaf Ebrahimi { 863, 1, 63, 2, 624, 3 }, 424*9a0e4156SSadaf Ebrahimi { 890, 2, 62, 3, 624, 0 }, 425*9a0e4156SSadaf Ebrahimi { 887, 2, 54, 3, 2017, 0 }, 426*9a0e4156SSadaf Ebrahimi { 933, 2, 2, 3, 2017, 0 }, 427*9a0e4156SSadaf Ebrahimi { 1020, 134, 55, 6, 496, 2 }, 428*9a0e4156SSadaf Ebrahimi { 995, 150, 56, 5, 0, 2 }, 429*9a0e4156SSadaf Ebrahimi { 906, 24, 56, 1, 544, 3 }, 430*9a0e4156SSadaf Ebrahimi { 1003, 140, 56, 5, 323, 2 }, 431*9a0e4156SSadaf Ebrahimi { 1011, 145, 56, 5, 323, 2 }, 432*9a0e4156SSadaf Ebrahimi { 862, 28, 56, 1, 624, 3 }, 433*9a0e4156SSadaf Ebrahimi { 1019, 133, 56, 5, 496, 2 }, 434*9a0e4156SSadaf Ebrahimi { 942, 2, 2, 3, 1985, 0 }, 435*9a0e4156SSadaf Ebrahimi { 914, 37, 52, 10, 1985, 5 }, 436*9a0e4156SSadaf Ebrahimi { 1027, 2, 2, 3, 1985, 0 }, 437*9a0e4156SSadaf Ebrahimi { 936, 2, 2, 3, 1985, 0 }, 438*9a0e4156SSadaf Ebrahimi { 870, 10, 45, 1, 1985, 3 }, 439*9a0e4156SSadaf Ebrahimi { 922, 14, 45, 1, 1985, 3 }, 440*9a0e4156SSadaf Ebrahimi { 990, 2, 2, 3, 1985, 0 }, 441*9a0e4156SSadaf Ebrahimi { 939, 2, 2, 3, 1985, 0 }, 442*9a0e4156SSadaf Ebrahimi { 946, 2, 2, 3, 1985, 0 }, 443*9a0e4156SSadaf Ebrahimi { 915, 2, 51, 3, 656, 0 }, 444*9a0e4156SSadaf Ebrahimi { 999, 149, 2, 4, 0, 2 }, 445*9a0e4156SSadaf Ebrahimi { 910, 23, 2, 0, 544, 3 }, 446*9a0e4156SSadaf Ebrahimi { 1007, 139, 2, 4, 275, 2 }, 447*9a0e4156SSadaf Ebrahimi { 1015, 144, 2, 4, 275, 2 }, 448*9a0e4156SSadaf Ebrahimi { 866, 27, 2, 0, 624, 3 }, 449*9a0e4156SSadaf Ebrahimi { 1023, 132, 2, 4, 496, 2 }, 450*9a0e4156SSadaf Ebrahimi { 918, 36, 2, 9, 1592, 5 }, 451*9a0e4156SSadaf Ebrahimi { 1031, 2, 2, 3, 1592, 0 }, 452*9a0e4156SSadaf Ebrahimi { 874, 9, 2, 0, 1889, 3 }, 453*9a0e4156SSadaf Ebrahimi { 926, 13, 2, 0, 1889, 3 }, 454*9a0e4156SSadaf Ebrahimi { 871, 1, 48, 2, 896, 3 }, 455*9a0e4156SSadaf Ebrahimi { 894, 2, 47, 3, 896, 0 }, 456*9a0e4156SSadaf Ebrahimi { 923, 1, 44, 2, 1504, 3 }, 457*9a0e4156SSadaf Ebrahimi { 902, 2, 43, 3, 1504, 0 }, 458*9a0e4156SSadaf Ebrahimi { 949, 2, 2, 3, 1889, 0 }, 459*9a0e4156SSadaf Ebrahimi { 86, 2, 2, 3, 1889, 0 }, 460*9a0e4156SSadaf Ebrahimi { 184, 2, 2, 3, 1889, 0 }, 461*9a0e4156SSadaf Ebrahimi { 264, 2, 2, 3, 1889, 0 }, 462*9a0e4156SSadaf Ebrahimi { 344, 2, 2, 3, 1889, 0 }, 463*9a0e4156SSadaf Ebrahimi { 424, 2, 2, 3, 1889, 0 }, 464*9a0e4156SSadaf Ebrahimi { 504, 2, 2, 3, 1889, 0 }, 465*9a0e4156SSadaf Ebrahimi { 574, 2, 2, 3, 1889, 0 }, 466*9a0e4156SSadaf Ebrahimi { 644, 2, 2, 3, 1889, 0 }, 467*9a0e4156SSadaf Ebrahimi { 707, 2, 2, 3, 1889, 0 }, 468*9a0e4156SSadaf Ebrahimi { 766, 2, 2, 3, 1889, 0 }, 469*9a0e4156SSadaf Ebrahimi { 18, 2, 2, 3, 1889, 0 }, 470*9a0e4156SSadaf Ebrahimi { 116, 2, 2, 3, 1889, 0 }, 471*9a0e4156SSadaf Ebrahimi { 214, 2, 2, 3, 1889, 0 }, 472*9a0e4156SSadaf Ebrahimi { 294, 2, 2, 3, 1889, 0 }, 473*9a0e4156SSadaf Ebrahimi { 374, 2, 2, 3, 1889, 0 }, 474*9a0e4156SSadaf Ebrahimi { 454, 2, 2, 3, 1889, 0 }, 475*9a0e4156SSadaf Ebrahimi { 90, 2, 2, 3, 1889, 0 }, 476*9a0e4156SSadaf Ebrahimi { 188, 2, 2, 3, 1889, 0 }, 477*9a0e4156SSadaf Ebrahimi { 268, 2, 2, 3, 1889, 0 }, 478*9a0e4156SSadaf Ebrahimi { 348, 2, 2, 3, 1889, 0 }, 479*9a0e4156SSadaf Ebrahimi { 428, 2, 2, 3, 1889, 0 }, 480*9a0e4156SSadaf Ebrahimi { 508, 2, 2, 3, 1889, 0 }, 481*9a0e4156SSadaf Ebrahimi { 578, 2, 2, 3, 1889, 0 }, 482*9a0e4156SSadaf Ebrahimi { 648, 2, 2, 3, 1889, 0 }, 483*9a0e4156SSadaf Ebrahimi { 711, 2, 2, 3, 1889, 0 }, 484*9a0e4156SSadaf Ebrahimi { 770, 2, 2, 3, 1889, 0 }, 485*9a0e4156SSadaf Ebrahimi { 23, 2, 2, 3, 1889, 0 }, 486*9a0e4156SSadaf Ebrahimi { 121, 2, 2, 3, 1889, 0 }, 487*9a0e4156SSadaf Ebrahimi { 219, 2, 2, 3, 1889, 0 }, 488*9a0e4156SSadaf Ebrahimi { 299, 2, 2, 3, 1889, 0 }, 489*9a0e4156SSadaf Ebrahimi { 379, 2, 2, 3, 1889, 0 }, 490*9a0e4156SSadaf Ebrahimi { 459, 2, 2, 3, 1889, 0 }, 491*9a0e4156SSadaf Ebrahimi { 82, 2, 2, 3, 1889, 0 }, 492*9a0e4156SSadaf Ebrahimi { 180, 2, 2, 3, 1889, 0 }, 493*9a0e4156SSadaf Ebrahimi { 260, 2, 2, 3, 1889, 0 }, 494*9a0e4156SSadaf Ebrahimi { 340, 2, 2, 3, 1889, 0 }, 495*9a0e4156SSadaf Ebrahimi { 420, 2, 2, 3, 1889, 0 }, 496*9a0e4156SSadaf Ebrahimi { 500, 2, 2, 3, 1889, 0 }, 497*9a0e4156SSadaf Ebrahimi { 570, 2, 2, 3, 1889, 0 }, 498*9a0e4156SSadaf Ebrahimi { 640, 2, 2, 3, 1889, 0 }, 499*9a0e4156SSadaf Ebrahimi { 64, 2, 2, 3, 1889, 0 }, 500*9a0e4156SSadaf Ebrahimi { 162, 2, 2, 3, 1889, 0 }, 501*9a0e4156SSadaf Ebrahimi { 242, 2, 2, 3, 1889, 0 }, 502*9a0e4156SSadaf Ebrahimi { 322, 2, 2, 3, 1889, 0 }, 503*9a0e4156SSadaf Ebrahimi { 402, 2, 2, 3, 1889, 0 }, 504*9a0e4156SSadaf Ebrahimi { 482, 2, 2, 3, 1889, 0 }, 505*9a0e4156SSadaf Ebrahimi { 552, 2, 2, 3, 1889, 0 }, 506*9a0e4156SSadaf Ebrahimi { 622, 2, 2, 3, 1889, 0 }, 507*9a0e4156SSadaf Ebrahimi { 68, 2, 2, 3, 1889, 0 }, 508*9a0e4156SSadaf Ebrahimi { 166, 2, 2, 3, 1889, 0 }, 509*9a0e4156SSadaf Ebrahimi { 246, 2, 2, 3, 1889, 0 }, 510*9a0e4156SSadaf Ebrahimi { 326, 2, 2, 3, 1889, 0 }, 511*9a0e4156SSadaf Ebrahimi { 406, 2, 2, 3, 1889, 0 }, 512*9a0e4156SSadaf Ebrahimi { 486, 2, 2, 3, 1889, 0 }, 513*9a0e4156SSadaf Ebrahimi { 556, 2, 2, 3, 1889, 0 }, 514*9a0e4156SSadaf Ebrahimi { 626, 2, 2, 3, 1889, 0 }, 515*9a0e4156SSadaf Ebrahimi { 708, 120, 2, 0, 1889, 3 }, 516*9a0e4156SSadaf Ebrahimi { 767, 120, 2, 0, 1889, 3 }, 517*9a0e4156SSadaf Ebrahimi { 19, 120, 2, 0, 1889, 3 }, 518*9a0e4156SSadaf Ebrahimi { 117, 120, 2, 0, 1889, 3 }, 519*9a0e4156SSadaf Ebrahimi { 215, 120, 2, 0, 1889, 3 }, 520*9a0e4156SSadaf Ebrahimi { 295, 120, 2, 0, 1889, 3 }, 521*9a0e4156SSadaf Ebrahimi { 375, 120, 2, 0, 1889, 3 }, 522*9a0e4156SSadaf Ebrahimi { 455, 120, 2, 0, 1889, 3 }, 523*9a0e4156SSadaf Ebrahimi { 94, 2, 2, 3, 1889, 0 }, 524*9a0e4156SSadaf Ebrahimi { 192, 2, 2, 3, 1889, 0 }, 525*9a0e4156SSadaf Ebrahimi { 272, 2, 2, 3, 1889, 0 }, 526*9a0e4156SSadaf Ebrahimi { 352, 2, 2, 3, 1889, 0 }, 527*9a0e4156SSadaf Ebrahimi { 432, 2, 2, 3, 1889, 0 }, 528*9a0e4156SSadaf Ebrahimi { 512, 2, 2, 3, 1889, 0 }, 529*9a0e4156SSadaf Ebrahimi { 582, 2, 2, 3, 1889, 0 }, 530*9a0e4156SSadaf Ebrahimi { 652, 2, 2, 3, 1889, 0 }, 531*9a0e4156SSadaf Ebrahimi { 67, 2, 96, 3, 1889, 0 }, 532*9a0e4156SSadaf Ebrahimi { 165, 2, 96, 3, 1889, 0 }, 533*9a0e4156SSadaf Ebrahimi { 245, 2, 96, 3, 1889, 0 }, 534*9a0e4156SSadaf Ebrahimi { 325, 2, 96, 3, 1889, 0 }, 535*9a0e4156SSadaf Ebrahimi { 405, 2, 96, 3, 1889, 0 }, 536*9a0e4156SSadaf Ebrahimi { 485, 2, 96, 3, 1889, 0 }, 537*9a0e4156SSadaf Ebrahimi { 555, 2, 96, 3, 1889, 0 }, 538*9a0e4156SSadaf Ebrahimi { 625, 2, 96, 3, 1889, 0 }, 539*9a0e4156SSadaf Ebrahimi { 692, 2, 96, 3, 1889, 0 }, 540*9a0e4156SSadaf Ebrahimi { 751, 2, 96, 3, 1889, 0 }, 541*9a0e4156SSadaf Ebrahimi { 0, 2, 96, 3, 1889, 0 }, 542*9a0e4156SSadaf Ebrahimi { 98, 2, 96, 3, 1889, 0 }, 543*9a0e4156SSadaf Ebrahimi { 196, 2, 96, 3, 1889, 0 }, 544*9a0e4156SSadaf Ebrahimi { 276, 2, 96, 3, 1889, 0 }, 545*9a0e4156SSadaf Ebrahimi { 356, 2, 96, 3, 1889, 0 }, 546*9a0e4156SSadaf Ebrahimi { 436, 2, 96, 3, 1889, 0 }, 547*9a0e4156SSadaf Ebrahimi { 516, 2, 96, 3, 1889, 0 }, 548*9a0e4156SSadaf Ebrahimi { 586, 2, 96, 3, 1889, 0 }, 549*9a0e4156SSadaf Ebrahimi { 656, 2, 96, 3, 1889, 0 }, 550*9a0e4156SSadaf Ebrahimi { 715, 2, 96, 3, 1889, 0 }, 551*9a0e4156SSadaf Ebrahimi { 28, 2, 96, 3, 1889, 0 }, 552*9a0e4156SSadaf Ebrahimi { 126, 2, 96, 3, 1889, 0 }, 553*9a0e4156SSadaf Ebrahimi { 224, 2, 96, 3, 1889, 0 }, 554*9a0e4156SSadaf Ebrahimi { 304, 2, 96, 3, 1889, 0 }, 555*9a0e4156SSadaf Ebrahimi { 384, 2, 96, 3, 1889, 0 }, 556*9a0e4156SSadaf Ebrahimi { 464, 2, 96, 3, 1889, 0 }, 557*9a0e4156SSadaf Ebrahimi { 534, 2, 96, 3, 1889, 0 }, 558*9a0e4156SSadaf Ebrahimi { 604, 2, 96, 3, 1889, 0 }, 559*9a0e4156SSadaf Ebrahimi { 674, 2, 96, 3, 1889, 0 }, 560*9a0e4156SSadaf Ebrahimi { 733, 2, 96, 3, 1889, 0 }, 561*9a0e4156SSadaf Ebrahimi { 46, 2, 96, 3, 1889, 0 }, 562*9a0e4156SSadaf Ebrahimi { 144, 2, 96, 3, 1889, 0 }, 563*9a0e4156SSadaf Ebrahimi { 72, 116, 97, 13, 1809, 7 }, 564*9a0e4156SSadaf Ebrahimi { 170, 116, 97, 13, 1809, 7 }, 565*9a0e4156SSadaf Ebrahimi { 250, 116, 97, 13, 1809, 7 }, 566*9a0e4156SSadaf Ebrahimi { 330, 116, 97, 13, 1809, 7 }, 567*9a0e4156SSadaf Ebrahimi { 410, 116, 97, 13, 1809, 7 }, 568*9a0e4156SSadaf Ebrahimi { 490, 116, 97, 13, 1809, 7 }, 569*9a0e4156SSadaf Ebrahimi { 560, 116, 97, 13, 1809, 7 }, 570*9a0e4156SSadaf Ebrahimi { 630, 116, 97, 13, 1809, 7 }, 571*9a0e4156SSadaf Ebrahimi { 697, 116, 97, 13, 1809, 7 }, 572*9a0e4156SSadaf Ebrahimi { 756, 116, 97, 13, 1809, 7 }, 573*9a0e4156SSadaf Ebrahimi { 6, 116, 97, 13, 1809, 7 }, 574*9a0e4156SSadaf Ebrahimi { 104, 116, 97, 13, 1809, 7 }, 575*9a0e4156SSadaf Ebrahimi { 202, 116, 97, 13, 1809, 7 }, 576*9a0e4156SSadaf Ebrahimi { 282, 116, 97, 13, 1809, 7 }, 577*9a0e4156SSadaf Ebrahimi { 362, 116, 97, 13, 1809, 7 }, 578*9a0e4156SSadaf Ebrahimi { 442, 116, 97, 13, 1809, 7 }, 579*9a0e4156SSadaf Ebrahimi { 522, 116, 97, 13, 1809, 7 }, 580*9a0e4156SSadaf Ebrahimi { 592, 116, 97, 13, 1809, 7 }, 581*9a0e4156SSadaf Ebrahimi { 662, 116, 97, 13, 1809, 7 }, 582*9a0e4156SSadaf Ebrahimi { 721, 116, 97, 13, 1809, 7 }, 583*9a0e4156SSadaf Ebrahimi { 34, 116, 97, 13, 1809, 7 }, 584*9a0e4156SSadaf Ebrahimi { 132, 116, 97, 13, 1809, 7 }, 585*9a0e4156SSadaf Ebrahimi { 230, 116, 97, 13, 1809, 7 }, 586*9a0e4156SSadaf Ebrahimi { 310, 116, 97, 13, 1809, 7 }, 587*9a0e4156SSadaf Ebrahimi { 390, 116, 97, 13, 1809, 7 }, 588*9a0e4156SSadaf Ebrahimi { 470, 116, 97, 13, 1809, 7 }, 589*9a0e4156SSadaf Ebrahimi { 540, 116, 97, 13, 1809, 7 }, 590*9a0e4156SSadaf Ebrahimi { 610, 116, 97, 13, 1809, 7 }, 591*9a0e4156SSadaf Ebrahimi { 680, 116, 97, 13, 1809, 7 }, 592*9a0e4156SSadaf Ebrahimi { 739, 116, 97, 13, 1809, 7 }, 593*9a0e4156SSadaf Ebrahimi { 52, 116, 97, 13, 1809, 7 }, 594*9a0e4156SSadaf Ebrahimi { 150, 116, 97, 13, 1809, 7 }, 595*9a0e4156SSadaf Ebrahimi { 77, 115, 2, 12, 1777, 7 }, 596*9a0e4156SSadaf Ebrahimi { 175, 115, 2, 12, 1777, 7 }, 597*9a0e4156SSadaf Ebrahimi { 255, 115, 2, 12, 1777, 7 }, 598*9a0e4156SSadaf Ebrahimi { 335, 115, 2, 12, 1777, 7 }, 599*9a0e4156SSadaf Ebrahimi { 415, 115, 2, 12, 1777, 7 }, 600*9a0e4156SSadaf Ebrahimi { 495, 115, 2, 12, 1777, 7 }, 601*9a0e4156SSadaf Ebrahimi { 565, 115, 2, 12, 1777, 7 }, 602*9a0e4156SSadaf Ebrahimi { 635, 115, 2, 12, 1777, 7 }, 603*9a0e4156SSadaf Ebrahimi { 702, 115, 2, 12, 1777, 7 }, 604*9a0e4156SSadaf Ebrahimi { 761, 115, 2, 12, 1777, 7 }, 605*9a0e4156SSadaf Ebrahimi { 12, 115, 2, 12, 1777, 7 }, 606*9a0e4156SSadaf Ebrahimi { 110, 115, 2, 12, 1777, 7 }, 607*9a0e4156SSadaf Ebrahimi { 208, 115, 2, 12, 1777, 7 }, 608*9a0e4156SSadaf Ebrahimi { 288, 115, 2, 12, 1777, 7 }, 609*9a0e4156SSadaf Ebrahimi { 368, 115, 2, 12, 1777, 7 }, 610*9a0e4156SSadaf Ebrahimi { 448, 115, 2, 12, 1777, 7 }, 611*9a0e4156SSadaf Ebrahimi { 528, 115, 2, 12, 1777, 7 }, 612*9a0e4156SSadaf Ebrahimi { 598, 115, 2, 12, 1777, 7 }, 613*9a0e4156SSadaf Ebrahimi { 668, 115, 2, 12, 1777, 7 }, 614*9a0e4156SSadaf Ebrahimi { 727, 115, 2, 12, 1777, 7 }, 615*9a0e4156SSadaf Ebrahimi { 40, 115, 2, 12, 1777, 7 }, 616*9a0e4156SSadaf Ebrahimi { 138, 115, 2, 12, 1777, 7 }, 617*9a0e4156SSadaf Ebrahimi { 236, 115, 2, 12, 1777, 7 }, 618*9a0e4156SSadaf Ebrahimi { 316, 115, 2, 12, 1777, 7 }, 619*9a0e4156SSadaf Ebrahimi { 396, 115, 2, 12, 1777, 7 }, 620*9a0e4156SSadaf Ebrahimi { 476, 115, 2, 12, 1777, 7 }, 621*9a0e4156SSadaf Ebrahimi { 546, 115, 2, 12, 1777, 7 }, 622*9a0e4156SSadaf Ebrahimi { 616, 115, 2, 12, 1777, 7 }, 623*9a0e4156SSadaf Ebrahimi { 686, 115, 2, 12, 1777, 7 }, 624*9a0e4156SSadaf Ebrahimi { 745, 115, 2, 12, 1777, 7 }, 625*9a0e4156SSadaf Ebrahimi { 58, 115, 2, 12, 1777, 7 }, 626*9a0e4156SSadaf Ebrahimi { 156, 115, 2, 12, 1777, 7 }, 627*9a0e4156SSadaf Ebrahimi { 804, 2, 107, 3, 1681, 0 }, 628*9a0e4156SSadaf Ebrahimi { 808, 2, 107, 3, 1681, 0 }, 629*9a0e4156SSadaf Ebrahimi { 774, 2, 107, 3, 1681, 0 }, 630*9a0e4156SSadaf Ebrahimi { 779, 2, 107, 3, 1681, 0 }, 631*9a0e4156SSadaf Ebrahimi { 784, 2, 107, 3, 1681, 0 }, 632*9a0e4156SSadaf Ebrahimi { 789, 2, 107, 3, 1681, 0 }, 633*9a0e4156SSadaf Ebrahimi { 794, 2, 107, 3, 1681, 0 }, 634*9a0e4156SSadaf Ebrahimi { 799, 2, 107, 3, 1681, 0 }, 635*9a0e4156SSadaf Ebrahimi { 842, 121, 109, 1, 1649, 3 }, 636*9a0e4156SSadaf Ebrahimi { 846, 121, 109, 1, 1649, 3 }, 637*9a0e4156SSadaf Ebrahimi { 812, 121, 109, 1, 1649, 3 }, 638*9a0e4156SSadaf Ebrahimi { 817, 121, 109, 1, 1649, 3 }, 639*9a0e4156SSadaf Ebrahimi { 822, 121, 109, 1, 1649, 3 }, 640*9a0e4156SSadaf Ebrahimi { 827, 121, 109, 1, 1649, 3 }, 641*9a0e4156SSadaf Ebrahimi { 832, 121, 109, 1, 1649, 3 }, 642*9a0e4156SSadaf Ebrahimi { 837, 121, 109, 1, 1649, 3 }, 643*9a0e4156SSadaf Ebrahimi { 982, 122, 108, 2, 1617, 3 }, 644*9a0e4156SSadaf Ebrahimi { 986, 122, 108, 2, 1617, 3 }, 645*9a0e4156SSadaf Ebrahimi { 952, 122, 108, 2, 1617, 3 }, 646*9a0e4156SSadaf Ebrahimi { 957, 122, 108, 2, 1617, 3 }, 647*9a0e4156SSadaf Ebrahimi { 962, 122, 108, 2, 1617, 3 }, 648*9a0e4156SSadaf Ebrahimi { 967, 122, 108, 2, 1617, 3 }, 649*9a0e4156SSadaf Ebrahimi { 972, 122, 108, 2, 1617, 3 }, 650*9a0e4156SSadaf Ebrahimi { 977, 122, 108, 2, 1617, 3 }, 651*9a0e4156SSadaf Ebrahimi}; 652*9a0e4156SSadaf Ebrahimi 653*9a0e4156SSadaf Ebrahimi // GR8 Register Class... 654*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR8[] = { 655*9a0e4156SSadaf Ebrahimi X86_AL, X86_CL, X86_DL, X86_AH, X86_CH, X86_DH, X86_BL, X86_BH, X86_SIL, X86_DIL, X86_BPL, X86_SPL, X86_R8B, X86_R9B, X86_R10B, X86_R11B, X86_R14B, X86_R15B, X86_R12B, X86_R13B, 656*9a0e4156SSadaf Ebrahimi }; 657*9a0e4156SSadaf Ebrahimi 658*9a0e4156SSadaf Ebrahimi // GR8 Bit set. 659*9a0e4156SSadaf Ebrahimi static uint8_t GR8Bits[] = { 660*9a0e4156SSadaf Ebrahimi 0xb6, 0xa6, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 661*9a0e4156SSadaf Ebrahimi }; 662*9a0e4156SSadaf Ebrahimi 663*9a0e4156SSadaf Ebrahimi // GR8_NOREX Register Class... 664*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR8_NOREX[] = { 665*9a0e4156SSadaf Ebrahimi X86_AL, X86_CL, X86_DL, X86_AH, X86_CH, X86_DH, X86_BL, X86_BH, 666*9a0e4156SSadaf Ebrahimi }; 667*9a0e4156SSadaf Ebrahimi 668*9a0e4156SSadaf Ebrahimi // GR8_NOREX Bit set. 669*9a0e4156SSadaf Ebrahimi static const uint8_t GR8_NOREXBits[] = { 670*9a0e4156SSadaf Ebrahimi 0x36, 0x26, 0x01, 671*9a0e4156SSadaf Ebrahimi }; 672*9a0e4156SSadaf Ebrahimi 673*9a0e4156SSadaf Ebrahimi // VK1 Register Class... 674*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK1[] = { 675*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 676*9a0e4156SSadaf Ebrahimi }; 677*9a0e4156SSadaf Ebrahimi 678*9a0e4156SSadaf Ebrahimi // VK1 Bit set. 679*9a0e4156SSadaf Ebrahimi static uint8_t VK1Bits[] = { 680*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 681*9a0e4156SSadaf Ebrahimi }; 682*9a0e4156SSadaf Ebrahimi 683*9a0e4156SSadaf Ebrahimi // VK2 Register Class... 684*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK2[] = { 685*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 686*9a0e4156SSadaf Ebrahimi }; 687*9a0e4156SSadaf Ebrahimi 688*9a0e4156SSadaf Ebrahimi // VK2 Bit set. 689*9a0e4156SSadaf Ebrahimi static uint8_t VK2Bits[] = { 690*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 691*9a0e4156SSadaf Ebrahimi }; 692*9a0e4156SSadaf Ebrahimi 693*9a0e4156SSadaf Ebrahimi // VK4 Register Class... 694*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK4[] = { 695*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 696*9a0e4156SSadaf Ebrahimi }; 697*9a0e4156SSadaf Ebrahimi 698*9a0e4156SSadaf Ebrahimi // VK4 Bit set. 699*9a0e4156SSadaf Ebrahimi static uint8_t VK4Bits[] = { 700*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 701*9a0e4156SSadaf Ebrahimi }; 702*9a0e4156SSadaf Ebrahimi 703*9a0e4156SSadaf Ebrahimi // VK8 Register Class... 704*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK8[] = { 705*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 706*9a0e4156SSadaf Ebrahimi }; 707*9a0e4156SSadaf Ebrahimi 708*9a0e4156SSadaf Ebrahimi // VK8 Bit set. 709*9a0e4156SSadaf Ebrahimi static uint8_t VK8Bits[] = { 710*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 711*9a0e4156SSadaf Ebrahimi }; 712*9a0e4156SSadaf Ebrahimi 713*9a0e4156SSadaf Ebrahimi // VK1WM Register Class... 714*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK1WM[] = { 715*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 716*9a0e4156SSadaf Ebrahimi }; 717*9a0e4156SSadaf Ebrahimi 718*9a0e4156SSadaf Ebrahimi // VK1WM Bit set. 719*9a0e4156SSadaf Ebrahimi static uint8_t VK1WMBits[] = { 720*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 721*9a0e4156SSadaf Ebrahimi }; 722*9a0e4156SSadaf Ebrahimi 723*9a0e4156SSadaf Ebrahimi // VK2WM Register Class... 724*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK2WM[] = { 725*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 726*9a0e4156SSadaf Ebrahimi }; 727*9a0e4156SSadaf Ebrahimi 728*9a0e4156SSadaf Ebrahimi // VK2WM Bit set. 729*9a0e4156SSadaf Ebrahimi static uint8_t VK2WMBits[] = { 730*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 731*9a0e4156SSadaf Ebrahimi }; 732*9a0e4156SSadaf Ebrahimi 733*9a0e4156SSadaf Ebrahimi // VK4WM Register Class... 734*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK4WM[] = { 735*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 736*9a0e4156SSadaf Ebrahimi }; 737*9a0e4156SSadaf Ebrahimi 738*9a0e4156SSadaf Ebrahimi // VK4WM Bit set. 739*9a0e4156SSadaf Ebrahimi static uint8_t VK4WMBits[] = { 740*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 741*9a0e4156SSadaf Ebrahimi }; 742*9a0e4156SSadaf Ebrahimi 743*9a0e4156SSadaf Ebrahimi // VK8WM Register Class... 744*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK8WM[] = { 745*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 746*9a0e4156SSadaf Ebrahimi }; 747*9a0e4156SSadaf Ebrahimi 748*9a0e4156SSadaf Ebrahimi // VK8WM Bit set. 749*9a0e4156SSadaf Ebrahimi static uint8_t VK8WMBits[] = { 750*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 751*9a0e4156SSadaf Ebrahimi }; 752*9a0e4156SSadaf Ebrahimi 753*9a0e4156SSadaf Ebrahimi // GR8_ABCD_H Register Class... 754*9a0e4156SSadaf Ebrahimi static MCPhysReg GR8_ABCD_H[] = { 755*9a0e4156SSadaf Ebrahimi X86_AH, X86_CH, X86_DH, X86_BH, 756*9a0e4156SSadaf Ebrahimi }; 757*9a0e4156SSadaf Ebrahimi 758*9a0e4156SSadaf Ebrahimi // GR8_ABCD_H Bit set. 759*9a0e4156SSadaf Ebrahimi static uint8_t GR8_ABCD_HBits[] = { 760*9a0e4156SSadaf Ebrahimi 0x12, 0x22, 761*9a0e4156SSadaf Ebrahimi }; 762*9a0e4156SSadaf Ebrahimi 763*9a0e4156SSadaf Ebrahimi // GR8_ABCD_L Register Class... 764*9a0e4156SSadaf Ebrahimi static MCPhysReg GR8_ABCD_L[] = { 765*9a0e4156SSadaf Ebrahimi X86_AL, X86_CL, X86_DL, X86_BL, 766*9a0e4156SSadaf Ebrahimi }; 767*9a0e4156SSadaf Ebrahimi 768*9a0e4156SSadaf Ebrahimi // GR8_ABCD_L Bit set. 769*9a0e4156SSadaf Ebrahimi static uint8_t GR8_ABCD_LBits[] = { 770*9a0e4156SSadaf Ebrahimi 0x24, 0x04, 0x01, 771*9a0e4156SSadaf Ebrahimi }; 772*9a0e4156SSadaf Ebrahimi 773*9a0e4156SSadaf Ebrahimi // GR16 Register Class... 774*9a0e4156SSadaf Ebrahimi static MCPhysReg GR16[] = { 775*9a0e4156SSadaf Ebrahimi X86_AX, X86_CX, X86_DX, X86_SI, X86_DI, X86_BX, X86_BP, X86_SP, X86_R8W, X86_R9W, X86_R10W, X86_R11W, X86_R14W, X86_R15W, X86_R12W, X86_R13W, 776*9a0e4156SSadaf Ebrahimi }; 777*9a0e4156SSadaf Ebrahimi 778*9a0e4156SSadaf Ebrahimi // GR16 Bit set. 779*9a0e4156SSadaf Ebrahimi static uint8_t GR16Bits[] = { 780*9a0e4156SSadaf Ebrahimi 0x48, 0x51, 0x04, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 781*9a0e4156SSadaf Ebrahimi }; 782*9a0e4156SSadaf Ebrahimi 783*9a0e4156SSadaf Ebrahimi // GR16_NOREX Register Class... 784*9a0e4156SSadaf Ebrahimi static MCPhysReg GR16_NOREX[] = { 785*9a0e4156SSadaf Ebrahimi X86_AX, X86_CX, X86_DX, X86_SI, X86_DI, X86_BX, X86_BP, X86_SP, 786*9a0e4156SSadaf Ebrahimi }; 787*9a0e4156SSadaf Ebrahimi 788*9a0e4156SSadaf Ebrahimi // GR16_NOREX Bit set. 789*9a0e4156SSadaf Ebrahimi static uint8_t GR16_NOREXBits[] = { 790*9a0e4156SSadaf Ebrahimi 0x48, 0x51, 0x04, 0x00, 0x00, 0xa0, 791*9a0e4156SSadaf Ebrahimi }; 792*9a0e4156SSadaf Ebrahimi 793*9a0e4156SSadaf Ebrahimi // VK16 Register Class... 794*9a0e4156SSadaf Ebrahimi static MCPhysReg VK16[] = { 795*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 796*9a0e4156SSadaf Ebrahimi }; 797*9a0e4156SSadaf Ebrahimi 798*9a0e4156SSadaf Ebrahimi // VK16 Bit set. 799*9a0e4156SSadaf Ebrahimi static uint8_t VK16Bits[] = { 800*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 801*9a0e4156SSadaf Ebrahimi }; 802*9a0e4156SSadaf Ebrahimi 803*9a0e4156SSadaf Ebrahimi // VK16WM Register Class... 804*9a0e4156SSadaf Ebrahimi static MCPhysReg VK16WM[] = { 805*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 806*9a0e4156SSadaf Ebrahimi }; 807*9a0e4156SSadaf Ebrahimi 808*9a0e4156SSadaf Ebrahimi // VK16WM Bit set. 809*9a0e4156SSadaf Ebrahimi static uint8_t VK16WMBits[] = { 810*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 811*9a0e4156SSadaf Ebrahimi }; 812*9a0e4156SSadaf Ebrahimi 813*9a0e4156SSadaf Ebrahimi // SEGMENT_REG Register Class... 814*9a0e4156SSadaf Ebrahimi static const MCPhysReg SEGMENT_REG[] = { 815*9a0e4156SSadaf Ebrahimi X86_CS, X86_DS, X86_SS, X86_ES, X86_FS, X86_GS, 816*9a0e4156SSadaf Ebrahimi }; 817*9a0e4156SSadaf Ebrahimi 818*9a0e4156SSadaf Ebrahimi // SEGMENT_REG Bit set. 819*9a0e4156SSadaf Ebrahimi static const uint8_t SEGMENT_REGBits[] = { 820*9a0e4156SSadaf Ebrahimi 0x00, 0x08, 0x02, 0x10, 0x03, 0x00, 0x02, 821*9a0e4156SSadaf Ebrahimi }; 822*9a0e4156SSadaf Ebrahimi 823*9a0e4156SSadaf Ebrahimi // GR16_ABCD Register Class... 824*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR16_ABCD[] = { 825*9a0e4156SSadaf Ebrahimi X86_AX, X86_CX, X86_DX, X86_BX, 826*9a0e4156SSadaf Ebrahimi }; 827*9a0e4156SSadaf Ebrahimi 828*9a0e4156SSadaf Ebrahimi // GR16_ABCD Bit set. 829*9a0e4156SSadaf Ebrahimi static const uint8_t GR16_ABCDBits[] = { 830*9a0e4156SSadaf Ebrahimi 0x08, 0x11, 0x04, 831*9a0e4156SSadaf Ebrahimi }; 832*9a0e4156SSadaf Ebrahimi 833*9a0e4156SSadaf Ebrahimi // FPCCR Register Class... 834*9a0e4156SSadaf Ebrahimi static const MCPhysReg FPCCR[] = { 835*9a0e4156SSadaf Ebrahimi X86_FPSW, 836*9a0e4156SSadaf Ebrahimi }; 837*9a0e4156SSadaf Ebrahimi 838*9a0e4156SSadaf Ebrahimi // FPCCR Bit set. 839*9a0e4156SSadaf Ebrahimi static const uint8_t FPCCRBits[] = { 840*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x80, 841*9a0e4156SSadaf Ebrahimi }; 842*9a0e4156SSadaf Ebrahimi 843*9a0e4156SSadaf Ebrahimi // FR32X Register Class... 844*9a0e4156SSadaf Ebrahimi static const MCPhysReg FR32X[] = { 845*9a0e4156SSadaf Ebrahimi X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31, 846*9a0e4156SSadaf Ebrahimi }; 847*9a0e4156SSadaf Ebrahimi 848*9a0e4156SSadaf Ebrahimi // FR32X Bit set. 849*9a0e4156SSadaf Ebrahimi static uint8_t FR32XBits[] = { 850*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 851*9a0e4156SSadaf Ebrahimi }; 852*9a0e4156SSadaf Ebrahimi 853*9a0e4156SSadaf Ebrahimi // FR32 Register Class... 854*9a0e4156SSadaf Ebrahimi static const MCPhysReg FR32[] = { 855*9a0e4156SSadaf Ebrahimi X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, 856*9a0e4156SSadaf Ebrahimi }; 857*9a0e4156SSadaf Ebrahimi 858*9a0e4156SSadaf Ebrahimi // FR32 Bit set. 859*9a0e4156SSadaf Ebrahimi static uint8_t FR32Bits[] = { 860*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 861*9a0e4156SSadaf Ebrahimi }; 862*9a0e4156SSadaf Ebrahimi 863*9a0e4156SSadaf Ebrahimi // GR32 Register Class... 864*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32[] = { 865*9a0e4156SSadaf Ebrahimi X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D, 866*9a0e4156SSadaf Ebrahimi }; 867*9a0e4156SSadaf Ebrahimi 868*9a0e4156SSadaf Ebrahimi // GR32 Bit set. 869*9a0e4156SSadaf Ebrahimi static uint8_t GR32Bits[] = { 870*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf8, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 871*9a0e4156SSadaf Ebrahimi }; 872*9a0e4156SSadaf Ebrahimi 873*9a0e4156SSadaf Ebrahimi // GR32_NOAX Register Class... 874*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOAX[] = { 875*9a0e4156SSadaf Ebrahimi X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D, 876*9a0e4156SSadaf Ebrahimi }; 877*9a0e4156SSadaf Ebrahimi 878*9a0e4156SSadaf Ebrahimi // GR32_NOAX Bit set. 879*9a0e4156SSadaf Ebrahimi static uint8_t GR32_NOAXBits[] = { 880*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf0, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 881*9a0e4156SSadaf Ebrahimi }; 882*9a0e4156SSadaf Ebrahimi 883*9a0e4156SSadaf Ebrahimi // GR32_NOSP Register Class... 884*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOSP[] = { 885*9a0e4156SSadaf Ebrahimi X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D, 886*9a0e4156SSadaf Ebrahimi }; 887*9a0e4156SSadaf Ebrahimi 888*9a0e4156SSadaf Ebrahimi // GR32_NOSP Bit set. 889*9a0e4156SSadaf Ebrahimi static uint8_t GR32_NOSPBits[] = { 890*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf8, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 891*9a0e4156SSadaf Ebrahimi }; 892*9a0e4156SSadaf Ebrahimi 893*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_NOSP Register Class... 894*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOAX_and_GR32_NOSP[] = { 895*9a0e4156SSadaf Ebrahimi X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D, 896*9a0e4156SSadaf Ebrahimi }; 897*9a0e4156SSadaf Ebrahimi 898*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_NOSP Bit set. 899*9a0e4156SSadaf Ebrahimi static uint8_t GR32_NOAX_and_GR32_NOSPBits[] = { 900*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 901*9a0e4156SSadaf Ebrahimi }; 902*9a0e4156SSadaf Ebrahimi 903*9a0e4156SSadaf Ebrahimi // DEBUG_REG Register Class... 904*9a0e4156SSadaf Ebrahimi static const MCPhysReg DEBUG_REG[] = { 905*9a0e4156SSadaf Ebrahimi X86_DR0, X86_DR1, X86_DR2, X86_DR3, X86_DR4, X86_DR5, X86_DR6, X86_DR7, 906*9a0e4156SSadaf Ebrahimi }; 907*9a0e4156SSadaf Ebrahimi 908*9a0e4156SSadaf Ebrahimi // DEBUG_REG Bit set. 909*9a0e4156SSadaf Ebrahimi static const uint8_t DEBUG_REGBits[] = { 910*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 911*9a0e4156SSadaf Ebrahimi }; 912*9a0e4156SSadaf Ebrahimi 913*9a0e4156SSadaf Ebrahimi // GR32_NOREX Register Class... 914*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOREX[] = { 915*9a0e4156SSadaf Ebrahimi X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, 916*9a0e4156SSadaf Ebrahimi }; 917*9a0e4156SSadaf Ebrahimi 918*9a0e4156SSadaf Ebrahimi // GR32_NOREX Bit set. 919*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_NOREXBits[] = { 920*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf8, 0x61, 921*9a0e4156SSadaf Ebrahimi }; 922*9a0e4156SSadaf Ebrahimi 923*9a0e4156SSadaf Ebrahimi // VK32 Register Class... 924*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK32[] = { 925*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 926*9a0e4156SSadaf Ebrahimi }; 927*9a0e4156SSadaf Ebrahimi 928*9a0e4156SSadaf Ebrahimi // VK32 Bit set. 929*9a0e4156SSadaf Ebrahimi static uint8_t VK32Bits[] = { 930*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 931*9a0e4156SSadaf Ebrahimi }; 932*9a0e4156SSadaf Ebrahimi 933*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_NOREX Register Class... 934*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOAX_and_GR32_NOREX[] = { 935*9a0e4156SSadaf Ebrahimi X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, 936*9a0e4156SSadaf Ebrahimi }; 937*9a0e4156SSadaf Ebrahimi 938*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_NOREX Bit set. 939*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_NOAX_and_GR32_NOREXBits[] = { 940*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf0, 0x61, 941*9a0e4156SSadaf Ebrahimi }; 942*9a0e4156SSadaf Ebrahimi 943*9a0e4156SSadaf Ebrahimi // GR32_NOREX_NOSP Register Class... 944*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOREX_NOSP[] = { 945*9a0e4156SSadaf Ebrahimi X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, 946*9a0e4156SSadaf Ebrahimi }; 947*9a0e4156SSadaf Ebrahimi 948*9a0e4156SSadaf Ebrahimi // GR32_NOREX_NOSP Bit set. 949*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_NOREX_NOSPBits[] = { 950*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf8, 0x21, 951*9a0e4156SSadaf Ebrahimi }; 952*9a0e4156SSadaf Ebrahimi 953*9a0e4156SSadaf Ebrahimi // RFP32 Register Class... 954*9a0e4156SSadaf Ebrahimi static const MCPhysReg RFP32[] = { 955*9a0e4156SSadaf Ebrahimi X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6, 956*9a0e4156SSadaf Ebrahimi }; 957*9a0e4156SSadaf Ebrahimi 958*9a0e4156SSadaf Ebrahimi // RFP32 Bit set. 959*9a0e4156SSadaf Ebrahimi static uint8_t RFP32Bits[] = { 960*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 961*9a0e4156SSadaf Ebrahimi }; 962*9a0e4156SSadaf Ebrahimi 963*9a0e4156SSadaf Ebrahimi // VK32WM Register Class... 964*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK32WM[] = { 965*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 966*9a0e4156SSadaf Ebrahimi }; 967*9a0e4156SSadaf Ebrahimi 968*9a0e4156SSadaf Ebrahimi // VK32WM Bit set. 969*9a0e4156SSadaf Ebrahimi static uint8_t VK32WMBits[] = { 970*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 971*9a0e4156SSadaf Ebrahimi }; 972*9a0e4156SSadaf Ebrahimi 973*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_NOREX_NOSP Register Class... 974*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOAX_and_GR32_NOREX_NOSP[] = { 975*9a0e4156SSadaf Ebrahimi X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, 976*9a0e4156SSadaf Ebrahimi }; 977*9a0e4156SSadaf Ebrahimi 978*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_NOREX_NOSP Bit set. 979*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_NOAX_and_GR32_NOREX_NOSPBits[] = { 980*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0xf0, 0x21, 981*9a0e4156SSadaf Ebrahimi }; 982*9a0e4156SSadaf Ebrahimi 983*9a0e4156SSadaf Ebrahimi // GR32_ABCD Register Class... 984*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_ABCD[] = { 985*9a0e4156SSadaf Ebrahimi X86_EAX, X86_ECX, X86_EDX, X86_EBX, 986*9a0e4156SSadaf Ebrahimi }; 987*9a0e4156SSadaf Ebrahimi 988*9a0e4156SSadaf Ebrahimi // GR32_ABCD Bit set. 989*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_ABCDBits[] = { 990*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x68, 0x01, 991*9a0e4156SSadaf Ebrahimi }; 992*9a0e4156SSadaf Ebrahimi 993*9a0e4156SSadaf Ebrahimi // GR32_ABCD_and_GR32_NOAX Register Class... 994*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_ABCD_and_GR32_NOAX[] = { 995*9a0e4156SSadaf Ebrahimi X86_ECX, X86_EDX, X86_EBX, 996*9a0e4156SSadaf Ebrahimi }; 997*9a0e4156SSadaf Ebrahimi 998*9a0e4156SSadaf Ebrahimi // GR32_ABCD_and_GR32_NOAX Bit set. 999*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_ABCD_and_GR32_NOAXBits[] = { 1000*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x60, 0x01, 1001*9a0e4156SSadaf Ebrahimi }; 1002*9a0e4156SSadaf Ebrahimi 1003*9a0e4156SSadaf Ebrahimi // GR32_TC Register Class... 1004*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_TC[] = { 1005*9a0e4156SSadaf Ebrahimi X86_EAX, X86_ECX, X86_EDX, 1006*9a0e4156SSadaf Ebrahimi }; 1007*9a0e4156SSadaf Ebrahimi 1008*9a0e4156SSadaf Ebrahimi // GR32_TC Bit set. 1009*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_TCBits[] = { 1010*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x48, 0x01, 1011*9a0e4156SSadaf Ebrahimi }; 1012*9a0e4156SSadaf Ebrahimi 1013*9a0e4156SSadaf Ebrahimi // GR32_AD Register Class... 1014*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_AD[] = { 1015*9a0e4156SSadaf Ebrahimi X86_EAX, X86_EDX, 1016*9a0e4156SSadaf Ebrahimi }; 1017*9a0e4156SSadaf Ebrahimi 1018*9a0e4156SSadaf Ebrahimi // GR32_AD Bit set. 1019*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_ADBits[] = { 1020*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x08, 0x01, 1021*9a0e4156SSadaf Ebrahimi }; 1022*9a0e4156SSadaf Ebrahimi 1023*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_TC Register Class... 1024*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_NOAX_and_GR32_TC[] = { 1025*9a0e4156SSadaf Ebrahimi X86_ECX, X86_EDX, 1026*9a0e4156SSadaf Ebrahimi }; 1027*9a0e4156SSadaf Ebrahimi 1028*9a0e4156SSadaf Ebrahimi // GR32_NOAX_and_GR32_TC Bit set. 1029*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_NOAX_and_GR32_TCBits[] = { 1030*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x40, 0x01, 1031*9a0e4156SSadaf Ebrahimi }; 1032*9a0e4156SSadaf Ebrahimi 1033*9a0e4156SSadaf Ebrahimi // CCR Register Class... 1034*9a0e4156SSadaf Ebrahimi static const MCPhysReg CCR[] = { 1035*9a0e4156SSadaf Ebrahimi X86_EFLAGS, 1036*9a0e4156SSadaf Ebrahimi }; 1037*9a0e4156SSadaf Ebrahimi 1038*9a0e4156SSadaf Ebrahimi // CCR Bit set. 1039*9a0e4156SSadaf Ebrahimi static const uint8_t CCRBits[] = { 1040*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x02, 1041*9a0e4156SSadaf Ebrahimi }; 1042*9a0e4156SSadaf Ebrahimi 1043*9a0e4156SSadaf Ebrahimi // GR32_AD_and_GR32_NOAX Register Class... 1044*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR32_AD_and_GR32_NOAX[] = { 1045*9a0e4156SSadaf Ebrahimi X86_EDX, 1046*9a0e4156SSadaf Ebrahimi }; 1047*9a0e4156SSadaf Ebrahimi 1048*9a0e4156SSadaf Ebrahimi // GR32_AD_and_GR32_NOAX Bit set. 1049*9a0e4156SSadaf Ebrahimi static const uint8_t GR32_AD_and_GR32_NOAXBits[] = { 1050*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x01, 1051*9a0e4156SSadaf Ebrahimi }; 1052*9a0e4156SSadaf Ebrahimi 1053*9a0e4156SSadaf Ebrahimi // RFP64 Register Class... 1054*9a0e4156SSadaf Ebrahimi static const MCPhysReg RFP64[] = { 1055*9a0e4156SSadaf Ebrahimi X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6, 1056*9a0e4156SSadaf Ebrahimi }; 1057*9a0e4156SSadaf Ebrahimi 1058*9a0e4156SSadaf Ebrahimi // RFP64 Bit set. 1059*9a0e4156SSadaf Ebrahimi static uint8_t RFP64Bits[] = { 1060*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 1061*9a0e4156SSadaf Ebrahimi }; 1062*9a0e4156SSadaf Ebrahimi 1063*9a0e4156SSadaf Ebrahimi // FR64X Register Class... 1064*9a0e4156SSadaf Ebrahimi static const MCPhysReg FR64X[] = { 1065*9a0e4156SSadaf Ebrahimi X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31, 1066*9a0e4156SSadaf Ebrahimi }; 1067*9a0e4156SSadaf Ebrahimi 1068*9a0e4156SSadaf Ebrahimi // FR64X Bit set. 1069*9a0e4156SSadaf Ebrahimi static uint8_t FR64XBits[] = { 1070*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 1071*9a0e4156SSadaf Ebrahimi }; 1072*9a0e4156SSadaf Ebrahimi 1073*9a0e4156SSadaf Ebrahimi // GR64 Register Class... 1074*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64[] = { 1075*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP, X86_RIP, 1076*9a0e4156SSadaf Ebrahimi }; 1077*9a0e4156SSadaf Ebrahimi 1078*9a0e4156SSadaf Ebrahimi // GR64 Bit set. 1079*9a0e4156SSadaf Ebrahimi static uint8_t GR64Bits[] = { 1080*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1081*9a0e4156SSadaf Ebrahimi }; 1082*9a0e4156SSadaf Ebrahimi 1083*9a0e4156SSadaf Ebrahimi // CONTROL_REG Register Class... 1084*9a0e4156SSadaf Ebrahimi static const MCPhysReg CONTROL_REG[] = { 1085*9a0e4156SSadaf Ebrahimi X86_CR0, X86_CR1, X86_CR2, X86_CR3, X86_CR4, X86_CR5, X86_CR6, X86_CR7, X86_CR8, X86_CR9, X86_CR10, X86_CR11, X86_CR12, X86_CR13, X86_CR14, X86_CR15, 1086*9a0e4156SSadaf Ebrahimi }; 1087*9a0e4156SSadaf Ebrahimi 1088*9a0e4156SSadaf Ebrahimi // CONTROL_REG Bit set. 1089*9a0e4156SSadaf Ebrahimi static const uint8_t CONTROL_REGBits[] = { 1090*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 1091*9a0e4156SSadaf Ebrahimi }; 1092*9a0e4156SSadaf Ebrahimi 1093*9a0e4156SSadaf Ebrahimi // FR64 Register Class... 1094*9a0e4156SSadaf Ebrahimi static const MCPhysReg FR64[] = { 1095*9a0e4156SSadaf Ebrahimi X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, 1096*9a0e4156SSadaf Ebrahimi }; 1097*9a0e4156SSadaf Ebrahimi 1098*9a0e4156SSadaf Ebrahimi // FR64 Bit set. 1099*9a0e4156SSadaf Ebrahimi static uint8_t FR64Bits[] = { 1100*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 1101*9a0e4156SSadaf Ebrahimi }; 1102*9a0e4156SSadaf Ebrahimi 1103*9a0e4156SSadaf Ebrahimi // GR64_with_sub_8bit Register Class... 1104*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_8bit[] = { 1105*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP, 1106*9a0e4156SSadaf Ebrahimi }; 1107*9a0e4156SSadaf Ebrahimi 1108*9a0e4156SSadaf Ebrahimi // GR64_with_sub_8bit Bit set. 1109*9a0e4156SSadaf Ebrahimi static uint8_t GR64_with_sub_8bitBits[] = { 1110*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf8, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1111*9a0e4156SSadaf Ebrahimi }; 1112*9a0e4156SSadaf Ebrahimi 1113*9a0e4156SSadaf Ebrahimi // GR64_NOSP Register Class... 1114*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_NOSP[] = { 1115*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, 1116*9a0e4156SSadaf Ebrahimi }; 1117*9a0e4156SSadaf Ebrahimi 1118*9a0e4156SSadaf Ebrahimi // GR64_NOSP Bit set. 1119*9a0e4156SSadaf Ebrahimi static uint8_t GR64_NOSPBits[] = { 1120*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf8, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1121*9a0e4156SSadaf Ebrahimi }; 1122*9a0e4156SSadaf Ebrahimi 1123*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX Register Class... 1124*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX[] = { 1125*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP, 1126*9a0e4156SSadaf Ebrahimi }; 1127*9a0e4156SSadaf Ebrahimi 1128*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX Bit set. 1129*9a0e4156SSadaf Ebrahimi static uint8_t GR64_with_sub_32bit_in_GR32_NOAXBits[] = { 1130*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf0, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1131*9a0e4156SSadaf Ebrahimi }; 1132*9a0e4156SSadaf Ebrahimi 1133*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP Register Class... 1134*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP[] = { 1135*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, 1136*9a0e4156SSadaf Ebrahimi }; 1137*9a0e4156SSadaf Ebrahimi 1138*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP Bit set. 1139*9a0e4156SSadaf Ebrahimi static uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits[] = { 1140*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1141*9a0e4156SSadaf Ebrahimi }; 1142*9a0e4156SSadaf Ebrahimi 1143*9a0e4156SSadaf Ebrahimi // GR64_NOREX Register Class... 1144*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_NOREX[] = { 1145*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP, X86_RIP, 1146*9a0e4156SSadaf Ebrahimi }; 1147*9a0e4156SSadaf Ebrahimi 1148*9a0e4156SSadaf Ebrahimi // GR64_NOREX Bit set. 1149*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_NOREXBits[] = { 1150*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1b, 1151*9a0e4156SSadaf Ebrahimi }; 1152*9a0e4156SSadaf Ebrahimi 1153*9a0e4156SSadaf Ebrahimi // GR64_TC Register Class... 1154*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_TC[] = { 1155*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11, X86_RIP, 1156*9a0e4156SSadaf Ebrahimi }; 1157*9a0e4156SSadaf Ebrahimi 1158*9a0e4156SSadaf Ebrahimi // GR64_TC Bit set. 1159*9a0e4156SSadaf Ebrahimi static uint8_t GR64_TCBits[] = { 1160*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xc8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 1161*9a0e4156SSadaf Ebrahimi }; 1162*9a0e4156SSadaf Ebrahimi 1163*9a0e4156SSadaf Ebrahimi // GR64_NOSP_and_GR64_TC Register Class... 1164*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_NOSP_and_GR64_TC[] = { 1165*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11, 1166*9a0e4156SSadaf Ebrahimi }; 1167*9a0e4156SSadaf Ebrahimi 1168*9a0e4156SSadaf Ebrahimi // GR64_NOSP_and_GR64_TC Bit set. 1169*9a0e4156SSadaf Ebrahimi static uint8_t GR64_NOSP_and_GR64_TCBits[] = { 1170*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xc8, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 1171*9a0e4156SSadaf Ebrahimi }; 1172*9a0e4156SSadaf Ebrahimi 1173*9a0e4156SSadaf Ebrahimi // GR64_with_sub_16bit_in_GR16_NOREX Register Class... 1174*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_16bit_in_GR16_NOREX[] = { 1175*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP, 1176*9a0e4156SSadaf Ebrahimi }; 1177*9a0e4156SSadaf Ebrahimi 1178*9a0e4156SSadaf Ebrahimi // GR64_with_sub_16bit_in_GR16_NOREX Bit set. 1179*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_16bit_in_GR16_NOREXBits[] = { 1180*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf8, 0x19, 1181*9a0e4156SSadaf Ebrahimi }; 1182*9a0e4156SSadaf Ebrahimi 1183*9a0e4156SSadaf Ebrahimi // VK64 Register Class... 1184*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK64[] = { 1185*9a0e4156SSadaf Ebrahimi X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 1186*9a0e4156SSadaf Ebrahimi }; 1187*9a0e4156SSadaf Ebrahimi 1188*9a0e4156SSadaf Ebrahimi // VK64 Bit set. 1189*9a0e4156SSadaf Ebrahimi static uint8_t VK64Bits[] = { 1190*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1191*9a0e4156SSadaf Ebrahimi }; 1192*9a0e4156SSadaf Ebrahimi 1193*9a0e4156SSadaf Ebrahimi // VR64 Register Class... 1194*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR64[] = { 1195*9a0e4156SSadaf Ebrahimi X86_MM0, X86_MM1, X86_MM2, X86_MM3, X86_MM4, X86_MM5, X86_MM6, X86_MM7, 1196*9a0e4156SSadaf Ebrahimi }; 1197*9a0e4156SSadaf Ebrahimi 1198*9a0e4156SSadaf Ebrahimi // VR64 Bit set. 1199*9a0e4156SSadaf Ebrahimi static uint8_t VR64Bits[] = { 1200*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1201*9a0e4156SSadaf Ebrahimi }; 1202*9a0e4156SSadaf Ebrahimi 1203*9a0e4156SSadaf Ebrahimi // GR64_NOREX_NOSP Register Class... 1204*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_NOREX_NOSP[] = { 1205*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, 1206*9a0e4156SSadaf Ebrahimi }; 1207*9a0e4156SSadaf Ebrahimi 1208*9a0e4156SSadaf Ebrahimi // GR64_NOREX_NOSP Bit set. 1209*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_NOREX_NOSPBits[] = { 1210*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf8, 0x09, 1211*9a0e4156SSadaf Ebrahimi }; 1212*9a0e4156SSadaf Ebrahimi 1213*9a0e4156SSadaf Ebrahimi // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX Register Class... 1214*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX[] = { 1215*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11, 1216*9a0e4156SSadaf Ebrahimi }; 1217*9a0e4156SSadaf Ebrahimi 1218*9a0e4156SSadaf Ebrahimi // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX Bit set. 1219*9a0e4156SSadaf Ebrahimi static uint8_t GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits[] = { 1220*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xc0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 1221*9a0e4156SSadaf Ebrahimi }; 1222*9a0e4156SSadaf Ebrahimi 1223*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Register Class... 1224*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX[] = { 1225*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP, 1226*9a0e4156SSadaf Ebrahimi }; 1227*9a0e4156SSadaf Ebrahimi 1228*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Bit set. 1229*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits[] = { 1230*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf0, 0x19, 1231*9a0e4156SSadaf Ebrahimi }; 1232*9a0e4156SSadaf Ebrahimi 1233*9a0e4156SSadaf Ebrahimi // VK64WM Register Class... 1234*9a0e4156SSadaf Ebrahimi static const MCPhysReg VK64WM[] = { 1235*9a0e4156SSadaf Ebrahimi X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7, 1236*9a0e4156SSadaf Ebrahimi }; 1237*9a0e4156SSadaf Ebrahimi 1238*9a0e4156SSadaf Ebrahimi // VK64WM Bit set. 1239*9a0e4156SSadaf Ebrahimi static uint8_t VK64WMBits[] = { 1240*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 1241*9a0e4156SSadaf Ebrahimi }; 1242*9a0e4156SSadaf Ebrahimi 1243*9a0e4156SSadaf Ebrahimi // GR64_NOREX_and_GR64_TC Register Class... 1244*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_NOREX_and_GR64_TC[] = { 1245*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RIP, 1246*9a0e4156SSadaf Ebrahimi }; 1247*9a0e4156SSadaf Ebrahimi 1248*9a0e4156SSadaf Ebrahimi // GR64_NOREX_and_GR64_TC Bit set. 1249*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_NOREX_and_GR64_TCBits[] = { 1250*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xc8, 0x0b, 1251*9a0e4156SSadaf Ebrahimi }; 1252*9a0e4156SSadaf Ebrahimi 1253*9a0e4156SSadaf Ebrahimi // GR64_TCW64 Register Class... 1254*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_TCW64[] = { 1255*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_R8, X86_R9, X86_R11, 1256*9a0e4156SSadaf Ebrahimi }; 1257*9a0e4156SSadaf Ebrahimi 1258*9a0e4156SSadaf Ebrahimi // GR64_TCW64 Bit set. 1259*9a0e4156SSadaf Ebrahimi static uint8_t GR64_TCW64Bits[] = { 1260*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 1261*9a0e4156SSadaf Ebrahimi }; 1262*9a0e4156SSadaf Ebrahimi 1263*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP Register Class... 1264*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP[] = { 1265*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, 1266*9a0e4156SSadaf Ebrahimi }; 1267*9a0e4156SSadaf Ebrahimi 1268*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP Bit set. 1269*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits[] = { 1270*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xf0, 0x09, 1271*9a0e4156SSadaf Ebrahimi }; 1272*9a0e4156SSadaf Ebrahimi 1273*9a0e4156SSadaf Ebrahimi // GR64_NOREX_NOSP_and_GR64_TC Register Class... 1274*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_NOREX_NOSP_and_GR64_TC[] = { 1275*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, 1276*9a0e4156SSadaf Ebrahimi }; 1277*9a0e4156SSadaf Ebrahimi 1278*9a0e4156SSadaf Ebrahimi // GR64_NOREX_NOSP_and_GR64_TC Bit set. 1279*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_NOREX_NOSP_and_GR64_TCBits[] = { 1280*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xc8, 0x09, 1281*9a0e4156SSadaf Ebrahimi }; 1282*9a0e4156SSadaf Ebrahimi 1283*9a0e4156SSadaf Ebrahimi // GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX Register Class... 1284*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX[] = { 1285*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_R8, X86_R9, X86_R11, 1286*9a0e4156SSadaf Ebrahimi }; 1287*9a0e4156SSadaf Ebrahimi 1288*9a0e4156SSadaf Ebrahimi // GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX Bit set. 1289*9a0e4156SSadaf Ebrahimi static uint8_t GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits[] = { 1290*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 1291*9a0e4156SSadaf Ebrahimi }; 1292*9a0e4156SSadaf Ebrahimi 1293*9a0e4156SSadaf Ebrahimi // GR64_ABCD Register Class... 1294*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_ABCD[] = { 1295*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, X86_RBX, 1296*9a0e4156SSadaf Ebrahimi }; 1297*9a0e4156SSadaf Ebrahimi 1298*9a0e4156SSadaf Ebrahimi // GR64_ABCD Bit set. 1299*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_ABCDBits[] = { 1300*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x68, 0x01, 1301*9a0e4156SSadaf Ebrahimi }; 1302*9a0e4156SSadaf Ebrahimi 1303*9a0e4156SSadaf Ebrahimi // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Register Class... 1304*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX[] = { 1305*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RSI, X86_RDI, 1306*9a0e4156SSadaf Ebrahimi }; 1307*9a0e4156SSadaf Ebrahimi 1308*9a0e4156SSadaf Ebrahimi // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Bit set. 1309*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits[] = { 1310*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0xc0, 0x09, 1311*9a0e4156SSadaf Ebrahimi }; 1312*9a0e4156SSadaf Ebrahimi 1313*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX Register Class... 1314*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX[] = { 1315*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, X86_RBX, 1316*9a0e4156SSadaf Ebrahimi }; 1317*9a0e4156SSadaf Ebrahimi 1318*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX Bit set. 1319*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits[] = { 1320*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 1321*9a0e4156SSadaf Ebrahimi }; 1322*9a0e4156SSadaf Ebrahimi 1323*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_TC Register Class... 1324*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_TC[] = { 1325*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RCX, X86_RDX, 1326*9a0e4156SSadaf Ebrahimi }; 1327*9a0e4156SSadaf Ebrahimi 1328*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_TC Bit set. 1329*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_TCBits[] = { 1330*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 1331*9a0e4156SSadaf Ebrahimi }; 1332*9a0e4156SSadaf Ebrahimi 1333*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_AD Register Class... 1334*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_AD[] = { 1335*9a0e4156SSadaf Ebrahimi X86_RAX, X86_RDX, 1336*9a0e4156SSadaf Ebrahimi }; 1337*9a0e4156SSadaf Ebrahimi 1338*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_AD Bit set. 1339*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_ADBits[] = { 1340*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 1341*9a0e4156SSadaf Ebrahimi }; 1342*9a0e4156SSadaf Ebrahimi 1343*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC Register Class... 1344*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC[] = { 1345*9a0e4156SSadaf Ebrahimi X86_RCX, X86_RDX, 1346*9a0e4156SSadaf Ebrahimi }; 1347*9a0e4156SSadaf Ebrahimi 1348*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC Bit set. 1349*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits[] = { 1350*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 1351*9a0e4156SSadaf Ebrahimi }; 1352*9a0e4156SSadaf Ebrahimi 1353*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX Register Class... 1354*9a0e4156SSadaf Ebrahimi static const MCPhysReg GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX[] = { 1355*9a0e4156SSadaf Ebrahimi X86_RDX, 1356*9a0e4156SSadaf Ebrahimi }; 1357*9a0e4156SSadaf Ebrahimi 1358*9a0e4156SSadaf Ebrahimi // GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX Bit set. 1359*9a0e4156SSadaf Ebrahimi static const uint8_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits[] = { 1360*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 1361*9a0e4156SSadaf Ebrahimi }; 1362*9a0e4156SSadaf Ebrahimi 1363*9a0e4156SSadaf Ebrahimi // RST Register Class... 1364*9a0e4156SSadaf Ebrahimi static const MCPhysReg RST[] = { 1365*9a0e4156SSadaf Ebrahimi X86_ST0, X86_ST1, X86_ST2, X86_ST3, X86_ST4, X86_ST5, X86_ST6, X86_ST7, 1366*9a0e4156SSadaf Ebrahimi }; 1367*9a0e4156SSadaf Ebrahimi 1368*9a0e4156SSadaf Ebrahimi // RST Bit set. 1369*9a0e4156SSadaf Ebrahimi static uint8_t RSTBits[] = { 1370*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 1371*9a0e4156SSadaf Ebrahimi }; 1372*9a0e4156SSadaf Ebrahimi 1373*9a0e4156SSadaf Ebrahimi // RFP80 Register Class... 1374*9a0e4156SSadaf Ebrahimi static const MCPhysReg RFP80[] = { 1375*9a0e4156SSadaf Ebrahimi X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6, 1376*9a0e4156SSadaf Ebrahimi }; 1377*9a0e4156SSadaf Ebrahimi 1378*9a0e4156SSadaf Ebrahimi // RFP80 Bit set. 1379*9a0e4156SSadaf Ebrahimi static uint8_t RFP80Bits[] = { 1380*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 1381*9a0e4156SSadaf Ebrahimi }; 1382*9a0e4156SSadaf Ebrahimi 1383*9a0e4156SSadaf Ebrahimi // VR128X Register Class... 1384*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR128X[] = { 1385*9a0e4156SSadaf Ebrahimi X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31, 1386*9a0e4156SSadaf Ebrahimi }; 1387*9a0e4156SSadaf Ebrahimi 1388*9a0e4156SSadaf Ebrahimi // VR128X Bit set. 1389*9a0e4156SSadaf Ebrahimi static uint8_t VR128XBits[] = { 1390*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 1391*9a0e4156SSadaf Ebrahimi }; 1392*9a0e4156SSadaf Ebrahimi 1393*9a0e4156SSadaf Ebrahimi // VR128 Register Class... 1394*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR128[] = { 1395*9a0e4156SSadaf Ebrahimi X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, 1396*9a0e4156SSadaf Ebrahimi }; 1397*9a0e4156SSadaf Ebrahimi 1398*9a0e4156SSadaf Ebrahimi // VR128 Bit set. 1399*9a0e4156SSadaf Ebrahimi static uint8_t VR128Bits[] = { 1400*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 1401*9a0e4156SSadaf Ebrahimi }; 1402*9a0e4156SSadaf Ebrahimi 1403*9a0e4156SSadaf Ebrahimi // VR256X Register Class... 1404*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR256X[] = { 1405*9a0e4156SSadaf Ebrahimi X86_YMM0, X86_YMM1, X86_YMM2, X86_YMM3, X86_YMM4, X86_YMM5, X86_YMM6, X86_YMM7, X86_YMM8, X86_YMM9, X86_YMM10, X86_YMM11, X86_YMM12, X86_YMM13, X86_YMM14, X86_YMM15, X86_YMM16, X86_YMM17, X86_YMM18, X86_YMM19, X86_YMM20, X86_YMM21, X86_YMM22, X86_YMM23, X86_YMM24, X86_YMM25, X86_YMM26, X86_YMM27, X86_YMM28, X86_YMM29, X86_YMM30, X86_YMM31, 1406*9a0e4156SSadaf Ebrahimi }; 1407*9a0e4156SSadaf Ebrahimi 1408*9a0e4156SSadaf Ebrahimi // VR256X Bit set. 1409*9a0e4156SSadaf Ebrahimi static uint8_t VR256XBits[] = { 1410*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 1411*9a0e4156SSadaf Ebrahimi }; 1412*9a0e4156SSadaf Ebrahimi 1413*9a0e4156SSadaf Ebrahimi // VR256 Register Class... 1414*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR256[] = { 1415*9a0e4156SSadaf Ebrahimi X86_YMM0, X86_YMM1, X86_YMM2, X86_YMM3, X86_YMM4, X86_YMM5, X86_YMM6, X86_YMM7, X86_YMM8, X86_YMM9, X86_YMM10, X86_YMM11, X86_YMM12, X86_YMM13, X86_YMM14, X86_YMM15, 1416*9a0e4156SSadaf Ebrahimi }; 1417*9a0e4156SSadaf Ebrahimi 1418*9a0e4156SSadaf Ebrahimi // VR256 Bit set. 1419*9a0e4156SSadaf Ebrahimi static uint8_t VR256Bits[] = { 1420*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 1421*9a0e4156SSadaf Ebrahimi }; 1422*9a0e4156SSadaf Ebrahimi 1423*9a0e4156SSadaf Ebrahimi // VR512 Register Class... 1424*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR512[] = { 1425*9a0e4156SSadaf Ebrahimi X86_ZMM0, X86_ZMM1, X86_ZMM2, X86_ZMM3, X86_ZMM4, X86_ZMM5, X86_ZMM6, X86_ZMM7, X86_ZMM8, X86_ZMM9, X86_ZMM10, X86_ZMM11, X86_ZMM12, X86_ZMM13, X86_ZMM14, X86_ZMM15, X86_ZMM16, X86_ZMM17, X86_ZMM18, X86_ZMM19, X86_ZMM20, X86_ZMM21, X86_ZMM22, X86_ZMM23, X86_ZMM24, X86_ZMM25, X86_ZMM26, X86_ZMM27, X86_ZMM28, X86_ZMM29, X86_ZMM30, X86_ZMM31, 1426*9a0e4156SSadaf Ebrahimi }; 1427*9a0e4156SSadaf Ebrahimi 1428*9a0e4156SSadaf Ebrahimi // VR512 Bit set. 1429*9a0e4156SSadaf Ebrahimi static uint8_t VR512Bits[] = { 1430*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 1431*9a0e4156SSadaf Ebrahimi }; 1432*9a0e4156SSadaf Ebrahimi 1433*9a0e4156SSadaf Ebrahimi // VR512_with_sub_xmm_in_FR32 Register Class... 1434*9a0e4156SSadaf Ebrahimi static const MCPhysReg VR512_with_sub_xmm_in_FR32[] = { 1435*9a0e4156SSadaf Ebrahimi X86_ZMM0, X86_ZMM1, X86_ZMM2, X86_ZMM3, X86_ZMM4, X86_ZMM5, X86_ZMM6, X86_ZMM7, X86_ZMM8, X86_ZMM9, X86_ZMM10, X86_ZMM11, X86_ZMM12, X86_ZMM13, X86_ZMM14, X86_ZMM15, 1436*9a0e4156SSadaf Ebrahimi }; 1437*9a0e4156SSadaf Ebrahimi 1438*9a0e4156SSadaf Ebrahimi // VR512_with_sub_xmm_in_FR32 Bit set. 1439*9a0e4156SSadaf Ebrahimi static uint8_t VR512_with_sub_xmm_in_FR32Bits[] = { 1440*9a0e4156SSadaf Ebrahimi 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 1441*9a0e4156SSadaf Ebrahimi }; 1442*9a0e4156SSadaf Ebrahimi 1443*9a0e4156SSadaf Ebrahimistatic MCRegisterClass X86MCRegisterClasses[] = { 1444*9a0e4156SSadaf Ebrahimi { GR8, GR8Bits, 130, 20, sizeof(GR8Bits), X86_GR8RegClassID, 1, 1, 1, 1 }, 1445*9a0e4156SSadaf Ebrahimi { GR8_NOREX, GR8_NOREXBits, 897, 8, sizeof(GR8_NOREXBits), X86_GR8_NOREXRegClassID, 1, 1, 1, 1 }, 1446*9a0e4156SSadaf Ebrahimi { VK1, VK1Bits, 6, 8, sizeof(VK1Bits), X86_VK1RegClassID, 1, 1, 1, 1 }, 1447*9a0e4156SSadaf Ebrahimi { VK2, VK2Bits, 59, 8, sizeof(VK2Bits), X86_VK2RegClassID, 1, 1, 1, 1 }, 1448*9a0e4156SSadaf Ebrahimi { VK4, VK4Bits, 100, 8, sizeof(VK4Bits), X86_VK4RegClassID, 1, 1, 1, 1 }, 1449*9a0e4156SSadaf Ebrahimi { VK8, VK8Bits, 126, 8, sizeof(VK8Bits), X86_VK8RegClassID, 1, 1, 1, 1 }, 1450*9a0e4156SSadaf Ebrahimi { VK1WM, VK1WMBits, 400, 7, sizeof(VK1WMBits), X86_VK1WMRegClassID, 1, 1, 1, 1 }, 1451*9a0e4156SSadaf Ebrahimi { VK2WM, VK2WMBits, 413, 7, sizeof(VK2WMBits), X86_VK2WMRegClassID, 1, 1, 1, 1 }, 1452*9a0e4156SSadaf Ebrahimi { VK4WM, VK4WMBits, 426, 7, sizeof(VK4WMBits), X86_VK4WMRegClassID, 1, 1, 1, 1 }, 1453*9a0e4156SSadaf Ebrahimi { VK8WM, VK8WMBits, 439, 7, sizeof(VK8WMBits), X86_VK8WMRegClassID, 1, 1, 1, 1 }, 1454*9a0e4156SSadaf Ebrahimi { GR8_ABCD_H, GR8_ABCD_HBits, 378, 4, sizeof(GR8_ABCD_HBits), X86_GR8_ABCD_HRegClassID, 1, 1, 1, 1 }, 1455*9a0e4156SSadaf Ebrahimi { GR8_ABCD_L, GR8_ABCD_LBits, 389, 4, sizeof(GR8_ABCD_LBits), X86_GR8_ABCD_LRegClassID, 1, 1, 1, 1 }, 1456*9a0e4156SSadaf Ebrahimi { GR16, GR16Bits, 109, 16, sizeof(GR16Bits), X86_GR16RegClassID, 2, 2, 1, 1 }, 1457*9a0e4156SSadaf Ebrahimi { GR16_NOREX, GR16_NOREXBits, 886, 8, sizeof(GR16_NOREXBits), X86_GR16_NOREXRegClassID, 2, 2, 1, 1 }, 1458*9a0e4156SSadaf Ebrahimi { VK16, VK16Bits, 104, 8, sizeof(VK16Bits), X86_VK16RegClassID, 2, 2, 1, 1 }, 1459*9a0e4156SSadaf Ebrahimi { VK16WM, VK16WMBits, 432, 7, sizeof(VK16WMBits), X86_VK16WMRegClassID, 2, 2, 1, 1 }, 1460*9a0e4156SSadaf Ebrahimi { SEGMENT_REG, SEGMENT_REGBits, 366, 6, sizeof(SEGMENT_REGBits), X86_SEGMENT_REGRegClassID, 2, 2, 1, 1 }, 1461*9a0e4156SSadaf Ebrahimi { GR16_ABCD, GR16_ABCDBits, 334, 4, sizeof(GR16_ABCDBits), X86_GR16_ABCDRegClassID, 2, 2, 1, 1 }, 1462*9a0e4156SSadaf Ebrahimi { FPCCR, FPCCRBits, 571, 1, sizeof(FPCCRBits), X86_FPCCRRegClassID, 2, 2, -1, 0 }, 1463*9a0e4156SSadaf Ebrahimi { FR32X, FR32XBits, 581, 32, sizeof(FR32XBits), X86_FR32XRegClassID, 4, 4, 1, 1 }, 1464*9a0e4156SSadaf Ebrahimi { FR32, FR32Bits, 49, 16, sizeof(FR32Bits), X86_FR32RegClassID, 4, 4, 1, 1 }, 1465*9a0e4156SSadaf Ebrahimi { GR32, GR32Bits, 54, 16, sizeof(GR32Bits), X86_GR32RegClassID, 4, 4, 1, 1 }, 1466*9a0e4156SSadaf Ebrahimi { GR32_NOAX, GR32_NOAXBits, 642, 15, sizeof(GR32_NOAXBits), X86_GR32_NOAXRegClassID, 4, 4, 1, 1 }, 1467*9a0e4156SSadaf Ebrahimi { GR32_NOSP, GR32_NOSPBits, 482, 15, sizeof(GR32_NOSPBits), X86_GR32_NOSPRegClassID, 4, 4, 1, 1 }, 1468*9a0e4156SSadaf Ebrahimi { GR32_NOAX_and_GR32_NOSP, GR32_NOAX_and_GR32_NOSPBits, 468, 14, sizeof(GR32_NOAX_and_GR32_NOSPBits), X86_GR32_NOAX_and_GR32_NOSPRegClassID, 4, 4, 1, 1 }, 1469*9a0e4156SSadaf Ebrahimi { DEBUG_REG, DEBUG_REGBits, 344, 8, sizeof(DEBUG_REGBits), X86_DEBUG_REGRegClassID, 4, 4, 1, 1 }, 1470*9a0e4156SSadaf Ebrahimi { GR32_NOREX, GR32_NOREXBits, 841, 8, sizeof(GR32_NOREXBits), X86_GR32_NOREXRegClassID, 4, 4, 1, 1 }, 1471*9a0e4156SSadaf Ebrahimi { VK32, VK32Bits, 16, 8, sizeof(VK32Bits), X86_VK32RegClassID, 4, 4, 1, 1 }, 1472*9a0e4156SSadaf Ebrahimi { GR32_NOAX_and_GR32_NOREX, GR32_NOAX_and_GR32_NOREXBits, 827, 7, sizeof(GR32_NOAX_and_GR32_NOREXBits), X86_GR32_NOAX_and_GR32_NOREXRegClassID, 4, 4, 1, 1 }, 1473*9a0e4156SSadaf Ebrahimi { GR32_NOREX_NOSP, GR32_NOREX_NOSPBits, 539, 7, sizeof(GR32_NOREX_NOSPBits), X86_GR32_NOREX_NOSPRegClassID, 4, 4, 1, 1 }, 1474*9a0e4156SSadaf Ebrahimi { RFP32, RFP32Bits, 21, 7, sizeof(RFP32Bits), X86_RFP32RegClassID, 4, 4, 1, 1 }, 1475*9a0e4156SSadaf Ebrahimi { VK32WM, VK32WMBits, 406, 7, sizeof(VK32WMBits), X86_VK32WMRegClassID, 4, 4, 1, 1 }, 1476*9a0e4156SSadaf Ebrahimi { GR32_NOAX_and_GR32_NOREX_NOSP, GR32_NOAX_and_GR32_NOREX_NOSPBits, 525, 6, sizeof(GR32_NOAX_and_GR32_NOREX_NOSPBits), X86_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID, 4, 4, 1, 1 }, 1477*9a0e4156SSadaf Ebrahimi { GR32_ABCD, GR32_ABCDBits, 314, 4, sizeof(GR32_ABCDBits), X86_GR32_ABCDRegClassID, 4, 4, 1, 1 }, 1478*9a0e4156SSadaf Ebrahimi { GR32_ABCD_and_GR32_NOAX, GR32_ABCD_and_GR32_NOAXBits, 675, 3, sizeof(GR32_ABCD_and_GR32_NOAXBits), X86_GR32_ABCD_and_GR32_NOAXRegClassID, 4, 4, 1, 1 }, 1479*9a0e4156SSadaf Ebrahimi { GR32_TC, GR32_TCBits, 171, 3, sizeof(GR32_TCBits), X86_GR32_TCRegClassID, 4, 4, 1, 1 }, 1480*9a0e4156SSadaf Ebrahimi { GR32_AD, GR32_ADBits, 306, 2, sizeof(GR32_ADBits), X86_GR32_ADRegClassID, 4, 4, 1, 1 }, 1481*9a0e4156SSadaf Ebrahimi { GR32_NOAX_and_GR32_TC, GR32_NOAX_and_GR32_TCBits, 157, 2, sizeof(GR32_NOAX_and_GR32_TCBits), X86_GR32_NOAX_and_GR32_TCRegClassID, 4, 4, 1, 1 }, 1482*9a0e4156SSadaf Ebrahimi { CCR, CCRBits, 573, 1, sizeof(CCRBits), X86_CCRRegClassID, 4, 4, -1, 0 }, 1483*9a0e4156SSadaf Ebrahimi { GR32_AD_and_GR32_NOAX, GR32_AD_and_GR32_NOAXBits, 630, 1, sizeof(GR32_AD_and_GR32_NOAXBits), X86_GR32_AD_and_GR32_NOAXRegClassID, 4, 4, 1, 1 }, 1484*9a0e4156SSadaf Ebrahimi { RFP64, RFP64Bits, 68, 7, sizeof(RFP64Bits), X86_RFP64RegClassID, 8, 4, 1, 1 }, 1485*9a0e4156SSadaf Ebrahimi { FR64X, FR64XBits, 587, 32, sizeof(FR64XBits), X86_FR64XRegClassID, 8, 8, 1, 1 }, 1486*9a0e4156SSadaf Ebrahimi { GR64, GR64Bits, 79, 17, sizeof(GR64Bits), X86_GR64RegClassID, 8, 8, 1, 1 }, 1487*9a0e4156SSadaf Ebrahimi { CONTROL_REG, CONTROL_REGBits, 354, 16, sizeof(CONTROL_REGBits), X86_CONTROL_REGRegClassID, 8, 8, 1, 1 }, 1488*9a0e4156SSadaf Ebrahimi { FR64, FR64Bits, 74, 16, sizeof(FR64Bits), X86_FR64RegClassID, 8, 8, 1, 1 }, 1489*9a0e4156SSadaf Ebrahimi { GR64_with_sub_8bit, GR64_with_sub_8bitBits, 907, 16, sizeof(GR64_with_sub_8bitBits), X86_GR64_with_sub_8bitRegClassID, 8, 8, 1, 1 }, 1490*9a0e4156SSadaf Ebrahimi { GR64_NOSP, GR64_NOSPBits, 492, 15, sizeof(GR64_NOSPBits), X86_GR64_NOSPRegClassID, 8, 8, 1, 1 }, 1491*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_NOAX, GR64_with_sub_32bit_in_GR32_NOAXBits, 714, 15, sizeof(GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 }, 1492*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits, 445, 14, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPRegClassID, 8, 8, 1, 1 }, 1493*9a0e4156SSadaf Ebrahimi { GR64_NOREX, GR64_NOREXBits, 852, 9, sizeof(GR64_NOREXBits), X86_GR64_NOREXRegClassID, 8, 8, 1, 1 }, 1494*9a0e4156SSadaf Ebrahimi { GR64_TC, GR64_TCBits, 224, 9, sizeof(GR64_TCBits), X86_GR64_TCRegClassID, 8, 8, 1, 1 }, 1495*9a0e4156SSadaf Ebrahimi { GR64_NOSP_and_GR64_TC, GR64_NOSP_and_GR64_TCBits, 210, 8, sizeof(GR64_NOSP_and_GR64_TCBits), X86_GR64_NOSP_and_GR64_TCRegClassID, 8, 8, 1, 1 }, 1496*9a0e4156SSadaf Ebrahimi { GR64_with_sub_16bit_in_GR16_NOREX, GR64_with_sub_16bit_in_GR16_NOREXBits, 863, 8, sizeof(GR64_with_sub_16bit_in_GR16_NOREXBits), X86_GR64_with_sub_16bit_in_GR16_NOREXRegClassID, 8, 8, 1, 1 }, 1497*9a0e4156SSadaf Ebrahimi { VK64, VK64Bits, 63, 8, sizeof(VK64Bits), X86_VK64RegClassID, 8, 8, 1, 1 }, 1498*9a0e4156SSadaf Ebrahimi { VR64, VR64Bits, 84, 8, sizeof(VR64Bits), X86_VR64RegClassID, 8, 8, 1, 1 }, 1499*9a0e4156SSadaf Ebrahimi { GR64_NOREX_NOSP, GR64_NOREX_NOSPBits, 555, 7, sizeof(GR64_NOREX_NOSPBits), X86_GR64_NOREX_NOSPRegClassID, 8, 8, 1, 1 }, 1500*9a0e4156SSadaf Ebrahimi { GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX, GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits, 747, 7, sizeof(GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 }, 1501*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits, 804, 7, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID, 8, 8, 1, 1 }, 1502*9a0e4156SSadaf Ebrahimi { VK64WM, VK64WMBits, 419, 7, sizeof(VK64WMBits), X86_VK64WMRegClassID, 8, 8, 1, 1 }, 1503*9a0e4156SSadaf Ebrahimi { GR64_NOREX_and_GR64_TC, GR64_NOREX_and_GR64_TCBits, 260, 6, sizeof(GR64_NOREX_and_GR64_TCBits), X86_GR64_NOREX_and_GR64_TCRegClassID, 8, 8, 1, 1 }, 1504*9a0e4156SSadaf Ebrahimi { GR64_TCW64, GR64_TCW64Bits, 89, 6, sizeof(GR64_TCW64Bits), X86_GR64_TCW64RegClassID, 8, 8, 1, 1 }, 1505*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits, 502, 6, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID, 8, 8, 1, 1 }, 1506*9a0e4156SSadaf Ebrahimi { GR64_NOREX_NOSP_and_GR64_TC, GR64_NOREX_NOSP_and_GR64_TCBits, 232, 5, sizeof(GR64_NOREX_NOSP_and_GR64_TCBits), X86_GR64_NOREX_NOSP_and_GR64_TCRegClassID, 8, 8, 1, 1 }, 1507*9a0e4156SSadaf Ebrahimi { GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX, GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits, 699, 5, sizeof(GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 }, 1508*9a0e4156SSadaf Ebrahimi { GR64_ABCD, GR64_ABCDBits, 324, 4, sizeof(GR64_ABCDBits), X86_GR64_ABCDRegClassID, 8, 8, 1, 1 }, 1509*9a0e4156SSadaf Ebrahimi { GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX, GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits, 792, 4, sizeof(GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits), X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID, 8, 8, 1, 1 }, 1510*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits, 652, 3, sizeof(GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXRegClassID, 8, 8, 1, 1 }, 1511*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_TC, GR64_with_sub_32bit_in_GR32_TCBits, 179, 3, sizeof(GR64_with_sub_32bit_in_GR32_TCBits), X86_GR64_with_sub_32bit_in_GR32_TCRegClassID, 8, 8, 1, 1 }, 1512*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_AD, GR64_with_sub_32bit_in_GR32_ADBits, 283, 2, sizeof(GR64_with_sub_32bit_in_GR32_ADBits), X86_GR64_with_sub_32bit_in_GR32_ADRegClassID, 8, 8, 1, 1 }, 1513*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits, 134, 2, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCRegClassID, 8, 8, 1, 1 }, 1514*9a0e4156SSadaf Ebrahimi { GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX, GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits, 607, 1, sizeof(GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXRegClassID, 8, 8, 1, 1 }, 1515*9a0e4156SSadaf Ebrahimi { RST, RSTBits, 577, 8, sizeof(RSTBits), X86_RSTRegClassID, 10, 4, 1, 0 }, 1516*9a0e4156SSadaf Ebrahimi { RFP80, RFP80Bits, 0, 7, sizeof(RFP80Bits), X86_RFP80RegClassID, 10, 4, 1, 1 }, 1517*9a0e4156SSadaf Ebrahimi { VR128X, VR128XBits, 600, 32, sizeof(VR128XBits), X86_VR128XRegClassID, 16, 16, 1, 1 }, 1518*9a0e4156SSadaf Ebrahimi { VR128, VR128Bits, 120, 16, sizeof(VR128Bits), X86_VR128RegClassID, 16, 16, 1, 1 }, 1519*9a0e4156SSadaf Ebrahimi { VR256X, VR256XBits, 593, 32, sizeof(VR256XBits), X86_VR256XRegClassID, 32, 32, 1, 1 }, 1520*9a0e4156SSadaf Ebrahimi { VR256, VR256Bits, 114, 16, sizeof(VR256Bits), X86_VR256RegClassID, 32, 32, 1, 1 }, 1521*9a0e4156SSadaf Ebrahimi { VR512, VR512Bits, 10, 32, sizeof(VR512Bits), X86_VR512RegClassID, 64, 64, 1, 1 }, 1522*9a0e4156SSadaf Ebrahimi { VR512_with_sub_xmm_in_FR32, VR512_with_sub_xmm_in_FR32Bits, 27, 16, sizeof(VR512_with_sub_xmm_in_FR32Bits), X86_VR512_with_sub_xmm_in_FR32RegClassID, 64, 64, 1, 1 }, 1523*9a0e4156SSadaf Ebrahimi}; 1524*9a0e4156SSadaf Ebrahimi 1525*9a0e4156SSadaf Ebrahimi#endif // GET_REGINFO_MC_DESC 1526