/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Target Register Enum Values *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_ENUM #undef GET_REGINFO_ENUM namespace llvm { class MCRegisterClass; extern const MCRegisterClass X86MCRegisterClasses[]; namespace X86 { enum { NoRegister, AH = 1, AL = 2, AX = 3, BH = 4, BL = 5, BP = 6, BPH = 7, BPL = 8, BX = 9, CH = 10, CL = 11, CS = 12, CX = 13, DF = 14, DH = 15, DI = 16, DIH = 17, DIL = 18, DL = 19, DS = 20, DX = 21, EAX = 22, EBP = 23, EBX = 24, ECX = 25, EDI = 26, EDX = 27, EFLAGS = 28, EIP = 29, EIZ = 30, ES = 31, ESI = 32, ESP = 33, FPCW = 34, FPSW = 35, FS = 36, FS_BASE = 37, GS = 38, GS_BASE = 39, HAX = 40, HBP = 41, HBX = 42, HCX = 43, HDI = 44, HDX = 45, HIP = 46, HSI = 47, HSP = 48, IP = 49, MXCSR = 50, RAX = 51, RBP = 52, RBX = 53, RCX = 54, RDI = 55, RDX = 56, RFLAGS = 57, RIP = 58, RIZ = 59, RSI = 60, RSP = 61, SI = 62, SIH = 63, SIL = 64, SP = 65, SPH = 66, SPL = 67, SS = 68, SSP = 69, TMMCFG = 70, _EFLAGS = 71, CR0 = 72, CR1 = 73, CR2 = 74, CR3 = 75, CR4 = 76, CR5 = 77, CR6 = 78, CR7 = 79, CR8 = 80, CR9 = 81, CR10 = 82, CR11 = 83, CR12 = 84, CR13 = 85, CR14 = 86, CR15 = 87, DR0 = 88, DR1 = 89, DR2 = 90, DR3 = 91, DR4 = 92, DR5 = 93, DR6 = 94, DR7 = 95, DR8 = 96, DR9 = 97, DR10 = 98, DR11 = 99, DR12 = 100, DR13 = 101, DR14 = 102, DR15 = 103, FP0 = 104, FP1 = 105, FP2 = 106, FP3 = 107, FP4 = 108, FP5 = 109, FP6 = 110, FP7 = 111, K0 = 112, K1 = 113, K2 = 114, K3 = 115, K4 = 116, K5 = 117, K6 = 118, K7 = 119, MM0 = 120, MM1 = 121, MM2 = 122, MM3 = 123, MM4 = 124, MM5 = 125, MM6 = 126, MM7 = 127, R8 = 128, R9 = 129, R10 = 130, R11 = 131, R12 = 132, R13 = 133, R14 = 134, R15 = 135, ST0 = 136, ST1 = 137, ST2 = 138, ST3 = 139, ST4 = 140, ST5 = 141, ST6 = 142, ST7 = 143, TMM0 = 144, TMM1 = 145, TMM2 = 146, TMM3 = 147, TMM4 = 148, TMM5 = 149, TMM6 = 150, TMM7 = 151, XMM0 = 152, XMM1 = 153, XMM2 = 154, XMM3 = 155, XMM4 = 156, XMM5 = 157, XMM6 = 158, XMM7 = 159, XMM8 = 160, XMM9 = 161, XMM10 = 162, XMM11 = 163, XMM12 = 164, XMM13 = 165, XMM14 = 166, XMM15 = 167, XMM16 = 168, XMM17 = 169, XMM18 = 170, XMM19 = 171, XMM20 = 172, XMM21 = 173, XMM22 = 174, XMM23 = 175, XMM24 = 176, XMM25 = 177, XMM26 = 178, XMM27 = 179, XMM28 = 180, XMM29 = 181, XMM30 = 182, XMM31 = 183, YMM0 = 184, YMM1 = 185, YMM2 = 186, YMM3 = 187, YMM4 = 188, YMM5 = 189, YMM6 = 190, YMM7 = 191, YMM8 = 192, YMM9 = 193, YMM10 = 194, YMM11 = 195, YMM12 = 196, YMM13 = 197, YMM14 = 198, YMM15 = 199, YMM16 = 200, YMM17 = 201, YMM18 = 202, YMM19 = 203, YMM20 = 204, YMM21 = 205, YMM22 = 206, YMM23 = 207, YMM24 = 208, YMM25 = 209, YMM26 = 210, YMM27 = 211, YMM28 = 212, YMM29 = 213, YMM30 = 214, YMM31 = 215, ZMM0 = 216, ZMM1 = 217, ZMM2 = 218, ZMM3 = 219, ZMM4 = 220, ZMM5 = 221, ZMM6 = 222, ZMM7 = 223, ZMM8 = 224, ZMM9 = 225, ZMM10 = 226, ZMM11 = 227, ZMM12 = 228, ZMM13 = 229, ZMM14 = 230, ZMM15 = 231, ZMM16 = 232, ZMM17 = 233, ZMM18 = 234, ZMM19 = 235, ZMM20 = 236, ZMM21 = 237, ZMM22 = 238, ZMM23 = 239, ZMM24 = 240, ZMM25 = 241, ZMM26 = 242, ZMM27 = 243, ZMM28 = 244, ZMM29 = 245, ZMM30 = 246, ZMM31 = 247, R8B = 248, R9B = 249, R10B = 250, R11B = 251, R12B = 252, R13B = 253, R14B = 254, R15B = 255, R8BH = 256, R9BH = 257, R10BH = 258, R11BH = 259, R12BH = 260, R13BH = 261, R14BH = 262, R15BH = 263, R8D = 264, R9D = 265, R10D = 266, R11D = 267, R12D = 268, R13D = 269, R14D = 270, R15D = 271, R8W = 272, R9W = 273, R10W = 274, R11W = 275, R12W = 276, R13W = 277, R14W = 278, R15W = 279, R8WH = 280, R9WH = 281, R10WH = 282, R11WH = 283, R12WH = 284, R13WH = 285, R14WH = 286, R15WH = 287, K0_K1 = 288, K2_K3 = 289, K4_K5 = 290, K6_K7 = 291, NUM_TARGET_REGS // 292 }; } // end namespace X86 // Register classes namespace X86 { enum { GR8RegClassID = 0, GRH8RegClassID = 1, GR8_NOREXRegClassID = 2, GR8_ABCD_HRegClassID = 3, GR8_ABCD_LRegClassID = 4, GRH16RegClassID = 5, GR16RegClassID = 6, GR16_NOREXRegClassID = 7, VK1RegClassID = 8, VK16RegClassID = 9, VK2RegClassID = 10, VK4RegClassID = 11, VK8RegClassID = 12, VK16WMRegClassID = 13, VK1WMRegClassID = 14, VK2WMRegClassID = 15, VK4WMRegClassID = 16, VK8WMRegClassID = 17, SEGMENT_REGRegClassID = 18, GR16_ABCDRegClassID = 19, FPCCRRegClassID = 20, FR16XRegClassID = 21, FR16RegClassID = 22, VK16PAIRRegClassID = 23, VK1PAIRRegClassID = 24, VK2PAIRRegClassID = 25, VK4PAIRRegClassID = 26, VK8PAIRRegClassID = 27, VK16PAIR_with_sub_mask_0_in_VK16WMRegClassID = 28, FR32XRegClassID = 29, LOW32_ADDR_ACCESS_RBPRegClassID = 30, LOW32_ADDR_ACCESSRegClassID = 31, LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID = 32, DEBUG_REGRegClassID = 33, FR32RegClassID = 34, GR32RegClassID = 35, GR32_NOSPRegClassID = 36, LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID = 37, GR32_NOREXRegClassID = 38, VK32RegClassID = 39, GR32_NOREX_NOSPRegClassID = 40, RFP32RegClassID = 41, VK32WMRegClassID = 42, GR32_ABCDRegClassID = 43, GR32_TCRegClassID = 44, GR32_ABCD_and_GR32_TCRegClassID = 45, GR32_ADRegClassID = 46, GR32_BPSPRegClassID = 47, GR32_BSIRegClassID = 48, GR32_CBRegClassID = 49, GR32_DCRegClassID = 50, GR32_DIBPRegClassID = 51, GR32_SIDIRegClassID = 52, LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClassID = 53, CCRRegClassID = 54, DFCCRRegClassID = 55, GR32_ABCD_and_GR32_BSIRegClassID = 56, GR32_AD_and_GR32_DCRegClassID = 57, GR32_BPSP_and_GR32_DIBPRegClassID = 58, GR32_BPSP_and_GR32_TCRegClassID = 59, GR32_BSI_and_GR32_SIDIRegClassID = 60, GR32_CB_and_GR32_DCRegClassID = 61, GR32_DIBP_and_GR32_SIDIRegClassID = 62, LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClassID = 63, LOW32_ADDR_ACCESS_with_sub_32bitRegClassID = 64, RFP64RegClassID = 65, FR64XRegClassID = 66, GR64RegClassID = 67, CONTROL_REGRegClassID = 68, FR64RegClassID = 69, GR64_with_sub_8bitRegClassID = 70, GR64_NOSPRegClassID = 71, GR64PLTSafeRegClassID = 72, GR64_TCRegClassID = 73, GR64_NOREXRegClassID = 74, GR64_TCW64RegClassID = 75, GR64_TC_with_sub_8bitRegClassID = 76, GR64_NOSP_and_GR64_TCRegClassID = 77, GR64_TCW64_with_sub_8bitRegClassID = 78, GR64_TC_and_GR64_TCW64RegClassID = 79, GR64_with_sub_16bit_in_GR16_NOREXRegClassID = 80, VK64RegClassID = 81, VR64RegClassID = 82, GR64PLTSafe_and_GR64_TCRegClassID = 83, GR64_NOREX_NOSPRegClassID = 84, GR64_NOREX_and_GR64_TCRegClassID = 85, GR64_NOSP_and_GR64_TCW64RegClassID = 86, GR64_TCW64_and_GR64_TC_with_sub_8bitRegClassID = 87, VK64WMRegClassID = 88, GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID = 89, GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClassID = 90, GR64PLTSafe_and_GR64_TCW64RegClassID = 91, GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClassID = 92, GR64_NOREX_and_GR64_TCW64RegClassID = 93, GR64_ABCDRegClassID = 94, GR64_with_sub_32bit_in_GR32_TCRegClassID = 95, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClassID = 96, GR64_ADRegClassID = 97, GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID = 98, GR64_with_sub_32bit_in_GR32_BPSPRegClassID = 99, GR64_with_sub_32bit_in_GR32_BSIRegClassID = 100, GR64_with_sub_32bit_in_GR32_CBRegClassID = 101, GR64_with_sub_32bit_in_GR32_DCRegClassID = 102, GR64_with_sub_32bit_in_GR32_DIBPRegClassID = 103, GR64_with_sub_32bit_in_GR32_SIDIRegClassID = 104, GR64_and_LOW32_ADDR_ACCESSRegClassID = 105, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID = 106, GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID = 107, GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID = 108, GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClassID = 109, GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID = 110, GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID = 111, GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID = 112, RSTRegClassID = 113, RFP80RegClassID = 114, RFP80_7RegClassID = 115, VR128XRegClassID = 116, VR128RegClassID = 117, VR256XRegClassID = 118, VR256RegClassID = 119, VR512RegClassID = 120, VR512_0_15RegClassID = 121, TILERegClassID = 122, }; } // end namespace X86 // Subregister indices namespace X86 { enum : uint16_t { NoSubRegister, sub_8bit, // 1 sub_8bit_hi, // 2 sub_8bit_hi_phony, // 3 sub_16bit, // 4 sub_16bit_hi, // 5 sub_32bit, // 6 sub_mask_0, // 7 sub_mask_1, // 8 sub_xmm, // 9 sub_ymm, // 10 NUM_TARGET_SUBREGS }; } // end namespace X86 // Register pressure sets enum. namespace X86 { enum RegisterPressureSets { SEGMENT_REG = 0, GR32_BPSP = 1, LOW32_ADDR_ACCESS_with_sub_32bit = 2, GR32_BSI = 3, GR32_SIDI = 4, GR32_DIBP_with_GR32_SIDI = 5, GR32_DIBP_with_LOW32_ADDR_ACCESS_with_sub_32bit = 6, RFP32 = 7, GR8_ABCD_H_with_GR32_BSI = 8, GR8_ABCD_L_with_GR32_BSI = 9, VK1 = 10, VR64 = 11, TILE = 12, GR8_NOREX = 13, GR32_TC = 14, GR32_BPSP_with_GR32_TC = 15, FR16 = 16, DEBUG_REG = 17, CONTROL_REG = 18, GR64_NOREX = 19, GR64_TCW64 = 20, GR32_BPSP_with_GR64_TCW64 = 21, GR8 = 22, GR8_with_GR32_DIBP = 23, GR8_with_GR32_BSI = 24, GR64_TC_with_GR64_TCW64 = 25, GR8_with_LOW32_ADDR_ACCESS_with_sub_32bit = 26, GR8_with_GR64_NOREX = 27, GR64_TC = 28, GR8_with_GR64_TCW64 = 29, GR8_with_GR64_TC = 30, GR8_with_GR64PLTSafe = 31, FR16X = 32, GR16 = 33, }; } // end namespace X86 } // end namespace llvm #endif // GET_REGINFO_ENUM /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* MC Register Information *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_MC_DESC #undef GET_REGINFO_MC_DESC namespace llvm { extern const MCPhysReg X86RegDiffLists[] = { /* 0 */ 0, 1, 0, /* 3 */ 64845, 1, 1, 0, /* 7 */ 65253, 1, 1, 0, /* 11 */ 65382, 1, 1, 0, /* 15 */ 65466, 1, 1, 0, /* 19 */ 2, 1, 0, /* 22 */ 4, 1, 0, /* 25 */ 6, 1, 0, /* 28 */ 11, 1, 0, /* 31 */ 22, 1, 0, /* 34 */ 26, 1, 0, /* 37 */ 29, 1, 0, /* 40 */ 64821, 1, 0, /* 43 */ 65045, 1, 0, /* 46 */ 65360, 1, 0, /* 49 */ 65361, 1, 0, /* 52 */ 65362, 1, 0, /* 55 */ 65363, 1, 0, /* 58 */ 10, 3, 0, /* 61 */ 4, 0, /* 63 */ 5, 0, /* 65 */ 65272, 1, 7, 0, /* 69 */ 65417, 1, 7, 0, /* 73 */ 10, 3, 7, 0, /* 77 */ 65512, 8, 0, /* 80 */ 65326, 1, 11, 0, /* 84 */ 65332, 1, 11, 0, /* 88 */ 65442, 1, 11, 0, /* 92 */ 65448, 1, 11, 0, /* 96 */ 12, 0, /* 98 */ 65326, 1, 14, 0, /* 102 */ 65332, 1, 14, 0, /* 106 */ 65442, 1, 14, 0, /* 110 */ 65448, 1, 14, 0, /* 114 */ 21, 0, /* 116 */ 22, 0, /* 118 */ 136, 8, 65512, 8, 24, 0, /* 124 */ 26, 0, /* 126 */ 65507, 65526, 2, 65535, 27, 0, /* 132 */ 65534, 65504, 28, 0, /* 136 */ 65535, 65504, 28, 0, /* 140 */ 65534, 65506, 28, 0, /* 144 */ 65535, 65506, 28, 0, /* 148 */ 65521, 28, 0, /* 151 */ 2, 6, 29, 0, /* 155 */ 6, 6, 29, 0, /* 159 */ 65534, 10, 29, 0, /* 163 */ 65535, 10, 29, 0, /* 167 */ 2, 12, 29, 0, /* 171 */ 3, 12, 29, 0, /* 175 */ 4, 15, 29, 0, /* 179 */ 5, 15, 29, 0, /* 183 */ 65534, 17, 29, 0, /* 187 */ 65535, 17, 29, 0, /* 191 */ 1, 19, 29, 0, /* 195 */ 2, 19, 29, 0, /* 199 */ 65516, 29, 0, /* 202 */ 65518, 29, 0, /* 205 */ 65519, 29, 0, /* 208 */ 65507, 65530, 65534, 65532, 30, 0, /* 214 */ 32, 32, 0, /* 217 */ 65507, 65524, 65534, 65535, 33, 0, /* 223 */ 65507, 65519, 2, 65535, 34, 0, /* 229 */ 65507, 65521, 65532, 65535, 38, 0, /* 235 */ 65507, 65517, 65535, 65535, 39, 0, /* 241 */ 40, 0, /* 243 */ 172, 0, /* 245 */ 173, 0, /* 247 */ 174, 0, /* 249 */ 175, 0, /* 251 */ 176, 0, /* 253 */ 64761, 0, /* 255 */ 64799, 0, /* 257 */ 64870, 0, /* 259 */ 64893, 0, /* 261 */ 65520, 65400, 0, /* 264 */ 16, 65528, 65400, 0, /* 268 */ 24, 65528, 65400, 0, /* 272 */ 65421, 0, /* 274 */ 65423, 0, /* 276 */ 65461, 0, /* 278 */ 65493, 0, /* 280 */ 65504, 65504, 0, /* 283 */ 65509, 0, /* 285 */ 65511, 0, /* 287 */ 65508, 32, 2, 65535, 65518, 0, /* 293 */ 65508, 30, 2, 65535, 65520, 0, /* 299 */ 65525, 0, /* 301 */ 65530, 0, /* 303 */ 65531, 0, /* 305 */ 65534, 65532, 0, /* 308 */ 65507, 20, 65533, 0, /* 312 */ 65534, 0, /* 314 */ 2, 65535, 0, /* 317 */ 65532, 65535, 0, /* 320 */ 65534, 65535, 0, /* 323 */ 65535, 65535, 0, }; extern const LaneBitmask X86LaneMaskLists[] = { /* 0 */ LaneBitmask(0x0000000000000000), LaneBitmask::getAll(), /* 2 */ LaneBitmask(0x0000000000000002), LaneBitmask(0x0000000000000001), LaneBitmask::getAll(), /* 5 */ LaneBitmask(0x0000000000000001), LaneBitmask(0x0000000000000004), LaneBitmask::getAll(), /* 8 */ LaneBitmask(0x0000000000000002), LaneBitmask(0x0000000000000001), LaneBitmask(0x0000000000000008), LaneBitmask::getAll(), /* 12 */ LaneBitmask(0x0000000000000001), LaneBitmask(0x0000000000000004), LaneBitmask(0x0000000000000008), LaneBitmask::getAll(), /* 16 */ LaneBitmask(0x0000000000000007), LaneBitmask(0x0000000000000008), LaneBitmask::getAll(), /* 19 */ LaneBitmask(0x0000000000000010), LaneBitmask(0x0000000000000020), LaneBitmask::getAll(), /* 22 */ LaneBitmask(0x0000000000000040), LaneBitmask::getAll(), }; extern const uint16_t X86SubRegIdxLists[] = { /* 0 */ 1, 2, 0, /* 3 */ 1, 3, 0, /* 6 */ 6, 4, 1, 2, 5, 0, /* 12 */ 6, 4, 1, 3, 5, 0, /* 18 */ 6, 4, 5, 0, /* 22 */ 7, 8, 0, /* 25 */ 10, 9, 0, }; extern const MCRegisterInfo::SubRegCoveredBits X86SubRegIdxRanges[] = { { 65535, 65535 }, { 0, 8 }, // sub_8bit { 8, 8 }, // sub_8bit_hi { 8, 8 }, // sub_8bit_hi_phony { 0, 16 }, // sub_16bit { 16, 16 }, // sub_16bit_hi { 0, 32 }, // sub_32bit { 0, 65535 }, // sub_mask_0 { 65535, 65535 }, // sub_mask_1 { 0, 128 }, // sub_xmm { 0, 256 }, // sub_ymm }; extern const char X86RegStrings[] = { /* 0 */ 'X', 'M', 'M', '1', '0', 0, /* 6 */ 'Y', 'M', 'M', '1', '0', 0, /* 12 */ 'Z', 'M', 'M', '1', '0', 0, /* 18 */ 'C', 'R', '1', '0', 0, /* 23 */ 'D', 'R', '1', '0', 0, /* 28 */ 'X', 'M', 'M', '2', '0', 0, /* 34 */ 'Y', 'M', 'M', '2', '0', 0, /* 40 */ 'Z', 'M', 'M', '2', '0', 0, /* 46 */ 'X', 'M', 'M', '3', '0', 0, /* 52 */ 'Y', 'M', 'M', '3', '0', 0, /* 58 */ 'Z', 'M', 'M', '3', '0', 0, /* 64 */ 'K', '0', 0, /* 67 */ 'T', 'M', 'M', '0', 0, /* 72 */ 'X', 'M', 'M', '0', 0, /* 77 */ 'Y', 'M', 'M', '0', 0, /* 82 */ 'Z', 'M', 'M', '0', 0, /* 87 */ 'F', 'P', '0', 0, /* 91 */ 'C', 'R', '0', 0, /* 95 */ 'D', 'R', '0', 0, /* 99 */ 'S', 'T', '0', 0, /* 103 */ 'X', 'M', 'M', '1', '1', 0, /* 109 */ 'Y', 'M', 'M', '1', '1', 0, /* 115 */ 'Z', 'M', 'M', '1', '1', 0, /* 121 */ 'C', 'R', '1', '1', 0, /* 126 */ 'D', 'R', '1', '1', 0, /* 131 */ 'X', 'M', 'M', '2', '1', 0, /* 137 */ 'Y', 'M', 'M', '2', '1', 0, /* 143 */ 'Z', 'M', 'M', '2', '1', 0, /* 149 */ 'X', 'M', 'M', '3', '1', 0, /* 155 */ 'Y', 'M', 'M', '3', '1', 0, /* 161 */ 'Z', 'M', 'M', '3', '1', 0, /* 167 */ 'K', '0', '_', 'K', '1', 0, /* 173 */ 'T', 'M', 'M', '1', 0, /* 178 */ 'X', 'M', 'M', '1', 0, /* 183 */ 'Y', 'M', 'M', '1', 0, /* 188 */ 'Z', 'M', 'M', '1', 0, /* 193 */ 'F', 'P', '1', 0, /* 197 */ 'C', 'R', '1', 0, /* 201 */ 'D', 'R', '1', 0, /* 205 */ 'S', 'T', '1', 0, /* 209 */ 'X', 'M', 'M', '1', '2', 0, /* 215 */ 'Y', 'M', 'M', '1', '2', 0, /* 221 */ 'Z', 'M', 'M', '1', '2', 0, /* 227 */ 'C', 'R', '1', '2', 0, /* 232 */ 'D', 'R', '1', '2', 0, /* 237 */ 'X', 'M', 'M', '2', '2', 0, /* 243 */ 'Y', 'M', 'M', '2', '2', 0, /* 249 */ 'Z', 'M', 'M', '2', '2', 0, /* 255 */ 'K', '2', 0, /* 258 */ 'T', 'M', 'M', '2', 0, /* 263 */ 'X', 'M', 'M', '2', 0, /* 268 */ 'Y', 'M', 'M', '2', 0, /* 273 */ 'Z', 'M', 'M', '2', 0, /* 278 */ 'F', 'P', '2', 0, /* 282 */ 'C', 'R', '2', 0, /* 286 */ 'D', 'R', '2', 0, /* 290 */ 'S', 'T', '2', 0, /* 294 */ 'X', 'M', 'M', '1', '3', 0, /* 300 */ 'Y', 'M', 'M', '1', '3', 0, /* 306 */ 'Z', 'M', 'M', '1', '3', 0, /* 312 */ 'C', 'R', '1', '3', 0, /* 317 */ 'D', 'R', '1', '3', 0, /* 322 */ 'X', 'M', 'M', '2', '3', 0, /* 328 */ 'Y', 'M', 'M', '2', '3', 0, /* 334 */ 'Z', 'M', 'M', '2', '3', 0, /* 340 */ 'K', '2', '_', 'K', '3', 0, /* 346 */ 'T', 'M', 'M', '3', 0, /* 351 */ 'X', 'M', 'M', '3', 0, /* 356 */ 'Y', 'M', 'M', '3', 0, /* 361 */ 'Z', 'M', 'M', '3', 0, /* 366 */ 'F', 'P', '3', 0, /* 370 */ 'C', 'R', '3', 0, /* 374 */ 'D', 'R', '3', 0, /* 378 */ 'S', 'T', '3', 0, /* 382 */ 'X', 'M', 'M', '1', '4', 0, /* 388 */ 'Y', 'M', 'M', '1', '4', 0, /* 394 */ 'Z', 'M', 'M', '1', '4', 0, /* 400 */ 'C', 'R', '1', '4', 0, /* 405 */ 'D', 'R', '1', '4', 0, /* 410 */ 'X', 'M', 'M', '2', '4', 0, /* 416 */ 'Y', 'M', 'M', '2', '4', 0, /* 422 */ 'Z', 'M', 'M', '2', '4', 0, /* 428 */ 'K', '4', 0, /* 431 */ 'T', 'M', 'M', '4', 0, /* 436 */ 'X', 'M', 'M', '4', 0, /* 441 */ 'Y', 'M', 'M', '4', 0, /* 446 */ 'Z', 'M', 'M', '4', 0, /* 451 */ 'F', 'P', '4', 0, /* 455 */ 'C', 'R', '4', 0, /* 459 */ 'D', 'R', '4', 0, /* 463 */ 'S', 'T', '4', 0, /* 467 */ 'X', 'M', 'M', '1', '5', 0, /* 473 */ 'Y', 'M', 'M', '1', '5', 0, /* 479 */ 'Z', 'M', 'M', '1', '5', 0, /* 485 */ 'C', 'R', '1', '5', 0, /* 490 */ 'D', 'R', '1', '5', 0, /* 495 */ 'X', 'M', 'M', '2', '5', 0, /* 501 */ 'Y', 'M', 'M', '2', '5', 0, /* 507 */ 'Z', 'M', 'M', '2', '5', 0, /* 513 */ 'K', '4', '_', 'K', '5', 0, /* 519 */ 'T', 'M', 'M', '5', 0, /* 524 */ 'X', 'M', 'M', '5', 0, /* 529 */ 'Y', 'M', 'M', '5', 0, /* 534 */ 'Z', 'M', 'M', '5', 0, /* 539 */ 'F', 'P', '5', 0, /* 543 */ 'C', 'R', '5', 0, /* 547 */ 'D', 'R', '5', 0, /* 551 */ 'S', 'T', '5', 0, /* 555 */ 'X', 'M', 'M', '1', '6', 0, /* 561 */ 'Y', 'M', 'M', '1', '6', 0, /* 567 */ 'Z', 'M', 'M', '1', '6', 0, /* 573 */ 'X', 'M', 'M', '2', '6', 0, /* 579 */ 'Y', 'M', 'M', '2', '6', 0, /* 585 */ 'Z', 'M', 'M', '2', '6', 0, /* 591 */ 'K', '6', 0, /* 594 */ 'T', 'M', 'M', '6', 0, /* 599 */ 'X', 'M', 'M', '6', 0, /* 604 */ 'Y', 'M', 'M', '6', 0, /* 609 */ 'Z', 'M', 'M', '6', 0, /* 614 */ 'F', 'P', '6', 0, /* 618 */ 'C', 'R', '6', 0, /* 622 */ 'D', 'R', '6', 0, /* 626 */ 'S', 'T', '6', 0, /* 630 */ 'X', 'M', 'M', '1', '7', 0, /* 636 */ 'Y', 'M', 'M', '1', '7', 0, /* 642 */ 'Z', 'M', 'M', '1', '7', 0, /* 648 */ 'X', 'M', 'M', '2', '7', 0, /* 654 */ 'Y', 'M', 'M', '2', '7', 0, /* 660 */ 'Z', 'M', 'M', '2', '7', 0, /* 666 */ 'K', '6', '_', 'K', '7', 0, /* 672 */ 'T', 'M', 'M', '7', 0, /* 677 */ 'X', 'M', 'M', '7', 0, /* 682 */ 'Y', 'M', 'M', '7', 0, /* 687 */ 'Z', 'M', 'M', '7', 0, /* 692 */ 'F', 'P', '7', 0, /* 696 */ 'C', 'R', '7', 0, /* 700 */ 'D', 'R', '7', 0, /* 704 */ 'S', 'T', '7', 0, /* 708 */ 'X', 'M', 'M', '1', '8', 0, /* 714 */ 'Y', 'M', 'M', '1', '8', 0, /* 720 */ 'Z', 'M', 'M', '1', '8', 0, /* 726 */ 'X', 'M', 'M', '2', '8', 0, /* 732 */ 'Y', 'M', 'M', '2', '8', 0, /* 738 */ 'Z', 'M', 'M', '2', '8', 0, /* 744 */ 'X', 'M', 'M', '8', 0, /* 749 */ 'Y', 'M', 'M', '8', 0, /* 754 */ 'Z', 'M', 'M', '8', 0, /* 759 */ 'C', 'R', '8', 0, /* 763 */ 'D', 'R', '8', 0, /* 767 */ 'X', 'M', 'M', '1', '9', 0, /* 773 */ 'Y', 'M', 'M', '1', '9', 0, /* 779 */ 'Z', 'M', 'M', '1', '9', 0, /* 785 */ 'X', 'M', 'M', '2', '9', 0, /* 791 */ 'Y', 'M', 'M', '2', '9', 0, /* 797 */ 'Z', 'M', 'M', '2', '9', 0, /* 803 */ 'X', 'M', 'M', '9', 0, /* 808 */ 'Y', 'M', 'M', '9', 0, /* 813 */ 'Z', 'M', 'M', '9', 0, /* 818 */ 'C', 'R', '9', 0, /* 822 */ 'D', 'R', '9', 0, /* 826 */ 'R', '1', '0', 'B', 0, /* 831 */ 'R', '1', '1', 'B', 0, /* 836 */ 'R', '1', '2', 'B', 0, /* 841 */ 'R', '1', '3', 'B', 0, /* 846 */ 'R', '1', '4', 'B', 0, /* 851 */ 'R', '1', '5', 'B', 0, /* 856 */ 'R', '8', 'B', 0, /* 860 */ 'R', '9', 'B', 0, /* 864 */ 'R', '1', '0', 'D', 0, /* 869 */ 'R', '1', '1', 'D', 0, /* 874 */ 'R', '1', '2', 'D', 0, /* 879 */ 'R', '1', '3', 'D', 0, /* 884 */ 'R', '1', '4', 'D', 0, /* 889 */ 'R', '1', '5', 'D', 0, /* 894 */ 'R', '8', 'D', 0, /* 898 */ 'R', '9', 'D', 0, /* 902 */ 'F', 'S', '_', 'B', 'A', 'S', 'E', 0, /* 910 */ 'G', 'S', '_', 'B', 'A', 'S', 'E', 0, /* 918 */ 'D', 'F', 0, /* 921 */ 'T', 'M', 'M', 'C', 'F', 'G', 0, /* 928 */ 'A', 'H', 0, /* 931 */ 'R', '1', '0', 'B', 'H', 0, /* 937 */ 'R', '1', '1', 'B', 'H', 0, /* 943 */ 'R', '1', '2', 'B', 'H', 0, /* 949 */ 'R', '1', '3', 'B', 'H', 0, /* 955 */ 'R', '1', '4', 'B', 'H', 0, /* 961 */ 'R', '1', '5', 'B', 'H', 0, /* 967 */ 'R', '8', 'B', 'H', 0, /* 972 */ 'R', '9', 'B', 'H', 0, /* 977 */ 'C', 'H', 0, /* 980 */ 'D', 'H', 0, /* 983 */ 'D', 'I', 'H', 0, /* 987 */ 'S', 'I', 'H', 0, /* 991 */ 'B', 'P', 'H', 0, /* 995 */ 'S', 'P', 'H', 0, /* 999 */ 'R', '1', '0', 'W', 'H', 0, /* 1005 */ 'R', '1', '1', 'W', 'H', 0, /* 1011 */ 'R', '1', '2', 'W', 'H', 0, /* 1017 */ 'R', '1', '3', 'W', 'H', 0, /* 1023 */ 'R', '1', '4', 'W', 'H', 0, /* 1029 */ 'R', '1', '5', 'W', 'H', 0, /* 1035 */ 'R', '8', 'W', 'H', 0, /* 1040 */ 'R', '9', 'W', 'H', 0, /* 1045 */ 'E', 'D', 'I', 0, /* 1049 */ 'H', 'D', 'I', 0, /* 1053 */ 'R', 'D', 'I', 0, /* 1057 */ 'E', 'S', 'I', 0, /* 1061 */ 'H', 'S', 'I', 0, /* 1065 */ 'R', 'S', 'I', 0, /* 1069 */ 'A', 'L', 0, /* 1072 */ 'B', 'L', 0, /* 1075 */ 'C', 'L', 0, /* 1078 */ 'D', 'L', 0, /* 1081 */ 'D', 'I', 'L', 0, /* 1085 */ 'S', 'I', 'L', 0, /* 1089 */ 'B', 'P', 'L', 0, /* 1093 */ 'S', 'P', 'L', 0, /* 1097 */ 'E', 'B', 'P', 0, /* 1101 */ 'H', 'B', 'P', 0, /* 1105 */ 'R', 'B', 'P', 0, /* 1109 */ 'E', 'I', 'P', 0, /* 1113 */ 'H', 'I', 'P', 0, /* 1117 */ 'R', 'I', 'P', 0, /* 1121 */ 'E', 'S', 'P', 0, /* 1125 */ 'H', 'S', 'P', 0, /* 1129 */ 'R', 'S', 'P', 0, /* 1133 */ 'S', 'S', 'P', 0, /* 1137 */ 'M', 'X', 'C', 'S', 'R', 0, /* 1143 */ 'C', 'S', 0, /* 1146 */ 'D', 'S', 0, /* 1149 */ 'E', 'S', 0, /* 1152 */ 'F', 'S', 0, /* 1155 */ '_', 'E', 'F', 'L', 'A', 'G', 'S', 0, /* 1163 */ 'R', 'F', 'L', 'A', 'G', 'S', 0, /* 1170 */ 'S', 'S', 0, /* 1173 */ 'R', '1', '0', 'W', 0, /* 1178 */ 'R', '1', '1', 'W', 0, /* 1183 */ 'R', '1', '2', 'W', 0, /* 1188 */ 'R', '1', '3', 'W', 0, /* 1193 */ 'R', '1', '4', 'W', 0, /* 1198 */ 'R', '1', '5', 'W', 0, /* 1203 */ 'R', '8', 'W', 0, /* 1207 */ 'R', '9', 'W', 0, /* 1211 */ 'F', 'P', 'C', 'W', 0, /* 1216 */ 'F', 'P', 'S', 'W', 0, /* 1221 */ 'E', 'A', 'X', 0, /* 1225 */ 'H', 'A', 'X', 0, /* 1229 */ 'R', 'A', 'X', 0, /* 1233 */ 'E', 'B', 'X', 0, /* 1237 */ 'H', 'B', 'X', 0, /* 1241 */ 'R', 'B', 'X', 0, /* 1245 */ 'E', 'C', 'X', 0, /* 1249 */ 'H', 'C', 'X', 0, /* 1253 */ 'R', 'C', 'X', 0, /* 1257 */ 'E', 'D', 'X', 0, /* 1261 */ 'H', 'D', 'X', 0, /* 1265 */ 'R', 'D', 'X', 0, /* 1269 */ 'E', 'I', 'Z', 0, /* 1273 */ 'R', 'I', 'Z', 0, 0 }; extern const MCRegisterDesc X86RegDesc[] = { // Descriptors { 5, 0, 0, 0, 0, 0 }, { 928, 2, 195, 2, 5041, 0 }, { 1069, 2, 191, 2, 5041, 0 }, { 1222, 323, 192, 0, 0, 2 }, { 934, 2, 179, 2, 4993, 0 }, { 1072, 2, 175, 2, 4993, 0 }, { 1098, 314, 184, 3, 352, 5 }, { 991, 2, 187, 2, 1008, 0 }, { 1089, 2, 183, 2, 976, 0 }, { 1234, 317, 176, 0, 304, 2 }, { 977, 2, 171, 2, 4897, 0 }, { 1075, 2, 167, 2, 4897, 0 }, { 1143, 2, 2, 2, 4897, 0 }, { 1246, 320, 168, 0, 400, 2 }, { 918, 2, 2, 2, 4849, 0 }, { 980, 2, 155, 2, 4849, 0 }, { 1046, 314, 160, 3, 448, 5 }, { 983, 2, 163, 2, 1536, 0 }, { 1081, 2, 159, 2, 4562, 0 }, { 1078, 2, 151, 2, 4817, 0 }, { 1146, 2, 2, 2, 4817, 0 }, { 1258, 305, 152, 0, 928, 2 }, { 1221, 236, 153, 7, 1764, 8 }, { 1097, 224, 153, 13, 1476, 12 }, { 1233, 230, 153, 7, 1700, 8 }, { 1245, 218, 153, 7, 1412, 8 }, { 1045, 127, 153, 13, 1109, 12 }, { 1257, 209, 153, 7, 1168, 8 }, { 1156, 2, 2, 2, 1824, 0 }, { 1109, 309, 153, 19, 496, 16 }, { 1269, 2, 2, 2, 4817, 0 }, { 1149, 2, 2, 2, 4817, 0 }, { 1057, 294, 134, 13, 243, 12 }, { 1121, 288, 134, 13, 243, 12 }, { 1211, 2, 2, 2, 4993, 0 }, { 1216, 2, 2, 2, 4993, 0 }, { 1152, 2, 2, 2, 4993, 0 }, { 902, 2, 2, 2, 4993, 0 }, { 1160, 2, 2, 2, 4993, 0 }, { 910, 2, 2, 2, 4993, 0 }, { 1225, 2, 202, 2, 4561, 0 }, { 1101, 2, 202, 2, 4561, 0 }, { 1237, 2, 202, 2, 4561, 0 }, { 1249, 2, 202, 2, 4561, 0 }, { 1049, 2, 202, 2, 4561, 0 }, { 1261, 2, 202, 2, 4561, 0 }, { 1113, 2, 205, 2, 4355, 0 }, { 1061, 2, 148, 2, 4387, 0 }, { 1125, 2, 148, 2, 4387, 0 }, { 1110, 2, 199, 2, 1856, 0 }, { 1137, 2, 2, 2, 3728, 0 }, { 1229, 235, 2, 6, 1636, 8 }, { 1105, 223, 2, 12, 1348, 12 }, { 1241, 229, 2, 6, 1572, 8 }, { 1253, 217, 2, 6, 1284, 8 }, { 1053, 126, 2, 12, 1045, 12 }, { 1265, 208, 2, 6, 1168, 8 }, { 1163, 2, 2, 2, 3824, 0 }, { 1117, 308, 2, 18, 496, 16 }, { 1273, 2, 2, 2, 3856, 0 }, { 1065, 293, 2, 12, 179, 12 }, { 1129, 287, 2, 12, 179, 12 }, { 1058, 314, 141, 3, 544, 5 }, { 987, 2, 144, 2, 2080, 0 }, { 1085, 2, 140, 2, 1984, 0 }, { 1122, 314, 133, 3, 592, 5 }, { 995, 2, 136, 2, 3392, 0 }, { 1093, 2, 132, 2, 4060, 0 }, { 1170, 2, 2, 2, 4529, 0 }, { 1133, 2, 2, 2, 4529, 0 }, { 921, 2, 2, 2, 4529, 0 }, { 1155, 2, 2, 2, 4529, 0 }, { 91, 2, 2, 2, 4529, 0 }, { 197, 2, 2, 2, 4529, 0 }, { 282, 2, 2, 2, 4529, 0 }, { 370, 2, 2, 2, 4529, 0 }, { 455, 2, 2, 2, 4529, 0 }, { 543, 2, 2, 2, 4529, 0 }, { 618, 2, 2, 2, 4529, 0 }, { 696, 2, 2, 2, 4529, 0 }, { 759, 2, 2, 2, 4529, 0 }, { 818, 2, 2, 2, 4529, 0 }, { 18, 2, 2, 2, 4529, 0 }, { 121, 2, 2, 2, 4529, 0 }, { 227, 2, 2, 2, 4529, 0 }, { 312, 2, 2, 2, 4529, 0 }, { 400, 2, 2, 2, 4529, 0 }, { 485, 2, 2, 2, 4529, 0 }, { 95, 2, 2, 2, 4529, 0 }, { 201, 2, 2, 2, 4529, 0 }, { 286, 2, 2, 2, 4529, 0 }, { 374, 2, 2, 2, 4529, 0 }, { 459, 2, 2, 2, 4529, 0 }, { 547, 2, 2, 2, 4529, 0 }, { 622, 2, 2, 2, 4529, 0 }, { 700, 2, 2, 2, 4529, 0 }, { 763, 2, 2, 2, 4529, 0 }, { 822, 2, 2, 2, 4529, 0 }, { 23, 2, 2, 2, 4529, 0 }, { 126, 2, 2, 2, 4529, 0 }, { 232, 2, 2, 2, 4529, 0 }, { 317, 2, 2, 2, 4529, 0 }, { 405, 2, 2, 2, 4529, 0 }, { 490, 2, 2, 2, 4529, 0 }, { 87, 2, 2, 2, 4529, 0 }, { 193, 2, 2, 2, 4529, 0 }, { 278, 2, 2, 2, 4529, 0 }, { 366, 2, 2, 2, 4529, 0 }, { 451, 2, 2, 2, 4529, 0 }, { 539, 2, 2, 2, 4529, 0 }, { 614, 2, 2, 2, 4529, 0 }, { 692, 2, 2, 2, 4529, 0 }, { 64, 2, 251, 2, 4529, 0 }, { 170, 2, 249, 2, 4529, 0 }, { 255, 2, 249, 2, 4529, 0 }, { 343, 2, 247, 2, 4529, 0 }, { 428, 2, 247, 2, 4529, 0 }, { 516, 2, 245, 2, 4529, 0 }, { 591, 2, 245, 2, 4529, 0 }, { 669, 2, 243, 2, 4529, 0 }, { 68, 2, 2, 2, 4529, 0 }, { 174, 2, 2, 2, 4529, 0 }, { 259, 2, 2, 2, 4529, 0 }, { 347, 2, 2, 2, 4529, 0 }, { 432, 2, 2, 2, 4529, 0 }, { 520, 2, 2, 2, 4529, 0 }, { 595, 2, 2, 2, 4529, 0 }, { 673, 2, 2, 2, 4529, 0 }, { 760, 118, 2, 12, 115, 12 }, { 819, 118, 2, 12, 115, 12 }, { 19, 118, 2, 12, 115, 12 }, { 122, 118, 2, 12, 115, 12 }, { 228, 118, 2, 12, 115, 12 }, { 313, 118, 2, 12, 115, 12 }, { 401, 118, 2, 12, 115, 12 }, { 486, 118, 2, 12, 115, 12 }, { 99, 2, 2, 2, 4785, 0 }, { 205, 2, 2, 2, 4785, 0 }, { 290, 2, 2, 2, 4785, 0 }, { 378, 2, 2, 2, 4785, 0 }, { 463, 2, 2, 2, 4785, 0 }, { 551, 2, 2, 2, 4785, 0 }, { 626, 2, 2, 2, 4785, 0 }, { 704, 2, 2, 2, 4785, 0 }, { 67, 2, 2, 2, 4785, 0 }, { 173, 2, 2, 2, 4785, 0 }, { 258, 2, 2, 2, 4785, 0 }, { 346, 2, 2, 2, 4785, 0 }, { 431, 2, 2, 2, 4785, 0 }, { 519, 2, 2, 2, 4785, 0 }, { 594, 2, 2, 2, 4785, 0 }, { 672, 2, 2, 2, 4785, 0 }, { 72, 2, 214, 2, 4785, 0 }, { 178, 2, 214, 2, 4785, 0 }, { 263, 2, 214, 2, 4785, 0 }, { 351, 2, 214, 2, 4785, 0 }, { 436, 2, 214, 2, 4785, 0 }, { 524, 2, 214, 2, 4785, 0 }, { 599, 2, 214, 2, 4785, 0 }, { 677, 2, 214, 2, 4785, 0 }, { 744, 2, 214, 2, 4785, 0 }, { 803, 2, 214, 2, 4785, 0 }, { 0, 2, 214, 2, 4785, 0 }, { 103, 2, 214, 2, 4785, 0 }, { 209, 2, 214, 2, 4785, 0 }, { 294, 2, 214, 2, 4785, 0 }, { 382, 2, 214, 2, 4785, 0 }, { 467, 2, 214, 2, 4785, 0 }, { 555, 2, 214, 2, 4785, 0 }, { 630, 2, 214, 2, 4785, 0 }, { 708, 2, 214, 2, 4785, 0 }, { 767, 2, 214, 2, 4785, 0 }, { 28, 2, 214, 2, 4785, 0 }, { 131, 2, 214, 2, 4785, 0 }, { 237, 2, 214, 2, 4785, 0 }, { 322, 2, 214, 2, 4785, 0 }, { 410, 2, 214, 2, 4785, 0 }, { 495, 2, 214, 2, 4785, 0 }, { 573, 2, 214, 2, 4785, 0 }, { 648, 2, 214, 2, 4785, 0 }, { 726, 2, 214, 2, 4785, 0 }, { 785, 2, 214, 2, 4785, 0 }, { 46, 2, 214, 2, 4785, 0 }, { 149, 2, 214, 2, 4785, 0 }, { 77, 281, 215, 26, 4449, 22 }, { 183, 281, 215, 26, 4449, 22 }, { 268, 281, 215, 26, 4449, 22 }, { 356, 281, 215, 26, 4449, 22 }, { 441, 281, 215, 26, 4449, 22 }, { 529, 281, 215, 26, 4449, 22 }, { 604, 281, 215, 26, 4449, 22 }, { 682, 281, 215, 26, 4449, 22 }, { 749, 281, 215, 26, 4449, 22 }, { 808, 281, 215, 26, 4449, 22 }, { 6, 281, 215, 26, 4449, 22 }, { 109, 281, 215, 26, 4449, 22 }, { 215, 281, 215, 26, 4449, 22 }, { 300, 281, 215, 26, 4449, 22 }, { 388, 281, 215, 26, 4449, 22 }, { 473, 281, 215, 26, 4449, 22 }, { 561, 281, 215, 26, 4449, 22 }, { 636, 281, 215, 26, 4449, 22 }, { 714, 281, 215, 26, 4449, 22 }, { 773, 281, 215, 26, 4449, 22 }, { 34, 281, 215, 26, 4449, 22 }, { 137, 281, 215, 26, 4449, 22 }, { 243, 281, 215, 26, 4449, 22 }, { 328, 281, 215, 26, 4449, 22 }, { 416, 281, 215, 26, 4449, 22 }, { 501, 281, 215, 26, 4449, 22 }, { 579, 281, 215, 26, 4449, 22 }, { 654, 281, 215, 26, 4449, 22 }, { 732, 281, 215, 26, 4449, 22 }, { 791, 281, 215, 26, 4449, 22 }, { 52, 281, 215, 26, 4449, 22 }, { 155, 281, 215, 26, 4449, 22 }, { 82, 280, 2, 25, 4417, 22 }, { 188, 280, 2, 25, 4417, 22 }, { 273, 280, 2, 25, 4417, 22 }, { 361, 280, 2, 25, 4417, 22 }, { 446, 280, 2, 25, 4417, 22 }, { 534, 280, 2, 25, 4417, 22 }, { 609, 280, 2, 25, 4417, 22 }, { 687, 280, 2, 25, 4417, 22 }, { 754, 280, 2, 25, 4417, 22 }, { 813, 280, 2, 25, 4417, 22 }, { 12, 280, 2, 25, 4417, 22 }, { 115, 280, 2, 25, 4417, 22 }, { 221, 280, 2, 25, 4417, 22 }, { 306, 280, 2, 25, 4417, 22 }, { 394, 280, 2, 25, 4417, 22 }, { 479, 280, 2, 25, 4417, 22 }, { 567, 280, 2, 25, 4417, 22 }, { 642, 280, 2, 25, 4417, 22 }, { 720, 280, 2, 25, 4417, 22 }, { 779, 280, 2, 25, 4417, 22 }, { 40, 280, 2, 25, 4417, 22 }, { 143, 280, 2, 25, 4417, 22 }, { 249, 280, 2, 25, 4417, 22 }, { 334, 280, 2, 25, 4417, 22 }, { 422, 280, 2, 25, 4417, 22 }, { 507, 280, 2, 25, 4417, 22 }, { 585, 280, 2, 25, 4417, 22 }, { 660, 280, 2, 25, 4417, 22 }, { 738, 280, 2, 25, 4417, 22 }, { 797, 280, 2, 25, 4417, 22 }, { 58, 280, 2, 25, 4417, 22 }, { 161, 280, 2, 25, 4417, 22 }, { 856, 2, 268, 2, 4147, 0 }, { 860, 2, 268, 2, 4147, 0 }, { 826, 2, 268, 2, 4147, 0 }, { 831, 2, 268, 2, 4147, 0 }, { 836, 2, 268, 2, 4147, 0 }, { 841, 2, 268, 2, 4147, 0 }, { 846, 2, 268, 2, 4147, 0 }, { 851, 2, 268, 2, 4147, 0 }, { 967, 2, 264, 2, 4115, 0 }, { 972, 2, 264, 2, 4115, 0 }, { 931, 2, 264, 2, 4115, 0 }, { 937, 2, 264, 2, 4115, 0 }, { 943, 2, 264, 2, 4115, 0 }, { 949, 2, 264, 2, 4115, 0 }, { 955, 2, 264, 2, 4115, 0 }, { 961, 2, 264, 2, 4115, 0 }, { 894, 119, 262, 13, 51, 12 }, { 898, 119, 262, 13, 51, 12 }, { 864, 119, 262, 13, 51, 12 }, { 869, 119, 262, 13, 51, 12 }, { 874, 119, 262, 13, 51, 12 }, { 879, 119, 262, 13, 51, 12 }, { 884, 119, 262, 13, 51, 12 }, { 889, 119, 262, 13, 51, 12 }, { 1203, 77, 265, 3, 643, 5 }, { 1207, 77, 265, 3, 643, 5 }, { 1173, 77, 265, 3, 643, 5 }, { 1178, 77, 265, 3, 643, 5 }, { 1183, 77, 265, 3, 643, 5 }, { 1188, 77, 265, 3, 643, 5 }, { 1193, 77, 265, 3, 643, 5 }, { 1198, 77, 265, 3, 643, 5 }, { 1035, 2, 261, 2, 4083, 0 }, { 1040, 2, 261, 2, 4083, 0 }, { 999, 2, 261, 2, 4083, 0 }, { 1005, 2, 261, 2, 4083, 0 }, { 1011, 2, 261, 2, 4083, 0 }, { 1017, 2, 261, 2, 4083, 0 }, { 1023, 2, 261, 2, 4083, 0 }, { 1029, 2, 261, 2, 4083, 0 }, { 167, 46, 2, 22, 690, 19 }, { 340, 49, 2, 22, 690, 19 }, { 513, 52, 2, 22, 690, 19 }, { 666, 55, 2, 22, 690, 19 }, }; extern const MCPhysReg X86RegUnitRoots[][2] = { { X86::AH }, { X86::AL }, { X86::BH }, { X86::BL }, { X86::BPL }, { X86::BPH }, { X86::CH }, { X86::CL }, { X86::CS }, { X86::DF }, { X86::DH }, { X86::DIL }, { X86::DIH }, { X86::DL }, { X86::DS }, { X86::HAX }, { X86::HBP }, { X86::HBX }, { X86::HCX }, { X86::HDI }, { X86::HDX }, { X86::EFLAGS }, { X86::IP }, { X86::HIP }, { X86::EIZ }, { X86::ES }, { X86::SIL }, { X86::SIH }, { X86::HSI }, { X86::SPL }, { X86::SPH }, { X86::HSP }, { X86::FPCW }, { X86::FPSW }, { X86::FS }, { X86::FS_BASE }, { X86::GS }, { X86::GS_BASE }, { X86::MXCSR }, { X86::RFLAGS }, { X86::RIZ }, { X86::SS }, { X86::SSP }, { X86::TMMCFG }, { X86::_EFLAGS }, { 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 }, { X86::DR0 }, { X86::DR1 }, { X86::DR2 }, { X86::DR3 }, { X86::DR4 }, { X86::DR5 }, { X86::DR6 }, { X86::DR7 }, { X86::DR8 }, { X86::DR9 }, { X86::DR10 }, { X86::DR11 }, { X86::DR12 }, { X86::DR13 }, { X86::DR14 }, { X86::DR15 }, { X86::FP0 }, { X86::FP1 }, { X86::FP2 }, { X86::FP3 }, { X86::FP4 }, { X86::FP5 }, { X86::FP6 }, { X86::FP7 }, { X86::K0 }, { X86::K1 }, { X86::K2 }, { X86::K3 }, { X86::K4 }, { X86::K5 }, { X86::K6 }, { X86::K7 }, { X86::MM0 }, { X86::MM1 }, { X86::MM2 }, { X86::MM3 }, { X86::MM4 }, { X86::MM5 }, { X86::MM6 }, { X86::MM7 }, { X86::R8B }, { X86::R8BH }, { X86::R8WH }, { X86::R9B }, { X86::R9BH }, { X86::R9WH }, { X86::R10B }, { X86::R10BH }, { X86::R10WH }, { X86::R11B }, { X86::R11BH }, { X86::R11WH }, { X86::R12B }, { X86::R12BH }, { X86::R12WH }, { X86::R13B }, { X86::R13BH }, { X86::R13WH }, { X86::R14B }, { X86::R14BH }, { X86::R14WH }, { X86::R15B }, { X86::R15BH }, { X86::R15WH }, { X86::ST0 }, { X86::ST1 }, { X86::ST2 }, { X86::ST3 }, { X86::ST4 }, { X86::ST5 }, { X86::ST6 }, { X86::ST7 }, { X86::TMM0 }, { X86::TMM1 }, { X86::TMM2 }, { X86::TMM3 }, { X86::TMM4 }, { X86::TMM5 }, { X86::TMM6 }, { X86::TMM7 }, { 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 }, }; namespace { // Register classes... // GR8 Register Class... const MCPhysReg GR8[] = { 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, }; // GR8 Bit set. const uint8_t GR8Bits[] = { 0x36, 0x8d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GRH8 Register Class... const MCPhysReg GRH8[] = { X86::SIH, X86::DIH, X86::BPH, X86::SPH, X86::R8BH, X86::R9BH, X86::R10BH, X86::R11BH, X86::R12BH, X86::R13BH, X86::R14BH, X86::R15BH, }; // GRH8 Bit set. const uint8_t GRH8Bits[] = { 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR8_NOREX Register Class... const MCPhysReg GR8_NOREX[] = { X86::AL, X86::CL, X86::DL, X86::AH, X86::CH, X86::DH, X86::BL, X86::BH, }; // GR8_NOREX Bit set. const uint8_t GR8_NOREXBits[] = { 0x36, 0x8c, 0x08, }; // GR8_ABCD_H Register Class... const MCPhysReg GR8_ABCD_H[] = { X86::AH, X86::CH, X86::DH, X86::BH, }; // GR8_ABCD_H Bit set. const uint8_t GR8_ABCD_HBits[] = { 0x12, 0x84, }; // GR8_ABCD_L Register Class... const MCPhysReg GR8_ABCD_L[] = { X86::AL, X86::CL, X86::DL, X86::BL, }; // GR8_ABCD_L Bit set. const uint8_t GR8_ABCD_LBits[] = { 0x24, 0x08, 0x08, }; // GRH16 Register Class... const MCPhysReg GRH16[] = { X86::HAX, X86::HCX, X86::HDX, X86::HSI, X86::HDI, X86::HBX, X86::HBP, X86::HSP, X86::HIP, X86::R8WH, X86::R9WH, X86::R10WH, X86::R11WH, X86::R12WH, X86::R13WH, X86::R14WH, X86::R15WH, }; // GRH16 Bit set. const uint8_t GRH16Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR16 Register Class... const MCPhysReg GR16[] = { 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, }; // GR16 Bit set. const uint8_t GR16Bits[] = { 0x48, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR16_NOREX Register Class... const MCPhysReg GR16_NOREX[] = { X86::AX, X86::CX, X86::DX, X86::SI, X86::DI, X86::BX, X86::BP, X86::SP, }; // GR16_NOREX Bit set. const uint8_t GR16_NOREXBits[] = { 0x48, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, }; // VK1 Register Class... const MCPhysReg VK1[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK1 Bit set. const uint8_t VK1Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // VK16 Register Class... const MCPhysReg VK16[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK16 Bit set. const uint8_t VK16Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // VK2 Register Class... const MCPhysReg VK2[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK2 Bit set. const uint8_t VK2Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // VK4 Register Class... const MCPhysReg VK4[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK4 Bit set. const uint8_t VK4Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // VK8 Register Class... const MCPhysReg VK8[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK8 Bit set. const uint8_t VK8Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // VK16WM Register Class... const MCPhysReg VK16WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK16WM Bit set. const uint8_t VK16WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // VK1WM Register Class... const MCPhysReg VK1WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK1WM Bit set. const uint8_t VK1WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // VK2WM Register Class... const MCPhysReg VK2WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK2WM Bit set. const uint8_t VK2WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // VK4WM Register Class... const MCPhysReg VK4WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK4WM Bit set. const uint8_t VK4WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // VK8WM Register Class... const MCPhysReg VK8WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK8WM Bit set. const uint8_t VK8WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // SEGMENT_REG Register Class... const MCPhysReg SEGMENT_REG[] = { X86::CS, X86::DS, X86::SS, X86::ES, X86::FS, X86::GS, }; // SEGMENT_REG Bit set. const uint8_t SEGMENT_REGBits[] = { 0x00, 0x10, 0x10, 0x80, 0x50, 0x00, 0x00, 0x00, 0x10, }; // GR16_ABCD Register Class... const MCPhysReg GR16_ABCD[] = { X86::AX, X86::CX, X86::DX, X86::BX, }; // GR16_ABCD Bit set. const uint8_t GR16_ABCDBits[] = { 0x08, 0x22, 0x20, }; // FPCCR Register Class... const MCPhysReg FPCCR[] = { X86::FPSW, }; // FPCCR Bit set. const uint8_t FPCCRBits[] = { 0x00, 0x00, 0x00, 0x00, 0x08, }; // FR16X Register Class... const MCPhysReg FR16X[] = { 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, }; // FR16X Bit set. const uint8_t FR16XBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // FR16 Register Class... const MCPhysReg FR16[] = { 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, }; // FR16 Bit set. const uint8_t FR16Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // VK16PAIR Register Class... const MCPhysReg VK16PAIR[] = { X86::K0_K1, X86::K2_K3, X86::K4_K5, X86::K6_K7, }; // VK16PAIR Bit set. const uint8_t VK16PAIRBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // VK1PAIR Register Class... const MCPhysReg VK1PAIR[] = { X86::K0_K1, X86::K2_K3, X86::K4_K5, X86::K6_K7, }; // VK1PAIR Bit set. const uint8_t VK1PAIRBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // VK2PAIR Register Class... const MCPhysReg VK2PAIR[] = { X86::K0_K1, X86::K2_K3, X86::K4_K5, X86::K6_K7, }; // VK2PAIR Bit set. const uint8_t VK2PAIRBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // VK4PAIR Register Class... const MCPhysReg VK4PAIR[] = { X86::K0_K1, X86::K2_K3, X86::K4_K5, X86::K6_K7, }; // VK4PAIR Bit set. const uint8_t VK4PAIRBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // VK8PAIR Register Class... const MCPhysReg VK8PAIR[] = { X86::K0_K1, X86::K2_K3, X86::K4_K5, X86::K6_K7, }; // VK8PAIR Bit set. const uint8_t VK8PAIRBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // VK16PAIR_with_sub_mask_0_in_VK16WM Register Class... const MCPhysReg VK16PAIR_with_sub_mask_0_in_VK16WM[] = { X86::K2_K3, X86::K4_K5, X86::K6_K7, }; // VK16PAIR_with_sub_mask_0_in_VK16WM Bit set. const uint8_t VK16PAIR_with_sub_mask_0_in_VK16WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, }; // FR32X Register Class... const MCPhysReg FR32X[] = { 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, }; // FR32X Bit set. const uint8_t FR32XBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // LOW32_ADDR_ACCESS_RBP Register Class... const MCPhysReg LOW32_ADDR_ACCESS_RBP[] = { 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, X86::RIP, X86::RBP, }; // LOW32_ADDR_ACCESS_RBP Bit set. const uint8_t LOW32_ADDR_ACCESS_RBPBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // LOW32_ADDR_ACCESS Register Class... const MCPhysReg LOW32_ADDR_ACCESS[] = { 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, X86::RIP, }; // LOW32_ADDR_ACCESS Bit set. const uint8_t LOW32_ADDR_ACCESSBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // LOW32_ADDR_ACCESS_RBP_with_sub_8bit Register Class... const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_8bit[] = { 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, X86::RBP, }; // LOW32_ADDR_ACCESS_RBP_with_sub_8bit Bit set. const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_8bitBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // DEBUG_REG Register Class... const MCPhysReg DEBUG_REG[] = { X86::DR0, X86::DR1, X86::DR2, X86::DR3, X86::DR4, X86::DR5, X86::DR6, X86::DR7, X86::DR8, X86::DR9, X86::DR10, X86::DR11, X86::DR12, X86::DR13, X86::DR14, X86::DR15, }; // DEBUG_REG Bit set. const uint8_t DEBUG_REGBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // FR32 Register Class... const MCPhysReg FR32[] = { 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, }; // FR32 Bit set. const uint8_t FR32Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // GR32 Register Class... const MCPhysReg GR32[] = { 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, }; // GR32 Bit set. const uint8_t GR32Bits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR32_NOSP Register Class... const MCPhysReg GR32_NOSP[] = { 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, }; // GR32_NOSP Bit set. const uint8_t GR32_NOSPBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX Register Class... const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX[] = { X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, X86::RBP, }; // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX Bit set. const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x10, }; // GR32_NOREX Register Class... const MCPhysReg GR32_NOREX[] = { X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, }; // GR32_NOREX Bit set. const uint8_t GR32_NOREXBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x03, }; // VK32 Register Class... const MCPhysReg VK32[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK32 Bit set. const uint8_t VK32Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR32_NOREX_NOSP Register Class... const MCPhysReg GR32_NOREX_NOSP[] = { X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, }; // GR32_NOREX_NOSP Bit set. const uint8_t GR32_NOREX_NOSPBits[] = { 0x00, 0x00, 0xc0, 0x0f, 0x01, }; // RFP32 Register Class... const MCPhysReg RFP32[] = { X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, }; // RFP32 Bit set. const uint8_t RFP32Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, }; // VK32WM Register Class... const MCPhysReg VK32WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK32WM Bit set. const uint8_t VK32WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // GR32_ABCD Register Class... const MCPhysReg GR32_ABCD[] = { X86::EAX, X86::ECX, X86::EDX, X86::EBX, }; // GR32_ABCD Bit set. const uint8_t GR32_ABCDBits[] = { 0x00, 0x00, 0x40, 0x0b, }; // GR32_TC Register Class... const MCPhysReg GR32_TC[] = { X86::EAX, X86::ECX, X86::EDX, X86::ESP, }; // GR32_TC Bit set. const uint8_t GR32_TCBits[] = { 0x00, 0x00, 0x40, 0x0a, 0x02, }; // GR32_ABCD_and_GR32_TC Register Class... const MCPhysReg GR32_ABCD_and_GR32_TC[] = { X86::EAX, X86::ECX, X86::EDX, }; // GR32_ABCD_and_GR32_TC Bit set. const uint8_t GR32_ABCD_and_GR32_TCBits[] = { 0x00, 0x00, 0x40, 0x0a, }; // GR32_AD Register Class... const MCPhysReg GR32_AD[] = { X86::EAX, X86::EDX, }; // GR32_AD Bit set. const uint8_t GR32_ADBits[] = { 0x00, 0x00, 0x40, 0x08, }; // GR32_BPSP Register Class... const MCPhysReg GR32_BPSP[] = { X86::EBP, X86::ESP, }; // GR32_BPSP Bit set. const uint8_t GR32_BPSPBits[] = { 0x00, 0x00, 0x80, 0x00, 0x02, }; // GR32_BSI Register Class... const MCPhysReg GR32_BSI[] = { X86::EBX, X86::ESI, }; // GR32_BSI Bit set. const uint8_t GR32_BSIBits[] = { 0x00, 0x00, 0x00, 0x01, 0x01, }; // GR32_CB Register Class... const MCPhysReg GR32_CB[] = { X86::ECX, X86::EBX, }; // GR32_CB Bit set. const uint8_t GR32_CBBits[] = { 0x00, 0x00, 0x00, 0x03, }; // GR32_DC Register Class... const MCPhysReg GR32_DC[] = { X86::EDX, X86::ECX, }; // GR32_DC Bit set. const uint8_t GR32_DCBits[] = { 0x00, 0x00, 0x00, 0x0a, }; // GR32_DIBP Register Class... const MCPhysReg GR32_DIBP[] = { X86::EDI, X86::EBP, }; // GR32_DIBP Bit set. const uint8_t GR32_DIBPBits[] = { 0x00, 0x00, 0x80, 0x04, }; // GR32_SIDI Register Class... const MCPhysReg GR32_SIDI[] = { X86::ESI, X86::EDI, }; // GR32_SIDI Bit set. const uint8_t GR32_SIDIBits[] = { 0x00, 0x00, 0x00, 0x04, 0x01, }; // LOW32_ADDR_ACCESS_RBP_with_sub_32bit Register Class... const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_32bit[] = { X86::RIP, X86::RBP, }; // LOW32_ADDR_ACCESS_RBP_with_sub_32bit Bit set. const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_32bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, }; // CCR Register Class... const MCPhysReg CCR[] = { X86::EFLAGS, }; // CCR Bit set. const uint8_t CCRBits[] = { 0x00, 0x00, 0x00, 0x10, }; // DFCCR Register Class... const MCPhysReg DFCCR[] = { X86::DF, }; // DFCCR Bit set. const uint8_t DFCCRBits[] = { 0x00, 0x40, }; // GR32_ABCD_and_GR32_BSI Register Class... const MCPhysReg GR32_ABCD_and_GR32_BSI[] = { X86::EBX, }; // GR32_ABCD_and_GR32_BSI Bit set. const uint8_t GR32_ABCD_and_GR32_BSIBits[] = { 0x00, 0x00, 0x00, 0x01, }; // GR32_AD_and_GR32_DC Register Class... const MCPhysReg GR32_AD_and_GR32_DC[] = { X86::EDX, }; // GR32_AD_and_GR32_DC Bit set. const uint8_t GR32_AD_and_GR32_DCBits[] = { 0x00, 0x00, 0x00, 0x08, }; // GR32_BPSP_and_GR32_DIBP Register Class... const MCPhysReg GR32_BPSP_and_GR32_DIBP[] = { X86::EBP, }; // GR32_BPSP_and_GR32_DIBP Bit set. const uint8_t GR32_BPSP_and_GR32_DIBPBits[] = { 0x00, 0x00, 0x80, }; // GR32_BPSP_and_GR32_TC Register Class... const MCPhysReg GR32_BPSP_and_GR32_TC[] = { X86::ESP, }; // GR32_BPSP_and_GR32_TC Bit set. const uint8_t GR32_BPSP_and_GR32_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x02, }; // GR32_BSI_and_GR32_SIDI Register Class... const MCPhysReg GR32_BSI_and_GR32_SIDI[] = { X86::ESI, }; // GR32_BSI_and_GR32_SIDI Bit set. const uint8_t GR32_BSI_and_GR32_SIDIBits[] = { 0x00, 0x00, 0x00, 0x00, 0x01, }; // GR32_CB_and_GR32_DC Register Class... const MCPhysReg GR32_CB_and_GR32_DC[] = { X86::ECX, }; // GR32_CB_and_GR32_DC Bit set. const uint8_t GR32_CB_and_GR32_DCBits[] = { 0x00, 0x00, 0x00, 0x02, }; // GR32_DIBP_and_GR32_SIDI Register Class... const MCPhysReg GR32_DIBP_and_GR32_SIDI[] = { X86::EDI, }; // GR32_DIBP_and_GR32_SIDI Bit set. const uint8_t GR32_DIBP_and_GR32_SIDIBits[] = { 0x00, 0x00, 0x00, 0x04, }; // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit Register Class... const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit[] = { X86::RBP, }; // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit Bit set. const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, }; // LOW32_ADDR_ACCESS_with_sub_32bit Register Class... const MCPhysReg LOW32_ADDR_ACCESS_with_sub_32bit[] = { X86::RIP, }; // LOW32_ADDR_ACCESS_with_sub_32bit Bit set. const uint8_t LOW32_ADDR_ACCESS_with_sub_32bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, }; // RFP64 Register Class... const MCPhysReg RFP64[] = { X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, }; // RFP64 Bit set. const uint8_t RFP64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, }; // FR64X Register Class... const MCPhysReg FR64X[] = { 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, }; // FR64X Bit set. const uint8_t FR64XBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // GR64 Register Class... const MCPhysReg GR64[] = { 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, }; // GR64 Bit set. const uint8_t GR64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // CONTROL_REG Register Class... const MCPhysReg CONTROL_REG[] = { 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, }; // CONTROL_REG Bit set. const uint8_t CONTROL_REGBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // FR64 Register Class... const MCPhysReg FR64[] = { 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, }; // FR64 Bit set. const uint8_t FR64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // GR64_with_sub_8bit Register Class... const MCPhysReg GR64_with_sub_8bit[] = { 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, }; // GR64_with_sub_8bit Bit set. const uint8_t GR64_with_sub_8bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR64_NOSP Register Class... const MCPhysReg GR64_NOSP[] = { 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, }; // GR64_NOSP Bit set. const uint8_t GR64_NOSPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR64PLTSafe Register Class... const MCPhysReg GR64PLTSafe[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::RBX, X86::R14, X86::R15, X86::R12, X86::R13, X86::RBP, }; // GR64PLTSafe Bit set. const uint8_t GR64PLTSafeBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, }; // GR64_TC Register Class... const MCPhysReg GR64_TC[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11, X86::RIP, X86::RSP, }; // GR64_TC Bit set. const uint8_t GR64_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, }; // GR64_NOREX Register Class... const MCPhysReg GR64_NOREX[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP, X86::RIP, }; // GR64_NOREX Bit set. const uint8_t GR64_NOREXBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x35, }; // GR64_TCW64 Register Class... const MCPhysReg GR64_TCW64[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R10, X86::R11, X86::RIP, X86::RSP, }; // GR64_TCW64 Bit set. const uint8_t GR64_TCW64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // GR64_TC_with_sub_8bit Register Class... const MCPhysReg GR64_TC_with_sub_8bit[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11, X86::RSP, }; // GR64_TC_with_sub_8bit Bit set. const uint8_t GR64_TC_with_sub_8bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, }; // GR64_NOSP_and_GR64_TC Register Class... const MCPhysReg GR64_NOSP_and_GR64_TC[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11, }; // GR64_NOSP_and_GR64_TC Bit set. const uint8_t GR64_NOSP_and_GR64_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, }; // GR64_TCW64_with_sub_8bit Register Class... const MCPhysReg GR64_TCW64_with_sub_8bit[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R10, X86::R11, X86::RSP, }; // GR64_TCW64_with_sub_8bit Bit set. const uint8_t GR64_TCW64_with_sub_8bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // GR64_TC_and_GR64_TCW64 Register Class... const MCPhysReg GR64_TC_and_GR64_TCW64[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R11, X86::RIP, X86::RSP, }; // GR64_TC_and_GR64_TCW64 Bit set. const uint8_t GR64_TC_and_GR64_TCW64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, }; // GR64_with_sub_16bit_in_GR16_NOREX Register Class... const MCPhysReg GR64_with_sub_16bit_in_GR16_NOREX[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP, }; // GR64_with_sub_16bit_in_GR16_NOREX Bit set. const uint8_t GR64_with_sub_16bit_in_GR16_NOREXBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x31, }; // VK64 Register Class... const MCPhysReg VK64[] = { X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK64 Bit set. const uint8_t VK64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // VR64 Register Class... const MCPhysReg VR64[] = { X86::MM0, X86::MM1, X86::MM2, X86::MM3, X86::MM4, X86::MM5, X86::MM6, X86::MM7, }; // VR64 Bit set. const uint8_t VR64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // GR64PLTSafe_and_GR64_TC Register Class... const MCPhysReg GR64PLTSafe_and_GR64_TC[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, }; // GR64PLTSafe_and_GR64_TC Bit set. const uint8_t GR64PLTSafe_and_GR64_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, }; // GR64_NOREX_NOSP Register Class... const MCPhysReg GR64_NOREX_NOSP[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, }; // GR64_NOREX_NOSP Bit set. const uint8_t GR64_NOREX_NOSPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x11, }; // GR64_NOREX_and_GR64_TC Register Class... const MCPhysReg GR64_NOREX_and_GR64_TC[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RSP, X86::RIP, }; // GR64_NOREX_and_GR64_TC Bit set. const uint8_t GR64_NOREX_and_GR64_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x35, }; // GR64_NOSP_and_GR64_TCW64 Register Class... const MCPhysReg GR64_NOSP_and_GR64_TCW64[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R10, X86::R11, }; // GR64_NOSP_and_GR64_TCW64 Bit set. const uint8_t GR64_NOSP_and_GR64_TCW64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, }; // GR64_TCW64_and_GR64_TC_with_sub_8bit Register Class... const MCPhysReg GR64_TCW64_and_GR64_TC_with_sub_8bit[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R11, X86::RSP, }; // GR64_TCW64_and_GR64_TC_with_sub_8bit Bit set. const uint8_t GR64_TCW64_and_GR64_TC_with_sub_8bitBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, }; // VK64WM Register Class... const MCPhysReg VK64WM[] = { X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, }; // VK64WM Bit set. const uint8_t VK64WMBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, }; // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 Register Class... const MCPhysReg GR64_TC_and_GR64_NOSP_and_GR64_TCW64[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R11, }; // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 Bit set. const uint8_t GR64_TC_and_GR64_NOSP_and_GR64_TCW64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, }; // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX Register Class... const MCPhysReg GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RSP, }; // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX Bit set. const uint8_t GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x31, }; // GR64PLTSafe_and_GR64_TCW64 Register Class... const MCPhysReg GR64PLTSafe_and_GR64_TCW64[] = { X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, }; // GR64PLTSafe_and_GR64_TCW64 Bit set. const uint8_t GR64PLTSafe_and_GR64_TCW64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, }; // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC Register Class... const MCPhysReg GR64_NOREX_and_GR64PLTSafe_and_GR64_TC[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, }; // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC Bit set. const uint8_t GR64_NOREX_and_GR64PLTSafe_and_GR64_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x11, }; // GR64_NOREX_and_GR64_TCW64 Register Class... const MCPhysReg GR64_NOREX_and_GR64_TCW64[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSP, X86::RIP, }; // GR64_NOREX_and_GR64_TCW64 Bit set. const uint8_t GR64_NOREX_and_GR64_TCW64Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x25, }; // GR64_ABCD Register Class... const MCPhysReg GR64_ABCD[] = { X86::RAX, X86::RCX, X86::RDX, X86::RBX, }; // GR64_ABCD Bit set. const uint8_t GR64_ABCDBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x01, }; // GR64_with_sub_32bit_in_GR32_TC Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_TC[] = { X86::RAX, X86::RCX, X86::RDX, X86::RSP, }; // GR64_with_sub_32bit_in_GR32_TC Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, }; // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC[] = { X86::RAX, X86::RCX, X86::RDX, }; // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, }; // GR64_AD Register Class... const MCPhysReg GR64_AD[] = { X86::RAX, X86::RDX, }; // GR64_AD Bit set. const uint8_t GR64_ADBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, }; // GR64_and_LOW32_ADDR_ACCESS_RBP Register Class... const MCPhysReg GR64_and_LOW32_ADDR_ACCESS_RBP[] = { X86::RBP, X86::RIP, }; // GR64_and_LOW32_ADDR_ACCESS_RBP Bit set. const uint8_t GR64_and_LOW32_ADDR_ACCESS_RBPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, }; // GR64_with_sub_32bit_in_GR32_BPSP Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_BPSP[] = { X86::RBP, X86::RSP, }; // GR64_with_sub_32bit_in_GR32_BPSP Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_BPSPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, }; // GR64_with_sub_32bit_in_GR32_BSI Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_BSI[] = { X86::RSI, X86::RBX, }; // GR64_with_sub_32bit_in_GR32_BSI Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_BSIBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, }; // GR64_with_sub_32bit_in_GR32_CB Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_CB[] = { X86::RCX, X86::RBX, }; // GR64_with_sub_32bit_in_GR32_CB Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_CBBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, }; // GR64_with_sub_32bit_in_GR32_DC Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_DC[] = { X86::RCX, X86::RDX, }; // GR64_with_sub_32bit_in_GR32_DC Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_DCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, }; // GR64_with_sub_32bit_in_GR32_DIBP Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_DIBP[] = { X86::RDI, X86::RBP, }; // GR64_with_sub_32bit_in_GR32_DIBP Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_DIBPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, }; // GR64_with_sub_32bit_in_GR32_SIDI Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_SIDI[] = { X86::RSI, X86::RDI, }; // GR64_with_sub_32bit_in_GR32_SIDI Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_SIDIBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, }; // GR64_and_LOW32_ADDR_ACCESS Register Class... const MCPhysReg GR64_and_LOW32_ADDR_ACCESS[] = { X86::RIP, }; // GR64_and_LOW32_ADDR_ACCESS Bit set. const uint8_t GR64_and_LOW32_ADDR_ACCESSBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, }; // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI[] = { X86::RBX, }; // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, }; // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC[] = { X86::RDX, }; // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, }; // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP[] = { X86::RBP, }; // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, }; // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC[] = { X86::RSP, }; // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, }; // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI[] = { X86::RSI, }; // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, }; // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC[] = { X86::RCX, }; // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, }; // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI Register Class... const MCPhysReg GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI[] = { X86::RDI, }; // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI Bit set. const uint8_t GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, }; // RST Register Class... const MCPhysReg RST[] = { X86::ST0, X86::ST1, X86::ST2, X86::ST3, X86::ST4, X86::ST5, X86::ST6, X86::ST7, }; // RST Bit set. const uint8_t RSTBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; // RFP80 Register Class... const MCPhysReg RFP80[] = { X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, }; // RFP80 Bit set. const uint8_t RFP80Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, }; // RFP80_7 Register Class... const MCPhysReg RFP80_7[] = { X86::FP7, }; // RFP80_7 Bit set. const uint8_t RFP80_7Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, }; // VR128X Register Class... const MCPhysReg VR128X[] = { 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, }; // VR128X Bit set. const uint8_t VR128XBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // VR128 Register Class... const MCPhysReg VR128[] = { 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, }; // VR128 Bit set. const uint8_t VR128Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // VR256X Register Class... const MCPhysReg VR256X[] = { 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, }; // VR256X Bit set. const uint8_t VR256XBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // VR256 Register Class... const MCPhysReg VR256[] = { 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, }; // VR256 Bit set. const uint8_t VR256Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // VR512 Register Class... const MCPhysReg VR512[] = { 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, }; // VR512 Bit set. const uint8_t VR512Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // VR512_0_15 Register Class... const MCPhysReg VR512_0_15[] = { 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, }; // VR512_0_15 Bit set. const uint8_t VR512_0_15Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }; // TILE Register Class... const MCPhysReg TILE[] = { X86::TMM0, X86::TMM1, X86::TMM2, X86::TMM3, X86::TMM4, X86::TMM5, X86::TMM6, X86::TMM7, }; // TILE Bit set. const uint8_t TILEBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, }; } // end anonymous namespace extern const char X86RegClassStrings[] = { /* 0 */ 'R', 'F', 'P', '8', '0', 0, /* 6 */ 'V', 'K', '1', 0, /* 10 */ 'V', 'R', '5', '1', '2', 0, /* 16 */ 'V', 'K', '3', '2', 0, /* 21 */ 'R', 'F', 'P', '3', '2', 0, /* 27 */ 'F', 'R', '3', '2', 0, /* 32 */ 'G', 'R', '3', '2', 0, /* 37 */ 'V', 'K', '2', 0, /* 41 */ 'V', 'K', '6', '4', 0, /* 46 */ 'R', 'F', 'P', '6', '4', 0, /* 52 */ 'F', 'R', '6', '4', 0, /* 57 */ 'G', 'R', '6', '4', 0, /* 62 */ 'V', 'R', '6', '4', 0, /* 67 */ 'G', 'R', '6', '4', '_', 'T', 'C', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0, /* 90 */ 'G', 'R', '6', '4', '_', 'T', 'C', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'N', 'O', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0, /* 127 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0, /* 153 */ 'G', 'R', '6', '4', 'P', 'L', 'T', 'S', 'a', 'f', 'e', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0, /* 180 */ 'V', 'K', '4', 0, /* 184 */ 'V', 'R', '5', '1', '2', '_', '0', '_', '1', '5', 0, /* 195 */ 'G', 'R', 'H', '1', '6', 0, /* 201 */ 'V', 'K', '1', '6', 0, /* 206 */ 'F', 'R', '1', '6', 0, /* 211 */ 'G', 'R', '1', '6', 0, /* 216 */ 'V', 'R', '2', '5', '6', 0, /* 222 */ 'R', 'F', 'P', '8', '0', '_', '7', 0, /* 230 */ 'V', 'R', '1', '2', '8', 0, /* 236 */ 'G', 'R', 'H', '8', 0, /* 241 */ 'V', 'K', '8', 0, /* 245 */ 'G', 'R', '8', 0, /* 249 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'C', 'B', 0, /* 280 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'C', 'B', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'D', 'C', 0, /* 323 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'A', 'D', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'D', 'C', 0, /* 366 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'D', 'C', 0, /* 397 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'A', 'B', 'C', 'D', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'T', 'C', 0, /* 442 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'P', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'T', 'C', 0, /* 487 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'T', 'C', 0, /* 518 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 0, /* 540 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 0, /* 563 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', 'P', 'L', 'T', 'S', 'a', 'f', 'e', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 0, /* 602 */ 'G', 'R', '3', '2', '_', 'A', 'D', 0, /* 610 */ 'G', 'R', '6', '4', '_', 'A', 'D', 0, /* 618 */ 'G', 'R', '3', '2', '_', 'A', 'B', 'C', 'D', 0, /* 628 */ 'G', 'R', '6', '4', '_', 'A', 'B', 'C', 'D', 0, /* 638 */ 'G', 'R', '1', '6', '_', 'A', 'B', 'C', 'D', 0, /* 648 */ 'T', 'I', 'L', 'E', 0, /* 653 */ 'D', 'E', 'B', 'U', 'G', '_', 'R', 'E', 'G', 0, /* 663 */ 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'R', 'E', 'G', 0, /* 675 */ 'S', 'E', 'G', 'M', 'E', 'N', 'T', '_', 'R', 'E', 'G', 0, /* 687 */ 'G', 'R', '8', '_', 'A', 'B', 'C', 'D', '_', 'H', 0, /* 698 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'S', 'I', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'S', 'I', 'D', 'I', 0, /* 744 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'D', 'I', 'B', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'S', 'I', 'D', 'I', 0, /* 791 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'S', 'I', 'D', 'I', 0, /* 824 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'A', 'B', 'C', 'D', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'B', 'S', 'I', 0, /* 870 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'S', 'I', 0, /* 902 */ 'G', 'R', '8', '_', 'A', 'B', 'C', 'D', '_', 'L', 0, /* 913 */ 'V', 'K', '1', 'W', 'M', 0, /* 919 */ 'V', 'K', '3', '2', 'W', 'M', 0, /* 926 */ 'V', 'K', '2', 'W', 'M', 0, /* 932 */ 'V', 'K', '6', '4', 'W', 'M', 0, /* 939 */ 'V', 'K', '4', 'W', 'M', 0, /* 945 */ 'V', 'K', '1', '6', 'P', 'A', 'I', 'R', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'm', 'a', 's', 'k', '_', '0', '_', 'i', 'n', '_', 'V', 'K', '1', '6', 'W', 'M', 0, /* 980 */ 'V', 'K', '8', 'W', 'M', 0, /* 986 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'P', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'D', 'I', 'B', 'P', 0, /* 1033 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'D', 'I', 'B', 'P', 0, /* 1066 */ 'G', 'R', '6', '4', '_', 'a', 'n', 'd', '_', 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', 0, /* 1097 */ 'G', 'R', '3', '2', '_', 'N', 'O', 'S', 'P', 0, /* 1107 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'S', 'P', 0, /* 1117 */ 'G', 'R', '3', '2', '_', 'N', 'O', 'R', 'E', 'X', '_', 'N', 'O', 'S', 'P', 0, /* 1133 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'N', 'O', 'S', 'P', 0, /* 1149 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'P', 'S', 'P', 0, /* 1182 */ 'D', 'F', 'C', 'C', 'R', 0, /* 1188 */ 'F', 'P', 'C', 'C', 'R', 0, /* 1194 */ 'V', 'K', '1', 'P', 'A', 'I', 'R', 0, /* 1202 */ 'V', 'K', '2', 'P', 'A', 'I', 'R', 0, /* 1210 */ 'V', 'K', '4', 'P', 'A', 'I', 'R', 0, /* 1218 */ 'V', 'K', '1', '6', 'P', 'A', 'I', 'R', 0, /* 1227 */ 'V', 'K', '8', 'P', 'A', 'I', 'R', 0, /* 1235 */ 'G', 'R', '6', '4', '_', 'a', 'n', 'd', '_', 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', 0, /* 1262 */ 'R', 'S', 'T', 0, /* 1266 */ 'F', 'R', '3', '2', 'X', 0, /* 1272 */ 'F', 'R', '6', '4', 'X', 0, /* 1278 */ 'F', 'R', '1', '6', 'X', 0, /* 1284 */ 'V', 'R', '2', '5', '6', 'X', 0, /* 1291 */ 'V', 'R', '1', '2', '8', 'X', 0, /* 1298 */ 'G', 'R', '3', '2', '_', 'N', 'O', 'R', 'E', 'X', 0, /* 1309 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', 0, /* 1320 */ 'G', 'R', '6', '4', '_', 'T', 'C', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '1', '6', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '1', '6', '_', 'N', 'O', 'R', 'E', 'X', 0, /* 1366 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '1', '6', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '1', '6', '_', 'N', 'O', 'R', 'E', 'X', 0, /* 1417 */ 'G', 'R', '8', '_', 'N', 'O', 'R', 'E', 'X', 0, /* 1427 */ 'G', 'R', '6', '4', 'P', 'L', 'T', 'S', 'a', 'f', 'e', 0, /* 1439 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', 0, /* 1476 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', 0, /* 1509 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', 0, /* 1560 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', 0, /* 1579 */ 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', 0, /* 1604 */ 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', 0, /* 1641 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', 0, 0 }; extern const MCRegisterClass X86MCRegisterClasses[] = { { GR8, GR8Bits, 245, 20, sizeof(GR8Bits), X86::GR8RegClassID, 8, 1, true }, { GRH8, GRH8Bits, 236, 12, sizeof(GRH8Bits), X86::GRH8RegClassID, 8, 1, false }, { GR8_NOREX, GR8_NOREXBits, 1417, 8, sizeof(GR8_NOREXBits), X86::GR8_NOREXRegClassID, 8, 1, true }, { GR8_ABCD_H, GR8_ABCD_HBits, 687, 4, sizeof(GR8_ABCD_HBits), X86::GR8_ABCD_HRegClassID, 8, 1, true }, { GR8_ABCD_L, GR8_ABCD_LBits, 902, 4, sizeof(GR8_ABCD_LBits), X86::GR8_ABCD_LRegClassID, 8, 1, true }, { GRH16, GRH16Bits, 195, 17, sizeof(GRH16Bits), X86::GRH16RegClassID, 16, 1, false }, { GR16, GR16Bits, 211, 16, sizeof(GR16Bits), X86::GR16RegClassID, 16, 1, true }, { GR16_NOREX, GR16_NOREXBits, 1355, 8, sizeof(GR16_NOREXBits), X86::GR16_NOREXRegClassID, 16, 1, true }, { VK1, VK1Bits, 6, 8, sizeof(VK1Bits), X86::VK1RegClassID, 16, 1, true }, { VK16, VK16Bits, 201, 8, sizeof(VK16Bits), X86::VK16RegClassID, 16, 1, true }, { VK2, VK2Bits, 37, 8, sizeof(VK2Bits), X86::VK2RegClassID, 16, 1, true }, { VK4, VK4Bits, 180, 8, sizeof(VK4Bits), X86::VK4RegClassID, 16, 1, true }, { VK8, VK8Bits, 241, 8, sizeof(VK8Bits), X86::VK8RegClassID, 16, 1, true }, { VK16WM, VK16WMBits, 973, 7, sizeof(VK16WMBits), X86::VK16WMRegClassID, 16, 1, true }, { VK1WM, VK1WMBits, 913, 7, sizeof(VK1WMBits), X86::VK1WMRegClassID, 16, 1, true }, { VK2WM, VK2WMBits, 926, 7, sizeof(VK2WMBits), X86::VK2WMRegClassID, 16, 1, true }, { VK4WM, VK4WMBits, 939, 7, sizeof(VK4WMBits), X86::VK4WMRegClassID, 16, 1, true }, { VK8WM, VK8WMBits, 980, 7, sizeof(VK8WMBits), X86::VK8WMRegClassID, 16, 1, true }, { SEGMENT_REG, SEGMENT_REGBits, 675, 6, sizeof(SEGMENT_REGBits), X86::SEGMENT_REGRegClassID, 16, 1, true }, { GR16_ABCD, GR16_ABCDBits, 638, 4, sizeof(GR16_ABCDBits), X86::GR16_ABCDRegClassID, 16, 1, true }, { FPCCR, FPCCRBits, 1188, 1, sizeof(FPCCRBits), X86::FPCCRRegClassID, 16, -1, false }, { FR16X, FR16XBits, 1278, 32, sizeof(FR16XBits), X86::FR16XRegClassID, 32, 1, true }, { FR16, FR16Bits, 206, 16, sizeof(FR16Bits), X86::FR16RegClassID, 32, 1, true }, { VK16PAIR, VK16PAIRBits, 1218, 4, sizeof(VK16PAIRBits), X86::VK16PAIRRegClassID, 32, 1, true }, { VK1PAIR, VK1PAIRBits, 1194, 4, sizeof(VK1PAIRBits), X86::VK1PAIRRegClassID, 32, 1, true }, { VK2PAIR, VK2PAIRBits, 1202, 4, sizeof(VK2PAIRBits), X86::VK2PAIRRegClassID, 32, 1, true }, { VK4PAIR, VK4PAIRBits, 1210, 4, sizeof(VK4PAIRBits), X86::VK4PAIRRegClassID, 32, 1, true }, { VK8PAIR, VK8PAIRBits, 1227, 4, sizeof(VK8PAIRBits), X86::VK8PAIRRegClassID, 32, 1, true }, { VK16PAIR_with_sub_mask_0_in_VK16WM, VK16PAIR_with_sub_mask_0_in_VK16WMBits, 945, 3, sizeof(VK16PAIR_with_sub_mask_0_in_VK16WMBits), X86::VK16PAIR_with_sub_mask_0_in_VK16WMRegClassID, 32, 1, true }, { FR32X, FR32XBits, 1266, 32, sizeof(FR32XBits), X86::FR32XRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS_RBP, LOW32_ADDR_ACCESS_RBPBits, 1075, 18, sizeof(LOW32_ADDR_ACCESS_RBPBits), X86::LOW32_ADDR_ACCESS_RBPRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS, LOW32_ADDR_ACCESSBits, 1244, 17, sizeof(LOW32_ADDR_ACCESSBits), X86::LOW32_ADDR_ACCESSRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS_RBP_with_sub_8bit, LOW32_ADDR_ACCESS_RBP_with_sub_8bitBits, 1641, 17, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_8bitBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID, 32, 1, true }, { DEBUG_REG, DEBUG_REGBits, 653, 16, sizeof(DEBUG_REGBits), X86::DEBUG_REGRegClassID, 32, 1, true }, { FR32, FR32Bits, 27, 16, sizeof(FR32Bits), X86::FR32RegClassID, 32, 1, true }, { GR32, GR32Bits, 32, 16, sizeof(GR32Bits), X86::GR32RegClassID, 32, 1, true }, { GR32_NOSP, GR32_NOSPBits, 1097, 15, sizeof(GR32_NOSPBits), X86::GR32_NOSPRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX, LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXBits, 1366, 9, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID, 32, 1, true }, { GR32_NOREX, GR32_NOREXBits, 1298, 8, sizeof(GR32_NOREXBits), X86::GR32_NOREXRegClassID, 32, 1, true }, { VK32, VK32Bits, 16, 8, sizeof(VK32Bits), X86::VK32RegClassID, 32, 1, true }, { GR32_NOREX_NOSP, GR32_NOREX_NOSPBits, 1117, 7, sizeof(GR32_NOREX_NOSPBits), X86::GR32_NOREX_NOSPRegClassID, 32, 1, true }, { RFP32, RFP32Bits, 21, 7, sizeof(RFP32Bits), X86::RFP32RegClassID, 32, 1, true }, { VK32WM, VK32WMBits, 919, 7, sizeof(VK32WMBits), X86::VK32WMRegClassID, 32, 1, true }, { GR32_ABCD, GR32_ABCDBits, 618, 4, sizeof(GR32_ABCDBits), X86::GR32_ABCDRegClassID, 32, 1, true }, { GR32_TC, GR32_TCBits, 434, 4, sizeof(GR32_TCBits), X86::GR32_TCRegClassID, 32, 1, true }, { GR32_ABCD_and_GR32_TC, GR32_ABCD_and_GR32_TCBits, 420, 3, sizeof(GR32_ABCD_and_GR32_TCBits), X86::GR32_ABCD_and_GR32_TCRegClassID, 32, 1, true }, { GR32_AD, GR32_ADBits, 602, 2, sizeof(GR32_ADBits), X86::GR32_ADRegClassID, 32, 1, true }, { GR32_BPSP, GR32_BPSPBits, 1172, 2, sizeof(GR32_BPSPBits), X86::GR32_BPSPRegClassID, 32, 1, true }, { GR32_BSI, GR32_BSIBits, 861, 2, sizeof(GR32_BSIBits), X86::GR32_BSIRegClassID, 32, 1, true }, { GR32_CB, GR32_CBBits, 272, 2, sizeof(GR32_CBBits), X86::GR32_CBRegClassID, 32, 1, true }, { GR32_DC, GR32_DCBits, 315, 2, sizeof(GR32_DCBits), X86::GR32_DCRegClassID, 32, 1, true }, { GR32_DIBP, GR32_DIBPBits, 1023, 2, sizeof(GR32_DIBPBits), X86::GR32_DIBPRegClassID, 32, 1, true }, { GR32_SIDI, GR32_SIDIBits, 734, 2, sizeof(GR32_SIDIBits), X86::GR32_SIDIRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS_RBP_with_sub_32bit, LOW32_ADDR_ACCESS_RBP_with_sub_32bitBits, 1439, 2, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_32bitBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClassID, 32, 1, true }, { CCR, CCRBits, 1184, 1, sizeof(CCRBits), X86::CCRRegClassID, 32, -1, false }, { DFCCR, DFCCRBits, 1182, 1, sizeof(DFCCRBits), X86::DFCCRRegClassID, 32, -1, false }, { GR32_ABCD_and_GR32_BSI, GR32_ABCD_and_GR32_BSIBits, 847, 1, sizeof(GR32_ABCD_and_GR32_BSIBits), X86::GR32_ABCD_and_GR32_BSIRegClassID, 32, 1, true }, { GR32_AD_and_GR32_DC, GR32_AD_and_GR32_DCBits, 346, 1, sizeof(GR32_AD_and_GR32_DCBits), X86::GR32_AD_and_GR32_DCRegClassID, 32, 1, true }, { GR32_BPSP_and_GR32_DIBP, GR32_BPSP_and_GR32_DIBPBits, 1009, 1, sizeof(GR32_BPSP_and_GR32_DIBPBits), X86::GR32_BPSP_and_GR32_DIBPRegClassID, 32, 1, true }, { GR32_BPSP_and_GR32_TC, GR32_BPSP_and_GR32_TCBits, 465, 1, sizeof(GR32_BPSP_and_GR32_TCBits), X86::GR32_BPSP_and_GR32_TCRegClassID, 32, 1, true }, { GR32_BSI_and_GR32_SIDI, GR32_BSI_and_GR32_SIDIBits, 721, 1, sizeof(GR32_BSI_and_GR32_SIDIBits), X86::GR32_BSI_and_GR32_SIDIRegClassID, 32, 1, true }, { GR32_CB_and_GR32_DC, GR32_CB_and_GR32_DCBits, 303, 1, sizeof(GR32_CB_and_GR32_DCBits), X86::GR32_CB_and_GR32_DCRegClassID, 32, 1, true }, { GR32_DIBP_and_GR32_SIDI, GR32_DIBP_and_GR32_SIDIBits, 767, 1, sizeof(GR32_DIBP_and_GR32_SIDIBits), X86::GR32_DIBP_and_GR32_SIDIRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit, LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitBits, 1509, 1, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClassID, 32, 1, true }, { LOW32_ADDR_ACCESS_with_sub_32bit, LOW32_ADDR_ACCESS_with_sub_32bitBits, 1476, 1, sizeof(LOW32_ADDR_ACCESS_with_sub_32bitBits), X86::LOW32_ADDR_ACCESS_with_sub_32bitRegClassID, 32, 1, true }, { RFP64, RFP64Bits, 46, 7, sizeof(RFP64Bits), X86::RFP64RegClassID, 64, 1, true }, { FR64X, FR64XBits, 1272, 32, sizeof(FR64XBits), X86::FR64XRegClassID, 64, 1, true }, { GR64, GR64Bits, 57, 17, sizeof(GR64Bits), X86::GR64RegClassID, 64, 1, true }, { CONTROL_REG, CONTROL_REGBits, 663, 16, sizeof(CONTROL_REGBits), X86::CONTROL_REGRegClassID, 64, 1, true }, { FR64, FR64Bits, 52, 16, sizeof(FR64Bits), X86::FR64RegClassID, 64, 1, true }, { GR64_with_sub_8bit, GR64_with_sub_8bitBits, 1560, 16, sizeof(GR64_with_sub_8bitBits), X86::GR64_with_sub_8bitRegClassID, 64, 1, true }, { GR64_NOSP, GR64_NOSPBits, 1107, 15, sizeof(GR64_NOSPBits), X86::GR64_NOSPRegClassID, 64, 1, true }, { GR64PLTSafe, GR64PLTSafeBits, 1427, 13, sizeof(GR64PLTSafeBits), X86::GR64PLTSafeRegClassID, 64, 1, true }, { GR64_TC, GR64_TCBits, 532, 10, sizeof(GR64_TCBits), X86::GR64_TCRegClassID, 64, 1, true }, { GR64_NOREX, GR64_NOREXBits, 1309, 9, sizeof(GR64_NOREXBits), X86::GR64_NOREXRegClassID, 64, 1, true }, { GR64_TCW64, GR64_TCW64Bits, 79, 9, sizeof(GR64_TCW64Bits), X86::GR64_TCW64RegClassID, 64, 1, true }, { GR64_TC_with_sub_8bit, GR64_TC_with_sub_8bitBits, 1619, 9, sizeof(GR64_TC_with_sub_8bitBits), X86::GR64_TC_with_sub_8bitRegClassID, 64, 1, true }, { GR64_NOSP_and_GR64_TC, GR64_NOSP_and_GR64_TCBits, 518, 8, sizeof(GR64_NOSP_and_GR64_TCBits), X86::GR64_NOSP_and_GR64_TCRegClassID, 64, 1, true }, { GR64_TCW64_with_sub_8bit, GR64_TCW64_with_sub_8bitBits, 1579, 8, sizeof(GR64_TCW64_with_sub_8bitBits), X86::GR64_TCW64_with_sub_8bitRegClassID, 64, 1, true }, { GR64_TC_and_GR64_TCW64, GR64_TC_and_GR64_TCW64Bits, 67, 8, sizeof(GR64_TC_and_GR64_TCW64Bits), X86::GR64_TC_and_GR64_TCW64RegClassID, 64, 1, true }, { GR64_with_sub_16bit_in_GR16_NOREX, GR64_with_sub_16bit_in_GR16_NOREXBits, 1332, 8, sizeof(GR64_with_sub_16bit_in_GR16_NOREXBits), X86::GR64_with_sub_16bit_in_GR16_NOREXRegClassID, 64, 1, true }, { VK64, VK64Bits, 41, 8, sizeof(VK64Bits), X86::VK64RegClassID, 64, 1, true }, { VR64, VR64Bits, 62, 8, sizeof(VR64Bits), X86::VR64RegClassID, 64, 1, true }, { GR64PLTSafe_and_GR64_TC, GR64PLTSafe_and_GR64_TCBits, 578, 7, sizeof(GR64PLTSafe_and_GR64_TCBits), X86::GR64PLTSafe_and_GR64_TCRegClassID, 64, 1, true }, { GR64_NOREX_NOSP, GR64_NOREX_NOSPBits, 1133, 7, sizeof(GR64_NOREX_NOSPBits), X86::GR64_NOREX_NOSPRegClassID, 64, 1, true }, { GR64_NOREX_and_GR64_TC, GR64_NOREX_and_GR64_TCBits, 540, 7, sizeof(GR64_NOREX_and_GR64_TCBits), X86::GR64_NOREX_and_GR64_TCRegClassID, 64, 1, true }, { GR64_NOSP_and_GR64_TCW64, GR64_NOSP_and_GR64_TCW64Bits, 102, 7, sizeof(GR64_NOSP_and_GR64_TCW64Bits), X86::GR64_NOSP_and_GR64_TCW64RegClassID, 64, 1, true }, { GR64_TCW64_and_GR64_TC_with_sub_8bit, GR64_TCW64_and_GR64_TC_with_sub_8bitBits, 1604, 7, sizeof(GR64_TCW64_and_GR64_TC_with_sub_8bitBits), X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClassID, 64, 1, true }, { VK64WM, VK64WMBits, 932, 7, sizeof(VK64WMBits), X86::VK64WMRegClassID, 64, 1, true }, { GR64_TC_and_GR64_NOSP_and_GR64_TCW64, GR64_TC_and_GR64_NOSP_and_GR64_TCW64Bits, 90, 6, sizeof(GR64_TC_and_GR64_NOSP_and_GR64_TCW64Bits), X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID, 64, 1, true }, { GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX, GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXBits, 1320, 6, sizeof(GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXBits), X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClassID, 64, 1, true }, { GR64PLTSafe_and_GR64_TCW64, GR64PLTSafe_and_GR64_TCW64Bits, 153, 5, sizeof(GR64PLTSafe_and_GR64_TCW64Bits), X86::GR64PLTSafe_and_GR64_TCW64RegClassID, 64, 1, true }, { GR64_NOREX_and_GR64PLTSafe_and_GR64_TC, GR64_NOREX_and_GR64PLTSafe_and_GR64_TCBits, 563, 5, sizeof(GR64_NOREX_and_GR64PLTSafe_and_GR64_TCBits), X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClassID, 64, 1, true }, { GR64_NOREX_and_GR64_TCW64, GR64_NOREX_and_GR64_TCW64Bits, 127, 5, sizeof(GR64_NOREX_and_GR64_TCW64Bits), X86::GR64_NOREX_and_GR64_TCW64RegClassID, 64, 1, true }, { GR64_ABCD, GR64_ABCDBits, 628, 4, sizeof(GR64_ABCDBits), X86::GR64_ABCDRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_TC, GR64_with_sub_32bit_in_GR32_TCBits, 487, 4, sizeof(GR64_with_sub_32bit_in_GR32_TCBits), X86::GR64_with_sub_32bit_in_GR32_TCRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCBits, 397, 3, sizeof(GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCBits), X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClassID, 64, 1, true }, { GR64_AD, GR64_ADBits, 610, 2, sizeof(GR64_ADBits), X86::GR64_ADRegClassID, 64, 1, true }, { GR64_and_LOW32_ADDR_ACCESS_RBP, GR64_and_LOW32_ADDR_ACCESS_RBPBits, 1066, 2, sizeof(GR64_and_LOW32_ADDR_ACCESS_RBPBits), X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_BPSP, GR64_with_sub_32bit_in_GR32_BPSPBits, 1149, 2, sizeof(GR64_with_sub_32bit_in_GR32_BPSPBits), X86::GR64_with_sub_32bit_in_GR32_BPSPRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_BSI, GR64_with_sub_32bit_in_GR32_BSIBits, 870, 2, sizeof(GR64_with_sub_32bit_in_GR32_BSIBits), X86::GR64_with_sub_32bit_in_GR32_BSIRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_CB, GR64_with_sub_32bit_in_GR32_CBBits, 249, 2, sizeof(GR64_with_sub_32bit_in_GR32_CBBits), X86::GR64_with_sub_32bit_in_GR32_CBRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_DC, GR64_with_sub_32bit_in_GR32_DCBits, 366, 2, sizeof(GR64_with_sub_32bit_in_GR32_DCBits), X86::GR64_with_sub_32bit_in_GR32_DCRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_DIBP, GR64_with_sub_32bit_in_GR32_DIBPBits, 1033, 2, sizeof(GR64_with_sub_32bit_in_GR32_DIBPBits), X86::GR64_with_sub_32bit_in_GR32_DIBPRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_SIDI, GR64_with_sub_32bit_in_GR32_SIDIBits, 791, 2, sizeof(GR64_with_sub_32bit_in_GR32_SIDIBits), X86::GR64_with_sub_32bit_in_GR32_SIDIRegClassID, 64, 1, true }, { GR64_and_LOW32_ADDR_ACCESS, GR64_and_LOW32_ADDR_ACCESSBits, 1235, 1, sizeof(GR64_and_LOW32_ADDR_ACCESSBits), X86::GR64_and_LOW32_ADDR_ACCESSRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIBits, 824, 1, sizeof(GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIBits), X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC, GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCBits, 323, 1, sizeof(GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCBits), X86::GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP, GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPBits, 986, 1, sizeof(GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPBits), X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC, GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCBits, 442, 1, sizeof(GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCBits), X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI, GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIBits, 698, 1, sizeof(GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIBits), X86::GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC, GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCBits, 280, 1, sizeof(GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCBits), X86::GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID, 64, 1, true }, { GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI, GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIBits, 744, 1, sizeof(GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIBits), X86::GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID, 64, 1, true }, { RST, RSTBits, 1262, 8, sizeof(RSTBits), X86::RSTRegClassID, 80, 1, false }, { RFP80, RFP80Bits, 0, 7, sizeof(RFP80Bits), X86::RFP80RegClassID, 80, 1, true }, { RFP80_7, RFP80_7Bits, 222, 1, sizeof(RFP80_7Bits), X86::RFP80_7RegClassID, 80, 1, false }, { VR128X, VR128XBits, 1291, 32, sizeof(VR128XBits), X86::VR128XRegClassID, 128, 1, true }, { VR128, VR128Bits, 230, 16, sizeof(VR128Bits), X86::VR128RegClassID, 128, 1, true }, { VR256X, VR256XBits, 1284, 32, sizeof(VR256XBits), X86::VR256XRegClassID, 256, 1, true }, { VR256, VR256Bits, 216, 16, sizeof(VR256Bits), X86::VR256RegClassID, 256, 1, true }, { VR512, VR512Bits, 10, 32, sizeof(VR512Bits), X86::VR512RegClassID, 512, 1, true }, { VR512_0_15, VR512_0_15Bits, 184, 16, sizeof(VR512_0_15Bits), X86::VR512_0_15RegClassID, 512, 1, true }, { TILE, TILEBits, 648, 8, sizeof(TILEBits), X86::TILERegClassID, 8192, -1, true }, }; // X86 Dwarf<->LLVM register mappings. extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0Dwarf2L[] = { { 0U, X86::RAX }, { 1U, X86::RDX }, { 2U, X86::RCX }, { 3U, X86::RBX }, { 4U, X86::RSI }, { 5U, X86::RDI }, { 6U, X86::RBP }, { 7U, X86::RSP }, { 8U, X86::R8 }, { 9U, X86::R9 }, { 10U, X86::R10 }, { 11U, X86::R11 }, { 12U, X86::R12 }, { 13U, X86::R13 }, { 14U, X86::R14 }, { 15U, X86::R15 }, { 16U, X86::RIP }, { 17U, X86::XMM0 }, { 18U, X86::XMM1 }, { 19U, X86::XMM2 }, { 20U, X86::XMM3 }, { 21U, X86::XMM4 }, { 22U, X86::XMM5 }, { 23U, X86::XMM6 }, { 24U, X86::XMM7 }, { 25U, X86::XMM8 }, { 26U, X86::XMM9 }, { 27U, X86::XMM10 }, { 28U, X86::XMM11 }, { 29U, X86::XMM12 }, { 30U, X86::XMM13 }, { 31U, X86::XMM14 }, { 32U, X86::XMM15 }, { 33U, X86::ST0 }, { 34U, X86::ST1 }, { 35U, X86::ST2 }, { 36U, X86::ST3 }, { 37U, X86::ST4 }, { 38U, X86::ST5 }, { 39U, X86::ST6 }, { 40U, X86::ST7 }, { 41U, X86::MM0 }, { 42U, X86::MM1 }, { 43U, X86::MM2 }, { 44U, X86::MM3 }, { 45U, X86::MM4 }, { 46U, X86::MM5 }, { 47U, X86::MM6 }, { 48U, X86::MM7 }, { 49U, X86::RFLAGS }, { 58U, X86::FS_BASE }, { 59U, X86::GS_BASE }, { 67U, X86::XMM16 }, { 68U, X86::XMM17 }, { 69U, X86::XMM18 }, { 70U, X86::XMM19 }, { 71U, X86::XMM20 }, { 72U, X86::XMM21 }, { 73U, X86::XMM22 }, { 74U, X86::XMM23 }, { 75U, X86::XMM24 }, { 76U, X86::XMM25 }, { 77U, X86::XMM26 }, { 78U, X86::XMM27 }, { 79U, X86::XMM28 }, { 80U, X86::XMM29 }, { 81U, X86::XMM30 }, { 82U, X86::XMM31 }, { 118U, X86::K0 }, { 119U, X86::K1 }, { 120U, X86::K2 }, { 121U, X86::K3 }, { 122U, X86::K4 }, { 123U, X86::K5 }, { 124U, X86::K6 }, { 125U, X86::K7 }, }; extern const unsigned X86DwarfFlavour0Dwarf2LSize = std::size(X86DwarfFlavour0Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1Dwarf2L[] = { { 0U, X86::EAX }, { 1U, X86::ECX }, { 2U, X86::EDX }, { 3U, X86::EBX }, { 4U, X86::EBP }, { 5U, X86::ESP }, { 6U, X86::ESI }, { 7U, X86::EDI }, { 8U, X86::EIP }, { 9U, X86::EFLAGS }, { 12U, X86::ST0 }, { 13U, X86::ST1 }, { 14U, X86::ST2 }, { 15U, X86::ST3 }, { 16U, X86::ST4 }, { 17U, X86::ST5 }, { 18U, X86::ST6 }, { 19U, X86::ST7 }, { 21U, X86::XMM0 }, { 22U, X86::XMM1 }, { 23U, X86::XMM2 }, { 24U, X86::XMM3 }, { 25U, X86::XMM4 }, { 26U, X86::XMM5 }, { 27U, X86::XMM6 }, { 28U, X86::XMM7 }, { 29U, X86::MM0 }, { 30U, X86::MM1 }, { 31U, X86::MM2 }, { 32U, X86::MM3 }, { 33U, X86::MM4 }, { 34U, X86::MM5 }, { 35U, X86::MM6 }, { 36U, X86::MM7 }, { 93U, X86::K0 }, { 94U, X86::K1 }, { 95U, X86::K2 }, { 96U, X86::K3 }, { 97U, X86::K4 }, { 98U, X86::K5 }, { 99U, X86::K6 }, { 100U, X86::K7 }, }; extern const unsigned X86DwarfFlavour1Dwarf2LSize = std::size(X86DwarfFlavour1Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2Dwarf2L[] = { { 0U, X86::EAX }, { 1U, X86::ECX }, { 2U, X86::EDX }, { 3U, X86::EBX }, { 4U, X86::ESP }, { 5U, X86::EBP }, { 6U, X86::ESI }, { 7U, X86::EDI }, { 8U, X86::EIP }, { 9U, X86::EFLAGS }, { 11U, X86::ST0 }, { 12U, X86::ST1 }, { 13U, X86::ST2 }, { 14U, X86::ST3 }, { 15U, X86::ST4 }, { 16U, X86::ST5 }, { 17U, X86::ST6 }, { 18U, X86::ST7 }, { 21U, X86::XMM0 }, { 22U, X86::XMM1 }, { 23U, X86::XMM2 }, { 24U, X86::XMM3 }, { 25U, X86::XMM4 }, { 26U, X86::XMM5 }, { 27U, X86::XMM6 }, { 28U, X86::XMM7 }, { 29U, X86::MM0 }, { 30U, X86::MM1 }, { 31U, X86::MM2 }, { 32U, X86::MM3 }, { 33U, X86::MM4 }, { 34U, X86::MM5 }, { 35U, X86::MM6 }, { 36U, X86::MM7 }, { 93U, X86::K0 }, { 94U, X86::K1 }, { 95U, X86::K2 }, { 96U, X86::K3 }, { 97U, X86::K4 }, { 98U, X86::K5 }, { 99U, X86::K6 }, { 100U, X86::K7 }, }; extern const unsigned X86DwarfFlavour2Dwarf2LSize = std::size(X86DwarfFlavour2Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0Dwarf2L[] = { { 0U, X86::RAX }, { 1U, X86::RDX }, { 2U, X86::RCX }, { 3U, X86::RBX }, { 4U, X86::RSI }, { 5U, X86::RDI }, { 6U, X86::RBP }, { 7U, X86::RSP }, { 8U, X86::R8 }, { 9U, X86::R9 }, { 10U, X86::R10 }, { 11U, X86::R11 }, { 12U, X86::R12 }, { 13U, X86::R13 }, { 14U, X86::R14 }, { 15U, X86::R15 }, { 16U, X86::RIP }, { 17U, X86::XMM0 }, { 18U, X86::XMM1 }, { 19U, X86::XMM2 }, { 20U, X86::XMM3 }, { 21U, X86::XMM4 }, { 22U, X86::XMM5 }, { 23U, X86::XMM6 }, { 24U, X86::XMM7 }, { 25U, X86::XMM8 }, { 26U, X86::XMM9 }, { 27U, X86::XMM10 }, { 28U, X86::XMM11 }, { 29U, X86::XMM12 }, { 30U, X86::XMM13 }, { 31U, X86::XMM14 }, { 32U, X86::XMM15 }, { 33U, X86::ST0 }, { 34U, X86::ST1 }, { 35U, X86::ST2 }, { 36U, X86::ST3 }, { 37U, X86::ST4 }, { 38U, X86::ST5 }, { 39U, X86::ST6 }, { 40U, X86::ST7 }, { 41U, X86::MM0 }, { 42U, X86::MM1 }, { 43U, X86::MM2 }, { 44U, X86::MM3 }, { 45U, X86::MM4 }, { 46U, X86::MM5 }, { 47U, X86::MM6 }, { 48U, X86::MM7 }, { 49U, X86::RFLAGS }, { 58U, X86::FS_BASE }, { 59U, X86::GS_BASE }, { 67U, X86::XMM16 }, { 68U, X86::XMM17 }, { 69U, X86::XMM18 }, { 70U, X86::XMM19 }, { 71U, X86::XMM20 }, { 72U, X86::XMM21 }, { 73U, X86::XMM22 }, { 74U, X86::XMM23 }, { 75U, X86::XMM24 }, { 76U, X86::XMM25 }, { 77U, X86::XMM26 }, { 78U, X86::XMM27 }, { 79U, X86::XMM28 }, { 80U, X86::XMM29 }, { 81U, X86::XMM30 }, { 82U, X86::XMM31 }, { 118U, X86::K0 }, { 119U, X86::K1 }, { 120U, X86::K2 }, { 121U, X86::K3 }, { 122U, X86::K4 }, { 123U, X86::K5 }, { 124U, X86::K6 }, { 125U, X86::K7 }, }; extern const unsigned X86EHFlavour0Dwarf2LSize = std::size(X86EHFlavour0Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1Dwarf2L[] = { { 0U, X86::EAX }, { 1U, X86::ECX }, { 2U, X86::EDX }, { 3U, X86::EBX }, { 4U, X86::EBP }, { 5U, X86::ESP }, { 6U, X86::ESI }, { 7U, X86::EDI }, { 8U, X86::EIP }, { 9U, X86::EFLAGS }, { 12U, X86::ST0 }, { 13U, X86::ST1 }, { 14U, X86::ST2 }, { 15U, X86::ST3 }, { 16U, X86::ST4 }, { 17U, X86::ST5 }, { 18U, X86::ST6 }, { 19U, X86::ST7 }, { 21U, X86::XMM0 }, { 22U, X86::XMM1 }, { 23U, X86::XMM2 }, { 24U, X86::XMM3 }, { 25U, X86::XMM4 }, { 26U, X86::XMM5 }, { 27U, X86::XMM6 }, { 28U, X86::XMM7 }, { 29U, X86::MM0 }, { 30U, X86::MM1 }, { 31U, X86::MM2 }, { 32U, X86::MM3 }, { 33U, X86::MM4 }, { 34U, X86::MM5 }, { 35U, X86::MM6 }, { 36U, X86::MM7 }, { 93U, X86::K0 }, { 94U, X86::K1 }, { 95U, X86::K2 }, { 96U, X86::K3 }, { 97U, X86::K4 }, { 98U, X86::K5 }, { 99U, X86::K6 }, { 100U, X86::K7 }, }; extern const unsigned X86EHFlavour1Dwarf2LSize = std::size(X86EHFlavour1Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2Dwarf2L[] = { { 0U, X86::EAX }, { 1U, X86::ECX }, { 2U, X86::EDX }, { 3U, X86::EBX }, { 4U, X86::ESP }, { 5U, X86::EBP }, { 6U, X86::ESI }, { 7U, X86::EDI }, { 8U, X86::EIP }, { 9U, X86::EFLAGS }, { 11U, X86::ST0 }, { 12U, X86::ST1 }, { 13U, X86::ST2 }, { 14U, X86::ST3 }, { 15U, X86::ST4 }, { 16U, X86::ST5 }, { 17U, X86::ST6 }, { 18U, X86::ST7 }, { 21U, X86::XMM0 }, { 22U, X86::XMM1 }, { 23U, X86::XMM2 }, { 24U, X86::XMM3 }, { 25U, X86::XMM4 }, { 26U, X86::XMM5 }, { 27U, X86::XMM6 }, { 28U, X86::XMM7 }, { 29U, X86::MM0 }, { 30U, X86::MM1 }, { 31U, X86::MM2 }, { 32U, X86::MM3 }, { 33U, X86::MM4 }, { 34U, X86::MM5 }, { 35U, X86::MM6 }, { 36U, X86::MM7 }, { 93U, X86::K0 }, { 94U, X86::K1 }, { 95U, X86::K2 }, { 96U, X86::K3 }, { 97U, X86::K4 }, { 98U, X86::K5 }, { 99U, X86::K6 }, { 100U, X86::K7 }, }; extern const unsigned X86EHFlavour2Dwarf2LSize = std::size(X86EHFlavour2Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0L2Dwarf[] = { { X86::EAX, -2U }, { X86::EBP, -2U }, { X86::EBX, -2U }, { X86::ECX, -2U }, { X86::EDI, -2U }, { X86::EDX, -2U }, { X86::EFLAGS, 49U }, { X86::EIP, -2U }, { X86::ESI, -2U }, { X86::ESP, -2U }, { X86::FS_BASE, 58U }, { X86::GS_BASE, 59U }, { X86::RAX, 0U }, { X86::RBP, 6U }, { X86::RBX, 3U }, { X86::RCX, 2U }, { X86::RDI, 5U }, { X86::RDX, 1U }, { X86::RFLAGS, 49U }, { X86::RIP, 16U }, { X86::RSI, 4U }, { X86::RSP, 7U }, { X86::_EFLAGS, 49U }, { X86::K0, 118U }, { X86::K1, 119U }, { X86::K2, 120U }, { X86::K3, 121U }, { X86::K4, 122U }, { X86::K5, 123U }, { X86::K6, 124U }, { X86::K7, 125U }, { X86::MM0, 41U }, { X86::MM1, 42U }, { X86::MM2, 43U }, { X86::MM3, 44U }, { X86::MM4, 45U }, { X86::MM5, 46U }, { X86::MM6, 47U }, { X86::MM7, 48U }, { X86::R8, 8U }, { X86::R9, 9U }, { X86::R10, 10U }, { X86::R11, 11U }, { X86::R12, 12U }, { X86::R13, 13U }, { X86::R14, 14U }, { X86::R15, 15U }, { X86::ST0, 33U }, { X86::ST1, 34U }, { X86::ST2, 35U }, { X86::ST3, 36U }, { X86::ST4, 37U }, { X86::ST5, 38U }, { X86::ST6, 39U }, { X86::ST7, 40U }, { X86::XMM0, 17U }, { X86::XMM1, 18U }, { X86::XMM2, 19U }, { X86::XMM3, 20U }, { X86::XMM4, 21U }, { X86::XMM5, 22U }, { X86::XMM6, 23U }, { X86::XMM7, 24U }, { X86::XMM8, 25U }, { X86::XMM9, 26U }, { X86::XMM10, 27U }, { X86::XMM11, 28U }, { X86::XMM12, 29U }, { X86::XMM13, 30U }, { X86::XMM14, 31U }, { X86::XMM15, 32U }, { X86::XMM16, 67U }, { X86::XMM17, 68U }, { X86::XMM18, 69U }, { X86::XMM19, 70U }, { X86::XMM20, 71U }, { X86::XMM21, 72U }, { X86::XMM22, 73U }, { X86::XMM23, 74U }, { X86::XMM24, 75U }, { X86::XMM25, 76U }, { X86::XMM26, 77U }, { X86::XMM27, 78U }, { X86::XMM28, 79U }, { X86::XMM29, 80U }, { X86::XMM30, 81U }, { X86::XMM31, 82U }, { X86::YMM0, 17U }, { X86::YMM1, 18U }, { X86::YMM2, 19U }, { X86::YMM3, 20U }, { X86::YMM4, 21U }, { X86::YMM5, 22U }, { X86::YMM6, 23U }, { X86::YMM7, 24U }, { X86::YMM8, 25U }, { X86::YMM9, 26U }, { X86::YMM10, 27U }, { X86::YMM11, 28U }, { X86::YMM12, 29U }, { X86::YMM13, 30U }, { X86::YMM14, 31U }, { X86::YMM15, 32U }, { X86::YMM16, 67U }, { X86::YMM17, 68U }, { X86::YMM18, 69U }, { X86::YMM19, 70U }, { X86::YMM20, 71U }, { X86::YMM21, 72U }, { X86::YMM22, 73U }, { X86::YMM23, 74U }, { X86::YMM24, 75U }, { X86::YMM25, 76U }, { X86::YMM26, 77U }, { X86::YMM27, 78U }, { X86::YMM28, 79U }, { X86::YMM29, 80U }, { X86::YMM30, 81U }, { X86::YMM31, 82U }, { X86::ZMM0, 17U }, { X86::ZMM1, 18U }, { X86::ZMM2, 19U }, { X86::ZMM3, 20U }, { X86::ZMM4, 21U }, { X86::ZMM5, 22U }, { X86::ZMM6, 23U }, { X86::ZMM7, 24U }, { X86::ZMM8, 25U }, { X86::ZMM9, 26U }, { X86::ZMM10, 27U }, { X86::ZMM11, 28U }, { X86::ZMM12, 29U }, { X86::ZMM13, 30U }, { X86::ZMM14, 31U }, { X86::ZMM15, 32U }, { X86::ZMM16, 67U }, { X86::ZMM17, 68U }, { X86::ZMM18, 69U }, { X86::ZMM19, 70U }, { X86::ZMM20, 71U }, { X86::ZMM21, 72U }, { X86::ZMM22, 73U }, { X86::ZMM23, 74U }, { X86::ZMM24, 75U }, { X86::ZMM25, 76U }, { X86::ZMM26, 77U }, { X86::ZMM27, 78U }, { X86::ZMM28, 79U }, { X86::ZMM29, 80U }, { X86::ZMM30, 81U }, { X86::ZMM31, 82U }, }; extern const unsigned X86DwarfFlavour0L2DwarfSize = std::size(X86DwarfFlavour0L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1L2Dwarf[] = { { X86::EAX, 0U }, { X86::EBP, 4U }, { X86::EBX, 3U }, { X86::ECX, 1U }, { X86::EDI, 7U }, { X86::EDX, 2U }, { X86::EFLAGS, 9U }, { X86::EIP, 8U }, { X86::ESI, 6U }, { X86::ESP, 5U }, { X86::FS_BASE, -2U }, { X86::GS_BASE, -2U }, { X86::RAX, -2U }, { X86::RBP, -2U }, { X86::RBX, -2U }, { X86::RCX, -2U }, { X86::RDI, -2U }, { X86::RDX, -2U }, { X86::RFLAGS, -2U }, { X86::RIP, -2U }, { X86::RSI, -2U }, { X86::RSP, -2U }, { X86::_EFLAGS, 9U }, { X86::K0, 93U }, { X86::K1, 94U }, { X86::K2, 95U }, { X86::K3, 96U }, { X86::K4, 97U }, { X86::K5, 98U }, { X86::K6, 99U }, { X86::K7, 100U }, { X86::MM0, 29U }, { X86::MM1, 30U }, { X86::MM2, 31U }, { X86::MM3, 32U }, { X86::MM4, 33U }, { X86::MM5, 34U }, { X86::MM6, 35U }, { X86::MM7, 36U }, { X86::R8, -2U }, { X86::R9, -2U }, { X86::R10, -2U }, { X86::R11, -2U }, { X86::R12, -2U }, { X86::R13, -2U }, { X86::R14, -2U }, { X86::R15, -2U }, { X86::ST0, 12U }, { X86::ST1, 13U }, { X86::ST2, 14U }, { X86::ST3, 15U }, { X86::ST4, 16U }, { X86::ST5, 17U }, { X86::ST6, 18U }, { X86::ST7, 19U }, { X86::XMM0, 21U }, { X86::XMM1, 22U }, { X86::XMM2, 23U }, { X86::XMM3, 24U }, { X86::XMM4, 25U }, { X86::XMM5, 26U }, { X86::XMM6, 27U }, { X86::XMM7, 28U }, { X86::XMM8, -2U }, { X86::XMM9, -2U }, { X86::XMM10, -2U }, { X86::XMM11, -2U }, { X86::XMM12, -2U }, { X86::XMM13, -2U }, { X86::XMM14, -2U }, { X86::XMM15, -2U }, { X86::XMM16, -2U }, { X86::XMM17, -2U }, { X86::XMM18, -2U }, { X86::XMM19, -2U }, { X86::XMM20, -2U }, { X86::XMM21, -2U }, { X86::XMM22, -2U }, { X86::XMM23, -2U }, { X86::XMM24, -2U }, { X86::XMM25, -2U }, { X86::XMM26, -2U }, { X86::XMM27, -2U }, { X86::XMM28, -2U }, { X86::XMM29, -2U }, { X86::XMM30, -2U }, { X86::XMM31, -2U }, { X86::YMM0, 21U }, { X86::YMM1, 22U }, { X86::YMM2, 23U }, { X86::YMM3, 24U }, { X86::YMM4, 25U }, { X86::YMM5, 26U }, { X86::YMM6, 27U }, { X86::YMM7, 28U }, { X86::YMM8, -2U }, { X86::YMM9, -2U }, { X86::YMM10, -2U }, { X86::YMM11, -2U }, { X86::YMM12, -2U }, { X86::YMM13, -2U }, { X86::YMM14, -2U }, { X86::YMM15, -2U }, { X86::YMM16, -2U }, { X86::YMM17, -2U }, { X86::YMM18, -2U }, { X86::YMM19, -2U }, { X86::YMM20, -2U }, { X86::YMM21, -2U }, { X86::YMM22, -2U }, { X86::YMM23, -2U }, { X86::YMM24, -2U }, { X86::YMM25, -2U }, { X86::YMM26, -2U }, { X86::YMM27, -2U }, { X86::YMM28, -2U }, { X86::YMM29, -2U }, { X86::YMM30, -2U }, { X86::YMM31, -2U }, { X86::ZMM0, 21U }, { X86::ZMM1, 22U }, { X86::ZMM2, 23U }, { X86::ZMM3, 24U }, { X86::ZMM4, 25U }, { X86::ZMM5, 26U }, { X86::ZMM6, 27U }, { X86::ZMM7, 28U }, { X86::ZMM8, -2U }, { X86::ZMM9, -2U }, { X86::ZMM10, -2U }, { X86::ZMM11, -2U }, { X86::ZMM12, -2U }, { X86::ZMM13, -2U }, { X86::ZMM14, -2U }, { X86::ZMM15, -2U }, { X86::ZMM16, -2U }, { X86::ZMM17, -2U }, { X86::ZMM18, -2U }, { X86::ZMM19, -2U }, { X86::ZMM20, -2U }, { X86::ZMM21, -2U }, { X86::ZMM22, -2U }, { X86::ZMM23, -2U }, { X86::ZMM24, -2U }, { X86::ZMM25, -2U }, { X86::ZMM26, -2U }, { X86::ZMM27, -2U }, { X86::ZMM28, -2U }, { X86::ZMM29, -2U }, { X86::ZMM30, -2U }, { X86::ZMM31, -2U }, }; extern const unsigned X86DwarfFlavour1L2DwarfSize = std::size(X86DwarfFlavour1L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2L2Dwarf[] = { { X86::EAX, 0U }, { X86::EBP, 5U }, { X86::EBX, 3U }, { X86::ECX, 1U }, { X86::EDI, 7U }, { X86::EDX, 2U }, { X86::EFLAGS, 9U }, { X86::EIP, 8U }, { X86::ESI, 6U }, { X86::ESP, 4U }, { X86::FS_BASE, -2U }, { X86::GS_BASE, -2U }, { X86::RAX, -2U }, { X86::RBP, -2U }, { X86::RBX, -2U }, { X86::RCX, -2U }, { X86::RDI, -2U }, { X86::RDX, -2U }, { X86::RFLAGS, -2U }, { X86::RIP, -2U }, { X86::RSI, -2U }, { X86::RSP, -2U }, { X86::_EFLAGS, 9U }, { X86::K0, 93U }, { X86::K1, 94U }, { X86::K2, 95U }, { X86::K3, 96U }, { X86::K4, 97U }, { X86::K5, 98U }, { X86::K6, 99U }, { X86::K7, 100U }, { X86::MM0, 29U }, { X86::MM1, 30U }, { X86::MM2, 31U }, { X86::MM3, 32U }, { X86::MM4, 33U }, { X86::MM5, 34U }, { X86::MM6, 35U }, { X86::MM7, 36U }, { X86::R8, -2U }, { X86::R9, -2U }, { X86::R10, -2U }, { X86::R11, -2U }, { X86::R12, -2U }, { X86::R13, -2U }, { X86::R14, -2U }, { X86::R15, -2U }, { X86::ST0, 11U }, { X86::ST1, 12U }, { X86::ST2, 13U }, { X86::ST3, 14U }, { X86::ST4, 15U }, { X86::ST5, 16U }, { X86::ST6, 17U }, { X86::ST7, 18U }, { X86::XMM0, 21U }, { X86::XMM1, 22U }, { X86::XMM2, 23U }, { X86::XMM3, 24U }, { X86::XMM4, 25U }, { X86::XMM5, 26U }, { X86::XMM6, 27U }, { X86::XMM7, 28U }, { X86::XMM8, -2U }, { X86::XMM9, -2U }, { X86::XMM10, -2U }, { X86::XMM11, -2U }, { X86::XMM12, -2U }, { X86::XMM13, -2U }, { X86::XMM14, -2U }, { X86::XMM15, -2U }, { X86::XMM16, -2U }, { X86::XMM17, -2U }, { X86::XMM18, -2U }, { X86::XMM19, -2U }, { X86::XMM20, -2U }, { X86::XMM21, -2U }, { X86::XMM22, -2U }, { X86::XMM23, -2U }, { X86::XMM24, -2U }, { X86::XMM25, -2U }, { X86::XMM26, -2U }, { X86::XMM27, -2U }, { X86::XMM28, -2U }, { X86::XMM29, -2U }, { X86::XMM30, -2U }, { X86::XMM31, -2U }, { X86::YMM0, 21U }, { X86::YMM1, 22U }, { X86::YMM2, 23U }, { X86::YMM3, 24U }, { X86::YMM4, 25U }, { X86::YMM5, 26U }, { X86::YMM6, 27U }, { X86::YMM7, 28U }, { X86::YMM8, -2U }, { X86::YMM9, -2U }, { X86::YMM10, -2U }, { X86::YMM11, -2U }, { X86::YMM12, -2U }, { X86::YMM13, -2U }, { X86::YMM14, -2U }, { X86::YMM15, -2U }, { X86::YMM16, -2U }, { X86::YMM17, -2U }, { X86::YMM18, -2U }, { X86::YMM19, -2U }, { X86::YMM20, -2U }, { X86::YMM21, -2U }, { X86::YMM22, -2U }, { X86::YMM23, -2U }, { X86::YMM24, -2U }, { X86::YMM25, -2U }, { X86::YMM26, -2U }, { X86::YMM27, -2U }, { X86::YMM28, -2U }, { X86::YMM29, -2U }, { X86::YMM30, -2U }, { X86::YMM31, -2U }, { X86::ZMM0, 21U }, { X86::ZMM1, 22U }, { X86::ZMM2, 23U }, { X86::ZMM3, 24U }, { X86::ZMM4, 25U }, { X86::ZMM5, 26U }, { X86::ZMM6, 27U }, { X86::ZMM7, 28U }, { X86::ZMM8, -2U }, { X86::ZMM9, -2U }, { X86::ZMM10, -2U }, { X86::ZMM11, -2U }, { X86::ZMM12, -2U }, { X86::ZMM13, -2U }, { X86::ZMM14, -2U }, { X86::ZMM15, -2U }, { X86::ZMM16, -2U }, { X86::ZMM17, -2U }, { X86::ZMM18, -2U }, { X86::ZMM19, -2U }, { X86::ZMM20, -2U }, { X86::ZMM21, -2U }, { X86::ZMM22, -2U }, { X86::ZMM23, -2U }, { X86::ZMM24, -2U }, { X86::ZMM25, -2U }, { X86::ZMM26, -2U }, { X86::ZMM27, -2U }, { X86::ZMM28, -2U }, { X86::ZMM29, -2U }, { X86::ZMM30, -2U }, { X86::ZMM31, -2U }, }; extern const unsigned X86DwarfFlavour2L2DwarfSize = std::size(X86DwarfFlavour2L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0L2Dwarf[] = { { X86::EAX, -2U }, { X86::EBP, -2U }, { X86::EBX, -2U }, { X86::ECX, -2U }, { X86::EDI, -2U }, { X86::EDX, -2U }, { X86::EFLAGS, 49U }, { X86::EIP, -2U }, { X86::ESI, -2U }, { X86::ESP, -2U }, { X86::FS_BASE, 58U }, { X86::GS_BASE, 59U }, { X86::RAX, 0U }, { X86::RBP, 6U }, { X86::RBX, 3U }, { X86::RCX, 2U }, { X86::RDI, 5U }, { X86::RDX, 1U }, { X86::RFLAGS, 49U }, { X86::RIP, 16U }, { X86::RSI, 4U }, { X86::RSP, 7U }, { X86::_EFLAGS, 49U }, { X86::K0, 118U }, { X86::K1, 119U }, { X86::K2, 120U }, { X86::K3, 121U }, { X86::K4, 122U }, { X86::K5, 123U }, { X86::K6, 124U }, { X86::K7, 125U }, { X86::MM0, 41U }, { X86::MM1, 42U }, { X86::MM2, 43U }, { X86::MM3, 44U }, { X86::MM4, 45U }, { X86::MM5, 46U }, { X86::MM6, 47U }, { X86::MM7, 48U }, { X86::R8, 8U }, { X86::R9, 9U }, { X86::R10, 10U }, { X86::R11, 11U }, { X86::R12, 12U }, { X86::R13, 13U }, { X86::R14, 14U }, { X86::R15, 15U }, { X86::ST0, 33U }, { X86::ST1, 34U }, { X86::ST2, 35U }, { X86::ST3, 36U }, { X86::ST4, 37U }, { X86::ST5, 38U }, { X86::ST6, 39U }, { X86::ST7, 40U }, { X86::XMM0, 17U }, { X86::XMM1, 18U }, { X86::XMM2, 19U }, { X86::XMM3, 20U }, { X86::XMM4, 21U }, { X86::XMM5, 22U }, { X86::XMM6, 23U }, { X86::XMM7, 24U }, { X86::XMM8, 25U }, { X86::XMM9, 26U }, { X86::XMM10, 27U }, { X86::XMM11, 28U }, { X86::XMM12, 29U }, { X86::XMM13, 30U }, { X86::XMM14, 31U }, { X86::XMM15, 32U }, { X86::XMM16, 67U }, { X86::XMM17, 68U }, { X86::XMM18, 69U }, { X86::XMM19, 70U }, { X86::XMM20, 71U }, { X86::XMM21, 72U }, { X86::XMM22, 73U }, { X86::XMM23, 74U }, { X86::XMM24, 75U }, { X86::XMM25, 76U }, { X86::XMM26, 77U }, { X86::XMM27, 78U }, { X86::XMM28, 79U }, { X86::XMM29, 80U }, { X86::XMM30, 81U }, { X86::XMM31, 82U }, { X86::YMM0, 17U }, { X86::YMM1, 18U }, { X86::YMM2, 19U }, { X86::YMM3, 20U }, { X86::YMM4, 21U }, { X86::YMM5, 22U }, { X86::YMM6, 23U }, { X86::YMM7, 24U }, { X86::YMM8, 25U }, { X86::YMM9, 26U }, { X86::YMM10, 27U }, { X86::YMM11, 28U }, { X86::YMM12, 29U }, { X86::YMM13, 30U }, { X86::YMM14, 31U }, { X86::YMM15, 32U }, { X86::YMM16, 67U }, { X86::YMM17, 68U }, { X86::YMM18, 69U }, { X86::YMM19, 70U }, { X86::YMM20, 71U }, { X86::YMM21, 72U }, { X86::YMM22, 73U }, { X86::YMM23, 74U }, { X86::YMM24, 75U }, { X86::YMM25, 76U }, { X86::YMM26, 77U }, { X86::YMM27, 78U }, { X86::YMM28, 79U }, { X86::YMM29, 80U }, { X86::YMM30, 81U }, { X86::YMM31, 82U }, { X86::ZMM0, 17U }, { X86::ZMM1, 18U }, { X86::ZMM2, 19U }, { X86::ZMM3, 20U }, { X86::ZMM4, 21U }, { X86::ZMM5, 22U }, { X86::ZMM6, 23U }, { X86::ZMM7, 24U }, { X86::ZMM8, 25U }, { X86::ZMM9, 26U }, { X86::ZMM10, 27U }, { X86::ZMM11, 28U }, { X86::ZMM12, 29U }, { X86::ZMM13, 30U }, { X86::ZMM14, 31U }, { X86::ZMM15, 32U }, { X86::ZMM16, 67U }, { X86::ZMM17, 68U }, { X86::ZMM18, 69U }, { X86::ZMM19, 70U }, { X86::ZMM20, 71U }, { X86::ZMM21, 72U }, { X86::ZMM22, 73U }, { X86::ZMM23, 74U }, { X86::ZMM24, 75U }, { X86::ZMM25, 76U }, { X86::ZMM26, 77U }, { X86::ZMM27, 78U }, { X86::ZMM28, 79U }, { X86::ZMM29, 80U }, { X86::ZMM30, 81U }, { X86::ZMM31, 82U }, }; extern const unsigned X86EHFlavour0L2DwarfSize = std::size(X86EHFlavour0L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1L2Dwarf[] = { { X86::EAX, 0U }, { X86::EBP, 4U }, { X86::EBX, 3U }, { X86::ECX, 1U }, { X86::EDI, 7U }, { X86::EDX, 2U }, { X86::EFLAGS, 9U }, { X86::EIP, 8U }, { X86::ESI, 6U }, { X86::ESP, 5U }, { X86::FS_BASE, -2U }, { X86::GS_BASE, -2U }, { X86::RAX, -2U }, { X86::RBP, -2U }, { X86::RBX, -2U }, { X86::RCX, -2U }, { X86::RDI, -2U }, { X86::RDX, -2U }, { X86::RFLAGS, -2U }, { X86::RIP, -2U }, { X86::RSI, -2U }, { X86::RSP, -2U }, { X86::_EFLAGS, 9U }, { X86::K0, 93U }, { X86::K1, 94U }, { X86::K2, 95U }, { X86::K3, 96U }, { X86::K4, 97U }, { X86::K5, 98U }, { X86::K6, 99U }, { X86::K7, 100U }, { X86::MM0, 29U }, { X86::MM1, 30U }, { X86::MM2, 31U }, { X86::MM3, 32U }, { X86::MM4, 33U }, { X86::MM5, 34U }, { X86::MM6, 35U }, { X86::MM7, 36U }, { X86::R8, -2U }, { X86::R9, -2U }, { X86::R10, -2U }, { X86::R11, -2U }, { X86::R12, -2U }, { X86::R13, -2U }, { X86::R14, -2U }, { X86::R15, -2U }, { X86::ST0, 12U }, { X86::ST1, 13U }, { X86::ST2, 14U }, { X86::ST3, 15U }, { X86::ST4, 16U }, { X86::ST5, 17U }, { X86::ST6, 18U }, { X86::ST7, 19U }, { X86::XMM0, 21U }, { X86::XMM1, 22U }, { X86::XMM2, 23U }, { X86::XMM3, 24U }, { X86::XMM4, 25U }, { X86::XMM5, 26U }, { X86::XMM6, 27U }, { X86::XMM7, 28U }, { X86::XMM8, -2U }, { X86::XMM9, -2U }, { X86::XMM10, -2U }, { X86::XMM11, -2U }, { X86::XMM12, -2U }, { X86::XMM13, -2U }, { X86::XMM14, -2U }, { X86::XMM15, -2U }, { X86::XMM16, -2U }, { X86::XMM17, -2U }, { X86::XMM18, -2U }, { X86::XMM19, -2U }, { X86::XMM20, -2U }, { X86::XMM21, -2U }, { X86::XMM22, -2U }, { X86::XMM23, -2U }, { X86::XMM24, -2U }, { X86::XMM25, -2U }, { X86::XMM26, -2U }, { X86::XMM27, -2U }, { X86::XMM28, -2U }, { X86::XMM29, -2U }, { X86::XMM30, -2U }, { X86::XMM31, -2U }, { X86::YMM0, 21U }, { X86::YMM1, 22U }, { X86::YMM2, 23U }, { X86::YMM3, 24U }, { X86::YMM4, 25U }, { X86::YMM5, 26U }, { X86::YMM6, 27U }, { X86::YMM7, 28U }, { X86::YMM8, -2U }, { X86::YMM9, -2U }, { X86::YMM10, -2U }, { X86::YMM11, -2U }, { X86::YMM12, -2U }, { X86::YMM13, -2U }, { X86::YMM14, -2U }, { X86::YMM15, -2U }, { X86::YMM16, -2U }, { X86::YMM17, -2U }, { X86::YMM18, -2U }, { X86::YMM19, -2U }, { X86::YMM20, -2U }, { X86::YMM21, -2U }, { X86::YMM22, -2U }, { X86::YMM23, -2U }, { X86::YMM24, -2U }, { X86::YMM25, -2U }, { X86::YMM26, -2U }, { X86::YMM27, -2U }, { X86::YMM28, -2U }, { X86::YMM29, -2U }, { X86::YMM30, -2U }, { X86::YMM31, -2U }, { X86::ZMM0, 21U }, { X86::ZMM1, 22U }, { X86::ZMM2, 23U }, { X86::ZMM3, 24U }, { X86::ZMM4, 25U }, { X86::ZMM5, 26U }, { X86::ZMM6, 27U }, { X86::ZMM7, 28U }, { X86::ZMM8, -2U }, { X86::ZMM9, -2U }, { X86::ZMM10, -2U }, { X86::ZMM11, -2U }, { X86::ZMM12, -2U }, { X86::ZMM13, -2U }, { X86::ZMM14, -2U }, { X86::ZMM15, -2U }, { X86::ZMM16, -2U }, { X86::ZMM17, -2U }, { X86::ZMM18, -2U }, { X86::ZMM19, -2U }, { X86::ZMM20, -2U }, { X86::ZMM21, -2U }, { X86::ZMM22, -2U }, { X86::ZMM23, -2U }, { X86::ZMM24, -2U }, { X86::ZMM25, -2U }, { X86::ZMM26, -2U }, { X86::ZMM27, -2U }, { X86::ZMM28, -2U }, { X86::ZMM29, -2U }, { X86::ZMM30, -2U }, { X86::ZMM31, -2U }, }; extern const unsigned X86EHFlavour1L2DwarfSize = std::size(X86EHFlavour1L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2L2Dwarf[] = { { X86::EAX, 0U }, { X86::EBP, 5U }, { X86::EBX, 3U }, { X86::ECX, 1U }, { X86::EDI, 7U }, { X86::EDX, 2U }, { X86::EFLAGS, 9U }, { X86::EIP, 8U }, { X86::ESI, 6U }, { X86::ESP, 4U }, { X86::FS_BASE, -2U }, { X86::GS_BASE, -2U }, { X86::RAX, -2U }, { X86::RBP, -2U }, { X86::RBX, -2U }, { X86::RCX, -2U }, { X86::RDI, -2U }, { X86::RDX, -2U }, { X86::RFLAGS, -2U }, { X86::RIP, -2U }, { X86::RSI, -2U }, { X86::RSP, -2U }, { X86::_EFLAGS, 9U }, { X86::K0, 93U }, { X86::K1, 94U }, { X86::K2, 95U }, { X86::K3, 96U }, { X86::K4, 97U }, { X86::K5, 98U }, { X86::K6, 99U }, { X86::K7, 100U }, { X86::MM0, 29U }, { X86::MM1, 30U }, { X86::MM2, 31U }, { X86::MM3, 32U }, { X86::MM4, 33U }, { X86::MM5, 34U }, { X86::MM6, 35U }, { X86::MM7, 36U }, { X86::R8, -2U }, { X86::R9, -2U }, { X86::R10, -2U }, { X86::R11, -2U }, { X86::R12, -2U }, { X86::R13, -2U }, { X86::R14, -2U }, { X86::R15, -2U }, { X86::ST0, 11U }, { X86::ST1, 12U }, { X86::ST2, 13U }, { X86::ST3, 14U }, { X86::ST4, 15U }, { X86::ST5, 16U }, { X86::ST6, 17U }, { X86::ST7, 18U }, { X86::XMM0, 21U }, { X86::XMM1, 22U }, { X86::XMM2, 23U }, { X86::XMM3, 24U }, { X86::XMM4, 25U }, { X86::XMM5, 26U }, { X86::XMM6, 27U }, { X86::XMM7, 28U }, { X86::XMM8, -2U }, { X86::XMM9, -2U }, { X86::XMM10, -2U }, { X86::XMM11, -2U }, { X86::XMM12, -2U }, { X86::XMM13, -2U }, { X86::XMM14, -2U }, { X86::XMM15, -2U }, { X86::XMM16, -2U }, { X86::XMM17, -2U }, { X86::XMM18, -2U }, { X86::XMM19, -2U }, { X86::XMM20, -2U }, { X86::XMM21, -2U }, { X86::XMM22, -2U }, { X86::XMM23, -2U }, { X86::XMM24, -2U }, { X86::XMM25, -2U }, { X86::XMM26, -2U }, { X86::XMM27, -2U }, { X86::XMM28, -2U }, { X86::XMM29, -2U }, { X86::XMM30, -2U }, { X86::XMM31, -2U }, { X86::YMM0, 21U }, { X86::YMM1, 22U }, { X86::YMM2, 23U }, { X86::YMM3, 24U }, { X86::YMM4, 25U }, { X86::YMM5, 26U }, { X86::YMM6, 27U }, { X86::YMM7, 28U }, { X86::YMM8, -2U }, { X86::YMM9, -2U }, { X86::YMM10, -2U }, { X86::YMM11, -2U }, { X86::YMM12, -2U }, { X86::YMM13, -2U }, { X86::YMM14, -2U }, { X86::YMM15, -2U }, { X86::YMM16, -2U }, { X86::YMM17, -2U }, { X86::YMM18, -2U }, { X86::YMM19, -2U }, { X86::YMM20, -2U }, { X86::YMM21, -2U }, { X86::YMM22, -2U }, { X86::YMM23, -2U }, { X86::YMM24, -2U }, { X86::YMM25, -2U }, { X86::YMM26, -2U }, { X86::YMM27, -2U }, { X86::YMM28, -2U }, { X86::YMM29, -2U }, { X86::YMM30, -2U }, { X86::YMM31, -2U }, { X86::ZMM0, 21U }, { X86::ZMM1, 22U }, { X86::ZMM2, 23U }, { X86::ZMM3, 24U }, { X86::ZMM4, 25U }, { X86::ZMM5, 26U }, { X86::ZMM6, 27U }, { X86::ZMM7, 28U }, { X86::ZMM8, -2U }, { X86::ZMM9, -2U }, { X86::ZMM10, -2U }, { X86::ZMM11, -2U }, { X86::ZMM12, -2U }, { X86::ZMM13, -2U }, { X86::ZMM14, -2U }, { X86::ZMM15, -2U }, { X86::ZMM16, -2U }, { X86::ZMM17, -2U }, { X86::ZMM18, -2U }, { X86::ZMM19, -2U }, { X86::ZMM20, -2U }, { X86::ZMM21, -2U }, { X86::ZMM22, -2U }, { X86::ZMM23, -2U }, { X86::ZMM24, -2U }, { X86::ZMM25, -2U }, { X86::ZMM26, -2U }, { X86::ZMM27, -2U }, { X86::ZMM28, -2U }, { X86::ZMM29, -2U }, { X86::ZMM30, -2U }, { X86::ZMM31, -2U }, }; extern const unsigned X86EHFlavour2L2DwarfSize = std::size(X86EHFlavour2L2Dwarf); extern const uint16_t X86RegEncodingTable[] = { 0, 4, 0, 0, 7, 3, 5, 65535, 5, 3, 5, 1, 1, 1, 0, 6, 7, 65535, 7, 2, 3, 2, 0, 5, 3, 1, 7, 2, 0, 0, 4, 0, 6, 4, 0, 0, 4, 0, 5, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 0, 0, 5, 3, 1, 7, 2, 0, 0, 4, 6, 4, 6, 65535, 6, 4, 65535, 4, 2, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 8, 9, 10, 11, 12, 13, 14, 15, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 2, 4, 6, }; static inline void InitX86MCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) { RI->InitMCRegisterInfo(X86RegDesc, 292, RA, PC, X86MCRegisterClasses, 123, X86RegUnitRoots, 173, X86RegDiffLists, X86LaneMaskLists, X86RegStrings, X86RegClassStrings, X86SubRegIdxLists, 11, X86SubRegIdxRanges, X86RegEncodingTable); switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapDwarfRegsToLLVMRegs(X86DwarfFlavour0Dwarf2L, X86DwarfFlavour0Dwarf2LSize, false); break; case 1: RI->mapDwarfRegsToLLVMRegs(X86DwarfFlavour1Dwarf2L, X86DwarfFlavour1Dwarf2LSize, false); break; case 2: RI->mapDwarfRegsToLLVMRegs(X86DwarfFlavour2Dwarf2L, X86DwarfFlavour2Dwarf2LSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapDwarfRegsToLLVMRegs(X86EHFlavour0Dwarf2L, X86EHFlavour0Dwarf2LSize, true); break; case 1: RI->mapDwarfRegsToLLVMRegs(X86EHFlavour1Dwarf2L, X86EHFlavour1Dwarf2LSize, true); break; case 2: RI->mapDwarfRegsToLLVMRegs(X86EHFlavour2Dwarf2L, X86EHFlavour2Dwarf2LSize, true); break; } switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapLLVMRegsToDwarfRegs(X86DwarfFlavour0L2Dwarf, X86DwarfFlavour0L2DwarfSize, false); break; case 1: RI->mapLLVMRegsToDwarfRegs(X86DwarfFlavour1L2Dwarf, X86DwarfFlavour1L2DwarfSize, false); break; case 2: RI->mapLLVMRegsToDwarfRegs(X86DwarfFlavour2L2Dwarf, X86DwarfFlavour2L2DwarfSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapLLVMRegsToDwarfRegs(X86EHFlavour0L2Dwarf, X86EHFlavour0L2DwarfSize, true); break; case 1: RI->mapLLVMRegsToDwarfRegs(X86EHFlavour1L2Dwarf, X86EHFlavour1L2DwarfSize, true); break; case 2: RI->mapLLVMRegsToDwarfRegs(X86EHFlavour2L2Dwarf, X86EHFlavour2L2DwarfSize, true); break; } } } // end namespace llvm #endif // GET_REGINFO_MC_DESC /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Register Information Header Fragment *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_HEADER #undef GET_REGINFO_HEADER #include "llvm/CodeGen/TargetRegisterInfo.h" namespace llvm { class X86FrameLowering; struct X86GenRegisterInfo : public TargetRegisterInfo { explicit X86GenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0, unsigned PC = 0, unsigned HwMode = 0); unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override; LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override; LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override; const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass *, unsigned) const override; const TargetRegisterClass *getSubRegisterClass(const TargetRegisterClass *, unsigned) const override; const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override; unsigned getRegUnitWeight(unsigned RegUnit) const override; unsigned getNumRegPressureSets() const override; const char *getRegPressureSetName(unsigned Idx) const override; unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override; const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override; const int *getRegUnitPressureSets(unsigned RegUnit) const override; ArrayRef getRegMaskNames() const override; ArrayRef getRegMasks() const override; bool isGeneralPurposeRegister(const MachineFunction &, MCRegister) const override; bool isFixedRegister(const MachineFunction &, MCRegister) const override; bool isArgumentRegister(const MachineFunction &, MCRegister) const override; bool isConstantPhysReg(MCRegister PhysReg) const override final; /// Devirtualized TargetFrameLowering. static const X86FrameLowering *getFrameLowering( const MachineFunction &MF); }; namespace X86 { // Register classes extern const TargetRegisterClass GR8RegClass; extern const TargetRegisterClass GRH8RegClass; extern const TargetRegisterClass GR8_NOREXRegClass; extern const TargetRegisterClass GR8_ABCD_HRegClass; extern const TargetRegisterClass GR8_ABCD_LRegClass; extern const TargetRegisterClass GRH16RegClass; extern const TargetRegisterClass GR16RegClass; extern const TargetRegisterClass GR16_NOREXRegClass; extern const TargetRegisterClass VK1RegClass; extern const TargetRegisterClass VK16RegClass; extern const TargetRegisterClass VK2RegClass; extern const TargetRegisterClass VK4RegClass; extern const TargetRegisterClass VK8RegClass; extern const TargetRegisterClass VK16WMRegClass; extern const TargetRegisterClass VK1WMRegClass; extern const TargetRegisterClass VK2WMRegClass; extern const TargetRegisterClass VK4WMRegClass; extern const TargetRegisterClass VK8WMRegClass; extern const TargetRegisterClass SEGMENT_REGRegClass; extern const TargetRegisterClass GR16_ABCDRegClass; extern const TargetRegisterClass FPCCRRegClass; extern const TargetRegisterClass FR16XRegClass; extern const TargetRegisterClass FR16RegClass; extern const TargetRegisterClass VK16PAIRRegClass; extern const TargetRegisterClass VK1PAIRRegClass; extern const TargetRegisterClass VK2PAIRRegClass; extern const TargetRegisterClass VK4PAIRRegClass; extern const TargetRegisterClass VK8PAIRRegClass; extern const TargetRegisterClass VK16PAIR_with_sub_mask_0_in_VK16WMRegClass; extern const TargetRegisterClass FR32XRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBPRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESSRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass; extern const TargetRegisterClass DEBUG_REGRegClass; extern const TargetRegisterClass FR32RegClass; extern const TargetRegisterClass GR32RegClass; extern const TargetRegisterClass GR32_NOSPRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass; extern const TargetRegisterClass GR32_NOREXRegClass; extern const TargetRegisterClass VK32RegClass; extern const TargetRegisterClass GR32_NOREX_NOSPRegClass; extern const TargetRegisterClass RFP32RegClass; extern const TargetRegisterClass VK32WMRegClass; extern const TargetRegisterClass GR32_ABCDRegClass; extern const TargetRegisterClass GR32_TCRegClass; extern const TargetRegisterClass GR32_ABCD_and_GR32_TCRegClass; extern const TargetRegisterClass GR32_ADRegClass; extern const TargetRegisterClass GR32_BPSPRegClass; extern const TargetRegisterClass GR32_BSIRegClass; extern const TargetRegisterClass GR32_CBRegClass; extern const TargetRegisterClass GR32_DCRegClass; extern const TargetRegisterClass GR32_DIBPRegClass; extern const TargetRegisterClass GR32_SIDIRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass; extern const TargetRegisterClass CCRRegClass; extern const TargetRegisterClass DFCCRRegClass; extern const TargetRegisterClass GR32_ABCD_and_GR32_BSIRegClass; extern const TargetRegisterClass GR32_AD_and_GR32_DCRegClass; extern const TargetRegisterClass GR32_BPSP_and_GR32_DIBPRegClass; extern const TargetRegisterClass GR32_BPSP_and_GR32_TCRegClass; extern const TargetRegisterClass GR32_BSI_and_GR32_SIDIRegClass; extern const TargetRegisterClass GR32_CB_and_GR32_DCRegClass; extern const TargetRegisterClass GR32_DIBP_and_GR32_SIDIRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass; extern const TargetRegisterClass LOW32_ADDR_ACCESS_with_sub_32bitRegClass; extern const TargetRegisterClass RFP64RegClass; extern const TargetRegisterClass FR64XRegClass; extern const TargetRegisterClass GR64RegClass; extern const TargetRegisterClass CONTROL_REGRegClass; extern const TargetRegisterClass FR64RegClass; extern const TargetRegisterClass GR64_with_sub_8bitRegClass; extern const TargetRegisterClass GR64_NOSPRegClass; extern const TargetRegisterClass GR64PLTSafeRegClass; extern const TargetRegisterClass GR64_TCRegClass; extern const TargetRegisterClass GR64_NOREXRegClass; extern const TargetRegisterClass GR64_TCW64RegClass; extern const TargetRegisterClass GR64_TC_with_sub_8bitRegClass; extern const TargetRegisterClass GR64_NOSP_and_GR64_TCRegClass; extern const TargetRegisterClass GR64_TCW64_with_sub_8bitRegClass; extern const TargetRegisterClass GR64_TC_and_GR64_TCW64RegClass; extern const TargetRegisterClass GR64_with_sub_16bit_in_GR16_NOREXRegClass; extern const TargetRegisterClass VK64RegClass; extern const TargetRegisterClass VR64RegClass; extern const TargetRegisterClass GR64PLTSafe_and_GR64_TCRegClass; extern const TargetRegisterClass GR64_NOREX_NOSPRegClass; extern const TargetRegisterClass GR64_NOREX_and_GR64_TCRegClass; extern const TargetRegisterClass GR64_NOSP_and_GR64_TCW64RegClass; extern const TargetRegisterClass GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass; extern const TargetRegisterClass VK64WMRegClass; extern const TargetRegisterClass GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass; extern const TargetRegisterClass GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass; extern const TargetRegisterClass GR64PLTSafe_and_GR64_TCW64RegClass; extern const TargetRegisterClass GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass; extern const TargetRegisterClass GR64_NOREX_and_GR64_TCW64RegClass; extern const TargetRegisterClass GR64_ABCDRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_TCRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass; extern const TargetRegisterClass GR64_ADRegClass; extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESS_RBPRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSPRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSIRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CBRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DCRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBPRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_SIDIRegClass; extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESSRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClass; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClass; extern const TargetRegisterClass RSTRegClass; extern const TargetRegisterClass RFP80RegClass; extern const TargetRegisterClass RFP80_7RegClass; extern const TargetRegisterClass VR128XRegClass; extern const TargetRegisterClass VR128RegClass; extern const TargetRegisterClass VR256XRegClass; extern const TargetRegisterClass VR256RegClass; extern const TargetRegisterClass VR512RegClass; extern const TargetRegisterClass VR512_0_15RegClass; extern const TargetRegisterClass TILERegClass; } // end namespace X86 } // end namespace llvm #endif // GET_REGINFO_HEADER /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Target Register and Register Classes Information *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_TARGET_DESC #undef GET_REGINFO_TARGET_DESC namespace llvm { extern const MCRegisterClass X86MCRegisterClasses[]; static const MVT::SimpleValueType VTLists[] = { /* 0 */ MVT::i8, MVT::Other, /* 2 */ MVT::i16, MVT::Other, /* 4 */ MVT::i32, MVT::Other, /* 6 */ MVT::i64, MVT::Other, /* 8 */ MVT::f16, MVT::Other, /* 10 */ MVT::f80, MVT::f64, MVT::f32, MVT::Other, /* 14 */ MVT::f64, MVT::Other, /* 16 */ MVT::f80, MVT::Other, /* 18 */ MVT::v4f32, MVT::v2f64, MVT::v8f16, MVT::v8bf16, MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::f128, MVT::Other, /* 28 */ MVT::v1i1, MVT::Other, /* 30 */ MVT::v2i1, MVT::Other, /* 32 */ MVT::v4i1, MVT::Other, /* 34 */ MVT::v8i1, MVT::Other, /* 36 */ MVT::v16i1, MVT::Other, /* 38 */ MVT::v32i1, MVT::Other, /* 40 */ MVT::v64i1, MVT::Other, /* 42 */ MVT::v8f32, MVT::v4f64, MVT::v16f16, MVT::v16bf16, MVT::v32i8, MVT::v16i16, MVT::v8i32, MVT::v4i64, MVT::Other, /* 51 */ MVT::v16f32, MVT::v8f64, MVT::v32f16, MVT::v32bf16, MVT::v64i8, MVT::v32i16, MVT::v16i32, MVT::v8i64, MVT::Other, /* 60 */ MVT::v16f32, MVT::v8f64, MVT::v64i8, MVT::v32i16, MVT::v16i32, MVT::v8i64, MVT::Other, /* 67 */ MVT::x86mmx, MVT::Other, /* 69 */ MVT::Untyped, MVT::Other, /* 71 */ MVT::x86amx, MVT::Other, }; static const char *SubRegIndexNameTable[] = { "sub_8bit", "sub_8bit_hi", "sub_8bit_hi_phony", "sub_16bit", "sub_16bit_hi", "sub_32bit", "sub_mask_0", "sub_mask_1", "sub_xmm", "sub_ymm", "" }; static const LaneBitmask SubRegIndexLaneMaskTable[] = { LaneBitmask::getAll(), LaneBitmask(0x0000000000000001), // sub_8bit LaneBitmask(0x0000000000000002), // sub_8bit_hi LaneBitmask(0x0000000000000004), // sub_8bit_hi_phony LaneBitmask(0x0000000000000007), // sub_16bit LaneBitmask(0x0000000000000008), // sub_16bit_hi LaneBitmask(0x000000000000000F), // sub_32bit LaneBitmask(0x0000000000000010), // sub_mask_0 LaneBitmask(0x0000000000000020), // sub_mask_1 LaneBitmask(0x0000000000000040), // sub_xmm LaneBitmask(0x0000000000000040), // sub_ymm }; static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = { // Mode = 0 (Default) { 8, 8, 8, VTLists+0 }, // GR8 { 8, 8, 8, VTLists+0 }, // GRH8 { 8, 8, 8, VTLists+0 }, // GR8_NOREX { 8, 8, 8, VTLists+0 }, // GR8_ABCD_H { 8, 8, 8, VTLists+0 }, // GR8_ABCD_L { 16, 16, 16, VTLists+2 }, // GRH16 { 16, 16, 16, VTLists+2 }, // GR16 { 16, 16, 16, VTLists+2 }, // GR16_NOREX { 16, 16, 16, VTLists+28 }, // VK1 { 16, 16, 16, VTLists+36 }, // VK16 { 16, 16, 16, VTLists+30 }, // VK2 { 16, 16, 16, VTLists+32 }, // VK4 { 16, 16, 16, VTLists+34 }, // VK8 { 16, 16, 16, VTLists+36 }, // VK16WM { 16, 16, 16, VTLists+28 }, // VK1WM { 16, 16, 16, VTLists+30 }, // VK2WM { 16, 16, 16, VTLists+32 }, // VK4WM { 16, 16, 16, VTLists+34 }, // VK8WM { 16, 16, 16, VTLists+2 }, // SEGMENT_REG { 16, 16, 16, VTLists+2 }, // GR16_ABCD { 16, 16, 16, VTLists+2 }, // FPCCR { 32, 32, 16, VTLists+8 }, // FR16X { 32, 32, 16, VTLists+8 }, // FR16 { 32, 32, 16, VTLists+69 }, // VK16PAIR { 32, 32, 16, VTLists+69 }, // VK1PAIR { 32, 32, 16, VTLists+69 }, // VK2PAIR { 32, 32, 16, VTLists+69 }, // VK4PAIR { 32, 32, 16, VTLists+69 }, // VK8PAIR { 32, 32, 16, VTLists+69 }, // VK16PAIR_with_sub_mask_0_in_VK16WM { 32, 32, 32, VTLists+12 }, // FR32X { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit { 32, 32, 32, VTLists+4 }, // DEBUG_REG { 32, 32, 32, VTLists+12 }, // FR32 { 32, 32, 32, VTLists+4 }, // GR32 { 32, 32, 32, VTLists+4 }, // GR32_NOSP { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX { 32, 32, 32, VTLists+4 }, // GR32_NOREX { 32, 32, 32, VTLists+38 }, // VK32 { 32, 32, 32, VTLists+4 }, // GR32_NOREX_NOSP { 32, 32, 32, VTLists+12 }, // RFP32 { 32, 32, 32, VTLists+38 }, // VK32WM { 32, 32, 32, VTLists+4 }, // GR32_ABCD { 32, 32, 32, VTLists+4 }, // GR32_TC { 32, 32, 32, VTLists+4 }, // GR32_ABCD_and_GR32_TC { 32, 32, 32, VTLists+4 }, // GR32_AD { 32, 32, 32, VTLists+4 }, // GR32_BPSP { 32, 32, 32, VTLists+4 }, // GR32_BSI { 32, 32, 32, VTLists+4 }, // GR32_CB { 32, 32, 32, VTLists+4 }, // GR32_DC { 32, 32, 32, VTLists+4 }, // GR32_DIBP { 32, 32, 32, VTLists+4 }, // GR32_SIDI { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit { 32, 32, 32, VTLists+4 }, // CCR { 32, 32, 32, VTLists+4 }, // DFCCR { 32, 32, 32, VTLists+4 }, // GR32_ABCD_and_GR32_BSI { 32, 32, 32, VTLists+4 }, // GR32_AD_and_GR32_DC { 32, 32, 32, VTLists+4 }, // GR32_BPSP_and_GR32_DIBP { 32, 32, 32, VTLists+4 }, // GR32_BPSP_and_GR32_TC { 32, 32, 32, VTLists+4 }, // GR32_BSI_and_GR32_SIDI { 32, 32, 32, VTLists+4 }, // GR32_CB_and_GR32_DC { 32, 32, 32, VTLists+4 }, // GR32_DIBP_and_GR32_SIDI { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_with_sub_32bit { 64, 64, 32, VTLists+14 }, // RFP64 { 64, 64, 64, VTLists+14 }, // FR64X { 64, 64, 64, VTLists+6 }, // GR64 { 64, 64, 64, VTLists+6 }, // CONTROL_REG { 64, 64, 64, VTLists+14 }, // FR64 { 64, 64, 64, VTLists+6 }, // GR64_with_sub_8bit { 64, 64, 64, VTLists+6 }, // GR64_NOSP { 64, 64, 64, VTLists+6 }, // GR64PLTSafe { 64, 64, 64, VTLists+6 }, // GR64_TC { 64, 64, 64, VTLists+6 }, // GR64_NOREX { 64, 64, 64, VTLists+6 }, // GR64_TCW64 { 64, 64, 64, VTLists+6 }, // GR64_TC_with_sub_8bit { 64, 64, 64, VTLists+6 }, // GR64_NOSP_and_GR64_TC { 64, 64, 64, VTLists+6 }, // GR64_TCW64_with_sub_8bit { 64, 64, 64, VTLists+6 }, // GR64_TC_and_GR64_TCW64 { 64, 64, 64, VTLists+6 }, // GR64_with_sub_16bit_in_GR16_NOREX { 64, 64, 64, VTLists+40 }, // VK64 { 64, 64, 64, VTLists+67 }, // VR64 { 64, 64, 64, VTLists+6 }, // GR64PLTSafe_and_GR64_TC { 64, 64, 64, VTLists+6 }, // GR64_NOREX_NOSP { 64, 64, 64, VTLists+6 }, // GR64_NOREX_and_GR64_TC { 64, 64, 64, VTLists+6 }, // GR64_NOSP_and_GR64_TCW64 { 64, 64, 64, VTLists+6 }, // GR64_TCW64_and_GR64_TC_with_sub_8bit { 64, 64, 64, VTLists+40 }, // VK64WM { 64, 64, 64, VTLists+6 }, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 { 64, 64, 64, VTLists+6 }, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX { 64, 64, 64, VTLists+6 }, // GR64PLTSafe_and_GR64_TCW64 { 64, 64, 64, VTLists+6 }, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC { 64, 64, 64, VTLists+6 }, // GR64_NOREX_and_GR64_TCW64 { 64, 64, 64, VTLists+6 }, // GR64_ABCD { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_TC { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC { 64, 64, 64, VTLists+6 }, // GR64_AD { 64, 64, 64, VTLists+6 }, // GR64_and_LOW32_ADDR_ACCESS_RBP { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BPSP { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BSI { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_CB { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_DC { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_DIBP { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_SIDI { 64, 64, 64, VTLists+6 }, // GR64_and_LOW32_ADDR_ACCESS { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI { 80, 80, 32, VTLists+10 }, // RST { 80, 80, 32, VTLists+16 }, // RFP80 { 80, 80, 32, VTLists+16 }, // RFP80_7 { 128, 128, 128, VTLists+18 }, // VR128X { 128, 128, 128, VTLists+18 }, // VR128 { 256, 256, 256, VTLists+42 }, // VR256X { 256, 256, 256, VTLists+42 }, // VR256 { 512, 512, 512, VTLists+51 }, // VR512 { 512, 512, 512, VTLists+60 }, // VR512_0_15 { 8192, 8192, 8192, VTLists+71 }, // TILE }; static const TargetRegisterClass *const NullRegClasses[] = { nullptr }; static const uint32_t GR8SubClassMask[] = { 0x0000001d, 0x00000000, 0x00000000, 0x00000000, 0x000800c0, 0xff1ff979, 0xded971c0, 0x0001fdfb, // sub_8bit 0x00080000, 0x23066800, 0x40000000, 0x00008c63, // sub_8bit_hi }; static const uint32_t GRH8SubClassMask[] = { 0x00000002, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t GR8_NOREXSubClassMask[] = { 0x0000001c, 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x23066800, 0x40000000, 0x00008c63, // sub_8bit 0x00080000, 0x23066800, 0x40000000, 0x00008c63, // sub_8bit_hi }; static const uint32_t GR8_ABCD_HSubClassMask[] = { 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x23066800, 0x40000000, 0x00008c63, // sub_8bit_hi }; static const uint32_t GR8_ABCD_LSubClassMask[] = { 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x23066800, 0x40000000, 0x00008c63, // sub_8bit }; static const uint32_t GRH16SubClassMask[] = { 0x00000020, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t GR16SubClassMask[] = { 0x000800c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff1ff979, 0xded971c0, 0x0001fdfb, // sub_16bit }; static const uint32_t GR16_NOREXSubClassMask[] = { 0x00080080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff1ff960, 0xd4110000, 0x0001fdfb, // sub_16bit }; static const uint32_t VK1SubClassMask[] = { 0x0003ff00, 0x00000480, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK16SubClassMask[] = { 0x0003ff00, 0x00000480, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK2SubClassMask[] = { 0x0003ff00, 0x00000480, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK4SubClassMask[] = { 0x0003ff00, 0x00000480, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK8SubClassMask[] = { 0x0003ff00, 0x00000480, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK16WMSubClassMask[] = { 0x0003e000, 0x00000400, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK1WMSubClassMask[] = { 0x0003e000, 0x00000400, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK2WMSubClassMask[] = { 0x0003e000, 0x00000400, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK4WMSubClassMask[] = { 0x0003e000, 0x00000400, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VK8WMSubClassMask[] = { 0x0003e000, 0x00000400, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t SEGMENT_REGSubClassMask[] = { 0x00040000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t GR16_ABCDSubClassMask[] = { 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x23066800, 0x40000000, 0x00008c63, // sub_16bit }; static const uint32_t FPCCRSubClassMask[] = { 0x00100000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t FR16XSubClassMask[] = { 0x20600000, 0x00000004, 0x00000024, 0x00300000, 0x00000000, 0x00000000, 0x00000000, 0x03c00000, // sub_xmm }; static const uint32_t FR16SubClassMask[] = { 0x00400000, 0x00000004, 0x00000020, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x02800000, // sub_xmm }; static const uint32_t VK16PAIRSubClassMask[] = { 0x1f800000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t VK1PAIRSubClassMask[] = { 0x1f800000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t VK2PAIRSubClassMask[] = { 0x1f800000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t VK4PAIRSubClassMask[] = { 0x1f800000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t VK8PAIRSubClassMask[] = { 0x1f800000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t VK16PAIR_with_sub_mask_0_in_VK16WMSubClassMask[] = { 0x10000000, 0x00000000, 0x00000000, 0x00000000, }; static const uint32_t FR32XSubClassMask[] = { 0x20000000, 0x00000004, 0x00000024, 0x00300000, 0x00000000, 0x00000000, 0x00000000, 0x03c00000, // sub_xmm }; static const uint32_t LOW32_ADDR_ACCESS_RBPSubClassMask[] = { 0xc0000000, 0xff3ff979, 0x00000001, 0x00001204, 0x00000000, 0x80000000, 0xded971c0, 0x0001fdfb, // sub_32bit }; static const uint32_t LOW32_ADDR_ACCESSSubClassMask[] = { 0x80000000, 0x7f1ff958, 0x00000001, 0x00000200, 0x00000000, 0x80000000, 0xded971c0, 0x0001fdfb, // sub_32bit }; static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_8bitSubClassMask[] = { 0x00000000, 0xff1ff979, 0x00000000, 0x00001000, 0x00000000, 0x80000000, 0xded971c0, 0x0001fdfb, // sub_32bit }; static const uint32_t DEBUG_REGSubClassMask[] = { 0x00000000, 0x00000002, 0x00000000, 0x00000000, }; static const uint32_t FR32SubClassMask[] = { 0x00000000, 0x00000004, 0x00000020, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x02800000, // sub_xmm }; static const uint32_t GR32SubClassMask[] = { 0x00000000, 0x7f1ff958, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xded971c0, 0x0001fdfb, // sub_32bit }; static const uint32_t GR32_NOSPSubClassMask[] = { 0x00000000, 0x771f6910, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x5a582180, 0x0001ddf3, // sub_32bit }; static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSubClassMask[] = { 0x00000000, 0xff1ff960, 0x00000000, 0x00001000, 0x00000000, 0x80000000, 0xd4110000, 0x0001fdfb, // sub_32bit }; static const uint32_t GR32_NOREXSubClassMask[] = { 0x00000000, 0x7f1ff940, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xd4110000, 0x0001fdfb, // sub_32bit }; static const uint32_t VK32SubClassMask[] = { 0x00000000, 0x00000480, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t GR32_NOREX_NOSPSubClassMask[] = { 0x00000000, 0x771f6900, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x50100000, 0x0001ddf3, // sub_32bit }; static const uint32_t RFP32SubClassMask[] = { 0x00000000, 0x00000200, 0x00000002, 0x00040000, }; static const uint32_t VK32WMSubClassMask[] = { 0x00000000, 0x00000400, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t GR32_ABCDSubClassMask[] = { 0x00000000, 0x23066800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x00008c63, // sub_32bit }; static const uint32_t GR32_TCSubClassMask[] = { 0x00000000, 0x2a047000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x0000a843, // sub_32bit }; static const uint32_t GR32_ABCD_and_GR32_TCSubClassMask[] = { 0x00000000, 0x22046000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008843, // sub_32bit }; static const uint32_t GR32_ADSubClassMask[] = { 0x00000000, 0x02004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000802, // sub_32bit }; static const uint32_t GR32_BPSPSubClassMask[] = { 0x00000000, 0x0c008000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00003008, // sub_32bit }; static const uint32_t GR32_BSISubClassMask[] = { 0x00000000, 0x11010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004410, // sub_32bit }; static const uint32_t GR32_CBSubClassMask[] = { 0x00000000, 0x21020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008420, // sub_32bit }; static const uint32_t GR32_DCSubClassMask[] = { 0x00000000, 0x22040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008840, // sub_32bit }; static const uint32_t GR32_DIBPSubClassMask[] = { 0x00000000, 0x44080000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00011080, // sub_32bit }; static const uint32_t GR32_SIDISubClassMask[] = { 0x00000000, 0x50100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00014100, // sub_32bit }; static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_32bitSubClassMask[] = { 0x00000000, 0x80200000, 0x00000001, 0x00001204, }; static const uint32_t CCRSubClassMask[] = { 0x00000000, 0x00400000, 0x00000000, 0x00000000, }; static const uint32_t DFCCRSubClassMask[] = { 0x00000000, 0x00800000, 0x00000000, 0x00000000, }; static const uint32_t GR32_ABCD_and_GR32_BSISubClassMask[] = { 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, // sub_32bit }; static const uint32_t GR32_AD_and_GR32_DCSubClassMask[] = { 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, // sub_32bit }; static const uint32_t GR32_BPSP_and_GR32_DIBPSubClassMask[] = { 0x00000000, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00001000, // sub_32bit }; static const uint32_t GR32_BPSP_and_GR32_TCSubClassMask[] = { 0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002000, // sub_32bit }; static const uint32_t GR32_BSI_and_GR32_SIDISubClassMask[] = { 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, // sub_32bit }; static const uint32_t GR32_CB_and_GR32_DCSubClassMask[] = { 0x00000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, // sub_32bit }; static const uint32_t GR32_DIBP_and_GR32_SIDISubClassMask[] = { 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, // sub_32bit }; static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSubClassMask[] = { 0x00000000, 0x80000000, 0x00000000, 0x00001000, }; static const uint32_t LOW32_ADDR_ACCESS_with_sub_32bitSubClassMask[] = { 0x00000000, 0x00000000, 0x00000001, 0x00000200, }; static const uint32_t RFP64SubClassMask[] = { 0x00000000, 0x00000000, 0x00000002, 0x00040000, }; static const uint32_t FR64XSubClassMask[] = { 0x00000000, 0x00000000, 0x00000024, 0x00300000, 0x00000000, 0x00000000, 0x00000000, 0x03c00000, // sub_xmm }; static const uint32_t GR64SubClassMask[] = { 0x00000000, 0x00000000, 0xfef9ffc8, 0x0001ffff, }; static const uint32_t CONTROL_REGSubClassMask[] = { 0x00000000, 0x00000000, 0x00000010, 0x00000000, }; static const uint32_t FR64SubClassMask[] = { 0x00000000, 0x00000000, 0x00000020, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x02800000, // sub_xmm }; static const uint32_t GR64_with_sub_8bitSubClassMask[] = { 0x00000000, 0x00000000, 0xded971c0, 0x0001fdfb, }; static const uint32_t GR64_NOSPSubClassMask[] = { 0x00000000, 0x00000000, 0x5a582180, 0x0001ddf3, }; static const uint32_t GR64PLTSafeSubClassMask[] = { 0x00000000, 0x00000000, 0x58180100, 0x0001ddf3, }; static const uint32_t GR64_TCSubClassMask[] = { 0x00000000, 0x00000000, 0xbea8b200, 0x0001eb43, }; static const uint32_t GR64_NOREXSubClassMask[] = { 0x00000000, 0x00000000, 0xf4310400, 0x0001ffff, }; static const uint32_t GR64_TCW64SubClassMask[] = { 0x00000000, 0x00000000, 0xaac0c800, 0x0000aa43, }; static const uint32_t GR64_TC_with_sub_8bitSubClassMask[] = { 0x00000000, 0x00000000, 0x9e883000, 0x0001e943, }; static const uint32_t GR64_NOSP_and_GR64_TCSubClassMask[] = { 0x00000000, 0x00000000, 0x1a082000, 0x0001c943, }; static const uint32_t GR64_TCW64_with_sub_8bitSubClassMask[] = { 0x00000000, 0x00000000, 0x8ac04000, 0x0000a843, }; static const uint32_t GR64_TC_and_GR64_TCW64SubClassMask[] = { 0x00000000, 0x00000000, 0xaa808000, 0x0000aa43, }; static const uint32_t GR64_with_sub_16bit_in_GR16_NOREXSubClassMask[] = { 0x00000000, 0x00000000, 0xd4110000, 0x0001fdfb, }; static const uint32_t VK64SubClassMask[] = { 0x00000000, 0x00000000, 0x01020000, 0x00000000, 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t VR64SubClassMask[] = { 0x00000000, 0x00000000, 0x00040000, 0x00000000, }; static const uint32_t GR64PLTSafe_and_GR64_TCSubClassMask[] = { 0x00000000, 0x00000000, 0x18080000, 0x0001c943, }; static const uint32_t GR64_NOREX_NOSPSubClassMask[] = { 0x00000000, 0x00000000, 0x50100000, 0x0001ddf3, }; static const uint32_t GR64_NOREX_and_GR64_TCSubClassMask[] = { 0x00000000, 0x00000000, 0xb4200000, 0x0001eb43, }; static const uint32_t GR64_NOSP_and_GR64_TCW64SubClassMask[] = { 0x00000000, 0x00000000, 0x0a400000, 0x00008843, }; static const uint32_t GR64_TCW64_and_GR64_TC_with_sub_8bitSubClassMask[] = { 0x00000000, 0x00000000, 0x8a800000, 0x0000a843, }; static const uint32_t VK64WMSubClassMask[] = { 0x00000000, 0x00000000, 0x01000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_0 0x1f800000, 0x00000000, 0x00000000, 0x00000000, // sub_mask_1 }; static const uint32_t GR64_TC_and_GR64_NOSP_and_GR64_TCW64SubClassMask[] = { 0x00000000, 0x00000000, 0x0a000000, 0x00008843, }; static const uint32_t GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXSubClassMask[] = { 0x00000000, 0x00000000, 0x94000000, 0x0001e943, }; static const uint32_t GR64PLTSafe_and_GR64_TCW64SubClassMask[] = { 0x00000000, 0x00000000, 0x08000000, 0x00008843, }; static const uint32_t GR64_NOREX_and_GR64PLTSafe_and_GR64_TCSubClassMask[] = { 0x00000000, 0x00000000, 0x10000000, 0x0001c943, }; static const uint32_t GR64_NOREX_and_GR64_TCW64SubClassMask[] = { 0x00000000, 0x00000000, 0xa0000000, 0x0000aa43, }; static const uint32_t GR64_ABCDSubClassMask[] = { 0x00000000, 0x00000000, 0x40000000, 0x00008c63, }; static const uint32_t GR64_with_sub_32bit_in_GR32_TCSubClassMask[] = { 0x00000000, 0x00000000, 0x80000000, 0x0000a843, }; static const uint32_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00008843, }; static const uint32_t GR64_ADSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000802, }; static const uint32_t GR64_and_LOW32_ADDR_ACCESS_RBPSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00001204, }; static const uint32_t GR64_with_sub_32bit_in_GR32_BPSPSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00003008, }; static const uint32_t GR64_with_sub_32bit_in_GR32_BSISubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00004410, }; static const uint32_t GR64_with_sub_32bit_in_GR32_CBSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00008420, }; static const uint32_t GR64_with_sub_32bit_in_GR32_DCSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00008840, }; static const uint32_t GR64_with_sub_32bit_in_GR32_DIBPSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00011080, }; static const uint32_t GR64_with_sub_32bit_in_GR32_SIDISubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00014100, }; static const uint32_t GR64_and_LOW32_ADDR_ACCESSSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000200, }; static const uint32_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000400, }; static const uint32_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000800, }; static const uint32_t GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00001000, }; static const uint32_t GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00002000, }; static const uint32_t GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00004000, }; static const uint32_t GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00008000, }; static const uint32_t GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00010000, }; static const uint32_t RSTSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00020000, }; static const uint32_t RFP80SubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00040000, }; static const uint32_t RFP80_7SubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00080000, }; static const uint32_t VR128XSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00300000, 0x00000000, 0x00000000, 0x00000000, 0x03c00000, // sub_xmm }; static const uint32_t VR128SubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x02800000, // sub_xmm }; static const uint32_t VR256XSubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00c00000, 0x00000000, 0x00000000, 0x00000000, 0x03000000, // sub_ymm }; static const uint32_t VR256SubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, // sub_ymm }; static const uint32_t VR512SubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x03000000, }; static const uint32_t VR512_0_15SubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x02000000, }; static const uint32_t TILESubClassMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x04000000, }; static const uint16_t SuperRegIdxSeqs[] = { /* 0 */ 1, 0, /* 2 */ 1, 2, 0, /* 5 */ 4, 0, /* 7 */ 6, 0, /* 9 */ 7, 8, 0, /* 12 */ 9, 0, /* 14 */ 10, 0, }; static const TargetRegisterClass *const GR8_NOREXSuperclasses[] = { &X86::GR8RegClass, nullptr }; static const TargetRegisterClass *const GR8_ABCD_HSuperclasses[] = { &X86::GR8RegClass, &X86::GR8_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR8_ABCD_LSuperclasses[] = { &X86::GR8RegClass, &X86::GR8_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR16_NOREXSuperclasses[] = { &X86::GR16RegClass, nullptr }; static const TargetRegisterClass *const VK1Superclasses[] = { &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, nullptr }; static const TargetRegisterClass *const VK16Superclasses[] = { &X86::VK1RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, nullptr }; static const TargetRegisterClass *const VK2Superclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK4RegClass, &X86::VK8RegClass, nullptr }; static const TargetRegisterClass *const VK4Superclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK8RegClass, nullptr }; static const TargetRegisterClass *const VK8Superclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, nullptr }; static const TargetRegisterClass *const VK16WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK1WMRegClass, &X86::VK2WMRegClass, &X86::VK4WMRegClass, &X86::VK8WMRegClass, nullptr }; static const TargetRegisterClass *const VK1WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK2WMRegClass, &X86::VK4WMRegClass, &X86::VK8WMRegClass, nullptr }; static const TargetRegisterClass *const VK2WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK1WMRegClass, &X86::VK4WMRegClass, &X86::VK8WMRegClass, nullptr }; static const TargetRegisterClass *const VK4WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK1WMRegClass, &X86::VK2WMRegClass, &X86::VK8WMRegClass, nullptr }; static const TargetRegisterClass *const VK8WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK1WMRegClass, &X86::VK2WMRegClass, &X86::VK4WMRegClass, nullptr }; static const TargetRegisterClass *const GR16_ABCDSuperclasses[] = { &X86::GR16RegClass, &X86::GR16_NOREXRegClass, nullptr }; static const TargetRegisterClass *const FR16Superclasses[] = { &X86::FR16XRegClass, nullptr }; static const TargetRegisterClass *const VK16PAIRSuperclasses[] = { &X86::VK1PAIRRegClass, &X86::VK2PAIRRegClass, &X86::VK4PAIRRegClass, &X86::VK8PAIRRegClass, nullptr }; static const TargetRegisterClass *const VK1PAIRSuperclasses[] = { &X86::VK16PAIRRegClass, &X86::VK2PAIRRegClass, &X86::VK4PAIRRegClass, &X86::VK8PAIRRegClass, nullptr }; static const TargetRegisterClass *const VK2PAIRSuperclasses[] = { &X86::VK16PAIRRegClass, &X86::VK1PAIRRegClass, &X86::VK4PAIRRegClass, &X86::VK8PAIRRegClass, nullptr }; static const TargetRegisterClass *const VK4PAIRSuperclasses[] = { &X86::VK16PAIRRegClass, &X86::VK1PAIRRegClass, &X86::VK2PAIRRegClass, &X86::VK8PAIRRegClass, nullptr }; static const TargetRegisterClass *const VK8PAIRSuperclasses[] = { &X86::VK16PAIRRegClass, &X86::VK1PAIRRegClass, &X86::VK2PAIRRegClass, &X86::VK4PAIRRegClass, nullptr }; static const TargetRegisterClass *const VK16PAIR_with_sub_mask_0_in_VK16WMSuperclasses[] = { &X86::VK16PAIRRegClass, &X86::VK1PAIRRegClass, &X86::VK2PAIRRegClass, &X86::VK4PAIRRegClass, &X86::VK8PAIRRegClass, nullptr }; static const TargetRegisterClass *const FR32XSuperclasses[] = { &X86::FR16XRegClass, nullptr }; static const TargetRegisterClass *const LOW32_ADDR_ACCESSSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, nullptr }; static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_8bitSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, nullptr }; static const TargetRegisterClass *const FR32Superclasses[] = { &X86::FR16XRegClass, &X86::FR16RegClass, &X86::FR32XRegClass, nullptr }; static const TargetRegisterClass *const GR32Superclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, nullptr }; static const TargetRegisterClass *const GR32_NOSPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, nullptr }; static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, nullptr }; static const TargetRegisterClass *const GR32_NOREXSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, nullptr }; static const TargetRegisterClass *const VK32Superclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, nullptr }; static const TargetRegisterClass *const GR32_NOREX_NOSPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, nullptr }; static const TargetRegisterClass *const VK32WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK1WMRegClass, &X86::VK2WMRegClass, &X86::VK4WMRegClass, &X86::VK8WMRegClass, &X86::VK32RegClass, nullptr }; static const TargetRegisterClass *const GR32_ABCDSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR32_TCSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR32_ABCD_and_GR32_TCSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_TCRegClass, nullptr }; static const TargetRegisterClass *const GR32_ADSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_TCRegClass, &X86::GR32_ABCD_and_GR32_TCRegClass, nullptr }; static const TargetRegisterClass *const GR32_BPSPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR32_BSISuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR32_CBSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, nullptr }; static const TargetRegisterClass *const GR32_DCSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_TCRegClass, &X86::GR32_ABCD_and_GR32_TCRegClass, nullptr }; static const TargetRegisterClass *const GR32_DIBPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR32_SIDISuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_32bitSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, nullptr }; static const TargetRegisterClass *const GR32_ABCD_and_GR32_BSISuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_BSIRegClass, &X86::GR32_CBRegClass, nullptr }; static const TargetRegisterClass *const GR32_AD_and_GR32_DCSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_TCRegClass, &X86::GR32_ABCD_and_GR32_TCRegClass, &X86::GR32_ADRegClass, &X86::GR32_DCRegClass, nullptr }; static const TargetRegisterClass *const GR32_BPSP_and_GR32_DIBPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_BPSPRegClass, &X86::GR32_DIBPRegClass, nullptr }; static const TargetRegisterClass *const GR32_BPSP_and_GR32_TCSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_TCRegClass, &X86::GR32_BPSPRegClass, nullptr }; static const TargetRegisterClass *const GR32_BSI_and_GR32_SIDISuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_BSIRegClass, &X86::GR32_SIDIRegClass, nullptr }; static const TargetRegisterClass *const GR32_CB_and_GR32_DCSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_TCRegClass, &X86::GR32_ABCD_and_GR32_TCRegClass, &X86::GR32_CBRegClass, &X86::GR32_DCRegClass, nullptr }; static const TargetRegisterClass *const GR32_DIBP_and_GR32_SIDISuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR32_DIBPRegClass, &X86::GR32_SIDIRegClass, nullptr }; static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass, nullptr }; static const TargetRegisterClass *const LOW32_ADDR_ACCESS_with_sub_32bitSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass, nullptr }; static const TargetRegisterClass *const RFP64Superclasses[] = { &X86::RFP32RegClass, nullptr }; static const TargetRegisterClass *const FR64XSuperclasses[] = { &X86::FR16XRegClass, &X86::FR32XRegClass, nullptr }; static const TargetRegisterClass *const FR64Superclasses[] = { &X86::FR16XRegClass, &X86::FR16RegClass, &X86::FR32XRegClass, &X86::FR32RegClass, &X86::FR64XRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_8bitSuperclasses[] = { &X86::GR64RegClass, nullptr }; static const TargetRegisterClass *const GR64_NOSPSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, nullptr }; static const TargetRegisterClass *const GR64PLTSafeSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR64_TCSuperclasses[] = { &X86::GR64RegClass, nullptr }; static const TargetRegisterClass *const GR64_NOREXSuperclasses[] = { &X86::GR64RegClass, nullptr }; static const TargetRegisterClass *const GR64_TCW64Superclasses[] = { &X86::GR64RegClass, nullptr }; static const TargetRegisterClass *const GR64_TC_with_sub_8bitSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_NOSP_and_GR64_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64_TCRegClass, &X86::GR64_TC_with_sub_8bitRegClass, nullptr }; static const TargetRegisterClass *const GR64_TCW64_with_sub_8bitSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_TCW64RegClass, nullptr }; static const TargetRegisterClass *const GR64_TC_and_GR64_TCW64Superclasses[] = { &X86::GR64RegClass, &X86::GR64_TCRegClass, &X86::GR64_TCW64RegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_16bit_in_GR16_NOREXSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOREXRegClass, nullptr }; static const TargetRegisterClass *const VK64Superclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK32RegClass, nullptr }; static const TargetRegisterClass *const GR64PLTSafe_and_GR64_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_NOREX_NOSPSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR64_NOREX_and_GR64_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR64_NOSP_and_GR64_TCW64Superclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, nullptr }; static const TargetRegisterClass *const GR64_TCW64_and_GR64_TC_with_sub_8bitSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_TCRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, nullptr }; static const TargetRegisterClass *const VK64WMSuperclasses[] = { &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK1WMRegClass, &X86::VK2WMRegClass, &X86::VK4WMRegClass, &X86::VK8WMRegClass, &X86::VK32RegClass, &X86::VK32WMRegClass, &X86::VK64RegClass, nullptr }; static const TargetRegisterClass *const GR64_TC_and_GR64_NOSP_and_GR64_TCW64Superclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64_TCRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, nullptr }; static const TargetRegisterClass *const GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64PLTSafe_and_GR64_TCW64Superclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, nullptr }; static const TargetRegisterClass *const GR64_NOREX_and_GR64PLTSafe_and_GR64_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR64_NOREX_and_GR64_TCW64Superclasses[] = { &X86::GR64RegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_ABCDSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_ADSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_and_LOW32_ADDR_ACCESS_RBPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass, &X86::GR64RegClass, &X86::GR64_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BPSPSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BSISuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_CBSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_ABCDRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_DCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_DIBPSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_SIDISuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, nullptr }; static const TargetRegisterClass *const GR64_and_LOW32_ADDR_ACCESSSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass, &X86::LOW32_ADDR_ACCESS_with_sub_32bitRegClass, &X86::GR64RegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_BSIRegClass, &X86::GR64_with_sub_32bit_in_GR32_CBRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass, &X86::GR64_ADRegClass, &X86::GR64_with_sub_32bit_in_GR32_DCRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSuperclasses[] = { &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass, &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClass, &X86::GR64_with_sub_32bit_in_GR32_BPSPRegClass, &X86::GR64_with_sub_32bit_in_GR32_DIBPRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_BPSPRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_BSIRegClass, &X86::GR64_with_sub_32bit_in_GR32_SIDIRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_CBRegClass, &X86::GR64_with_sub_32bit_in_GR32_DCRegClass, nullptr }; static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISuperclasses[] = { &X86::GR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_DIBPRegClass, &X86::GR64_with_sub_32bit_in_GR32_SIDIRegClass, nullptr }; static const TargetRegisterClass *const RFP80Superclasses[] = { &X86::RFP32RegClass, &X86::RFP64RegClass, nullptr }; static const TargetRegisterClass *const VR128XSuperclasses[] = { &X86::FR16XRegClass, &X86::FR32XRegClass, &X86::FR64XRegClass, nullptr }; static const TargetRegisterClass *const VR128Superclasses[] = { &X86::FR16XRegClass, &X86::FR16RegClass, &X86::FR32XRegClass, &X86::FR32RegClass, &X86::FR64XRegClass, &X86::FR64RegClass, &X86::VR128XRegClass, nullptr }; static const TargetRegisterClass *const VR256Superclasses[] = { &X86::VR256XRegClass, nullptr }; static const TargetRegisterClass *const VR512_0_15Superclasses[] = { &X86::VR512RegClass, nullptr }; static inline unsigned GR8AltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64Bit(); } static ArrayRef GR8GetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { X86::AL, X86::CL, X86::DL, X86::BL, X86::SIL, X86::DIL, X86::BPL, X86::SPL, X86::R8B, X86::R9B, X86::R10B, X86::R11B, X86::R14B, X86::R15B, X86::R12B, X86::R13B }; const MCRegisterClass &MCR = X86MCRegisterClasses[X86::GR8RegClassID]; const ArrayRef Order[] = { ArrayRef(MCR.begin(), MCR.getNumRegs()), ArrayRef(AltOrder1) }; const unsigned Select = GR8AltOrderSelect(MF); assert(Select < 2); return Order[Select]; } static inline unsigned GR8_NOREXAltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64Bit(); } static ArrayRef GR8_NOREXGetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { X86::AL, X86::CL, X86::DL, X86::BL }; const MCRegisterClass &MCR = X86MCRegisterClasses[X86::GR8_NOREXRegClassID]; const ArrayRef Order[] = { ArrayRef(MCR.begin(), MCR.getNumRegs()), ArrayRef(AltOrder1) }; const unsigned Select = GR8_NOREXAltOrderSelect(MF); assert(Select < 2); return Order[Select]; } namespace X86 { // Register class instances extern const TargetRegisterClass GR8RegClass = { &X86MCRegisterClasses[GR8RegClassID], GR8SubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, GR8GetRawAllocationOrder }; extern const TargetRegisterClass GRH8RegClass = { &X86MCRegisterClasses[GRH8RegClassID], GRH8SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GR8_NOREXRegClass = { &X86MCRegisterClasses[GR8_NOREXRegClassID], GR8_NOREXSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR8_NOREXSuperclasses, GR8_NOREXGetRawAllocationOrder }; extern const TargetRegisterClass GR8_ABCD_HRegClass = { &X86MCRegisterClasses[GR8_ABCD_HRegClassID], GR8_ABCD_HSubClassMask, SuperRegIdxSeqs + 3, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR8_ABCD_HSuperclasses, nullptr }; extern const TargetRegisterClass GR8_ABCD_LRegClass = { &X86MCRegisterClasses[GR8_ABCD_LRegClassID], GR8_ABCD_LSubClassMask, SuperRegIdxSeqs + 0, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR8_ABCD_LSuperclasses, nullptr }; extern const TargetRegisterClass GRH16RegClass = { &X86MCRegisterClasses[GRH16RegClassID], GRH16SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GR16RegClass = { &X86MCRegisterClasses[GR16RegClassID], GR16SubClassMask, SuperRegIdxSeqs + 5, LaneBitmask(0x0000000000000003), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GR16_NOREXRegClass = { &X86MCRegisterClasses[GR16_NOREXRegClassID], GR16_NOREXSubClassMask, SuperRegIdxSeqs + 5, LaneBitmask(0x0000000000000003), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR16_NOREXSuperclasses, nullptr }; extern const TargetRegisterClass VK1RegClass = { &X86MCRegisterClasses[VK1RegClassID], VK1SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK1Superclasses, nullptr }; extern const TargetRegisterClass VK16RegClass = { &X86MCRegisterClasses[VK16RegClassID], VK16SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK16Superclasses, nullptr }; extern const TargetRegisterClass VK2RegClass = { &X86MCRegisterClasses[VK2RegClassID], VK2SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK2Superclasses, nullptr }; extern const TargetRegisterClass VK4RegClass = { &X86MCRegisterClasses[VK4RegClassID], VK4SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK4Superclasses, nullptr }; extern const TargetRegisterClass VK8RegClass = { &X86MCRegisterClasses[VK8RegClassID], VK8SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK8Superclasses, nullptr }; extern const TargetRegisterClass VK16WMRegClass = { &X86MCRegisterClasses[VK16WMRegClassID], VK16WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK16WMSuperclasses, nullptr }; extern const TargetRegisterClass VK1WMRegClass = { &X86MCRegisterClasses[VK1WMRegClassID], VK1WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK1WMSuperclasses, nullptr }; extern const TargetRegisterClass VK2WMRegClass = { &X86MCRegisterClasses[VK2WMRegClassID], VK2WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK2WMSuperclasses, nullptr }; extern const TargetRegisterClass VK4WMRegClass = { &X86MCRegisterClasses[VK4WMRegClassID], VK4WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK4WMSuperclasses, nullptr }; extern const TargetRegisterClass VK8WMRegClass = { &X86MCRegisterClasses[VK8WMRegClassID], VK8WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK8WMSuperclasses, nullptr }; extern const TargetRegisterClass SEGMENT_REGRegClass = { &X86MCRegisterClasses[SEGMENT_REGRegClassID], SEGMENT_REGSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GR16_ABCDRegClass = { &X86MCRegisterClasses[GR16_ABCDRegClassID], GR16_ABCDSubClassMask, SuperRegIdxSeqs + 5, LaneBitmask(0x0000000000000003), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR16_ABCDSuperclasses, nullptr }; extern const TargetRegisterClass FPCCRRegClass = { &X86MCRegisterClasses[FPCCRRegClassID], FPCCRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass FR16XRegClass = { &X86MCRegisterClasses[FR16XRegClassID], FR16XSubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass FR16RegClass = { &X86MCRegisterClasses[FR16RegClassID], FR16SubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ FR16Superclasses, nullptr }; extern const TargetRegisterClass VK16PAIRRegClass = { &X86MCRegisterClasses[VK16PAIRRegClassID], VK16PAIRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000030), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ VK16PAIRSuperclasses, nullptr }; extern const TargetRegisterClass VK1PAIRRegClass = { &X86MCRegisterClasses[VK1PAIRRegClassID], VK1PAIRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000030), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ VK1PAIRSuperclasses, nullptr }; extern const TargetRegisterClass VK2PAIRRegClass = { &X86MCRegisterClasses[VK2PAIRRegClassID], VK2PAIRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000030), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ VK2PAIRSuperclasses, nullptr }; extern const TargetRegisterClass VK4PAIRRegClass = { &X86MCRegisterClasses[VK4PAIRRegClassID], VK4PAIRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000030), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ VK4PAIRSuperclasses, nullptr }; extern const TargetRegisterClass VK8PAIRRegClass = { &X86MCRegisterClasses[VK8PAIRRegClassID], VK8PAIRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000030), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ VK8PAIRSuperclasses, nullptr }; extern const TargetRegisterClass VK16PAIR_with_sub_mask_0_in_VK16WMRegClass = { &X86MCRegisterClasses[VK16PAIR_with_sub_mask_0_in_VK16WMRegClassID], VK16PAIR_with_sub_mask_0_in_VK16WMSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000030), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ VK16PAIR_with_sub_mask_0_in_VK16WMSuperclasses, nullptr }; extern const TargetRegisterClass FR32XRegClass = { &X86MCRegisterClasses[FR32XRegClassID], FR32XSubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ FR32XSuperclasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBPRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBPRegClassID], LOW32_ADDR_ACCESS_RBPSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESSRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESSRegClassID], LOW32_ADDR_ACCESSSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ LOW32_ADDR_ACCESSSuperclasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID], LOW32_ADDR_ACCESS_RBP_with_sub_8bitSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ LOW32_ADDR_ACCESS_RBP_with_sub_8bitSuperclasses, nullptr }; extern const TargetRegisterClass DEBUG_REGRegClass = { &X86MCRegisterClasses[DEBUG_REGRegClassID], DEBUG_REGSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass FR32RegClass = { &X86MCRegisterClasses[FR32RegClassID], FR32SubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ FR32Superclasses, nullptr }; extern const TargetRegisterClass GR32RegClass = { &X86MCRegisterClasses[GR32RegClassID], GR32SubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32Superclasses, nullptr }; extern const TargetRegisterClass GR32_NOSPRegClass = { &X86MCRegisterClasses[GR32_NOSPRegClassID], GR32_NOSPSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_NOSPSuperclasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID], LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSuperclasses, nullptr }; extern const TargetRegisterClass GR32_NOREXRegClass = { &X86MCRegisterClasses[GR32_NOREXRegClassID], GR32_NOREXSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_NOREXSuperclasses, nullptr }; extern const TargetRegisterClass VK32RegClass = { &X86MCRegisterClasses[VK32RegClassID], VK32SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK32Superclasses, nullptr }; extern const TargetRegisterClass GR32_NOREX_NOSPRegClass = { &X86MCRegisterClasses[GR32_NOREX_NOSPRegClassID], GR32_NOREX_NOSPSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_NOREX_NOSPSuperclasses, nullptr }; extern const TargetRegisterClass RFP32RegClass = { &X86MCRegisterClasses[RFP32RegClassID], RFP32SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VK32WMRegClass = { &X86MCRegisterClasses[VK32WMRegClassID], VK32WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK32WMSuperclasses, nullptr }; extern const TargetRegisterClass GR32_ABCDRegClass = { &X86MCRegisterClasses[GR32_ABCDRegClassID], GR32_ABCDSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_ABCDSuperclasses, nullptr }; extern const TargetRegisterClass GR32_TCRegClass = { &X86MCRegisterClasses[GR32_TCRegClassID], GR32_TCSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR32_ABCD_and_GR32_TCRegClass = { &X86MCRegisterClasses[GR32_ABCD_and_GR32_TCRegClassID], GR32_ABCD_and_GR32_TCSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_ABCD_and_GR32_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR32_ADRegClass = { &X86MCRegisterClasses[GR32_ADRegClassID], GR32_ADSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_ADSuperclasses, nullptr }; extern const TargetRegisterClass GR32_BPSPRegClass = { &X86MCRegisterClasses[GR32_BPSPRegClassID], GR32_BPSPSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_BPSPSuperclasses, nullptr }; extern const TargetRegisterClass GR32_BSIRegClass = { &X86MCRegisterClasses[GR32_BSIRegClassID], GR32_BSISubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_BSISuperclasses, nullptr }; extern const TargetRegisterClass GR32_CBRegClass = { &X86MCRegisterClasses[GR32_CBRegClassID], GR32_CBSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_CBSuperclasses, nullptr }; extern const TargetRegisterClass GR32_DCRegClass = { &X86MCRegisterClasses[GR32_DCRegClassID], GR32_DCSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_DCSuperclasses, nullptr }; extern const TargetRegisterClass GR32_DIBPRegClass = { &X86MCRegisterClasses[GR32_DIBPRegClassID], GR32_DIBPSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_DIBPSuperclasses, nullptr }; extern const TargetRegisterClass GR32_SIDIRegClass = { &X86MCRegisterClasses[GR32_SIDIRegClassID], GR32_SIDISubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_SIDISuperclasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClassID], LOW32_ADDR_ACCESS_RBP_with_sub_32bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ LOW32_ADDR_ACCESS_RBP_with_sub_32bitSuperclasses, nullptr }; extern const TargetRegisterClass CCRRegClass = { &X86MCRegisterClasses[CCRRegClassID], CCRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass DFCCRRegClass = { &X86MCRegisterClasses[DFCCRRegClassID], DFCCRSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GR32_ABCD_and_GR32_BSIRegClass = { &X86MCRegisterClasses[GR32_ABCD_and_GR32_BSIRegClassID], GR32_ABCD_and_GR32_BSISubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_ABCD_and_GR32_BSISuperclasses, nullptr }; extern const TargetRegisterClass GR32_AD_and_GR32_DCRegClass = { &X86MCRegisterClasses[GR32_AD_and_GR32_DCRegClassID], GR32_AD_and_GR32_DCSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_AD_and_GR32_DCSuperclasses, nullptr }; extern const TargetRegisterClass GR32_BPSP_and_GR32_DIBPRegClass = { &X86MCRegisterClasses[GR32_BPSP_and_GR32_DIBPRegClassID], GR32_BPSP_and_GR32_DIBPSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_BPSP_and_GR32_DIBPSuperclasses, nullptr }; extern const TargetRegisterClass GR32_BPSP_and_GR32_TCRegClass = { &X86MCRegisterClasses[GR32_BPSP_and_GR32_TCRegClassID], GR32_BPSP_and_GR32_TCSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_BPSP_and_GR32_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR32_BSI_and_GR32_SIDIRegClass = { &X86MCRegisterClasses[GR32_BSI_and_GR32_SIDIRegClassID], GR32_BSI_and_GR32_SIDISubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_BSI_and_GR32_SIDISuperclasses, nullptr }; extern const TargetRegisterClass GR32_CB_and_GR32_DCRegClass = { &X86MCRegisterClasses[GR32_CB_and_GR32_DCRegClassID], GR32_CB_and_GR32_DCSubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_CB_and_GR32_DCSuperclasses, nullptr }; extern const TargetRegisterClass GR32_DIBP_and_GR32_SIDIRegClass = { &X86MCRegisterClasses[GR32_DIBP_and_GR32_SIDIRegClassID], GR32_DIBP_and_GR32_SIDISubClassMask, SuperRegIdxSeqs + 7, LaneBitmask(0x0000000000000007), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ true, /* CoveredBySubRegs */ GR32_DIBP_and_GR32_SIDISuperclasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClassID], LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSuperclasses, nullptr }; extern const TargetRegisterClass LOW32_ADDR_ACCESS_with_sub_32bitRegClass = { &X86MCRegisterClasses[LOW32_ADDR_ACCESS_with_sub_32bitRegClassID], LOW32_ADDR_ACCESS_with_sub_32bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ LOW32_ADDR_ACCESS_with_sub_32bitSuperclasses, nullptr }; extern const TargetRegisterClass RFP64RegClass = { &X86MCRegisterClasses[RFP64RegClassID], RFP64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ RFP64Superclasses, nullptr }; extern const TargetRegisterClass FR64XRegClass = { &X86MCRegisterClasses[FR64XRegClassID], FR64XSubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ FR64XSuperclasses, nullptr }; extern const TargetRegisterClass GR64RegClass = { &X86MCRegisterClasses[GR64RegClassID], GR64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass CONTROL_REGRegClass = { &X86MCRegisterClasses[CONTROL_REGRegClassID], CONTROL_REGSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass FR64RegClass = { &X86MCRegisterClasses[FR64RegClassID], FR64SubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ FR64Superclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_8bitRegClass = { &X86MCRegisterClasses[GR64_with_sub_8bitRegClassID], GR64_with_sub_8bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_8bitSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOSPRegClass = { &X86MCRegisterClasses[GR64_NOSPRegClassID], GR64_NOSPSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOSPSuperclasses, nullptr }; extern const TargetRegisterClass GR64PLTSafeRegClass = { &X86MCRegisterClasses[GR64PLTSafeRegClassID], GR64PLTSafeSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64PLTSafeSuperclasses, nullptr }; extern const TargetRegisterClass GR64_TCRegClass = { &X86MCRegisterClasses[GR64_TCRegClassID], GR64_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOREXRegClass = { &X86MCRegisterClasses[GR64_NOREXRegClassID], GR64_NOREXSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOREXSuperclasses, nullptr }; extern const TargetRegisterClass GR64_TCW64RegClass = { &X86MCRegisterClasses[GR64_TCW64RegClassID], GR64_TCW64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TCW64Superclasses, nullptr }; extern const TargetRegisterClass GR64_TC_with_sub_8bitRegClass = { &X86MCRegisterClasses[GR64_TC_with_sub_8bitRegClassID], GR64_TC_with_sub_8bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TC_with_sub_8bitSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOSP_and_GR64_TCRegClass = { &X86MCRegisterClasses[GR64_NOSP_and_GR64_TCRegClassID], GR64_NOSP_and_GR64_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOSP_and_GR64_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_TCW64_with_sub_8bitRegClass = { &X86MCRegisterClasses[GR64_TCW64_with_sub_8bitRegClassID], GR64_TCW64_with_sub_8bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TCW64_with_sub_8bitSuperclasses, nullptr }; extern const TargetRegisterClass GR64_TC_and_GR64_TCW64RegClass = { &X86MCRegisterClasses[GR64_TC_and_GR64_TCW64RegClassID], GR64_TC_and_GR64_TCW64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TC_and_GR64_TCW64Superclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_16bit_in_GR16_NOREXRegClass = { &X86MCRegisterClasses[GR64_with_sub_16bit_in_GR16_NOREXRegClassID], GR64_with_sub_16bit_in_GR16_NOREXSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_16bit_in_GR16_NOREXSuperclasses, nullptr }; extern const TargetRegisterClass VK64RegClass = { &X86MCRegisterClasses[VK64RegClassID], VK64SubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK64Superclasses, nullptr }; extern const TargetRegisterClass VR64RegClass = { &X86MCRegisterClasses[VR64RegClassID], VR64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GR64PLTSafe_and_GR64_TCRegClass = { &X86MCRegisterClasses[GR64PLTSafe_and_GR64_TCRegClassID], GR64PLTSafe_and_GR64_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64PLTSafe_and_GR64_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOREX_NOSPRegClass = { &X86MCRegisterClasses[GR64_NOREX_NOSPRegClassID], GR64_NOREX_NOSPSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOREX_NOSPSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOREX_and_GR64_TCRegClass = { &X86MCRegisterClasses[GR64_NOREX_and_GR64_TCRegClassID], GR64_NOREX_and_GR64_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOREX_and_GR64_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOSP_and_GR64_TCW64RegClass = { &X86MCRegisterClasses[GR64_NOSP_and_GR64_TCW64RegClassID], GR64_NOSP_and_GR64_TCW64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOSP_and_GR64_TCW64Superclasses, nullptr }; extern const TargetRegisterClass GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass = { &X86MCRegisterClasses[GR64_TCW64_and_GR64_TC_with_sub_8bitRegClassID], GR64_TCW64_and_GR64_TC_with_sub_8bitSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TCW64_and_GR64_TC_with_sub_8bitSuperclasses, nullptr }; extern const TargetRegisterClass VK64WMRegClass = { &X86MCRegisterClasses[VK64WMRegClassID], VK64WMSubClassMask, SuperRegIdxSeqs + 9, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VK64WMSuperclasses, nullptr }; extern const TargetRegisterClass GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass = { &X86MCRegisterClasses[GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID], GR64_TC_and_GR64_NOSP_and_GR64_TCW64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TC_and_GR64_NOSP_and_GR64_TCW64Superclasses, nullptr }; extern const TargetRegisterClass GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass = { &X86MCRegisterClasses[GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClassID], GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXSuperclasses, nullptr }; extern const TargetRegisterClass GR64PLTSafe_and_GR64_TCW64RegClass = { &X86MCRegisterClasses[GR64PLTSafe_and_GR64_TCW64RegClassID], GR64PLTSafe_and_GR64_TCW64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64PLTSafe_and_GR64_TCW64Superclasses, nullptr }; extern const TargetRegisterClass GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass = { &X86MCRegisterClasses[GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClassID], GR64_NOREX_and_GR64PLTSafe_and_GR64_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOREX_and_GR64PLTSafe_and_GR64_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_NOREX_and_GR64_TCW64RegClass = { &X86MCRegisterClasses[GR64_NOREX_and_GR64_TCW64RegClassID], GR64_NOREX_and_GR64_TCW64SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_NOREX_and_GR64_TCW64Superclasses, nullptr }; extern const TargetRegisterClass GR64_ABCDRegClass = { &X86MCRegisterClasses[GR64_ABCDRegClassID], GR64_ABCDSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_ABCDSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_TCRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_TCRegClassID], GR64_with_sub_32bit_in_GR32_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClassID], GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_ADRegClass = { &X86MCRegisterClasses[GR64_ADRegClassID], GR64_ADSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_ADSuperclasses, nullptr }; extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESS_RBPRegClass = { &X86MCRegisterClasses[GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID], GR64_and_LOW32_ADDR_ACCESS_RBPSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_and_LOW32_ADDR_ACCESS_RBPSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSPRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BPSPRegClassID], GR64_with_sub_32bit_in_GR32_BPSPSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_BPSPSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSIRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BSIRegClassID], GR64_with_sub_32bit_in_GR32_BSISubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_BSISuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CBRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_CBRegClassID], GR64_with_sub_32bit_in_GR32_CBSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_CBSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DCRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_DCRegClassID], GR64_with_sub_32bit_in_GR32_DCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_DCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBPRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_DIBPRegClassID], GR64_with_sub_32bit_in_GR32_DIBPSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_DIBPSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_SIDIRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_SIDIRegClassID], GR64_with_sub_32bit_in_GR32_SIDISubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_SIDISuperclasses, nullptr }; extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESSRegClass = { &X86MCRegisterClasses[GR64_and_LOW32_ADDR_ACCESSRegClassID], GR64_and_LOW32_ADDR_ACCESSSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_and_LOW32_ADDR_ACCESSSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID], GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID], GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID], GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClassID], GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID], GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID], GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSuperclasses, nullptr }; extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClass = { &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID], GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x000000000000000F), 0, false, 0x00, /* TSFlags */ true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISuperclasses, nullptr }; extern const TargetRegisterClass RSTRegClass = { &X86MCRegisterClasses[RSTRegClassID], RSTSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass RFP80RegClass = { &X86MCRegisterClasses[RFP80RegClassID], RFP80SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ RFP80Superclasses, nullptr }; extern const TargetRegisterClass RFP80_7RegClass = { &X86MCRegisterClasses[RFP80_7RegClassID], RFP80_7SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VR128XRegClass = { &X86MCRegisterClasses[VR128XRegClassID], VR128XSubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VR128XSuperclasses, nullptr }; extern const TargetRegisterClass VR128RegClass = { &X86MCRegisterClasses[VR128RegClassID], VR128SubClassMask, SuperRegIdxSeqs + 12, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VR128Superclasses, nullptr }; extern const TargetRegisterClass VR256XRegClass = { &X86MCRegisterClasses[VR256XRegClassID], VR256XSubClassMask, SuperRegIdxSeqs + 14, LaneBitmask(0x0000000000000040), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VR256RegClass = { &X86MCRegisterClasses[VR256RegClassID], VR256SubClassMask, SuperRegIdxSeqs + 14, LaneBitmask(0x0000000000000040), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VR256Superclasses, nullptr }; extern const TargetRegisterClass VR512RegClass = { &X86MCRegisterClasses[VR512RegClassID], VR512SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000040), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VR512_0_15RegClass = { &X86MCRegisterClasses[VR512_0_15RegClassID], VR512_0_15SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000040), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VR512_0_15Superclasses, nullptr }; extern const TargetRegisterClass TILERegClass = { &X86MCRegisterClasses[TILERegClassID], TILESubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000000000000001), 0, false, 0x00, /* TSFlags */ false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; } // end namespace X86 namespace { const TargetRegisterClass *const RegisterClasses[] = { &X86::GR8RegClass, &X86::GRH8RegClass, &X86::GR8_NOREXRegClass, &X86::GR8_ABCD_HRegClass, &X86::GR8_ABCD_LRegClass, &X86::GRH16RegClass, &X86::GR16RegClass, &X86::GR16_NOREXRegClass, &X86::VK1RegClass, &X86::VK16RegClass, &X86::VK2RegClass, &X86::VK4RegClass, &X86::VK8RegClass, &X86::VK16WMRegClass, &X86::VK1WMRegClass, &X86::VK2WMRegClass, &X86::VK4WMRegClass, &X86::VK8WMRegClass, &X86::SEGMENT_REGRegClass, &X86::GR16_ABCDRegClass, &X86::FPCCRRegClass, &X86::FR16XRegClass, &X86::FR16RegClass, &X86::VK16PAIRRegClass, &X86::VK1PAIRRegClass, &X86::VK2PAIRRegClass, &X86::VK4PAIRRegClass, &X86::VK8PAIRRegClass, &X86::VK16PAIR_with_sub_mask_0_in_VK16WMRegClass, &X86::FR32XRegClass, &X86::LOW32_ADDR_ACCESS_RBPRegClass, &X86::LOW32_ADDR_ACCESSRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass, &X86::DEBUG_REGRegClass, &X86::FR32RegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::VK32RegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::RFP32RegClass, &X86::VK32WMRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_TCRegClass, &X86::GR32_ABCD_and_GR32_TCRegClass, &X86::GR32_ADRegClass, &X86::GR32_BPSPRegClass, &X86::GR32_BSIRegClass, &X86::GR32_CBRegClass, &X86::GR32_DCRegClass, &X86::GR32_DIBPRegClass, &X86::GR32_SIDIRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass, &X86::CCRRegClass, &X86::DFCCRRegClass, &X86::GR32_ABCD_and_GR32_BSIRegClass, &X86::GR32_AD_and_GR32_DCRegClass, &X86::GR32_BPSP_and_GR32_DIBPRegClass, &X86::GR32_BPSP_and_GR32_TCRegClass, &X86::GR32_BSI_and_GR32_SIDIRegClass, &X86::GR32_CB_and_GR32_DCRegClass, &X86::GR32_DIBP_and_GR32_SIDIRegClass, &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass, &X86::LOW32_ADDR_ACCESS_with_sub_32bitRegClass, &X86::RFP64RegClass, &X86::FR64XRegClass, &X86::GR64RegClass, &X86::CONTROL_REGRegClass, &X86::FR64RegClass, &X86::GR64_with_sub_8bitRegClass, &X86::GR64_NOSPRegClass, &X86::GR64PLTSafeRegClass, &X86::GR64_TCRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_TCW64RegClass, &X86::GR64_TC_with_sub_8bitRegClass, &X86::GR64_NOSP_and_GR64_TCRegClass, &X86::GR64_TCW64_with_sub_8bitRegClass, &X86::GR64_TC_and_GR64_TCW64RegClass, &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::VK64RegClass, &X86::VR64RegClass, &X86::GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOREX_and_GR64_TCRegClass, &X86::GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClass, &X86::VK64WMRegClass, &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass, &X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClass, &X86::GR64PLTSafe_and_GR64_TCW64RegClass, &X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClass, &X86::GR64_NOREX_and_GR64_TCW64RegClass, &X86::GR64_ABCDRegClass, &X86::GR64_with_sub_32bit_in_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClass, &X86::GR64_ADRegClass, &X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClass, &X86::GR64_with_sub_32bit_in_GR32_BPSPRegClass, &X86::GR64_with_sub_32bit_in_GR32_BSIRegClass, &X86::GR64_with_sub_32bit_in_GR32_CBRegClass, &X86::GR64_with_sub_32bit_in_GR32_DCRegClass, &X86::GR64_with_sub_32bit_in_GR32_DIBPRegClass, &X86::GR64_with_sub_32bit_in_GR32_SIDIRegClass, &X86::GR64_and_LOW32_ADDR_ACCESSRegClass, &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClass, &X86::GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClass, &X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClass, &X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClass, &X86::GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClass, &X86::GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClass, &X86::GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClass, &X86::RSTRegClass, &X86::RFP80RegClass, &X86::RFP80_7RegClass, &X86::VR128XRegClass, &X86::VR128RegClass, &X86::VR256XRegClass, &X86::VR256RegClass, &X86::VR512RegClass, &X86::VR512_0_15RegClass, &X86::TILERegClass, }; } // end anonymous namespace static const uint8_t CostPerUseTable[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const bool InAllocatableClassTable[] = { false, true, true, true, true, true, true, false, true, true, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, true, true, false, false, false, true, true, true, false, false, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, false, true, false, true, true, true, false, true, true, false, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, true, true, true, true, }; static const TargetRegisterInfoDesc X86RegInfoDesc = { // Extra Descriptors CostPerUseTable, 1, InAllocatableClassTable}; unsigned X86GenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const { static const uint8_t Rows[1][10] = { { X86::sub_8bit, X86::sub_8bit_hi, X86::sub_8bit_hi_phony, X86::sub_16bit, X86::sub_16bit_hi, 0, 0, 0, X86::sub_xmm, 0, }, }; --IdxA; assert(IdxA < 10); (void) IdxA; --IdxB; assert(IdxB < 10); return Rows[0][IdxB]; } struct MaskRolOp { LaneBitmask Mask; uint8_t RotateLeft; }; static const MaskRolOp LaneMaskComposeSequences[] = { { LaneBitmask(0xFFFFFFFFFFFFFFFF), 0 }, { LaneBitmask::getNone(), 0 }, // Sequence 0 { LaneBitmask(0xFFFFFFFFFFFFFFFF), 1 }, { LaneBitmask::getNone(), 0 }, // Sequence 2 { LaneBitmask(0xFFFFFFFFFFFFFFFF), 2 }, { LaneBitmask::getNone(), 0 }, // Sequence 4 { LaneBitmask(0xFFFFFFFFFFFFFFFF), 3 }, { LaneBitmask::getNone(), 0 }, // Sequence 6 { LaneBitmask(0xFFFFFFFFFFFFFFFF), 4 }, { LaneBitmask::getNone(), 0 }, // Sequence 8 { LaneBitmask(0xFFFFFFFFFFFFFFFF), 5 }, { LaneBitmask::getNone(), 0 }, // Sequence 10 { LaneBitmask(0xFFFFFFFFFFFFFFFF), 6 }, { LaneBitmask::getNone(), 0 } // Sequence 12 }; static const uint8_t CompositeSequences[] = { 0, // to sub_8bit 2, // to sub_8bit_hi 4, // to sub_8bit_hi_phony 0, // to sub_16bit 6, // to sub_16bit_hi 0, // to sub_32bit 8, // to sub_mask_0 10, // to sub_mask_1 12, // to sub_xmm 0 // to sub_ymm }; LaneBitmask X86GenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const { --IdxA; assert(IdxA < 10 && "Subregister index out of bounds"); LaneBitmask Result; for (const MaskRolOp *Ops = &LaneMaskComposeSequences[CompositeSequences[IdxA]]; Ops->Mask.any(); ++Ops) { LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger(); if (unsigned S = Ops->RotateLeft) Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S))); else Result |= LaneBitmask(M); } return Result; } LaneBitmask X86GenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const { LaneMask &= getSubRegIndexLaneMask(IdxA); --IdxA; assert(IdxA < 10 && "Subregister index out of bounds"); LaneBitmask Result; for (const MaskRolOp *Ops = &LaneMaskComposeSequences[CompositeSequences[IdxA]]; Ops->Mask.any(); ++Ops) { LaneBitmask::Type M = LaneMask.getAsInteger(); if (unsigned S = Ops->RotateLeft) Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S))); else Result |= LaneBitmask(M); } return Result; } const TargetRegisterClass *X86GenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const { static const uint8_t Table[123][10] = { { // GR8 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GRH8 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR8_NOREX 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR8_ABCD_H 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR8_ABCD_L 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GRH16 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR16 7, // sub_8bit -> GR16 20, // sub_8bit_hi -> GR16_ABCD 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR16_NOREX 8, // sub_8bit -> GR16_NOREX 20, // sub_8bit_hi -> GR16_ABCD 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK1 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK16 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK2 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK4 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK8 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK16WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK1WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK2WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK4WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK8WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // SEGMENT_REG 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR16_ABCD 20, // sub_8bit -> GR16_ABCD 20, // sub_8bit_hi -> GR16_ABCD 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // FPCCR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // FR16X 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // FR16 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK16PAIR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 24, // sub_mask_0 -> VK16PAIR 24, // sub_mask_1 -> VK16PAIR 0, // sub_xmm 0, // sub_ymm }, { // VK1PAIR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 25, // sub_mask_0 -> VK1PAIR 25, // sub_mask_1 -> VK1PAIR 0, // sub_xmm 0, // sub_ymm }, { // VK2PAIR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 26, // sub_mask_0 -> VK2PAIR 26, // sub_mask_1 -> VK2PAIR 0, // sub_xmm 0, // sub_ymm }, { // VK4PAIR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 27, // sub_mask_0 -> VK4PAIR 27, // sub_mask_1 -> VK4PAIR 0, // sub_xmm 0, // sub_ymm }, { // VK8PAIR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 28, // sub_mask_0 -> VK8PAIR 28, // sub_mask_1 -> VK8PAIR 0, // sub_xmm 0, // sub_ymm }, { // VK16PAIR_with_sub_mask_0_in_VK16WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 29, // sub_mask_0 -> VK16PAIR_with_sub_mask_0_in_VK16WM 29, // sub_mask_1 -> VK16PAIR_with_sub_mask_0_in_VK16WM 0, // sub_xmm 0, // sub_ymm }, { // FR32X 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS_RBP 33, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 31, // sub_16bit -> LOW32_ADDR_ACCESS_RBP 0, // sub_16bit_hi 54, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS 36, // sub_8bit -> GR32 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 32, // sub_16bit -> LOW32_ADDR_ACCESS 0, // sub_16bit_hi 65, // sub_32bit -> LOW32_ADDR_ACCESS_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_8bit 33, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 33, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit 0, // sub_16bit_hi 64, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // DEBUG_REG 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // FR32 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32 36, // sub_8bit -> GR32 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 36, // sub_16bit -> GR32 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_NOSP 37, // sub_8bit -> GR32_NOSP 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 37, // sub_16bit -> GR32_NOSP 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX 38, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 38, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX 0, // sub_16bit_hi 64, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_NOREX 39, // sub_8bit -> GR32_NOREX 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 39, // sub_16bit -> GR32_NOREX 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK32 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_NOREX_NOSP 41, // sub_8bit -> GR32_NOREX_NOSP 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 41, // sub_16bit -> GR32_NOREX_NOSP 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // RFP32 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK32WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_ABCD 44, // sub_8bit -> GR32_ABCD 44, // sub_8bit_hi -> GR32_ABCD 0, // sub_8bit_hi_phony 44, // sub_16bit -> GR32_ABCD 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_TC 45, // sub_8bit -> GR32_TC 46, // sub_8bit_hi -> GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 45, // sub_16bit -> GR32_TC 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_ABCD_and_GR32_TC 46, // sub_8bit -> GR32_ABCD_and_GR32_TC 46, // sub_8bit_hi -> GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 46, // sub_16bit -> GR32_ABCD_and_GR32_TC 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_AD 47, // sub_8bit -> GR32_AD 47, // sub_8bit_hi -> GR32_AD 0, // sub_8bit_hi_phony 47, // sub_16bit -> GR32_AD 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_BPSP 48, // sub_8bit -> GR32_BPSP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 48, // sub_16bit -> GR32_BPSP 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_BSI 49, // sub_8bit -> GR32_BSI 57, // sub_8bit_hi -> GR32_ABCD_and_GR32_BSI 0, // sub_8bit_hi_phony 49, // sub_16bit -> GR32_BSI 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_CB 50, // sub_8bit -> GR32_CB 50, // sub_8bit_hi -> GR32_CB 0, // sub_8bit_hi_phony 50, // sub_16bit -> GR32_CB 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_DC 51, // sub_8bit -> GR32_DC 51, // sub_8bit_hi -> GR32_DC 0, // sub_8bit_hi_phony 51, // sub_16bit -> GR32_DC 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_DIBP 52, // sub_8bit -> GR32_DIBP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 52, // sub_16bit -> GR32_DIBP 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_SIDI 53, // sub_8bit -> GR32_SIDI 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 53, // sub_16bit -> GR32_SIDI 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_32bit 64, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 54, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_32bit 0, // sub_16bit_hi 54, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // CCR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // DFCCR 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_ABCD_and_GR32_BSI 57, // sub_8bit -> GR32_ABCD_and_GR32_BSI 57, // sub_8bit_hi -> GR32_ABCD_and_GR32_BSI 0, // sub_8bit_hi_phony 57, // sub_16bit -> GR32_ABCD_and_GR32_BSI 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_AD_and_GR32_DC 58, // sub_8bit -> GR32_AD_and_GR32_DC 58, // sub_8bit_hi -> GR32_AD_and_GR32_DC 0, // sub_8bit_hi_phony 58, // sub_16bit -> GR32_AD_and_GR32_DC 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_BPSP_and_GR32_DIBP 59, // sub_8bit -> GR32_BPSP_and_GR32_DIBP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 59, // sub_16bit -> GR32_BPSP_and_GR32_DIBP 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_BPSP_and_GR32_TC 60, // sub_8bit -> GR32_BPSP_and_GR32_TC 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 60, // sub_16bit -> GR32_BPSP_and_GR32_TC 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_BSI_and_GR32_SIDI 61, // sub_8bit -> GR32_BSI_and_GR32_SIDI 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 61, // sub_16bit -> GR32_BSI_and_GR32_SIDI 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_CB_and_GR32_DC 62, // sub_8bit -> GR32_CB_and_GR32_DC 62, // sub_8bit_hi -> GR32_CB_and_GR32_DC 0, // sub_8bit_hi_phony 62, // sub_16bit -> GR32_CB_and_GR32_DC 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR32_DIBP_and_GR32_SIDI 63, // sub_8bit -> GR32_DIBP_and_GR32_SIDI 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 63, // sub_16bit -> GR32_DIBP_and_GR32_SIDI 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 64, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 64, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 0, // sub_16bit_hi 64, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // LOW32_ADDR_ACCESS_with_sub_32bit 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 65, // sub_16bit -> LOW32_ADDR_ACCESS_with_sub_32bit 0, // sub_16bit_hi 65, // sub_32bit -> LOW32_ADDR_ACCESS_with_sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // RFP64 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // FR64X 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64 71, // sub_8bit -> GR64_with_sub_8bit 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 68, // sub_16bit -> GR64 0, // sub_16bit_hi 68, // sub_32bit -> GR64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // CONTROL_REG 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // FR64 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_8bit 71, // sub_8bit -> GR64_with_sub_8bit 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 71, // sub_16bit -> GR64_with_sub_8bit 0, // sub_16bit_hi 71, // sub_32bit -> GR64_with_sub_8bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOSP 72, // sub_8bit -> GR64_NOSP 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 72, // sub_16bit -> GR64_NOSP 0, // sub_16bit_hi 72, // sub_32bit -> GR64_NOSP 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64PLTSafe 73, // sub_8bit -> GR64PLTSafe 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 73, // sub_16bit -> GR64PLTSafe 0, // sub_16bit_hi 73, // sub_32bit -> GR64PLTSafe 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TC 77, // sub_8bit -> GR64_TC_with_sub_8bit 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 74, // sub_16bit -> GR64_TC 0, // sub_16bit_hi 74, // sub_32bit -> GR64_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOREX 81, // sub_8bit -> GR64_with_sub_16bit_in_GR16_NOREX 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 75, // sub_16bit -> GR64_NOREX 0, // sub_16bit_hi 75, // sub_32bit -> GR64_NOREX 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TCW64 79, // sub_8bit -> GR64_TCW64_with_sub_8bit 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 76, // sub_16bit -> GR64_TCW64 0, // sub_16bit_hi 76, // sub_32bit -> GR64_TCW64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TC_with_sub_8bit 77, // sub_8bit -> GR64_TC_with_sub_8bit 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 77, // sub_16bit -> GR64_TC_with_sub_8bit 0, // sub_16bit_hi 77, // sub_32bit -> GR64_TC_with_sub_8bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOSP_and_GR64_TC 78, // sub_8bit -> GR64_NOSP_and_GR64_TC 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 78, // sub_16bit -> GR64_NOSP_and_GR64_TC 0, // sub_16bit_hi 78, // sub_32bit -> GR64_NOSP_and_GR64_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TCW64_with_sub_8bit 79, // sub_8bit -> GR64_TCW64_with_sub_8bit 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 79, // sub_16bit -> GR64_TCW64_with_sub_8bit 0, // sub_16bit_hi 79, // sub_32bit -> GR64_TCW64_with_sub_8bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TC_and_GR64_TCW64 88, // sub_8bit -> GR64_TCW64_and_GR64_TC_with_sub_8bit 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 80, // sub_16bit -> GR64_TC_and_GR64_TCW64 0, // sub_16bit_hi 80, // sub_32bit -> GR64_TC_and_GR64_TCW64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_16bit_in_GR16_NOREX 81, // sub_8bit -> GR64_with_sub_16bit_in_GR16_NOREX 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 81, // sub_16bit -> GR64_with_sub_16bit_in_GR16_NOREX 0, // sub_16bit_hi 81, // sub_32bit -> GR64_with_sub_16bit_in_GR16_NOREX 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK64 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VR64 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64PLTSafe_and_GR64_TC 84, // sub_8bit -> GR64PLTSafe_and_GR64_TC 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 84, // sub_16bit -> GR64PLTSafe_and_GR64_TC 0, // sub_16bit_hi 84, // sub_32bit -> GR64PLTSafe_and_GR64_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOREX_NOSP 85, // sub_8bit -> GR64_NOREX_NOSP 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 85, // sub_16bit -> GR64_NOREX_NOSP 0, // sub_16bit_hi 85, // sub_32bit -> GR64_NOREX_NOSP 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOREX_and_GR64_TC 91, // sub_8bit -> GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 86, // sub_16bit -> GR64_NOREX_and_GR64_TC 0, // sub_16bit_hi 86, // sub_32bit -> GR64_NOREX_and_GR64_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOSP_and_GR64_TCW64 87, // sub_8bit -> GR64_NOSP_and_GR64_TCW64 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 87, // sub_16bit -> GR64_NOSP_and_GR64_TCW64 0, // sub_16bit_hi 87, // sub_32bit -> GR64_NOSP_and_GR64_TCW64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TCW64_and_GR64_TC_with_sub_8bit 88, // sub_8bit -> GR64_TCW64_and_GR64_TC_with_sub_8bit 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 88, // sub_16bit -> GR64_TCW64_and_GR64_TC_with_sub_8bit 0, // sub_16bit_hi 88, // sub_32bit -> GR64_TCW64_and_GR64_TC_with_sub_8bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VK64WM 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 90, // sub_8bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 90, // sub_16bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64 0, // sub_16bit_hi 90, // sub_32bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX 91, // sub_8bit -> GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 91, // sub_16bit -> GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX 0, // sub_16bit_hi 91, // sub_32bit -> GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64PLTSafe_and_GR64_TCW64 92, // sub_8bit -> GR64PLTSafe_and_GR64_TCW64 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 92, // sub_16bit -> GR64PLTSafe_and_GR64_TCW64 0, // sub_16bit_hi 92, // sub_32bit -> GR64PLTSafe_and_GR64_TCW64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC 93, // sub_8bit -> GR64_NOREX_and_GR64PLTSafe_and_GR64_TC 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 93, // sub_16bit -> GR64_NOREX_and_GR64PLTSafe_and_GR64_TC 0, // sub_16bit_hi 93, // sub_32bit -> GR64_NOREX_and_GR64PLTSafe_and_GR64_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_NOREX_and_GR64_TCW64 96, // sub_8bit -> GR64_with_sub_32bit_in_GR32_TC 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 94, // sub_16bit -> GR64_NOREX_and_GR64_TCW64 0, // sub_16bit_hi 94, // sub_32bit -> GR64_NOREX_and_GR64_TCW64 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_ABCD 95, // sub_8bit -> GR64_ABCD 95, // sub_8bit_hi -> GR64_ABCD 0, // sub_8bit_hi_phony 95, // sub_16bit -> GR64_ABCD 0, // sub_16bit_hi 95, // sub_32bit -> GR64_ABCD 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_TC 96, // sub_8bit -> GR64_with_sub_32bit_in_GR32_TC 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 96, // sub_16bit -> GR64_with_sub_32bit_in_GR32_TC 0, // sub_16bit_hi 96, // sub_32bit -> GR64_with_sub_32bit_in_GR32_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 97, // sub_8bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 97, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_8bit_hi_phony 97, // sub_16bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_16bit_hi 97, // sub_32bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_AD 98, // sub_8bit -> GR64_AD 98, // sub_8bit_hi -> GR64_AD 0, // sub_8bit_hi_phony 98, // sub_16bit -> GR64_AD 0, // sub_16bit_hi 98, // sub_32bit -> GR64_AD 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_and_LOW32_ADDR_ACCESS_RBP 109, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 99, // sub_16bit -> GR64_and_LOW32_ADDR_ACCESS_RBP 0, // sub_16bit_hi 99, // sub_32bit -> GR64_and_LOW32_ADDR_ACCESS_RBP 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BPSP 100, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 100, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BPSP 0, // sub_16bit_hi 100, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BPSP 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BSI 101, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BSI 107, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 0, // sub_8bit_hi_phony 101, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BSI 0, // sub_16bit_hi 101, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BSI 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_CB 102, // sub_8bit -> GR64_with_sub_32bit_in_GR32_CB 102, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_CB 0, // sub_8bit_hi_phony 102, // sub_16bit -> GR64_with_sub_32bit_in_GR32_CB 0, // sub_16bit_hi 102, // sub_32bit -> GR64_with_sub_32bit_in_GR32_CB 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_DC 103, // sub_8bit -> GR64_with_sub_32bit_in_GR32_DC 103, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_DC 0, // sub_8bit_hi_phony 103, // sub_16bit -> GR64_with_sub_32bit_in_GR32_DC 0, // sub_16bit_hi 103, // sub_32bit -> GR64_with_sub_32bit_in_GR32_DC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_DIBP 104, // sub_8bit -> GR64_with_sub_32bit_in_GR32_DIBP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 104, // sub_16bit -> GR64_with_sub_32bit_in_GR32_DIBP 0, // sub_16bit_hi 104, // sub_32bit -> GR64_with_sub_32bit_in_GR32_DIBP 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_SIDI 105, // sub_8bit -> GR64_with_sub_32bit_in_GR32_SIDI 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 105, // sub_16bit -> GR64_with_sub_32bit_in_GR32_SIDI 0, // sub_16bit_hi 105, // sub_32bit -> GR64_with_sub_32bit_in_GR32_SIDI 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_and_LOW32_ADDR_ACCESS 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 106, // sub_16bit -> GR64_and_LOW32_ADDR_ACCESS 0, // sub_16bit_hi 106, // sub_32bit -> GR64_and_LOW32_ADDR_ACCESS 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 107, // sub_8bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 107, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 0, // sub_8bit_hi_phony 107, // sub_16bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 0, // sub_16bit_hi 107, // sub_32bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC 108, // sub_8bit -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC 108, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC 0, // sub_8bit_hi_phony 108, // sub_16bit -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC 0, // sub_16bit_hi 108, // sub_32bit -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP 109, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 109, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP 0, // sub_16bit_hi 109, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC 110, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 110, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC 0, // sub_16bit_hi 110, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI 111, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 111, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI 0, // sub_16bit_hi 111, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC 112, // sub_8bit -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC 112, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC 0, // sub_8bit_hi_phony 112, // sub_16bit -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC 0, // sub_16bit_hi 112, // sub_32bit -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI 113, // sub_8bit -> GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 113, // sub_16bit -> GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI 0, // sub_16bit_hi 113, // sub_32bit -> GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // RST 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // RFP80 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // RFP80_7 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VR128X 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VR128 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, { // VR256X 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 119, // sub_xmm -> VR256X 0, // sub_ymm }, { // VR256 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 120, // sub_xmm -> VR256 0, // sub_ymm }, { // VR512 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 121, // sub_xmm -> VR512 121, // sub_ymm -> VR512 }, { // VR512_0_15 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 122, // sub_xmm -> VR512_0_15 122, // sub_ymm -> VR512_0_15 }, { // TILE 0, // sub_8bit 0, // sub_8bit_hi 0, // sub_8bit_hi_phony 0, // sub_16bit 0, // sub_16bit_hi 0, // sub_32bit 0, // sub_mask_0 0, // sub_mask_1 0, // sub_xmm 0, // sub_ymm }, }; assert(RC && "Missing regclass"); if (!Idx) return RC; --Idx; assert(Idx < 10 && "Bad subreg"); unsigned TV = Table[RC->getID()][Idx]; return TV ? getRegClass(TV - 1) : nullptr; } const TargetRegisterClass *X86GenRegisterInfo::getSubRegisterClass(const TargetRegisterClass *RC, unsigned Idx) const { static const uint8_t Table[123][10] = { { // GR8 0, // GR8:sub_8bit 0, // GR8:sub_8bit_hi 0, // GR8:sub_8bit_hi_phony 0, // GR8:sub_16bit 0, // GR8:sub_16bit_hi 0, // GR8:sub_32bit 0, // GR8:sub_mask_0 0, // GR8:sub_mask_1 0, // GR8:sub_xmm 0, // GR8:sub_ymm }, { // GRH8 0, // GRH8:sub_8bit 0, // GRH8:sub_8bit_hi 0, // GRH8:sub_8bit_hi_phony 0, // GRH8:sub_16bit 0, // GRH8:sub_16bit_hi 0, // GRH8:sub_32bit 0, // GRH8:sub_mask_0 0, // GRH8:sub_mask_1 0, // GRH8:sub_xmm 0, // GRH8:sub_ymm }, { // GR8_NOREX 0, // GR8_NOREX:sub_8bit 0, // GR8_NOREX:sub_8bit_hi 0, // GR8_NOREX:sub_8bit_hi_phony 0, // GR8_NOREX:sub_16bit 0, // GR8_NOREX:sub_16bit_hi 0, // GR8_NOREX:sub_32bit 0, // GR8_NOREX:sub_mask_0 0, // GR8_NOREX:sub_mask_1 0, // GR8_NOREX:sub_xmm 0, // GR8_NOREX:sub_ymm }, { // GR8_ABCD_H 0, // GR8_ABCD_H:sub_8bit 0, // GR8_ABCD_H:sub_8bit_hi 0, // GR8_ABCD_H:sub_8bit_hi_phony 0, // GR8_ABCD_H:sub_16bit 0, // GR8_ABCD_H:sub_16bit_hi 0, // GR8_ABCD_H:sub_32bit 0, // GR8_ABCD_H:sub_mask_0 0, // GR8_ABCD_H:sub_mask_1 0, // GR8_ABCD_H:sub_xmm 0, // GR8_ABCD_H:sub_ymm }, { // GR8_ABCD_L 0, // GR8_ABCD_L:sub_8bit 0, // GR8_ABCD_L:sub_8bit_hi 0, // GR8_ABCD_L:sub_8bit_hi_phony 0, // GR8_ABCD_L:sub_16bit 0, // GR8_ABCD_L:sub_16bit_hi 0, // GR8_ABCD_L:sub_32bit 0, // GR8_ABCD_L:sub_mask_0 0, // GR8_ABCD_L:sub_mask_1 0, // GR8_ABCD_L:sub_xmm 0, // GR8_ABCD_L:sub_ymm }, { // GRH16 0, // GRH16:sub_8bit 0, // GRH16:sub_8bit_hi 0, // GRH16:sub_8bit_hi_phony 0, // GRH16:sub_16bit 0, // GRH16:sub_16bit_hi 0, // GRH16:sub_32bit 0, // GRH16:sub_mask_0 0, // GRH16:sub_mask_1 0, // GRH16:sub_xmm 0, // GRH16:sub_ymm }, { // GR16 1, // GR16:sub_8bit -> GR8 4, // GR16:sub_8bit_hi -> GR8_ABCD_H 0, // GR16:sub_8bit_hi_phony 0, // GR16:sub_16bit 0, // GR16:sub_16bit_hi 0, // GR16:sub_32bit 0, // GR16:sub_mask_0 0, // GR16:sub_mask_1 0, // GR16:sub_xmm 0, // GR16:sub_ymm }, { // GR16_NOREX 1, // GR16_NOREX:sub_8bit -> GR8 4, // GR16_NOREX:sub_8bit_hi -> GR8_ABCD_H 0, // GR16_NOREX:sub_8bit_hi_phony 0, // GR16_NOREX:sub_16bit 0, // GR16_NOREX:sub_16bit_hi 0, // GR16_NOREX:sub_32bit 0, // GR16_NOREX:sub_mask_0 0, // GR16_NOREX:sub_mask_1 0, // GR16_NOREX:sub_xmm 0, // GR16_NOREX:sub_ymm }, { // VK1 0, // VK1:sub_8bit 0, // VK1:sub_8bit_hi 0, // VK1:sub_8bit_hi_phony 0, // VK1:sub_16bit 0, // VK1:sub_16bit_hi 0, // VK1:sub_32bit 0, // VK1:sub_mask_0 0, // VK1:sub_mask_1 0, // VK1:sub_xmm 0, // VK1:sub_ymm }, { // VK16 0, // VK16:sub_8bit 0, // VK16:sub_8bit_hi 0, // VK16:sub_8bit_hi_phony 0, // VK16:sub_16bit 0, // VK16:sub_16bit_hi 0, // VK16:sub_32bit 0, // VK16:sub_mask_0 0, // VK16:sub_mask_1 0, // VK16:sub_xmm 0, // VK16:sub_ymm }, { // VK2 0, // VK2:sub_8bit 0, // VK2:sub_8bit_hi 0, // VK2:sub_8bit_hi_phony 0, // VK2:sub_16bit 0, // VK2:sub_16bit_hi 0, // VK2:sub_32bit 0, // VK2:sub_mask_0 0, // VK2:sub_mask_1 0, // VK2:sub_xmm 0, // VK2:sub_ymm }, { // VK4 0, // VK4:sub_8bit 0, // VK4:sub_8bit_hi 0, // VK4:sub_8bit_hi_phony 0, // VK4:sub_16bit 0, // VK4:sub_16bit_hi 0, // VK4:sub_32bit 0, // VK4:sub_mask_0 0, // VK4:sub_mask_1 0, // VK4:sub_xmm 0, // VK4:sub_ymm }, { // VK8 0, // VK8:sub_8bit 0, // VK8:sub_8bit_hi 0, // VK8:sub_8bit_hi_phony 0, // VK8:sub_16bit 0, // VK8:sub_16bit_hi 0, // VK8:sub_32bit 0, // VK8:sub_mask_0 0, // VK8:sub_mask_1 0, // VK8:sub_xmm 0, // VK8:sub_ymm }, { // VK16WM 0, // VK16WM:sub_8bit 0, // VK16WM:sub_8bit_hi 0, // VK16WM:sub_8bit_hi_phony 0, // VK16WM:sub_16bit 0, // VK16WM:sub_16bit_hi 0, // VK16WM:sub_32bit 0, // VK16WM:sub_mask_0 0, // VK16WM:sub_mask_1 0, // VK16WM:sub_xmm 0, // VK16WM:sub_ymm }, { // VK1WM 0, // VK1WM:sub_8bit 0, // VK1WM:sub_8bit_hi 0, // VK1WM:sub_8bit_hi_phony 0, // VK1WM:sub_16bit 0, // VK1WM:sub_16bit_hi 0, // VK1WM:sub_32bit 0, // VK1WM:sub_mask_0 0, // VK1WM:sub_mask_1 0, // VK1WM:sub_xmm 0, // VK1WM:sub_ymm }, { // VK2WM 0, // VK2WM:sub_8bit 0, // VK2WM:sub_8bit_hi 0, // VK2WM:sub_8bit_hi_phony 0, // VK2WM:sub_16bit 0, // VK2WM:sub_16bit_hi 0, // VK2WM:sub_32bit 0, // VK2WM:sub_mask_0 0, // VK2WM:sub_mask_1 0, // VK2WM:sub_xmm 0, // VK2WM:sub_ymm }, { // VK4WM 0, // VK4WM:sub_8bit 0, // VK4WM:sub_8bit_hi 0, // VK4WM:sub_8bit_hi_phony 0, // VK4WM:sub_16bit 0, // VK4WM:sub_16bit_hi 0, // VK4WM:sub_32bit 0, // VK4WM:sub_mask_0 0, // VK4WM:sub_mask_1 0, // VK4WM:sub_xmm 0, // VK4WM:sub_ymm }, { // VK8WM 0, // VK8WM:sub_8bit 0, // VK8WM:sub_8bit_hi 0, // VK8WM:sub_8bit_hi_phony 0, // VK8WM:sub_16bit 0, // VK8WM:sub_16bit_hi 0, // VK8WM:sub_32bit 0, // VK8WM:sub_mask_0 0, // VK8WM:sub_mask_1 0, // VK8WM:sub_xmm 0, // VK8WM:sub_ymm }, { // SEGMENT_REG 0, // SEGMENT_REG:sub_8bit 0, // SEGMENT_REG:sub_8bit_hi 0, // SEGMENT_REG:sub_8bit_hi_phony 0, // SEGMENT_REG:sub_16bit 0, // SEGMENT_REG:sub_16bit_hi 0, // SEGMENT_REG:sub_32bit 0, // SEGMENT_REG:sub_mask_0 0, // SEGMENT_REG:sub_mask_1 0, // SEGMENT_REG:sub_xmm 0, // SEGMENT_REG:sub_ymm }, { // GR16_ABCD 5, // GR16_ABCD:sub_8bit -> GR8_ABCD_L 4, // GR16_ABCD:sub_8bit_hi -> GR8_ABCD_H 0, // GR16_ABCD:sub_8bit_hi_phony 0, // GR16_ABCD:sub_16bit 0, // GR16_ABCD:sub_16bit_hi 0, // GR16_ABCD:sub_32bit 0, // GR16_ABCD:sub_mask_0 0, // GR16_ABCD:sub_mask_1 0, // GR16_ABCD:sub_xmm 0, // GR16_ABCD:sub_ymm }, { // FPCCR 0, // FPCCR:sub_8bit 0, // FPCCR:sub_8bit_hi 0, // FPCCR:sub_8bit_hi_phony 0, // FPCCR:sub_16bit 0, // FPCCR:sub_16bit_hi 0, // FPCCR:sub_32bit 0, // FPCCR:sub_mask_0 0, // FPCCR:sub_mask_1 0, // FPCCR:sub_xmm 0, // FPCCR:sub_ymm }, { // FR16X 0, // FR16X:sub_8bit 0, // FR16X:sub_8bit_hi 0, // FR16X:sub_8bit_hi_phony 0, // FR16X:sub_16bit 0, // FR16X:sub_16bit_hi 0, // FR16X:sub_32bit 0, // FR16X:sub_mask_0 0, // FR16X:sub_mask_1 0, // FR16X:sub_xmm 0, // FR16X:sub_ymm }, { // FR16 0, // FR16:sub_8bit 0, // FR16:sub_8bit_hi 0, // FR16:sub_8bit_hi_phony 0, // FR16:sub_16bit 0, // FR16:sub_16bit_hi 0, // FR16:sub_32bit 0, // FR16:sub_mask_0 0, // FR16:sub_mask_1 0, // FR16:sub_xmm 0, // FR16:sub_ymm }, { // VK16PAIR 0, // VK16PAIR:sub_8bit 0, // VK16PAIR:sub_8bit_hi 0, // VK16PAIR:sub_8bit_hi_phony 0, // VK16PAIR:sub_16bit 0, // VK16PAIR:sub_16bit_hi 0, // VK16PAIR:sub_32bit 82, // VK16PAIR:sub_mask_0 -> VK64 89, // VK16PAIR:sub_mask_1 -> VK64WM 0, // VK16PAIR:sub_xmm 0, // VK16PAIR:sub_ymm }, { // VK1PAIR 0, // VK1PAIR:sub_8bit 0, // VK1PAIR:sub_8bit_hi 0, // VK1PAIR:sub_8bit_hi_phony 0, // VK1PAIR:sub_16bit 0, // VK1PAIR:sub_16bit_hi 0, // VK1PAIR:sub_32bit 82, // VK1PAIR:sub_mask_0 -> VK64 89, // VK1PAIR:sub_mask_1 -> VK64WM 0, // VK1PAIR:sub_xmm 0, // VK1PAIR:sub_ymm }, { // VK2PAIR 0, // VK2PAIR:sub_8bit 0, // VK2PAIR:sub_8bit_hi 0, // VK2PAIR:sub_8bit_hi_phony 0, // VK2PAIR:sub_16bit 0, // VK2PAIR:sub_16bit_hi 0, // VK2PAIR:sub_32bit 82, // VK2PAIR:sub_mask_0 -> VK64 89, // VK2PAIR:sub_mask_1 -> VK64WM 0, // VK2PAIR:sub_xmm 0, // VK2PAIR:sub_ymm }, { // VK4PAIR 0, // VK4PAIR:sub_8bit 0, // VK4PAIR:sub_8bit_hi 0, // VK4PAIR:sub_8bit_hi_phony 0, // VK4PAIR:sub_16bit 0, // VK4PAIR:sub_16bit_hi 0, // VK4PAIR:sub_32bit 82, // VK4PAIR:sub_mask_0 -> VK64 89, // VK4PAIR:sub_mask_1 -> VK64WM 0, // VK4PAIR:sub_xmm 0, // VK4PAIR:sub_ymm }, { // VK8PAIR 0, // VK8PAIR:sub_8bit 0, // VK8PAIR:sub_8bit_hi 0, // VK8PAIR:sub_8bit_hi_phony 0, // VK8PAIR:sub_16bit 0, // VK8PAIR:sub_16bit_hi 0, // VK8PAIR:sub_32bit 82, // VK8PAIR:sub_mask_0 -> VK64 89, // VK8PAIR:sub_mask_1 -> VK64WM 0, // VK8PAIR:sub_xmm 0, // VK8PAIR:sub_ymm }, { // VK16PAIR_with_sub_mask_0_in_VK16WM 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_8bit 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_8bit_hi 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_8bit_hi_phony 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_16bit 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_16bit_hi 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_32bit 89, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_mask_0 -> VK64WM 89, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_mask_1 -> VK64WM 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_xmm 0, // VK16PAIR_with_sub_mask_0_in_VK16WM:sub_ymm }, { // FR32X 0, // FR32X:sub_8bit 0, // FR32X:sub_8bit_hi 0, // FR32X:sub_8bit_hi_phony 0, // FR32X:sub_16bit 0, // FR32X:sub_16bit_hi 0, // FR32X:sub_32bit 0, // FR32X:sub_mask_0 0, // FR32X:sub_mask_1 0, // FR32X:sub_xmm 0, // FR32X:sub_ymm }, { // LOW32_ADDR_ACCESS_RBP 1, // LOW32_ADDR_ACCESS_RBP:sub_8bit -> GR8 4, // LOW32_ADDR_ACCESS_RBP:sub_8bit_hi -> GR8_ABCD_H 0, // LOW32_ADDR_ACCESS_RBP:sub_8bit_hi_phony 7, // LOW32_ADDR_ACCESS_RBP:sub_16bit -> GR16 0, // LOW32_ADDR_ACCESS_RBP:sub_16bit_hi 59, // LOW32_ADDR_ACCESS_RBP:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // LOW32_ADDR_ACCESS_RBP:sub_mask_0 0, // LOW32_ADDR_ACCESS_RBP:sub_mask_1 0, // LOW32_ADDR_ACCESS_RBP:sub_xmm 0, // LOW32_ADDR_ACCESS_RBP:sub_ymm }, { // LOW32_ADDR_ACCESS 1, // LOW32_ADDR_ACCESS:sub_8bit -> GR8 4, // LOW32_ADDR_ACCESS:sub_8bit_hi -> GR8_ABCD_H 0, // LOW32_ADDR_ACCESS:sub_8bit_hi_phony 7, // LOW32_ADDR_ACCESS:sub_16bit -> GR16 0, // LOW32_ADDR_ACCESS:sub_16bit_hi 0, // LOW32_ADDR_ACCESS:sub_32bit 0, // LOW32_ADDR_ACCESS:sub_mask_0 0, // LOW32_ADDR_ACCESS:sub_mask_1 0, // LOW32_ADDR_ACCESS:sub_xmm 0, // LOW32_ADDR_ACCESS:sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_8bit 1, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_8bit -> GR8 4, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_8bit_hi -> GR8_ABCD_H 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_8bit_hi_phony 7, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_16bit -> GR16 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_16bit_hi 59, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_mask_0 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_mask_1 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_xmm 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit:sub_ymm }, { // DEBUG_REG 0, // DEBUG_REG:sub_8bit 0, // DEBUG_REG:sub_8bit_hi 0, // DEBUG_REG:sub_8bit_hi_phony 0, // DEBUG_REG:sub_16bit 0, // DEBUG_REG:sub_16bit_hi 0, // DEBUG_REG:sub_32bit 0, // DEBUG_REG:sub_mask_0 0, // DEBUG_REG:sub_mask_1 0, // DEBUG_REG:sub_xmm 0, // DEBUG_REG:sub_ymm }, { // FR32 0, // FR32:sub_8bit 0, // FR32:sub_8bit_hi 0, // FR32:sub_8bit_hi_phony 0, // FR32:sub_16bit 0, // FR32:sub_16bit_hi 0, // FR32:sub_32bit 0, // FR32:sub_mask_0 0, // FR32:sub_mask_1 0, // FR32:sub_xmm 0, // FR32:sub_ymm }, { // GR32 1, // GR32:sub_8bit -> GR8 4, // GR32:sub_8bit_hi -> GR8_ABCD_H 0, // GR32:sub_8bit_hi_phony 7, // GR32:sub_16bit -> GR16 0, // GR32:sub_16bit_hi 0, // GR32:sub_32bit 0, // GR32:sub_mask_0 0, // GR32:sub_mask_1 0, // GR32:sub_xmm 0, // GR32:sub_ymm }, { // GR32_NOSP 1, // GR32_NOSP:sub_8bit -> GR8 4, // GR32_NOSP:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_NOSP:sub_8bit_hi_phony 7, // GR32_NOSP:sub_16bit -> GR16 0, // GR32_NOSP:sub_16bit_hi 0, // GR32_NOSP:sub_32bit 0, // GR32_NOSP:sub_mask_0 0, // GR32_NOSP:sub_mask_1 0, // GR32_NOSP:sub_xmm 0, // GR32_NOSP:sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX 1, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_8bit -> GR8 4, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_8bit_hi -> GR8_ABCD_H 0, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_8bit_hi_phony 8, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_16bit -> GR16_NOREX 0, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_16bit_hi 59, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_mask_0 0, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_mask_1 0, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_xmm 0, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX:sub_ymm }, { // GR32_NOREX 1, // GR32_NOREX:sub_8bit -> GR8 4, // GR32_NOREX:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_NOREX:sub_8bit_hi_phony 8, // GR32_NOREX:sub_16bit -> GR16_NOREX 0, // GR32_NOREX:sub_16bit_hi 0, // GR32_NOREX:sub_32bit 0, // GR32_NOREX:sub_mask_0 0, // GR32_NOREX:sub_mask_1 0, // GR32_NOREX:sub_xmm 0, // GR32_NOREX:sub_ymm }, { // VK32 0, // VK32:sub_8bit 0, // VK32:sub_8bit_hi 0, // VK32:sub_8bit_hi_phony 0, // VK32:sub_16bit 0, // VK32:sub_16bit_hi 0, // VK32:sub_32bit 0, // VK32:sub_mask_0 0, // VK32:sub_mask_1 0, // VK32:sub_xmm 0, // VK32:sub_ymm }, { // GR32_NOREX_NOSP 1, // GR32_NOREX_NOSP:sub_8bit -> GR8 4, // GR32_NOREX_NOSP:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_NOREX_NOSP:sub_8bit_hi_phony 8, // GR32_NOREX_NOSP:sub_16bit -> GR16_NOREX 0, // GR32_NOREX_NOSP:sub_16bit_hi 0, // GR32_NOREX_NOSP:sub_32bit 0, // GR32_NOREX_NOSP:sub_mask_0 0, // GR32_NOREX_NOSP:sub_mask_1 0, // GR32_NOREX_NOSP:sub_xmm 0, // GR32_NOREX_NOSP:sub_ymm }, { // RFP32 0, // RFP32:sub_8bit 0, // RFP32:sub_8bit_hi 0, // RFP32:sub_8bit_hi_phony 0, // RFP32:sub_16bit 0, // RFP32:sub_16bit_hi 0, // RFP32:sub_32bit 0, // RFP32:sub_mask_0 0, // RFP32:sub_mask_1 0, // RFP32:sub_xmm 0, // RFP32:sub_ymm }, { // VK32WM 0, // VK32WM:sub_8bit 0, // VK32WM:sub_8bit_hi 0, // VK32WM:sub_8bit_hi_phony 0, // VK32WM:sub_16bit 0, // VK32WM:sub_16bit_hi 0, // VK32WM:sub_32bit 0, // VK32WM:sub_mask_0 0, // VK32WM:sub_mask_1 0, // VK32WM:sub_xmm 0, // VK32WM:sub_ymm }, { // GR32_ABCD 5, // GR32_ABCD:sub_8bit -> GR8_ABCD_L 4, // GR32_ABCD:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_ABCD:sub_8bit_hi_phony 20, // GR32_ABCD:sub_16bit -> GR16_ABCD 0, // GR32_ABCD:sub_16bit_hi 0, // GR32_ABCD:sub_32bit 0, // GR32_ABCD:sub_mask_0 0, // GR32_ABCD:sub_mask_1 0, // GR32_ABCD:sub_xmm 0, // GR32_ABCD:sub_ymm }, { // GR32_TC 1, // GR32_TC:sub_8bit -> GR8 4, // GR32_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_TC:sub_8bit_hi_phony 8, // GR32_TC:sub_16bit -> GR16_NOREX 0, // GR32_TC:sub_16bit_hi 0, // GR32_TC:sub_32bit 0, // GR32_TC:sub_mask_0 0, // GR32_TC:sub_mask_1 0, // GR32_TC:sub_xmm 0, // GR32_TC:sub_ymm }, { // GR32_ABCD_and_GR32_TC 5, // GR32_ABCD_and_GR32_TC:sub_8bit -> GR8_ABCD_L 4, // GR32_ABCD_and_GR32_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_ABCD_and_GR32_TC:sub_8bit_hi_phony 20, // GR32_ABCD_and_GR32_TC:sub_16bit -> GR16_ABCD 0, // GR32_ABCD_and_GR32_TC:sub_16bit_hi 0, // GR32_ABCD_and_GR32_TC:sub_32bit 0, // GR32_ABCD_and_GR32_TC:sub_mask_0 0, // GR32_ABCD_and_GR32_TC:sub_mask_1 0, // GR32_ABCD_and_GR32_TC:sub_xmm 0, // GR32_ABCD_and_GR32_TC:sub_ymm }, { // GR32_AD 5, // GR32_AD:sub_8bit -> GR8_ABCD_L 4, // GR32_AD:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_AD:sub_8bit_hi_phony 20, // GR32_AD:sub_16bit -> GR16_ABCD 0, // GR32_AD:sub_16bit_hi 0, // GR32_AD:sub_32bit 0, // GR32_AD:sub_mask_0 0, // GR32_AD:sub_mask_1 0, // GR32_AD:sub_xmm 0, // GR32_AD:sub_ymm }, { // GR32_BPSP 1, // GR32_BPSP:sub_8bit -> GR8 0, // GR32_BPSP:sub_8bit_hi 0, // GR32_BPSP:sub_8bit_hi_phony 8, // GR32_BPSP:sub_16bit -> GR16_NOREX 0, // GR32_BPSP:sub_16bit_hi 0, // GR32_BPSP:sub_32bit 0, // GR32_BPSP:sub_mask_0 0, // GR32_BPSP:sub_mask_1 0, // GR32_BPSP:sub_xmm 0, // GR32_BPSP:sub_ymm }, { // GR32_BSI 1, // GR32_BSI:sub_8bit -> GR8 4, // GR32_BSI:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_BSI:sub_8bit_hi_phony 8, // GR32_BSI:sub_16bit -> GR16_NOREX 0, // GR32_BSI:sub_16bit_hi 0, // GR32_BSI:sub_32bit 0, // GR32_BSI:sub_mask_0 0, // GR32_BSI:sub_mask_1 0, // GR32_BSI:sub_xmm 0, // GR32_BSI:sub_ymm }, { // GR32_CB 5, // GR32_CB:sub_8bit -> GR8_ABCD_L 4, // GR32_CB:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_CB:sub_8bit_hi_phony 20, // GR32_CB:sub_16bit -> GR16_ABCD 0, // GR32_CB:sub_16bit_hi 0, // GR32_CB:sub_32bit 0, // GR32_CB:sub_mask_0 0, // GR32_CB:sub_mask_1 0, // GR32_CB:sub_xmm 0, // GR32_CB:sub_ymm }, { // GR32_DC 5, // GR32_DC:sub_8bit -> GR8_ABCD_L 4, // GR32_DC:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_DC:sub_8bit_hi_phony 20, // GR32_DC:sub_16bit -> GR16_ABCD 0, // GR32_DC:sub_16bit_hi 0, // GR32_DC:sub_32bit 0, // GR32_DC:sub_mask_0 0, // GR32_DC:sub_mask_1 0, // GR32_DC:sub_xmm 0, // GR32_DC:sub_ymm }, { // GR32_DIBP 1, // GR32_DIBP:sub_8bit -> GR8 0, // GR32_DIBP:sub_8bit_hi 0, // GR32_DIBP:sub_8bit_hi_phony 8, // GR32_DIBP:sub_16bit -> GR16_NOREX 0, // GR32_DIBP:sub_16bit_hi 0, // GR32_DIBP:sub_32bit 0, // GR32_DIBP:sub_mask_0 0, // GR32_DIBP:sub_mask_1 0, // GR32_DIBP:sub_xmm 0, // GR32_DIBP:sub_ymm }, { // GR32_SIDI 1, // GR32_SIDI:sub_8bit -> GR8 0, // GR32_SIDI:sub_8bit_hi 0, // GR32_SIDI:sub_8bit_hi_phony 8, // GR32_SIDI:sub_16bit -> GR16_NOREX 0, // GR32_SIDI:sub_16bit_hi 0, // GR32_SIDI:sub_32bit 0, // GR32_SIDI:sub_mask_0 0, // GR32_SIDI:sub_mask_1 0, // GR32_SIDI:sub_xmm 0, // GR32_SIDI:sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_32bit 1, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_8bit -> GR8 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_8bit_hi 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_8bit_hi_phony 8, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_16bit -> GR16_NOREX 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_16bit_hi 59, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_mask_0 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_mask_1 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_xmm 0, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit:sub_ymm }, { // CCR 0, // CCR:sub_8bit 0, // CCR:sub_8bit_hi 0, // CCR:sub_8bit_hi_phony 0, // CCR:sub_16bit 0, // CCR:sub_16bit_hi 0, // CCR:sub_32bit 0, // CCR:sub_mask_0 0, // CCR:sub_mask_1 0, // CCR:sub_xmm 0, // CCR:sub_ymm }, { // DFCCR 0, // DFCCR:sub_8bit 0, // DFCCR:sub_8bit_hi 0, // DFCCR:sub_8bit_hi_phony 0, // DFCCR:sub_16bit 0, // DFCCR:sub_16bit_hi 0, // DFCCR:sub_32bit 0, // DFCCR:sub_mask_0 0, // DFCCR:sub_mask_1 0, // DFCCR:sub_xmm 0, // DFCCR:sub_ymm }, { // GR32_ABCD_and_GR32_BSI 5, // GR32_ABCD_and_GR32_BSI:sub_8bit -> GR8_ABCD_L 4, // GR32_ABCD_and_GR32_BSI:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_ABCD_and_GR32_BSI:sub_8bit_hi_phony 20, // GR32_ABCD_and_GR32_BSI:sub_16bit -> GR16_ABCD 0, // GR32_ABCD_and_GR32_BSI:sub_16bit_hi 0, // GR32_ABCD_and_GR32_BSI:sub_32bit 0, // GR32_ABCD_and_GR32_BSI:sub_mask_0 0, // GR32_ABCD_and_GR32_BSI:sub_mask_1 0, // GR32_ABCD_and_GR32_BSI:sub_xmm 0, // GR32_ABCD_and_GR32_BSI:sub_ymm }, { // GR32_AD_and_GR32_DC 5, // GR32_AD_and_GR32_DC:sub_8bit -> GR8_ABCD_L 4, // GR32_AD_and_GR32_DC:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_AD_and_GR32_DC:sub_8bit_hi_phony 20, // GR32_AD_and_GR32_DC:sub_16bit -> GR16_ABCD 0, // GR32_AD_and_GR32_DC:sub_16bit_hi 0, // GR32_AD_and_GR32_DC:sub_32bit 0, // GR32_AD_and_GR32_DC:sub_mask_0 0, // GR32_AD_and_GR32_DC:sub_mask_1 0, // GR32_AD_and_GR32_DC:sub_xmm 0, // GR32_AD_and_GR32_DC:sub_ymm }, { // GR32_BPSP_and_GR32_DIBP 1, // GR32_BPSP_and_GR32_DIBP:sub_8bit -> GR8 0, // GR32_BPSP_and_GR32_DIBP:sub_8bit_hi 0, // GR32_BPSP_and_GR32_DIBP:sub_8bit_hi_phony 8, // GR32_BPSP_and_GR32_DIBP:sub_16bit -> GR16_NOREX 0, // GR32_BPSP_and_GR32_DIBP:sub_16bit_hi 0, // GR32_BPSP_and_GR32_DIBP:sub_32bit 0, // GR32_BPSP_and_GR32_DIBP:sub_mask_0 0, // GR32_BPSP_and_GR32_DIBP:sub_mask_1 0, // GR32_BPSP_and_GR32_DIBP:sub_xmm 0, // GR32_BPSP_and_GR32_DIBP:sub_ymm }, { // GR32_BPSP_and_GR32_TC 1, // GR32_BPSP_and_GR32_TC:sub_8bit -> GR8 0, // GR32_BPSP_and_GR32_TC:sub_8bit_hi 0, // GR32_BPSP_and_GR32_TC:sub_8bit_hi_phony 8, // GR32_BPSP_and_GR32_TC:sub_16bit -> GR16_NOREX 0, // GR32_BPSP_and_GR32_TC:sub_16bit_hi 0, // GR32_BPSP_and_GR32_TC:sub_32bit 0, // GR32_BPSP_and_GR32_TC:sub_mask_0 0, // GR32_BPSP_and_GR32_TC:sub_mask_1 0, // GR32_BPSP_and_GR32_TC:sub_xmm 0, // GR32_BPSP_and_GR32_TC:sub_ymm }, { // GR32_BSI_and_GR32_SIDI 1, // GR32_BSI_and_GR32_SIDI:sub_8bit -> GR8 0, // GR32_BSI_and_GR32_SIDI:sub_8bit_hi 0, // GR32_BSI_and_GR32_SIDI:sub_8bit_hi_phony 8, // GR32_BSI_and_GR32_SIDI:sub_16bit -> GR16_NOREX 0, // GR32_BSI_and_GR32_SIDI:sub_16bit_hi 0, // GR32_BSI_and_GR32_SIDI:sub_32bit 0, // GR32_BSI_and_GR32_SIDI:sub_mask_0 0, // GR32_BSI_and_GR32_SIDI:sub_mask_1 0, // GR32_BSI_and_GR32_SIDI:sub_xmm 0, // GR32_BSI_and_GR32_SIDI:sub_ymm }, { // GR32_CB_and_GR32_DC 5, // GR32_CB_and_GR32_DC:sub_8bit -> GR8_ABCD_L 4, // GR32_CB_and_GR32_DC:sub_8bit_hi -> GR8_ABCD_H 0, // GR32_CB_and_GR32_DC:sub_8bit_hi_phony 20, // GR32_CB_and_GR32_DC:sub_16bit -> GR16_ABCD 0, // GR32_CB_and_GR32_DC:sub_16bit_hi 0, // GR32_CB_and_GR32_DC:sub_32bit 0, // GR32_CB_and_GR32_DC:sub_mask_0 0, // GR32_CB_and_GR32_DC:sub_mask_1 0, // GR32_CB_and_GR32_DC:sub_xmm 0, // GR32_CB_and_GR32_DC:sub_ymm }, { // GR32_DIBP_and_GR32_SIDI 1, // GR32_DIBP_and_GR32_SIDI:sub_8bit -> GR8 0, // GR32_DIBP_and_GR32_SIDI:sub_8bit_hi 0, // GR32_DIBP_and_GR32_SIDI:sub_8bit_hi_phony 8, // GR32_DIBP_and_GR32_SIDI:sub_16bit -> GR16_NOREX 0, // GR32_DIBP_and_GR32_SIDI:sub_16bit_hi 0, // GR32_DIBP_and_GR32_SIDI:sub_32bit 0, // GR32_DIBP_and_GR32_SIDI:sub_mask_0 0, // GR32_DIBP_and_GR32_SIDI:sub_mask_1 0, // GR32_DIBP_and_GR32_SIDI:sub_xmm 0, // GR32_DIBP_and_GR32_SIDI:sub_ymm }, { // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit 1, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_8bit -> GR8 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_8bit_hi 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_8bit_hi_phony 8, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_16bit -> GR16_NOREX 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_16bit_hi 59, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_mask_0 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_mask_1 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_xmm 0, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit:sub_ymm }, { // LOW32_ADDR_ACCESS_with_sub_32bit 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_8bit 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_8bit_hi 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_8bit_hi_phony 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_16bit 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_16bit_hi 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_32bit 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_mask_0 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_mask_1 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_xmm 0, // LOW32_ADDR_ACCESS_with_sub_32bit:sub_ymm }, { // RFP64 0, // RFP64:sub_8bit 0, // RFP64:sub_8bit_hi 0, // RFP64:sub_8bit_hi_phony 0, // RFP64:sub_16bit 0, // RFP64:sub_16bit_hi 0, // RFP64:sub_32bit 0, // RFP64:sub_mask_0 0, // RFP64:sub_mask_1 0, // RFP64:sub_xmm 0, // RFP64:sub_ymm }, { // FR64X 0, // FR64X:sub_8bit 0, // FR64X:sub_8bit_hi 0, // FR64X:sub_8bit_hi_phony 0, // FR64X:sub_16bit 0, // FR64X:sub_16bit_hi 0, // FR64X:sub_32bit 0, // FR64X:sub_mask_0 0, // FR64X:sub_mask_1 0, // FR64X:sub_xmm 0, // FR64X:sub_ymm }, { // GR64 1, // GR64:sub_8bit -> GR8 4, // GR64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64:sub_8bit_hi_phony 7, // GR64:sub_16bit -> GR16 0, // GR64:sub_16bit_hi 36, // GR64:sub_32bit -> GR32 0, // GR64:sub_mask_0 0, // GR64:sub_mask_1 0, // GR64:sub_xmm 0, // GR64:sub_ymm }, { // CONTROL_REG 0, // CONTROL_REG:sub_8bit 0, // CONTROL_REG:sub_8bit_hi 0, // CONTROL_REG:sub_8bit_hi_phony 0, // CONTROL_REG:sub_16bit 0, // CONTROL_REG:sub_16bit_hi 0, // CONTROL_REG:sub_32bit 0, // CONTROL_REG:sub_mask_0 0, // CONTROL_REG:sub_mask_1 0, // CONTROL_REG:sub_xmm 0, // CONTROL_REG:sub_ymm }, { // FR64 0, // FR64:sub_8bit 0, // FR64:sub_8bit_hi 0, // FR64:sub_8bit_hi_phony 0, // FR64:sub_16bit 0, // FR64:sub_16bit_hi 0, // FR64:sub_32bit 0, // FR64:sub_mask_0 0, // FR64:sub_mask_1 0, // FR64:sub_xmm 0, // FR64:sub_ymm }, { // GR64_with_sub_8bit 1, // GR64_with_sub_8bit:sub_8bit -> GR8 4, // GR64_with_sub_8bit:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_8bit:sub_8bit_hi_phony 7, // GR64_with_sub_8bit:sub_16bit -> GR16 0, // GR64_with_sub_8bit:sub_16bit_hi 36, // GR64_with_sub_8bit:sub_32bit -> GR32 0, // GR64_with_sub_8bit:sub_mask_0 0, // GR64_with_sub_8bit:sub_mask_1 0, // GR64_with_sub_8bit:sub_xmm 0, // GR64_with_sub_8bit:sub_ymm }, { // GR64_NOSP 1, // GR64_NOSP:sub_8bit -> GR8 4, // GR64_NOSP:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOSP:sub_8bit_hi_phony 7, // GR64_NOSP:sub_16bit -> GR16 0, // GR64_NOSP:sub_16bit_hi 37, // GR64_NOSP:sub_32bit -> GR32_NOSP 0, // GR64_NOSP:sub_mask_0 0, // GR64_NOSP:sub_mask_1 0, // GR64_NOSP:sub_xmm 0, // GR64_NOSP:sub_ymm }, { // GR64PLTSafe 1, // GR64PLTSafe:sub_8bit -> GR8 4, // GR64PLTSafe:sub_8bit_hi -> GR8_ABCD_H 0, // GR64PLTSafe:sub_8bit_hi_phony 7, // GR64PLTSafe:sub_16bit -> GR16 0, // GR64PLTSafe:sub_16bit_hi 37, // GR64PLTSafe:sub_32bit -> GR32_NOSP 0, // GR64PLTSafe:sub_mask_0 0, // GR64PLTSafe:sub_mask_1 0, // GR64PLTSafe:sub_xmm 0, // GR64PLTSafe:sub_ymm }, { // GR64_TC 1, // GR64_TC:sub_8bit -> GR8 4, // GR64_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TC:sub_8bit_hi_phony 7, // GR64_TC:sub_16bit -> GR16 0, // GR64_TC:sub_16bit_hi 36, // GR64_TC:sub_32bit -> GR32 0, // GR64_TC:sub_mask_0 0, // GR64_TC:sub_mask_1 0, // GR64_TC:sub_xmm 0, // GR64_TC:sub_ymm }, { // GR64_NOREX 1, // GR64_NOREX:sub_8bit -> GR8 4, // GR64_NOREX:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOREX:sub_8bit_hi_phony 8, // GR64_NOREX:sub_16bit -> GR16_NOREX 0, // GR64_NOREX:sub_16bit_hi 39, // GR64_NOREX:sub_32bit -> GR32_NOREX 0, // GR64_NOREX:sub_mask_0 0, // GR64_NOREX:sub_mask_1 0, // GR64_NOREX:sub_xmm 0, // GR64_NOREX:sub_ymm }, { // GR64_TCW64 1, // GR64_TCW64:sub_8bit -> GR8 4, // GR64_TCW64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TCW64:sub_8bit_hi_phony 7, // GR64_TCW64:sub_16bit -> GR16 0, // GR64_TCW64:sub_16bit_hi 36, // GR64_TCW64:sub_32bit -> GR32 0, // GR64_TCW64:sub_mask_0 0, // GR64_TCW64:sub_mask_1 0, // GR64_TCW64:sub_xmm 0, // GR64_TCW64:sub_ymm }, { // GR64_TC_with_sub_8bit 1, // GR64_TC_with_sub_8bit:sub_8bit -> GR8 4, // GR64_TC_with_sub_8bit:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TC_with_sub_8bit:sub_8bit_hi_phony 7, // GR64_TC_with_sub_8bit:sub_16bit -> GR16 0, // GR64_TC_with_sub_8bit:sub_16bit_hi 36, // GR64_TC_with_sub_8bit:sub_32bit -> GR32 0, // GR64_TC_with_sub_8bit:sub_mask_0 0, // GR64_TC_with_sub_8bit:sub_mask_1 0, // GR64_TC_with_sub_8bit:sub_xmm 0, // GR64_TC_with_sub_8bit:sub_ymm }, { // GR64_NOSP_and_GR64_TC 1, // GR64_NOSP_and_GR64_TC:sub_8bit -> GR8 4, // GR64_NOSP_and_GR64_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOSP_and_GR64_TC:sub_8bit_hi_phony 7, // GR64_NOSP_and_GR64_TC:sub_16bit -> GR16 0, // GR64_NOSP_and_GR64_TC:sub_16bit_hi 37, // GR64_NOSP_and_GR64_TC:sub_32bit -> GR32_NOSP 0, // GR64_NOSP_and_GR64_TC:sub_mask_0 0, // GR64_NOSP_and_GR64_TC:sub_mask_1 0, // GR64_NOSP_and_GR64_TC:sub_xmm 0, // GR64_NOSP_and_GR64_TC:sub_ymm }, { // GR64_TCW64_with_sub_8bit 1, // GR64_TCW64_with_sub_8bit:sub_8bit -> GR8 4, // GR64_TCW64_with_sub_8bit:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TCW64_with_sub_8bit:sub_8bit_hi_phony 7, // GR64_TCW64_with_sub_8bit:sub_16bit -> GR16 0, // GR64_TCW64_with_sub_8bit:sub_16bit_hi 36, // GR64_TCW64_with_sub_8bit:sub_32bit -> GR32 0, // GR64_TCW64_with_sub_8bit:sub_mask_0 0, // GR64_TCW64_with_sub_8bit:sub_mask_1 0, // GR64_TCW64_with_sub_8bit:sub_xmm 0, // GR64_TCW64_with_sub_8bit:sub_ymm }, { // GR64_TC_and_GR64_TCW64 1, // GR64_TC_and_GR64_TCW64:sub_8bit -> GR8 4, // GR64_TC_and_GR64_TCW64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TC_and_GR64_TCW64:sub_8bit_hi_phony 7, // GR64_TC_and_GR64_TCW64:sub_16bit -> GR16 0, // GR64_TC_and_GR64_TCW64:sub_16bit_hi 36, // GR64_TC_and_GR64_TCW64:sub_32bit -> GR32 0, // GR64_TC_and_GR64_TCW64:sub_mask_0 0, // GR64_TC_and_GR64_TCW64:sub_mask_1 0, // GR64_TC_and_GR64_TCW64:sub_xmm 0, // GR64_TC_and_GR64_TCW64:sub_ymm }, { // GR64_with_sub_16bit_in_GR16_NOREX 1, // GR64_with_sub_16bit_in_GR16_NOREX:sub_8bit -> GR8 4, // GR64_with_sub_16bit_in_GR16_NOREX:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_16bit_in_GR16_NOREX:sub_8bit_hi_phony 8, // GR64_with_sub_16bit_in_GR16_NOREX:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_16bit_in_GR16_NOREX:sub_16bit_hi 39, // GR64_with_sub_16bit_in_GR16_NOREX:sub_32bit -> GR32_NOREX 0, // GR64_with_sub_16bit_in_GR16_NOREX:sub_mask_0 0, // GR64_with_sub_16bit_in_GR16_NOREX:sub_mask_1 0, // GR64_with_sub_16bit_in_GR16_NOREX:sub_xmm 0, // GR64_with_sub_16bit_in_GR16_NOREX:sub_ymm }, { // VK64 0, // VK64:sub_8bit 0, // VK64:sub_8bit_hi 0, // VK64:sub_8bit_hi_phony 0, // VK64:sub_16bit 0, // VK64:sub_16bit_hi 0, // VK64:sub_32bit 0, // VK64:sub_mask_0 0, // VK64:sub_mask_1 0, // VK64:sub_xmm 0, // VK64:sub_ymm }, { // VR64 0, // VR64:sub_8bit 0, // VR64:sub_8bit_hi 0, // VR64:sub_8bit_hi_phony 0, // VR64:sub_16bit 0, // VR64:sub_16bit_hi 0, // VR64:sub_32bit 0, // VR64:sub_mask_0 0, // VR64:sub_mask_1 0, // VR64:sub_xmm 0, // VR64:sub_ymm }, { // GR64PLTSafe_and_GR64_TC 1, // GR64PLTSafe_and_GR64_TC:sub_8bit -> GR8 4, // GR64PLTSafe_and_GR64_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64PLTSafe_and_GR64_TC:sub_8bit_hi_phony 7, // GR64PLTSafe_and_GR64_TC:sub_16bit -> GR16 0, // GR64PLTSafe_and_GR64_TC:sub_16bit_hi 37, // GR64PLTSafe_and_GR64_TC:sub_32bit -> GR32_NOSP 0, // GR64PLTSafe_and_GR64_TC:sub_mask_0 0, // GR64PLTSafe_and_GR64_TC:sub_mask_1 0, // GR64PLTSafe_and_GR64_TC:sub_xmm 0, // GR64PLTSafe_and_GR64_TC:sub_ymm }, { // GR64_NOREX_NOSP 1, // GR64_NOREX_NOSP:sub_8bit -> GR8 4, // GR64_NOREX_NOSP:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOREX_NOSP:sub_8bit_hi_phony 8, // GR64_NOREX_NOSP:sub_16bit -> GR16_NOREX 0, // GR64_NOREX_NOSP:sub_16bit_hi 41, // GR64_NOREX_NOSP:sub_32bit -> GR32_NOREX_NOSP 0, // GR64_NOREX_NOSP:sub_mask_0 0, // GR64_NOREX_NOSP:sub_mask_1 0, // GR64_NOREX_NOSP:sub_xmm 0, // GR64_NOREX_NOSP:sub_ymm }, { // GR64_NOREX_and_GR64_TC 1, // GR64_NOREX_and_GR64_TC:sub_8bit -> GR8 4, // GR64_NOREX_and_GR64_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOREX_and_GR64_TC:sub_8bit_hi_phony 8, // GR64_NOREX_and_GR64_TC:sub_16bit -> GR16_NOREX 0, // GR64_NOREX_and_GR64_TC:sub_16bit_hi 39, // GR64_NOREX_and_GR64_TC:sub_32bit -> GR32_NOREX 0, // GR64_NOREX_and_GR64_TC:sub_mask_0 0, // GR64_NOREX_and_GR64_TC:sub_mask_1 0, // GR64_NOREX_and_GR64_TC:sub_xmm 0, // GR64_NOREX_and_GR64_TC:sub_ymm }, { // GR64_NOSP_and_GR64_TCW64 1, // GR64_NOSP_and_GR64_TCW64:sub_8bit -> GR8 4, // GR64_NOSP_and_GR64_TCW64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOSP_and_GR64_TCW64:sub_8bit_hi_phony 7, // GR64_NOSP_and_GR64_TCW64:sub_16bit -> GR16 0, // GR64_NOSP_and_GR64_TCW64:sub_16bit_hi 37, // GR64_NOSP_and_GR64_TCW64:sub_32bit -> GR32_NOSP 0, // GR64_NOSP_and_GR64_TCW64:sub_mask_0 0, // GR64_NOSP_and_GR64_TCW64:sub_mask_1 0, // GR64_NOSP_and_GR64_TCW64:sub_xmm 0, // GR64_NOSP_and_GR64_TCW64:sub_ymm }, { // GR64_TCW64_and_GR64_TC_with_sub_8bit 1, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_8bit -> GR8 4, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_8bit_hi_phony 7, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_16bit -> GR16 0, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_16bit_hi 36, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_32bit -> GR32 0, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_mask_0 0, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_mask_1 0, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_xmm 0, // GR64_TCW64_and_GR64_TC_with_sub_8bit:sub_ymm }, { // VK64WM 0, // VK64WM:sub_8bit 0, // VK64WM:sub_8bit_hi 0, // VK64WM:sub_8bit_hi_phony 0, // VK64WM:sub_16bit 0, // VK64WM:sub_16bit_hi 0, // VK64WM:sub_32bit 0, // VK64WM:sub_mask_0 0, // VK64WM:sub_mask_1 0, // VK64WM:sub_xmm 0, // VK64WM:sub_ymm }, { // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 1, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_8bit -> GR8 4, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_8bit_hi_phony 7, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_16bit -> GR16 0, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_16bit_hi 37, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_32bit -> GR32_NOSP 0, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_mask_0 0, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_mask_1 0, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_xmm 0, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64:sub_ymm }, { // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX 1, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_8bit -> GR8 4, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_8bit_hi_phony 8, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_16bit -> GR16_NOREX 0, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_16bit_hi 39, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_32bit -> GR32_NOREX 0, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_mask_0 0, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_mask_1 0, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_xmm 0, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX:sub_ymm }, { // GR64PLTSafe_and_GR64_TCW64 1, // GR64PLTSafe_and_GR64_TCW64:sub_8bit -> GR8 4, // GR64PLTSafe_and_GR64_TCW64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64PLTSafe_and_GR64_TCW64:sub_8bit_hi_phony 7, // GR64PLTSafe_and_GR64_TCW64:sub_16bit -> GR16 0, // GR64PLTSafe_and_GR64_TCW64:sub_16bit_hi 37, // GR64PLTSafe_and_GR64_TCW64:sub_32bit -> GR32_NOSP 0, // GR64PLTSafe_and_GR64_TCW64:sub_mask_0 0, // GR64PLTSafe_and_GR64_TCW64:sub_mask_1 0, // GR64PLTSafe_and_GR64_TCW64:sub_xmm 0, // GR64PLTSafe_and_GR64_TCW64:sub_ymm }, { // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC 1, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_8bit -> GR8 4, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_8bit_hi_phony 8, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_16bit -> GR16_NOREX 0, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_16bit_hi 41, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_32bit -> GR32_NOREX_NOSP 0, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_mask_0 0, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_mask_1 0, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_xmm 0, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC:sub_ymm }, { // GR64_NOREX_and_GR64_TCW64 1, // GR64_NOREX_and_GR64_TCW64:sub_8bit -> GR8 4, // GR64_NOREX_and_GR64_TCW64:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_NOREX_and_GR64_TCW64:sub_8bit_hi_phony 8, // GR64_NOREX_and_GR64_TCW64:sub_16bit -> GR16_NOREX 0, // GR64_NOREX_and_GR64_TCW64:sub_16bit_hi 45, // GR64_NOREX_and_GR64_TCW64:sub_32bit -> GR32_TC 0, // GR64_NOREX_and_GR64_TCW64:sub_mask_0 0, // GR64_NOREX_and_GR64_TCW64:sub_mask_1 0, // GR64_NOREX_and_GR64_TCW64:sub_xmm 0, // GR64_NOREX_and_GR64_TCW64:sub_ymm }, { // GR64_ABCD 5, // GR64_ABCD:sub_8bit -> GR8_ABCD_L 4, // GR64_ABCD:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_ABCD:sub_8bit_hi_phony 20, // GR64_ABCD:sub_16bit -> GR16_ABCD 0, // GR64_ABCD:sub_16bit_hi 44, // GR64_ABCD:sub_32bit -> GR32_ABCD 0, // GR64_ABCD:sub_mask_0 0, // GR64_ABCD:sub_mask_1 0, // GR64_ABCD:sub_xmm 0, // GR64_ABCD:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_TC 1, // GR64_with_sub_32bit_in_GR32_TC:sub_8bit -> GR8 4, // GR64_with_sub_32bit_in_GR32_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_TC:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_TC:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_TC:sub_16bit_hi 45, // GR64_with_sub_32bit_in_GR32_TC:sub_32bit -> GR32_TC 0, // GR64_with_sub_32bit_in_GR32_TC:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_TC:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_TC:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_TC:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC 5, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_8bit -> GR8_ABCD_L 4, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_8bit_hi_phony 20, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_16bit -> GR16_ABCD 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_16bit_hi 46, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_32bit -> GR32_ABCD_and_GR32_TC 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC:sub_ymm }, { // GR64_AD 5, // GR64_AD:sub_8bit -> GR8_ABCD_L 4, // GR64_AD:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_AD:sub_8bit_hi_phony 20, // GR64_AD:sub_16bit -> GR16_ABCD 0, // GR64_AD:sub_16bit_hi 47, // GR64_AD:sub_32bit -> GR32_AD 0, // GR64_AD:sub_mask_0 0, // GR64_AD:sub_mask_1 0, // GR64_AD:sub_xmm 0, // GR64_AD:sub_ymm }, { // GR64_and_LOW32_ADDR_ACCESS_RBP 1, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_8bit -> GR8 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_8bit_hi 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_8bit_hi_phony 8, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_16bit -> GR16_NOREX 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_16bit_hi 59, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_mask_0 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_mask_1 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_xmm 0, // GR64_and_LOW32_ADDR_ACCESS_RBP:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BPSP 1, // GR64_with_sub_32bit_in_GR32_BPSP:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_BPSP:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_16bit_hi 48, // GR64_with_sub_32bit_in_GR32_BPSP:sub_32bit -> GR32_BPSP 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_BPSP:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BSI 1, // GR64_with_sub_32bit_in_GR32_BSI:sub_8bit -> GR8 4, // GR64_with_sub_32bit_in_GR32_BSI:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_BSI:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_BSI:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_BSI:sub_16bit_hi 49, // GR64_with_sub_32bit_in_GR32_BSI:sub_32bit -> GR32_BSI 0, // GR64_with_sub_32bit_in_GR32_BSI:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_BSI:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_BSI:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_BSI:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_CB 5, // GR64_with_sub_32bit_in_GR32_CB:sub_8bit -> GR8_ABCD_L 4, // GR64_with_sub_32bit_in_GR32_CB:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_CB:sub_8bit_hi_phony 20, // GR64_with_sub_32bit_in_GR32_CB:sub_16bit -> GR16_ABCD 0, // GR64_with_sub_32bit_in_GR32_CB:sub_16bit_hi 50, // GR64_with_sub_32bit_in_GR32_CB:sub_32bit -> GR32_CB 0, // GR64_with_sub_32bit_in_GR32_CB:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_CB:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_CB:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_CB:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_DC 5, // GR64_with_sub_32bit_in_GR32_DC:sub_8bit -> GR8_ABCD_L 4, // GR64_with_sub_32bit_in_GR32_DC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_DC:sub_8bit_hi_phony 20, // GR64_with_sub_32bit_in_GR32_DC:sub_16bit -> GR16_ABCD 0, // GR64_with_sub_32bit_in_GR32_DC:sub_16bit_hi 51, // GR64_with_sub_32bit_in_GR32_DC:sub_32bit -> GR32_DC 0, // GR64_with_sub_32bit_in_GR32_DC:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_DC:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_DC:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_DC:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_DIBP 1, // GR64_with_sub_32bit_in_GR32_DIBP:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_DIBP:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_16bit_hi 52, // GR64_with_sub_32bit_in_GR32_DIBP:sub_32bit -> GR32_DIBP 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_DIBP:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_SIDI 1, // GR64_with_sub_32bit_in_GR32_SIDI:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_SIDI:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_16bit_hi 53, // GR64_with_sub_32bit_in_GR32_SIDI:sub_32bit -> GR32_SIDI 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_SIDI:sub_ymm }, { // GR64_and_LOW32_ADDR_ACCESS 0, // GR64_and_LOW32_ADDR_ACCESS:sub_8bit 0, // GR64_and_LOW32_ADDR_ACCESS:sub_8bit_hi 0, // GR64_and_LOW32_ADDR_ACCESS:sub_8bit_hi_phony 0, // GR64_and_LOW32_ADDR_ACCESS:sub_16bit 0, // GR64_and_LOW32_ADDR_ACCESS:sub_16bit_hi 0, // GR64_and_LOW32_ADDR_ACCESS:sub_32bit 0, // GR64_and_LOW32_ADDR_ACCESS:sub_mask_0 0, // GR64_and_LOW32_ADDR_ACCESS:sub_mask_1 0, // GR64_and_LOW32_ADDR_ACCESS:sub_xmm 0, // GR64_and_LOW32_ADDR_ACCESS:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI 5, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_8bit -> GR8_ABCD_L 4, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_8bit_hi_phony 20, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_16bit -> GR16_ABCD 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_16bit_hi 57, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_32bit -> GR32_ABCD_and_GR32_BSI 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC 5, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_8bit -> GR8_ABCD_L 4, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_8bit_hi_phony 20, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_16bit -> GR16_ABCD 0, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_16bit_hi 58, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_32bit -> GR32_AD_and_GR32_DC 0, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP 1, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_16bit_hi 59, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_32bit -> GR32_BPSP_and_GR32_DIBP 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC 1, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_16bit_hi 60, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_32bit -> GR32_BPSP_and_GR32_TC 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI 1, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_16bit_hi 61, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_32bit -> GR32_BSI_and_GR32_SIDI 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC 5, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_8bit -> GR8_ABCD_L 4, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_8bit_hi -> GR8_ABCD_H 0, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_8bit_hi_phony 20, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_16bit -> GR16_ABCD 0, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_16bit_hi 62, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_32bit -> GR32_CB_and_GR32_DC 0, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC:sub_ymm }, { // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI 1, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_8bit -> GR8 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_8bit_hi 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_8bit_hi_phony 8, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_16bit -> GR16_NOREX 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_16bit_hi 63, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_32bit -> GR32_DIBP_and_GR32_SIDI 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_mask_0 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_mask_1 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_xmm 0, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI:sub_ymm }, { // RST 0, // RST:sub_8bit 0, // RST:sub_8bit_hi 0, // RST:sub_8bit_hi_phony 0, // RST:sub_16bit 0, // RST:sub_16bit_hi 0, // RST:sub_32bit 0, // RST:sub_mask_0 0, // RST:sub_mask_1 0, // RST:sub_xmm 0, // RST:sub_ymm }, { // RFP80 0, // RFP80:sub_8bit 0, // RFP80:sub_8bit_hi 0, // RFP80:sub_8bit_hi_phony 0, // RFP80:sub_16bit 0, // RFP80:sub_16bit_hi 0, // RFP80:sub_32bit 0, // RFP80:sub_mask_0 0, // RFP80:sub_mask_1 0, // RFP80:sub_xmm 0, // RFP80:sub_ymm }, { // RFP80_7 0, // RFP80_7:sub_8bit 0, // RFP80_7:sub_8bit_hi 0, // RFP80_7:sub_8bit_hi_phony 0, // RFP80_7:sub_16bit 0, // RFP80_7:sub_16bit_hi 0, // RFP80_7:sub_32bit 0, // RFP80_7:sub_mask_0 0, // RFP80_7:sub_mask_1 0, // RFP80_7:sub_xmm 0, // RFP80_7:sub_ymm }, { // VR128X 0, // VR128X:sub_8bit 0, // VR128X:sub_8bit_hi 0, // VR128X:sub_8bit_hi_phony 0, // VR128X:sub_16bit 0, // VR128X:sub_16bit_hi 0, // VR128X:sub_32bit 0, // VR128X:sub_mask_0 0, // VR128X:sub_mask_1 0, // VR128X:sub_xmm 0, // VR128X:sub_ymm }, { // VR128 0, // VR128:sub_8bit 0, // VR128:sub_8bit_hi 0, // VR128:sub_8bit_hi_phony 0, // VR128:sub_16bit 0, // VR128:sub_16bit_hi 0, // VR128:sub_32bit 0, // VR128:sub_mask_0 0, // VR128:sub_mask_1 0, // VR128:sub_xmm 0, // VR128:sub_ymm }, { // VR256X 0, // VR256X:sub_8bit 0, // VR256X:sub_8bit_hi 0, // VR256X:sub_8bit_hi_phony 0, // VR256X:sub_16bit 0, // VR256X:sub_16bit_hi 0, // VR256X:sub_32bit 0, // VR256X:sub_mask_0 0, // VR256X:sub_mask_1 22, // VR256X:sub_xmm -> FR16X 0, // VR256X:sub_ymm }, { // VR256 0, // VR256:sub_8bit 0, // VR256:sub_8bit_hi 0, // VR256:sub_8bit_hi_phony 0, // VR256:sub_16bit 0, // VR256:sub_16bit_hi 0, // VR256:sub_32bit 0, // VR256:sub_mask_0 0, // VR256:sub_mask_1 23, // VR256:sub_xmm -> FR16 0, // VR256:sub_ymm }, { // VR512 0, // VR512:sub_8bit 0, // VR512:sub_8bit_hi 0, // VR512:sub_8bit_hi_phony 0, // VR512:sub_16bit 0, // VR512:sub_16bit_hi 0, // VR512:sub_32bit 0, // VR512:sub_mask_0 0, // VR512:sub_mask_1 22, // VR512:sub_xmm -> FR16X 119, // VR512:sub_ymm -> VR256X }, { // VR512_0_15 0, // VR512_0_15:sub_8bit 0, // VR512_0_15:sub_8bit_hi 0, // VR512_0_15:sub_8bit_hi_phony 0, // VR512_0_15:sub_16bit 0, // VR512_0_15:sub_16bit_hi 0, // VR512_0_15:sub_32bit 0, // VR512_0_15:sub_mask_0 0, // VR512_0_15:sub_mask_1 23, // VR512_0_15:sub_xmm -> FR16 120, // VR512_0_15:sub_ymm -> VR256 }, { // TILE 0, // TILE:sub_8bit 0, // TILE:sub_8bit_hi 0, // TILE:sub_8bit_hi_phony 0, // TILE:sub_16bit 0, // TILE:sub_16bit_hi 0, // TILE:sub_32bit 0, // TILE:sub_mask_0 0, // TILE:sub_mask_1 0, // TILE:sub_xmm 0, // TILE:sub_ymm }, }; assert(RC && "Missing regclass"); if (!Idx) return RC; --Idx; assert(Idx < 10 && "Bad subreg"); unsigned TV = Table[RC->getID()][Idx]; return TV ? getRegClass(TV - 1) : nullptr; } /// Get the weight in units of pressure for this register class. const RegClassWeight &X86GenRegisterInfo:: getRegClassWeight(const TargetRegisterClass *RC) const { static const RegClassWeight RCWeightTable[] = { {1, 20}, // GR8 {0, 0}, // GRH8 {1, 8}, // GR8_NOREX {1, 4}, // GR8_ABCD_H {1, 4}, // GR8_ABCD_L {0, 0}, // GRH16 {2, 32}, // GR16 {2, 16}, // GR16_NOREX {1, 8}, // VK1 {1, 8}, // VK16 {1, 8}, // VK2 {1, 8}, // VK4 {1, 8}, // VK8 {1, 7}, // VK16WM {1, 7}, // VK1WM {1, 7}, // VK2WM {1, 7}, // VK4WM {1, 7}, // VK8WM {1, 6}, // SEGMENT_REG {2, 8}, // GR16_ABCD {0, 0}, // FPCCR {1, 32}, // FR16X {1, 16}, // FR16 {2, 8}, // VK16PAIR {2, 8}, // VK1PAIR {2, 8}, // VK2PAIR {2, 8}, // VK4PAIR {2, 8}, // VK8PAIR {2, 6}, // VK16PAIR_with_sub_mask_0_in_VK16WM {1, 32}, // FR32X {2, 34}, // LOW32_ADDR_ACCESS_RBP {2, 34}, // LOW32_ADDR_ACCESS {2, 32}, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit {1, 16}, // DEBUG_REG {1, 16}, // FR32 {2, 32}, // GR32 {2, 30}, // GR32_NOSP {2, 16}, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX {2, 16}, // GR32_NOREX {1, 8}, // VK32 {2, 14}, // GR32_NOREX_NOSP {1, 7}, // RFP32 {1, 7}, // VK32WM {2, 8}, // GR32_ABCD {2, 8}, // GR32_TC {2, 6}, // GR32_ABCD_and_GR32_TC {2, 4}, // GR32_AD {2, 4}, // GR32_BPSP {2, 4}, // GR32_BSI {2, 4}, // GR32_CB {2, 4}, // GR32_DC {2, 4}, // GR32_DIBP {2, 4}, // GR32_SIDI {2, 4}, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit {0, 0}, // CCR {0, 0}, // DFCCR {2, 2}, // GR32_ABCD_and_GR32_BSI {2, 2}, // GR32_AD_and_GR32_DC {2, 2}, // GR32_BPSP_and_GR32_DIBP {2, 2}, // GR32_BPSP_and_GR32_TC {2, 2}, // GR32_BSI_and_GR32_SIDI {2, 2}, // GR32_CB_and_GR32_DC {2, 2}, // GR32_DIBP_and_GR32_SIDI {2, 2}, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit {2, 2}, // LOW32_ADDR_ACCESS_with_sub_32bit {1, 7}, // RFP64 {1, 32}, // FR64X {2, 34}, // GR64 {1, 16}, // CONTROL_REG {1, 16}, // FR64 {2, 32}, // GR64_with_sub_8bit {2, 30}, // GR64_NOSP {2, 26}, // GR64PLTSafe {2, 20}, // GR64_TC {2, 18}, // GR64_NOREX {2, 18}, // GR64_TCW64 {2, 18}, // GR64_TC_with_sub_8bit {2, 16}, // GR64_NOSP_and_GR64_TC {2, 16}, // GR64_TCW64_with_sub_8bit {2, 16}, // GR64_TC_and_GR64_TCW64 {2, 16}, // GR64_with_sub_16bit_in_GR16_NOREX {1, 8}, // VK64 {1, 8}, // VR64 {2, 14}, // GR64PLTSafe_and_GR64_TC {2, 14}, // GR64_NOREX_NOSP {2, 14}, // GR64_NOREX_and_GR64_TC {2, 14}, // GR64_NOSP_and_GR64_TCW64 {2, 14}, // GR64_TCW64_and_GR64_TC_with_sub_8bit {1, 7}, // VK64WM {2, 12}, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 {2, 12}, // GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREX {2, 10}, // GR64PLTSafe_and_GR64_TCW64 {2, 10}, // GR64_NOREX_and_GR64PLTSafe_and_GR64_TC {2, 10}, // GR64_NOREX_and_GR64_TCW64 {2, 8}, // GR64_ABCD {2, 8}, // GR64_with_sub_32bit_in_GR32_TC {2, 6}, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TC {2, 4}, // GR64_AD {2, 4}, // GR64_and_LOW32_ADDR_ACCESS_RBP {2, 4}, // GR64_with_sub_32bit_in_GR32_BPSP {2, 4}, // GR64_with_sub_32bit_in_GR32_BSI {2, 4}, // GR64_with_sub_32bit_in_GR32_CB {2, 4}, // GR64_with_sub_32bit_in_GR32_DC {2, 4}, // GR64_with_sub_32bit_in_GR32_DIBP {2, 4}, // GR64_with_sub_32bit_in_GR32_SIDI {2, 2}, // GR64_and_LOW32_ADDR_ACCESS {2, 2}, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI {2, 2}, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC {2, 2}, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP {2, 2}, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TC {2, 2}, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI {2, 2}, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC {2, 2}, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI {0, 0}, // RST {1, 7}, // RFP80 {0, 0}, // RFP80_7 {1, 32}, // VR128X {1, 16}, // VR128 {1, 32}, // VR256X {1, 16}, // VR256 {1, 32}, // VR512 {1, 16}, // VR512_0_15 {1, 8}, // TILE }; return RCWeightTable[RC->getID()]; } /// Get the weight in units of pressure for this register unit. unsigned X86GenRegisterInfo:: getRegUnitWeight(unsigned RegUnit) const { assert(RegUnit < 173 && "invalid register unit"); // All register units have unit weight. return 1; } // Get the number of dimensions of register pressure. unsigned X86GenRegisterInfo::getNumRegPressureSets() const { return 34; } // Get the name of this register unit pressure set. const char *X86GenRegisterInfo:: getRegPressureSetName(unsigned Idx) const { static const char *PressureNameTable[] = { "SEGMENT_REG", "GR32_BPSP", "LOW32_ADDR_ACCESS_with_sub_32bit", "GR32_BSI", "GR32_SIDI", "GR32_DIBP_with_GR32_SIDI", "GR32_DIBP_with_LOW32_ADDR_ACCESS_with_sub_32bit", "RFP32", "GR8_ABCD_H_with_GR32_BSI", "GR8_ABCD_L_with_GR32_BSI", "VK1", "VR64", "TILE", "GR8_NOREX", "GR32_TC", "GR32_BPSP_with_GR32_TC", "FR16", "DEBUG_REG", "CONTROL_REG", "GR64_NOREX", "GR64_TCW64", "GR32_BPSP_with_GR64_TCW64", "GR8", "GR8_with_GR32_DIBP", "GR8_with_GR32_BSI", "GR64_TC_with_GR64_TCW64", "GR8_with_LOW32_ADDR_ACCESS_with_sub_32bit", "GR8_with_GR64_NOREX", "GR64_TC", "GR8_with_GR64_TCW64", "GR8_with_GR64_TC", "GR8_with_GR64PLTSafe", "FR16X", "GR16", }; return PressureNameTable[Idx]; } // Get the register unit pressure limit for this dimension. // This limit must be adjusted dynamically for reserved registers. unsigned X86GenRegisterInfo:: getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const { static const uint8_t PressureLimitTable[] = { 6, // 0: SEGMENT_REG 6, // 1: GR32_BPSP 6, // 2: LOW32_ADDR_ACCESS_with_sub_32bit 6, // 3: GR32_BSI 6, // 4: GR32_SIDI 6, // 5: GR32_DIBP_with_GR32_SIDI 6, // 6: GR32_DIBP_with_LOW32_ADDR_ACCESS_with_sub_32bit 7, // 7: RFP32 7, // 8: GR8_ABCD_H_with_GR32_BSI 7, // 9: GR8_ABCD_L_with_GR32_BSI 8, // 10: VK1 8, // 11: VR64 8, // 12: TILE 10, // 13: GR8_NOREX 12, // 14: GR32_TC 12, // 15: GR32_BPSP_with_GR32_TC 16, // 16: FR16 16, // 17: DEBUG_REG 16, // 18: CONTROL_REG 18, // 19: GR64_NOREX 20, // 20: GR64_TCW64 20, // 21: GR32_BPSP_with_GR64_TCW64 22, // 22: GR8 22, // 23: GR8_with_GR32_DIBP 22, // 24: GR8_with_GR32_BSI 22, // 25: GR64_TC_with_GR64_TCW64 23, // 26: GR8_with_LOW32_ADDR_ACCESS_with_sub_32bit 26, // 27: GR8_with_GR64_NOREX 26, // 28: GR64_TC 27, // 29: GR8_with_GR64_TCW64 28, // 30: GR8_with_GR64_TC 29, // 31: GR8_with_GR64PLTSafe 32, // 32: FR16X 34, // 33: GR16 }; return PressureLimitTable[Idx]; } /// Table of pressure sets per register class or unit. static const int RCSetsTable[] = { /* 0 */ 0, -1, /* 2 */ 7, -1, /* 4 */ 10, -1, /* 6 */ 11, -1, /* 8 */ 12, -1, /* 10 */ 17, -1, /* 12 */ 18, -1, /* 14 */ 16, 32, -1, /* 17 */ 19, 27, 28, 33, -1, /* 22 */ 1, 2, 15, 19, 21, 22, 27, 28, 33, -1, /* 32 */ 2, 6, 15, 19, 21, 26, 27, 28, 33, -1, /* 42 */ 20, 21, 25, 28, 29, 33, -1, /* 49 */ 25, 28, 30, 33, -1, /* 54 */ 19, 25, 27, 28, 30, 33, -1, /* 61 */ 20, 21, 25, 28, 29, 30, 33, -1, /* 69 */ 14, 15, 19, 20, 21, 25, 27, 28, 29, 30, 33, -1, /* 81 */ 1, 2, 14, 15, 19, 20, 21, 22, 25, 27, 28, 29, 30, 33, -1, /* 96 */ 2, 6, 14, 15, 19, 20, 21, 25, 26, 27, 28, 29, 30, 33, -1, /* 111 */ 19, 27, 28, 31, 33, -1, /* 117 */ 1, 5, 6, 19, 23, 27, 28, 31, 33, -1, /* 127 */ 1, 2, 5, 6, 15, 19, 21, 22, 23, 26, 27, 28, 31, 33, -1, /* 142 */ 25, 28, 30, 31, 33, -1, /* 148 */ 3, 4, 8, 9, 13, 19, 24, 27, 28, 30, 31, 33, -1, /* 161 */ 4, 5, 19, 24, 25, 27, 28, 30, 31, 33, -1, /* 172 */ 3, 4, 5, 8, 9, 13, 19, 24, 25, 27, 28, 30, 31, 33, -1, /* 187 */ 1, 4, 5, 6, 19, 23, 24, 25, 27, 28, 30, 31, 33, -1, /* 201 */ 22, 23, 24, 26, 27, 29, 30, 31, 33, -1, /* 211 */ 20, 21, 25, 28, 29, 30, 31, 33, -1, /* 220 */ 3, 13, 14, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, -1, /* 236 */ 8, 13, 14, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, -1, /* 252 */ 3, 4, 8, 9, 13, 14, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, -1, /* 271 */ 1, 2, 5, 6, 15, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, -1, /* 289 */ 1, 4, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, -1, /* 306 */ 3, 4, 5, 8, 9, 13, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, -1, /* 325 */ 1, 2, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, -1, /* 344 */ 3, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, -1, /* 363 */ 3, 8, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, -1, /* 383 */ 3, 9, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, -1, }; /// Get the dimensions of register pressure impacted by this register class. /// Returns a -1 terminated array of pressure set IDs const int *X86GenRegisterInfo:: getRegClassPressureSets(const TargetRegisterClass *RC) const { static const uint16_t RCSetStartTable[] = { 201,1,221,236,255,1,20,17,4,4,4,4,4,4,4,4,4,4,0,221,1,15,14,4,4,4,4,4,4,15,20,20,20,10,14,20,20,17,17,4,111,2,4,221,83,345,345,22,148,220,345,117,161,32,1,1,252,345,127,81,172,344,187,127,96,2,15,20,12,14,20,20,114,49,17,42,49,49,42,61,17,4,6,142,111,54,42,61,4,61,54,211,163,69,221,83,345,345,32,22,148,220,345,117,161,96,252,345,127,81,172,344,187,1,2,1,15,14,15,14,15,14,8,}; return &RCSetsTable[RCSetStartTable[RC->getID()]]; } /// Get the dimensions of register pressure impacted by this register unit. /// Returns a -1 terminated array of pressure set IDs const int *X86GenRegisterInfo:: getRegUnitPressureSets(unsigned RegUnit) const { assert(RegUnit < 173 && "invalid register unit"); static const uint16_t RUSetStartTable[] = { 364,384,252,252,271,1,363,383,0,1,364,289,1,384,0,1,1,1,1,1,1,1,96,1,1,0,306,1,1,325,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,2,2,2,2,2,2,2,1,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,330,1,1,330,1,1,330,1,1,330,1,1,201,1,1,201,1,1,201,1,1,201,1,1,1,1,1,1,1,1,1,1,8,8,8,8,8,8,8,8,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,}; return &RCSetsTable[RUSetStartTable[RegUnit]]; } extern const MCRegisterDesc X86RegDesc[]; extern const MCPhysReg X86RegDiffLists[]; extern const LaneBitmask X86LaneMaskLists[]; extern const char X86RegStrings[]; extern const char X86RegClassStrings[]; extern const MCPhysReg X86RegUnitRoots[][2]; extern const uint16_t X86SubRegIdxLists[]; extern const MCRegisterInfo::SubRegCoveredBits X86SubRegIdxRanges[]; extern const uint16_t X86RegEncodingTable[]; // X86 Dwarf<->LLVM register mappings. extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0Dwarf2L[]; extern const unsigned X86DwarfFlavour0Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1Dwarf2L[]; extern const unsigned X86DwarfFlavour1Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2Dwarf2L[]; extern const unsigned X86DwarfFlavour2Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0Dwarf2L[]; extern const unsigned X86EHFlavour0Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1Dwarf2L[]; extern const unsigned X86EHFlavour1Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2Dwarf2L[]; extern const unsigned X86EHFlavour2Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0L2Dwarf[]; extern const unsigned X86DwarfFlavour0L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1L2Dwarf[]; extern const unsigned X86DwarfFlavour1L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2L2Dwarf[]; extern const unsigned X86DwarfFlavour2L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0L2Dwarf[]; extern const unsigned X86EHFlavour0L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1L2Dwarf[]; extern const unsigned X86EHFlavour1L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2L2Dwarf[]; extern const unsigned X86EHFlavour2L2DwarfSize; X86GenRegisterInfo:: X86GenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour, unsigned PC, unsigned HwMode) : TargetRegisterInfo(&X86RegInfoDesc, RegisterClasses, RegisterClasses+123, SubRegIndexNameTable, SubRegIndexLaneMaskTable, LaneBitmask(0xFFFFFFFFFFFFFFB0), RegClassInfos, HwMode) { InitMCRegisterInfo(X86RegDesc, 292, RA, PC, X86MCRegisterClasses, 123, X86RegUnitRoots, 173, X86RegDiffLists, X86LaneMaskLists, X86RegStrings, X86RegClassStrings, X86SubRegIdxLists, 11, X86SubRegIdxRanges, X86RegEncodingTable); switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapDwarfRegsToLLVMRegs(X86DwarfFlavour0Dwarf2L, X86DwarfFlavour0Dwarf2LSize, false); break; case 1: mapDwarfRegsToLLVMRegs(X86DwarfFlavour1Dwarf2L, X86DwarfFlavour1Dwarf2LSize, false); break; case 2: mapDwarfRegsToLLVMRegs(X86DwarfFlavour2Dwarf2L, X86DwarfFlavour2Dwarf2LSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapDwarfRegsToLLVMRegs(X86EHFlavour0Dwarf2L, X86EHFlavour0Dwarf2LSize, true); break; case 1: mapDwarfRegsToLLVMRegs(X86EHFlavour1Dwarf2L, X86EHFlavour1Dwarf2LSize, true); break; case 2: mapDwarfRegsToLLVMRegs(X86EHFlavour2Dwarf2L, X86EHFlavour2Dwarf2LSize, true); break; } switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapLLVMRegsToDwarfRegs(X86DwarfFlavour0L2Dwarf, X86DwarfFlavour0L2DwarfSize, false); break; case 1: mapLLVMRegsToDwarfRegs(X86DwarfFlavour1L2Dwarf, X86DwarfFlavour1L2DwarfSize, false); break; case 2: mapLLVMRegsToDwarfRegs(X86DwarfFlavour2L2Dwarf, X86DwarfFlavour2L2DwarfSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapLLVMRegsToDwarfRegs(X86EHFlavour0L2Dwarf, X86EHFlavour0L2DwarfSize, true); break; case 1: mapLLVMRegsToDwarfRegs(X86EHFlavour1L2Dwarf, X86EHFlavour1L2DwarfSize, true); break; case 2: mapLLVMRegsToDwarfRegs(X86EHFlavour2L2Dwarf, X86EHFlavour2L2DwarfSize, true); break; } } static const MCPhysReg CSR_32_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, 0 }; static const uint32_t CSR_32_RegMask[] = { 0x058703f0, 0xc0009601, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_32EHRet_SaveList[] = { X86::EAX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, 0 }; static const uint32_t CSR_32EHRet_RegMask[] = { 0x0def83fe, 0xc000b701, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_32_AllRegs_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, 0 }; static const uint32_t CSR_32_AllRegs_RegMask[] = { 0x0fefaffe, 0xc000bf01, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_32_AllRegs_AVX_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, X86::YMM0, X86::YMM1, X86::YMM2, X86::YMM3, X86::YMM4, X86::YMM5, X86::YMM6, X86::YMM7, 0 }; static const uint32_t CSR_32_AllRegs_AVX_RegMask[] = { 0x0fefaffe, 0xc000bf01, 0x00000001, 0x00000000, 0xff000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_32_AllRegs_AVX512_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, X86::ZMM0, X86::ZMM1, X86::ZMM2, X86::ZMM3, X86::ZMM4, X86::ZMM5, X86::ZMM6, X86::ZMM7, X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, 0 }; static const uint32_t CSR_32_AllRegs_AVX512_RegMask[] = { 0x0fefaffe, 0xc000bf01, 0x00000001, 0x00ff0000, 0xff000000, 0xff000000, 0xff000000, 0x00000000, 0x00000000, 0x0000000f, }; static const MCPhysReg CSR_32_AllRegs_SSE_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, 0 }; static const uint32_t CSR_32_AllRegs_SSE_RegMask[] = { 0x0fefaffe, 0xc000bf01, 0x00000001, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_32_RegCall_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, 0 }; static const uint32_t CSR_32_RegCall_RegMask[] = { 0x058703f0, 0xc0009601, 0x00000001, 0x00000000, 0xf0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_32_RegCall_NoSSE_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, 0 }; static const uint32_t CSR_32_RegCall_NoSSE_RegMask[] = { 0x058703f0, 0xc0009601, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_64_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 0 }; static const uint32_t CSR_64_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_64EHRet_SaveList[] = { X86::RAX, X86::RDX, X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 0 }; static const uint32_t CSR_64EHRet_RegMask[] = { 0x09e883fe, 0x01382700, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_64_AllRegs_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 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::RAX, 0 }; static const uint32_t CSR_64_AllRegs_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00000000, 0xff0000ff, 0x000000ff, 0x00000000, 0xff000000, 0xffffffff, 0x00000000, }; static const MCPhysReg CSR_64_AllRegs_AVX_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, 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, 0 }; static const uint32_t CSR_64_AllRegs_AVX_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00000000, 0xff0000ff, 0xff0000ff, 0x000000ff, 0xff000000, 0xffffffff, 0x00000000, }; static const MCPhysReg CSR_64_AllRegs_AVX512_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, 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, X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, 0 }; static const uint32_t CSR_64_AllRegs_AVX512_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00ff0000, 0xff0000ff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000000f, }; static const MCPhysReg CSR_64_AllRegs_NoSSE_SaveList[] = { X86::RAX, X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 0 }; static const uint32_t CSR_64_AllRegs_NoSSE_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00000000, 0x000000ff, 0x00000000, 0x00000000, 0xff000000, 0xffffffff, 0x00000000, }; static const MCPhysReg CSR_64_CXX_TLS_Darwin_PE_SaveList[] = { X86::RBP, 0 }; static const uint32_t CSR_64_CXX_TLS_Darwin_PE_RegMask[] = { 0x008001c0, 0x00100200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_64_CXX_TLS_Darwin_ViaCopy_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RCX, X86::RDX, X86::RSI, X86::R8, X86::R9, X86::R10, X86::R11, 0 }; static const uint32_t CSR_64_CXX_TLS_Darwin_ViaCopy_RegMask[] = { 0x0b28ae30, 0xd160ac01, 0x00000001, 0x00000000, 0x000000ff, 0x00000000, 0x00000000, 0xff000000, 0xffffffff, 0x00000000, }; static const MCPhysReg CSR_64_HHVM_SaveList[] = { X86::R12, 0 }; static const uint32_t CSR_64_HHVM_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x10000000, 0x10101010, 0x00000000, }; static const MCPhysReg CSR_64_Intel_OCL_BI_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 }; static const uint32_t CSR_64_Intel_OCL_BI_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000f0, 0x000000ff, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_64_Intel_OCL_BI_AVX_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15, 0 }; static const uint32_t CSR_64_Intel_OCL_BI_AVX_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000f0, 0x000000ff, 0x000000ff, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_64_Intel_OCL_BI_AVX512_SaveList[] = { X86::RBX, X86::RSI, X86::R14, X86::R15, 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, X86::K4, X86::K5, X86::K6, X86::K7, 0 }; static const uint32_t CSR_64_Intel_OCL_BI_AVX512_RegMask[] = { 0x01000230, 0xd0208401, 0x00000001, 0x00f00000, 0x000000c0, 0x00ffff00, 0x00ffff00, 0xc0ffff00, 0xc0c0c0c0, 0x0000000c, }; static const MCPhysReg CSR_64_MostRegs_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 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, 0 }; static const uint32_t CSR_64_MostRegs_RegMask[] = { 0x0fafaff0, 0xd1f0be01, 0x00000001, 0x00000000, 0xff0000ff, 0x000000ff, 0x00000000, 0xff000000, 0xffffffff, 0x00000000, }; static const MCPhysReg CSR_64_RT_AllRegs_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, 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, 0 }; static const uint32_t CSR_64_RT_AllRegs_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00000000, 0xff0000f7, 0x000000ff, 0x00000000, 0xf7000000, 0xf7f7f7f7, 0x00000000, }; static const MCPhysReg CSR_64_RT_AllRegs_AVX_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, 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, 0 }; static const uint32_t CSR_64_RT_AllRegs_AVX_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00000000, 0xff0000f7, 0xff0000ff, 0x000000ff, 0xf7000000, 0xf7f7f7f7, 0x00000000, }; static const MCPhysReg CSR_64_RT_MostRegs_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, 0 }; static const uint32_t CSR_64_RT_MostRegs_RegMask[] = { 0x0fefaffe, 0xd1f8bf01, 0x00000001, 0x00000000, 0x000000f7, 0x00000000, 0x00000000, 0xf7000000, 0xf7f7f7f7, 0x00000000, }; static const MCPhysReg CSR_64_SwiftError_SaveList[] = { X86::RBX, X86::R13, X86::R14, X86::R15, X86::RBP, 0 }; static const uint32_t CSR_64_SwiftError_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000e0, 0x00000000, 0x00000000, 0xe0000000, 0xe0e0e0e0, 0x00000000, }; static const MCPhysReg CSR_64_SwiftTail_SaveList[] = { X86::RBX, X86::R12, X86::R15, X86::RBP, 0 }; static const uint32_t CSR_64_SwiftTail_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x00000090, 0x00000000, 0x00000000, 0x90000000, 0x90909090, 0x00000000, }; static const MCPhysReg CSR_64_TLS_Darwin_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RCX, X86::RDX, X86::RSI, X86::R8, X86::R9, X86::R10, X86::R11, 0 }; static const uint32_t CSR_64_TLS_Darwin_RegMask[] = { 0x0ba8aff0, 0xd170ae01, 0x00000001, 0x00000000, 0x000000ff, 0x00000000, 0x00000000, 0xff000000, 0xffffffff, 0x00000000, }; static const MCPhysReg CSR_NoRegs_SaveList[] = { 0 }; static const uint32_t CSR_NoRegs_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_SysV64_RegCall_SaveList[] = { X86::RBX, X86::RBP, X86::R12, X86::R13, X86::R14, X86::R15, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 }; static const uint32_t CSR_SysV64_RegCall_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000f0, 0x000000ff, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_SysV64_RegCall_NoSSE_SaveList[] = { X86::RBX, X86::RBP, X86::R12, X86::R13, X86::R14, X86::R15, 0 }; static const uint32_t CSR_SysV64_RegCall_NoSSE_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_Win32_CFGuard_Check_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::ECX, 0 }; static const uint32_t CSR_Win32_CFGuard_Check_RegMask[] = { 0x07872ff0, 0xc0009e01, 0x00000001, 0x00000000, 0xf0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_Win32_CFGuard_Check_NoSSE_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ECX, 0 }; static const uint32_t CSR_Win32_CFGuard_Check_NoSSE_RegMask[] = { 0x07872ff0, 0xc0009e01, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_Win64_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 }; static const uint32_t CSR_Win64_RegMask[] = { 0x058703f0, 0xd0b09601, 0x00000001, 0x00000000, 0xc00000f0, 0x000000ff, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_Win64_Intel_OCL_BI_AVX_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, X86::YMM6, X86::YMM7, X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15, 0 }; static const uint32_t CSR_Win64_Intel_OCL_BI_AVX_RegMask[] = { 0x058703f0, 0xd0b09601, 0x00000001, 0x00000000, 0xc00000f0, 0xc00000ff, 0x000000ff, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_Win64_Intel_OCL_BI_AVX512_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, 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::K4, X86::K5, X86::K6, X86::K7, 0 }; static const uint32_t CSR_Win64_Intel_OCL_BI_AVX512_RegMask[] = { 0x058703f0, 0xd0b09601, 0x00000001, 0x00f00000, 0xc00000f0, 0xc0003fff, 0xc0003fff, 0xf0003fff, 0xf0f0f0f0, 0x0000000c, }; static const MCPhysReg CSR_Win64_NoSSE_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, 0 }; static const uint32_t CSR_Win64_NoSSE_RegMask[] = { 0x058703f0, 0xd0b09601, 0x00000001, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0xf0000000, 0xf0f0f0f0, 0x00000000, }; static const MCPhysReg CSR_Win64_RegCall_SaveList[] = { X86::RBX, X86::RBP, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 }; static const uint32_t CSR_Win64_RegCall_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000fc, 0x000000ff, 0x00000000, 0xfc000000, 0xfcfcfcfc, 0x00000000, }; static const MCPhysReg CSR_Win64_RegCall_NoSSE_SaveList[] = { X86::RBX, X86::RBP, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, 0 }; static const uint32_t CSR_Win64_RegCall_NoSSE_RegMask[] = { 0x018003f0, 0x00300600, 0x00000000, 0x00000000, 0x000000fc, 0x00000000, 0x00000000, 0xfc000000, 0xfcfcfcfc, 0x00000000, }; static const MCPhysReg CSR_Win64_SwiftError_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R13, X86::R14, X86::R15, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 }; static const uint32_t CSR_Win64_SwiftError_RegMask[] = { 0x058703f0, 0xd0b09601, 0x00000001, 0x00000000, 0xc00000e0, 0x000000ff, 0x00000000, 0xe0000000, 0xe0e0e0e0, 0x00000000, }; static const MCPhysReg CSR_Win64_SwiftTail_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R15, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 }; static const uint32_t CSR_Win64_SwiftTail_RegMask[] = { 0x058703f0, 0xd0b09601, 0x00000001, 0x00000000, 0xc0000090, 0x000000ff, 0x00000000, 0x90000000, 0x90909090, 0x00000000, }; ArrayRef X86GenRegisterInfo::getRegMasks() const { static const uint32_t *const Masks[] = { CSR_32_RegMask, CSR_32EHRet_RegMask, CSR_32_AllRegs_RegMask, CSR_32_AllRegs_AVX_RegMask, CSR_32_AllRegs_AVX512_RegMask, CSR_32_AllRegs_SSE_RegMask, CSR_32_RegCall_RegMask, CSR_32_RegCall_NoSSE_RegMask, CSR_64_RegMask, CSR_64EHRet_RegMask, CSR_64_AllRegs_RegMask, CSR_64_AllRegs_AVX_RegMask, CSR_64_AllRegs_AVX512_RegMask, CSR_64_AllRegs_NoSSE_RegMask, CSR_64_CXX_TLS_Darwin_PE_RegMask, CSR_64_CXX_TLS_Darwin_ViaCopy_RegMask, CSR_64_HHVM_RegMask, CSR_64_Intel_OCL_BI_RegMask, CSR_64_Intel_OCL_BI_AVX_RegMask, CSR_64_Intel_OCL_BI_AVX512_RegMask, CSR_64_MostRegs_RegMask, CSR_64_RT_AllRegs_RegMask, CSR_64_RT_AllRegs_AVX_RegMask, CSR_64_RT_MostRegs_RegMask, CSR_64_SwiftError_RegMask, CSR_64_SwiftTail_RegMask, CSR_64_TLS_Darwin_RegMask, CSR_NoRegs_RegMask, CSR_SysV64_RegCall_RegMask, CSR_SysV64_RegCall_NoSSE_RegMask, CSR_Win32_CFGuard_Check_RegMask, CSR_Win32_CFGuard_Check_NoSSE_RegMask, CSR_Win64_RegMask, CSR_Win64_Intel_OCL_BI_AVX_RegMask, CSR_Win64_Intel_OCL_BI_AVX512_RegMask, CSR_Win64_NoSSE_RegMask, CSR_Win64_RegCall_RegMask, CSR_Win64_RegCall_NoSSE_RegMask, CSR_Win64_SwiftError_RegMask, CSR_Win64_SwiftTail_RegMask, }; return ArrayRef(Masks); } bool X86GenRegisterInfo:: isGeneralPurposeRegister(const MachineFunction &MF, MCRegister PhysReg) const { return X86::GR64RegClass.contains(PhysReg) || X86::GR32RegClass.contains(PhysReg) || X86::GR16RegClass.contains(PhysReg) || X86::GR8RegClass.contains(PhysReg) || false; } bool X86GenRegisterInfo:: isFixedRegister(const MachineFunction &MF, MCRegister PhysReg) const { return X86::DEBUG_REGRegClass.contains(PhysReg) || X86::CONTROL_REGRegClass.contains(PhysReg) || X86::CCRRegClass.contains(PhysReg) || X86::FPCCRRegClass.contains(PhysReg) || X86::DFCCRRegClass.contains(PhysReg) || X86::TILERegClass.contains(PhysReg) || X86::VK1PAIRRegClass.contains(PhysReg) || X86::VK2PAIRRegClass.contains(PhysReg) || X86::VK4PAIRRegClass.contains(PhysReg) || X86::VK8PAIRRegClass.contains(PhysReg) || X86::VK16PAIRRegClass.contains(PhysReg) || false; } bool X86GenRegisterInfo:: isArgumentRegister(const MachineFunction &MF, MCRegister PhysReg) const { return false; } bool X86GenRegisterInfo:: isConstantPhysReg(MCRegister PhysReg) const { return false; } ArrayRef X86GenRegisterInfo::getRegMaskNames() const { static const char *Names[] = { "CSR_32", "CSR_32EHRet", "CSR_32_AllRegs", "CSR_32_AllRegs_AVX", "CSR_32_AllRegs_AVX512", "CSR_32_AllRegs_SSE", "CSR_32_RegCall", "CSR_32_RegCall_NoSSE", "CSR_64", "CSR_64EHRet", "CSR_64_AllRegs", "CSR_64_AllRegs_AVX", "CSR_64_AllRegs_AVX512", "CSR_64_AllRegs_NoSSE", "CSR_64_CXX_TLS_Darwin_PE", "CSR_64_CXX_TLS_Darwin_ViaCopy", "CSR_64_HHVM", "CSR_64_Intel_OCL_BI", "CSR_64_Intel_OCL_BI_AVX", "CSR_64_Intel_OCL_BI_AVX512", "CSR_64_MostRegs", "CSR_64_RT_AllRegs", "CSR_64_RT_AllRegs_AVX", "CSR_64_RT_MostRegs", "CSR_64_SwiftError", "CSR_64_SwiftTail", "CSR_64_TLS_Darwin", "CSR_NoRegs", "CSR_SysV64_RegCall", "CSR_SysV64_RegCall_NoSSE", "CSR_Win32_CFGuard_Check", "CSR_Win32_CFGuard_Check_NoSSE", "CSR_Win64", "CSR_Win64_Intel_OCL_BI_AVX", "CSR_Win64_Intel_OCL_BI_AVX512", "CSR_Win64_NoSSE", "CSR_Win64_RegCall", "CSR_Win64_RegCall_NoSSE", "CSR_Win64_SwiftError", "CSR_Win64_SwiftTail", }; return ArrayRef(Names); } const X86FrameLowering * X86GenRegisterInfo::getFrameLowering(const MachineFunction &MF) { return static_cast( MF.getSubtarget().getFrameLowering()); } } // end namespace llvm #endif // GET_REGINFO_TARGET_DESC