/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Target Register Enum Values *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_ENUM #undef GET_REGINFO_ENUM namespace llvm_ks { class MCRegisterClass; extern const MCRegisterClass HexagonMCRegisterClasses[]; namespace Hexagon { enum { NoRegister, CS = 1, GP = 2, PC = 3, UGP = 4, UPC = 5, UPCH = 6, UPCL = 7, USR = 8, USR_OVF = 9, C5 = 10, C6 = 11, C7 = 12, CS0 = 13, CS1 = 14, D0 = 15, D1 = 16, D2 = 17, D3 = 18, D4 = 19, D5 = 20, D6 = 21, D7 = 22, D8 = 23, D9 = 24, D10 = 25, D11 = 26, D12 = 27, D13 = 28, D14 = 29, D15 = 30, LC0 = 31, LC1 = 32, M0 = 33, M1 = 34, P0 = 35, P1 = 36, P2 = 37, P3 = 38, Q0 = 39, Q1 = 40, Q2 = 41, Q3 = 42, R0 = 43, R1 = 44, R2 = 45, R3 = 46, R4 = 47, R5 = 48, R6 = 49, R7 = 50, R8 = 51, R9 = 52, R10 = 53, R11 = 54, R12 = 55, R13 = 56, R14 = 57, R15 = 58, R16 = 59, R17 = 60, R18 = 61, R19 = 62, R20 = 63, R21 = 64, R22 = 65, R23 = 66, R24 = 67, R25 = 68, R26 = 69, R27 = 70, R28 = 71, R29 = 72, R30 = 73, R31 = 74, SA0 = 75, SA1 = 76, V0 = 77, V1 = 78, V2 = 79, V3 = 80, V4 = 81, V5 = 82, V6 = 83, V7 = 84, V8 = 85, V9 = 86, V10 = 87, V11 = 88, V12 = 89, V13 = 90, V14 = 91, V15 = 92, V16 = 93, V17 = 94, V18 = 95, V19 = 96, V20 = 97, V21 = 98, V22 = 99, V23 = 100, V24 = 101, V25 = 102, V26 = 103, V27 = 104, V28 = 105, V29 = 106, V30 = 107, V31 = 108, W0 = 109, W1 = 110, W2 = 111, W3 = 112, W4 = 113, W5 = 114, W6 = 115, W7 = 116, W8 = 117, W9 = 118, W10 = 119, W11 = 120, W12 = 121, W13 = 122, W14 = 123, W15 = 124, C1_0 = 125, C3_2 = 126, C7_6 = 127, C9_8 = 128, C11_10 = 129, P3_0 = 130, NUM_TARGET_REGS // 131 }; } // Register classes namespace Hexagon { enum { IntRegsRegClassID = 0, CtrRegsRegClassID = 1, IntRegsLow8RegClassID = 2, PredRegsRegClassID = 3, ModRegsRegClassID = 4, CtrRegs_with_subreg_overflowRegClassID = 5, DoubleRegsRegClassID = 6, CtrRegs64RegClassID = 7, DoubleRegs_with_subreg_hireg_in_IntRegsLow8RegClassID = 8, CtrRegs64_with_subreg_overflowRegClassID = 9, VectorRegsRegClassID = 10, VecPredRegsRegClassID = 11, VectorRegs128BRegClassID = 12, VecDblRegsRegClassID = 13, VecPredRegs128BRegClassID = 14, VecDblRegs128BRegClassID = 15, }; } // Subregister indices namespace Hexagon { enum { NoSubRegister, subreg_hireg, // 1 subreg_loreg, // 2 subreg_overflow, // 3 NUM_TARGET_SUBREGS }; } } // End llvm namespace #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_ks { extern const MCPhysReg HexagonRegDiffLists[] = { /* 0 */ 0, 0, /* 2 */ 0, 1, 0, /* 5 */ 45, 1, 1, 1, 0, /* 10 */ 5, 1, 0, /* 13 */ 9, 1, 0, /* 16 */ 12, 1, 0, /* 19 */ 28, 1, 0, /* 22 */ 29, 1, 0, /* 25 */ 30, 1, 0, /* 28 */ 31, 1, 0, /* 31 */ 32, 1, 0, /* 34 */ 33, 1, 0, /* 37 */ 34, 1, 0, /* 40 */ 35, 1, 0, /* 43 */ 36, 1, 0, /* 46 */ 37, 1, 0, /* 49 */ 38, 1, 0, /* 52 */ 39, 1, 0, /* 55 */ 40, 1, 0, /* 58 */ 41, 1, 0, /* 61 */ 42, 1, 0, /* 64 */ 43, 1, 0, /* 67 */ 65373, 1, 0, /* 70 */ 65420, 1, 0, /* 73 */ 65504, 1, 0, /* 76 */ 65505, 1, 0, /* 79 */ 65506, 1, 0, /* 82 */ 65507, 1, 0, /* 85 */ 65508, 1, 0, /* 88 */ 65509, 1, 0, /* 91 */ 65510, 1, 0, /* 94 */ 65511, 1, 0, /* 97 */ 65512, 1, 0, /* 100 */ 65513, 1, 0, /* 103 */ 65514, 1, 0, /* 106 */ 65515, 1, 0, /* 109 */ 65516, 1, 0, /* 112 */ 65517, 1, 0, /* 115 */ 65518, 1, 0, /* 118 */ 65519, 1, 0, /* 121 */ 2, 2, 0, /* 124 */ 3, 4, 0, /* 127 */ 6, 0, /* 129 */ 7, 0, /* 131 */ 65454, 10, 0, /* 134 */ 12, 0, /* 136 */ 16, 0, /* 138 */ 17, 0, /* 140 */ 18, 0, /* 142 */ 19, 0, /* 144 */ 20, 0, /* 146 */ 21, 0, /* 148 */ 22, 0, /* 150 */ 23, 0, /* 152 */ 24, 0, /* 154 */ 25, 0, /* 156 */ 26, 0, /* 158 */ 27, 0, /* 160 */ 28, 0, /* 162 */ 29, 0, /* 164 */ 30, 0, /* 166 */ 31, 0, /* 168 */ 32, 0, /* 170 */ 50, 0, /* 172 */ 94, 0, /* 174 */ 115, 0, /* 176 */ 116, 0, /* 178 */ 65535, 120, 0, /* 181 */ 125, 0, /* 183 */ 127, 0, /* 185 */ 65486, 65492, 0, /* 188 */ 65493, 0, /* 190 */ 65494, 0, /* 192 */ 65495, 0, /* 194 */ 65496, 0, /* 196 */ 65497, 0, /* 198 */ 65498, 0, /* 200 */ 65499, 0, /* 202 */ 65500, 0, /* 204 */ 65501, 0, /* 206 */ 65502, 0, /* 208 */ 65503, 0, /* 210 */ 65504, 0, /* 212 */ 65505, 0, /* 214 */ 65506, 0, /* 216 */ 65507, 0, /* 218 */ 65508, 0, /* 220 */ 65512, 0, /* 222 */ 65514, 0, /* 224 */ 65523, 0, /* 226 */ 65524, 0, /* 228 */ 65527, 0, /* 230 */ 65416, 1, 65530, 0, /* 234 */ 65411, 65534, 0, /* 237 */ 2, 65535, 0, }; extern const unsigned HexagonLaneMaskLists[] = { /* 0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, ~0u, /* 5 */ 0x00000002, 0x00000001, ~0u, /* 8 */ 0x00000001, 0x00000002, ~0u, }; extern const uint16_t HexagonSubRegIdxLists[] = { /* 0 */ 2, 1, 0, /* 3 */ 2, 3, 1, 0, /* 7 */ 3, 0, }; extern const MCRegisterInfo::SubRegCoveredBits HexagonSubRegIdxRanges[] = { { 65535, 65535 }, { 32, 32 }, // subreg_hireg { 0, 32 }, // subreg_loreg { 0, 1 }, // subreg_overflow }; extern const char HexagonRegStrings[] = { /* 0 */ 'D', '1', '0', 0, /* 4 */ 'R', '1', '0', 0, /* 8 */ 'V', '1', '0', 0, /* 12 */ 'W', '1', '0', 0, /* 16 */ 'C', '1', '1', '_', '1', '0', 0, /* 23 */ 'R', '2', '0', 0, /* 27 */ 'V', '2', '0', 0, /* 31 */ 'R', '3', '0', 0, /* 35 */ 'V', '3', '0', 0, /* 39 */ 'S', 'A', '0', 0, /* 43 */ 'L', 'C', '0', 0, /* 47 */ 'D', '0', 0, /* 50 */ 'M', '0', 0, /* 53 */ 'P', '0', 0, /* 56 */ 'Q', '0', 0, /* 59 */ 'R', '0', 0, /* 62 */ 'C', 'S', '0', 0, /* 66 */ 'V', '0', 0, /* 69 */ 'W', '0', 0, /* 72 */ 'C', '1', '_', '0', 0, /* 77 */ 'P', '3', '_', '0', 0, /* 82 */ 'D', '1', '1', 0, /* 86 */ 'R', '1', '1', 0, /* 90 */ 'V', '1', '1', 0, /* 94 */ 'W', '1', '1', 0, /* 98 */ 'R', '2', '1', 0, /* 102 */ 'V', '2', '1', 0, /* 106 */ 'R', '3', '1', 0, /* 110 */ 'V', '3', '1', 0, /* 114 */ 'S', 'A', '1', 0, /* 118 */ 'L', 'C', '1', 0, /* 122 */ 'D', '1', 0, /* 125 */ 'M', '1', 0, /* 128 */ 'P', '1', 0, /* 131 */ 'Q', '1', 0, /* 134 */ 'R', '1', 0, /* 137 */ 'C', 'S', '1', 0, /* 141 */ 'V', '1', 0, /* 144 */ 'W', '1', 0, /* 147 */ 'D', '1', '2', 0, /* 151 */ 'R', '1', '2', 0, /* 155 */ 'V', '1', '2', 0, /* 159 */ 'W', '1', '2', 0, /* 163 */ 'R', '2', '2', 0, /* 167 */ 'V', '2', '2', 0, /* 171 */ 'D', '2', 0, /* 174 */ 'P', '2', 0, /* 177 */ 'Q', '2', 0, /* 180 */ 'R', '2', 0, /* 183 */ 'V', '2', 0, /* 186 */ 'W', '2', 0, /* 189 */ 'C', '3', '_', '2', 0, /* 194 */ 'D', '1', '3', 0, /* 198 */ 'R', '1', '3', 0, /* 202 */ 'V', '1', '3', 0, /* 206 */ 'W', '1', '3', 0, /* 210 */ 'R', '2', '3', 0, /* 214 */ 'V', '2', '3', 0, /* 218 */ 'D', '3', 0, /* 221 */ 'P', '3', 0, /* 224 */ 'Q', '3', 0, /* 227 */ 'R', '3', 0, /* 230 */ 'V', '3', 0, /* 233 */ 'W', '3', 0, /* 236 */ 'D', '1', '4', 0, /* 240 */ 'R', '1', '4', 0, /* 244 */ 'V', '1', '4', 0, /* 248 */ 'W', '1', '4', 0, /* 252 */ 'R', '2', '4', 0, /* 256 */ 'V', '2', '4', 0, /* 260 */ 'D', '4', 0, /* 263 */ 'R', '4', 0, /* 266 */ 'V', '4', 0, /* 269 */ 'W', '4', 0, /* 272 */ 'D', '1', '5', 0, /* 276 */ 'R', '1', '5', 0, /* 280 */ 'V', '1', '5', 0, /* 284 */ 'W', '1', '5', 0, /* 288 */ 'R', '2', '5', 0, /* 292 */ 'V', '2', '5', 0, /* 296 */ 'C', '5', 0, /* 299 */ 'D', '5', 0, /* 302 */ 'R', '5', 0, /* 305 */ 'V', '5', 0, /* 308 */ 'W', '5', 0, /* 311 */ 'R', '1', '6', 0, /* 315 */ 'V', '1', '6', 0, /* 319 */ 'R', '2', '6', 0, /* 323 */ 'V', '2', '6', 0, /* 327 */ 'C', '6', 0, /* 330 */ 'D', '6', 0, /* 333 */ 'R', '6', 0, /* 336 */ 'V', '6', 0, /* 339 */ 'W', '6', 0, /* 342 */ 'C', '7', '_', '6', 0, /* 347 */ 'R', '1', '7', 0, /* 351 */ 'V', '1', '7', 0, /* 355 */ 'R', '2', '7', 0, /* 359 */ 'V', '2', '7', 0, /* 363 */ 'C', '7', 0, /* 366 */ 'D', '7', 0, /* 369 */ 'R', '7', 0, /* 372 */ 'V', '7', 0, /* 375 */ 'W', '7', 0, /* 378 */ 'R', '1', '8', 0, /* 382 */ 'V', '1', '8', 0, /* 386 */ 'R', '2', '8', 0, /* 390 */ 'V', '2', '8', 0, /* 394 */ 'D', '8', 0, /* 397 */ 'R', '8', 0, /* 400 */ 'V', '8', 0, /* 403 */ 'W', '8', 0, /* 406 */ 'C', '9', '_', '8', 0, /* 411 */ 'R', '1', '9', 0, /* 415 */ 'V', '1', '9', 0, /* 419 */ 'R', '2', '9', 0, /* 423 */ 'V', '2', '9', 0, /* 427 */ 'D', '9', 0, /* 430 */ 'R', '9', 0, /* 433 */ 'V', '9', 0, /* 436 */ 'W', '9', 0, /* 439 */ 'U', 'P', 'C', 0, /* 443 */ 'U', 'S', 'R', '_', 'O', 'V', 'F', 0, /* 451 */ 'U', 'P', 'C', 'H', 0, /* 456 */ 'U', 'P', 'C', 'L', 0, /* 461 */ 'U', 'G', 'P', 0, /* 465 */ 'U', 'S', 'R', 0, /* 469 */ 'C', 'S', 0, }; extern const MCRegisterDesc HexagonRegDesc[] = { // Descriptors { 3, 0, 0, 0, 0, 0 }, { 469, 16, 1, 0, 32, 5 }, { 462, 1, 183, 2, 1, 3 }, { 440, 1, 181, 2, 1, 3 }, { 461, 1, 181, 2, 1, 3 }, { 439, 237, 1, 0, 160, 5 }, { 451, 1, 238, 2, 2032, 3 }, { 456, 1, 235, 2, 3650, 3 }, { 465, 3, 179, 7, 2064, 9 }, { 443, 1, 178, 2, 2064, 3 }, { 296, 1, 1, 2, 3761, 3 }, { 327, 1, 176, 2, 3761, 3 }, { 363, 1, 174, 2, 3761, 3 }, { 62, 1, 226, 2, 3585, 3 }, { 137, 1, 224, 2, 3585, 3 }, { 47, 19, 1, 0, 1794, 5 }, { 122, 22, 1, 0, 1794, 5 }, { 171, 25, 1, 0, 1794, 5 }, { 218, 28, 1, 0, 1794, 5 }, { 260, 31, 1, 0, 1794, 5 }, { 299, 34, 1, 0, 1794, 5 }, { 330, 37, 1, 0, 1794, 5 }, { 366, 40, 1, 0, 1794, 5 }, { 394, 43, 1, 0, 1794, 5 }, { 427, 46, 1, 0, 1794, 5 }, { 0, 49, 1, 0, 1794, 5 }, { 82, 52, 1, 0, 1794, 5 }, { 147, 55, 1, 0, 1794, 5 }, { 194, 58, 1, 0, 1794, 5 }, { 236, 61, 1, 0, 1794, 5 }, { 272, 64, 1, 0, 1794, 5 }, { 43, 1, 172, 2, 2145, 3 }, { 118, 1, 172, 2, 2145, 3 }, { 50, 1, 1, 2, 3521, 3 }, { 125, 1, 1, 2, 3521, 3 }, { 53, 1, 1, 2, 2113, 3 }, { 128, 1, 1, 2, 2113, 3 }, { 174, 1, 1, 2, 2113, 3 }, { 221, 1, 1, 2, 2113, 3 }, { 56, 1, 1, 2, 2113, 3 }, { 131, 1, 1, 2, 2113, 3 }, { 177, 1, 1, 2, 2113, 3 }, { 224, 1, 1, 2, 2113, 3 }, { 59, 1, 218, 2, 3361, 3 }, { 134, 1, 216, 2, 3361, 3 }, { 180, 1, 216, 2, 3361, 3 }, { 227, 1, 214, 2, 3361, 3 }, { 263, 1, 214, 2, 3361, 3 }, { 302, 1, 212, 2, 3361, 3 }, { 333, 1, 212, 2, 3361, 3 }, { 369, 1, 210, 2, 3361, 3 }, { 397, 1, 210, 2, 3361, 3 }, { 430, 1, 208, 2, 3361, 3 }, { 4, 1, 208, 2, 3361, 3 }, { 86, 1, 206, 2, 3361, 3 }, { 151, 1, 206, 2, 3361, 3 }, { 198, 1, 204, 2, 3361, 3 }, { 240, 1, 204, 2, 3361, 3 }, { 276, 1, 202, 2, 3361, 3 }, { 311, 1, 202, 2, 3361, 3 }, { 347, 1, 200, 2, 3361, 3 }, { 378, 1, 200, 2, 3361, 3 }, { 411, 1, 198, 2, 3361, 3 }, { 23, 1, 198, 2, 3361, 3 }, { 98, 1, 196, 2, 3361, 3 }, { 163, 1, 196, 2, 3361, 3 }, { 210, 1, 194, 2, 3361, 3 }, { 252, 1, 194, 2, 3361, 3 }, { 288, 1, 192, 2, 3361, 3 }, { 319, 1, 192, 2, 3361, 3 }, { 355, 1, 190, 2, 3361, 3 }, { 386, 1, 190, 2, 3361, 3 }, { 419, 1, 188, 2, 3361, 3 }, { 31, 1, 188, 2, 3361, 3 }, { 106, 1, 186, 2, 3361, 3 }, { 39, 1, 170, 2, 3553, 3 }, { 114, 1, 170, 2, 3553, 3 }, { 66, 1, 168, 2, 3553, 3 }, { 141, 1, 166, 2, 3553, 3 }, { 183, 1, 166, 2, 3553, 3 }, { 230, 1, 164, 2, 3553, 3 }, { 266, 1, 164, 2, 3553, 3 }, { 305, 1, 162, 2, 3553, 3 }, { 336, 1, 162, 2, 3553, 3 }, { 372, 1, 160, 2, 3553, 3 }, { 400, 1, 160, 2, 3553, 3 }, { 433, 1, 158, 2, 3553, 3 }, { 8, 1, 158, 2, 3553, 3 }, { 90, 1, 156, 2, 3553, 3 }, { 155, 1, 156, 2, 3553, 3 }, { 202, 1, 154, 2, 3553, 3 }, { 244, 1, 154, 2, 3553, 3 }, { 280, 1, 152, 2, 3553, 3 }, { 315, 1, 152, 2, 3553, 3 }, { 351, 1, 150, 2, 3553, 3 }, { 382, 1, 150, 2, 3553, 3 }, { 415, 1, 148, 2, 3553, 3 }, { 27, 1, 148, 2, 3553, 3 }, { 102, 1, 146, 2, 3553, 3 }, { 167, 1, 146, 2, 3553, 3 }, { 214, 1, 144, 2, 3553, 3 }, { 256, 1, 144, 2, 3553, 3 }, { 292, 1, 142, 2, 3553, 3 }, { 323, 1, 142, 2, 3553, 3 }, { 359, 1, 140, 2, 3553, 3 }, { 390, 1, 140, 2, 3553, 3 }, { 423, 1, 138, 2, 3553, 3 }, { 35, 1, 138, 2, 3553, 3 }, { 110, 1, 136, 2, 3553, 3 }, { 69, 73, 1, 0, 1074, 5 }, { 144, 76, 1, 0, 1074, 5 }, { 186, 79, 1, 0, 1074, 5 }, { 233, 82, 1, 0, 1074, 5 }, { 269, 85, 1, 0, 1074, 5 }, { 308, 88, 1, 0, 1074, 5 }, { 339, 91, 1, 0, 1074, 5 }, { 375, 94, 1, 0, 1074, 5 }, { 403, 97, 1, 0, 1074, 5 }, { 436, 100, 1, 0, 1074, 5 }, { 12, 103, 1, 0, 1074, 5 }, { 94, 106, 1, 0, 1074, 5 }, { 159, 109, 1, 0, 1074, 5 }, { 206, 112, 1, 0, 1074, 5 }, { 248, 115, 1, 0, 1074, 5 }, { 284, 118, 1, 0, 1074, 5 }, { 72, 185, 1, 0, 2097, 8 }, { 189, 185, 1, 0, 2097, 8 }, { 342, 70, 1, 0, 208, 5 }, { 406, 230, 1, 3, 1984, 8 }, { 16, 234, 1, 0, 1936, 8 }, { 77, 1, 1, 2, 80, 0 }, }; extern const MCPhysReg HexagonRegUnitRoots[][2] = { { Hexagon::CS0 }, { Hexagon::CS1 }, { Hexagon::GP }, { Hexagon::PC }, { Hexagon::UGP }, { Hexagon::UPCL }, { Hexagon::UPCH }, { Hexagon::USR_OVF }, { Hexagon::C5 }, { Hexagon::C6, Hexagon::M0 }, { Hexagon::C7, Hexagon::M1 }, { Hexagon::R0 }, { Hexagon::R1 }, { Hexagon::R2 }, { Hexagon::R3 }, { Hexagon::R4 }, { Hexagon::R5 }, { Hexagon::R6 }, { Hexagon::R7 }, { Hexagon::R8 }, { Hexagon::R9 }, { Hexagon::R10 }, { Hexagon::R11 }, { Hexagon::R12 }, { Hexagon::R13 }, { Hexagon::R14 }, { Hexagon::R15 }, { Hexagon::R16 }, { Hexagon::R17 }, { Hexagon::R18 }, { Hexagon::R19 }, { Hexagon::R20 }, { Hexagon::R21 }, { Hexagon::R22 }, { Hexagon::R23 }, { Hexagon::R24 }, { Hexagon::R25 }, { Hexagon::R26 }, { Hexagon::R27 }, { Hexagon::R28 }, { Hexagon::R29 }, { Hexagon::R30 }, { Hexagon::R31 }, { Hexagon::LC0 }, { Hexagon::LC1 }, { Hexagon::P0, Hexagon::P3_0 }, { Hexagon::P1, Hexagon::P3_0 }, { Hexagon::P2, Hexagon::P3_0 }, { Hexagon::P3, Hexagon::P3_0 }, { Hexagon::Q0 }, { Hexagon::Q1 }, { Hexagon::Q2 }, { Hexagon::Q3 }, { Hexagon::SA0 }, { Hexagon::SA1 }, { Hexagon::V0 }, { Hexagon::V1 }, { Hexagon::V2 }, { Hexagon::V3 }, { Hexagon::V4 }, { Hexagon::V5 }, { Hexagon::V6 }, { Hexagon::V7 }, { Hexagon::V8 }, { Hexagon::V9 }, { Hexagon::V10 }, { Hexagon::V11 }, { Hexagon::V12 }, { Hexagon::V13 }, { Hexagon::V14 }, { Hexagon::V15 }, { Hexagon::V16 }, { Hexagon::V17 }, { Hexagon::V18 }, { Hexagon::V19 }, { Hexagon::V20 }, { Hexagon::V21 }, { Hexagon::V22 }, { Hexagon::V23 }, { Hexagon::V24 }, { Hexagon::V25 }, { Hexagon::V26 }, { Hexagon::V27 }, { Hexagon::V28 }, { Hexagon::V29 }, { Hexagon::V30 }, { Hexagon::V31 }, }; namespace { // Register classes... // IntRegs Register Class... const MCPhysReg IntRegs[] = { Hexagon::R0, Hexagon::R1, Hexagon::R2, Hexagon::R3, Hexagon::R4, Hexagon::R5, Hexagon::R6, Hexagon::R7, Hexagon::R8, Hexagon::R9, Hexagon::R12, Hexagon::R13, Hexagon::R14, Hexagon::R15, Hexagon::R16, Hexagon::R17, Hexagon::R18, Hexagon::R19, Hexagon::R20, Hexagon::R21, Hexagon::R22, Hexagon::R23, Hexagon::R24, Hexagon::R25, Hexagon::R26, Hexagon::R27, Hexagon::R28, Hexagon::R10, Hexagon::R11, Hexagon::R29, Hexagon::R30, Hexagon::R31, }; // IntRegs Bit set. const uint8_t IntRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, }; // CtrRegs Register Class... const MCPhysReg CtrRegs[] = { Hexagon::LC0, Hexagon::SA0, Hexagon::LC1, Hexagon::SA1, Hexagon::P3_0, Hexagon::M0, Hexagon::M1, Hexagon::C6, Hexagon::C7, Hexagon::CS0, Hexagon::CS1, Hexagon::UPCL, Hexagon::UPCH, Hexagon::USR, Hexagon::USR_OVF, Hexagon::UGP, Hexagon::GP, Hexagon::PC, }; // CtrRegs Bit set. const uint8_t CtrRegsBits[] = { 0xdc, 0x7b, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, }; // IntRegsLow8 Register Class... const MCPhysReg IntRegsLow8[] = { Hexagon::R7, Hexagon::R6, Hexagon::R5, Hexagon::R4, Hexagon::R3, Hexagon::R2, Hexagon::R1, Hexagon::R0, }; // IntRegsLow8 Bit set. const uint8_t IntRegsLow8Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, }; // PredRegs Register Class... const MCPhysReg PredRegs[] = { Hexagon::P0, Hexagon::P1, Hexagon::P2, Hexagon::P3, }; // PredRegs Bit set. const uint8_t PredRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x78, }; // ModRegs Register Class... const MCPhysReg ModRegs[] = { Hexagon::M0, Hexagon::M1, }; // ModRegs Bit set. const uint8_t ModRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x06, }; // CtrRegs_with_subreg_overflow Register Class... const MCPhysReg CtrRegs_with_subreg_overflow[] = { Hexagon::USR, }; // CtrRegs_with_subreg_overflow Bit set. const uint8_t CtrRegs_with_subreg_overflowBits[] = { 0x00, 0x01, }; // DoubleRegs Register Class... const MCPhysReg DoubleRegs[] = { Hexagon::D0, Hexagon::D1, Hexagon::D2, Hexagon::D3, Hexagon::D4, Hexagon::D6, Hexagon::D7, Hexagon::D8, Hexagon::D9, Hexagon::D10, Hexagon::D11, Hexagon::D12, Hexagon::D13, Hexagon::D5, Hexagon::D14, Hexagon::D15, }; // DoubleRegs Bit set. const uint8_t DoubleRegsBits[] = { 0x00, 0x80, 0xff, 0x7f, }; // CtrRegs64 Register Class... const MCPhysReg CtrRegs64[] = { Hexagon::C1_0, Hexagon::C3_2, Hexagon::C7_6, Hexagon::C9_8, Hexagon::C11_10, Hexagon::CS, Hexagon::UPC, }; // CtrRegs64 Bit set. const uint8_t CtrRegs64Bits[] = { 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, }; // DoubleRegs_with_subreg_hireg_in_IntRegsLow8 Register Class... const MCPhysReg DoubleRegs_with_subreg_hireg_in_IntRegsLow8[] = { Hexagon::D0, Hexagon::D1, Hexagon::D2, Hexagon::D3, }; // DoubleRegs_with_subreg_hireg_in_IntRegsLow8 Bit set. const uint8_t DoubleRegs_with_subreg_hireg_in_IntRegsLow8Bits[] = { 0x00, 0x80, 0x07, }; // CtrRegs64_with_subreg_overflow Register Class... const MCPhysReg CtrRegs64_with_subreg_overflow[] = { Hexagon::C9_8, }; // CtrRegs64_with_subreg_overflow Bit set. const uint8_t CtrRegs64_with_subreg_overflowBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, }; // VectorRegs Register Class... const MCPhysReg VectorRegs[] = { Hexagon::V0, Hexagon::V1, Hexagon::V2, Hexagon::V3, Hexagon::V4, Hexagon::V5, Hexagon::V6, Hexagon::V7, Hexagon::V8, Hexagon::V9, Hexagon::V10, Hexagon::V11, Hexagon::V12, Hexagon::V13, Hexagon::V14, Hexagon::V15, Hexagon::V16, Hexagon::V17, Hexagon::V18, Hexagon::V19, Hexagon::V20, Hexagon::V21, Hexagon::V22, Hexagon::V23, Hexagon::V24, Hexagon::V25, Hexagon::V26, Hexagon::V27, Hexagon::V28, Hexagon::V29, Hexagon::V30, Hexagon::V31, }; // VectorRegs Bit set. const uint8_t VectorRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, }; // VecPredRegs Register Class... const MCPhysReg VecPredRegs[] = { Hexagon::Q0, Hexagon::Q1, Hexagon::Q2, Hexagon::Q3, }; // VecPredRegs Bit set. const uint8_t VecPredRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, }; // VectorRegs128B Register Class... const MCPhysReg VectorRegs128B[] = { Hexagon::V0, Hexagon::V1, Hexagon::V2, Hexagon::V3, Hexagon::V4, Hexagon::V5, Hexagon::V6, Hexagon::V7, Hexagon::V8, Hexagon::V9, Hexagon::V10, Hexagon::V11, Hexagon::V12, Hexagon::V13, Hexagon::V14, Hexagon::V15, Hexagon::V16, Hexagon::V17, Hexagon::V18, Hexagon::V19, Hexagon::V20, Hexagon::V21, Hexagon::V22, Hexagon::V23, Hexagon::V24, Hexagon::V25, Hexagon::V26, Hexagon::V27, Hexagon::V28, Hexagon::V29, Hexagon::V30, Hexagon::V31, }; // VectorRegs128B Bit set. const uint8_t VectorRegs128BBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, }; // VecDblRegs Register Class... const MCPhysReg VecDblRegs[] = { Hexagon::W0, Hexagon::W1, Hexagon::W2, Hexagon::W3, Hexagon::W4, Hexagon::W5, Hexagon::W6, Hexagon::W7, Hexagon::W8, Hexagon::W9, Hexagon::W10, Hexagon::W11, Hexagon::W12, Hexagon::W13, Hexagon::W14, Hexagon::W15, }; // VecDblRegs Bit set. const uint8_t VecDblRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f, }; // VecPredRegs128B Register Class... const MCPhysReg VecPredRegs128B[] = { Hexagon::Q0, Hexagon::Q1, Hexagon::Q2, Hexagon::Q3, }; // VecPredRegs128B Bit set. const uint8_t VecPredRegs128BBits[] = { 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, }; // VecDblRegs128B Register Class... const MCPhysReg VecDblRegs128B[] = { Hexagon::W0, Hexagon::W1, Hexagon::W2, Hexagon::W3, Hexagon::W4, Hexagon::W5, Hexagon::W6, Hexagon::W7, Hexagon::W8, Hexagon::W9, Hexagon::W10, Hexagon::W11, Hexagon::W12, Hexagon::W13, Hexagon::W14, Hexagon::W15, }; // VecDblRegs128B Bit set. const uint8_t VecDblRegs128BBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f, }; } extern const char HexagonRegClassStrings[] = { /* 0 */ 'C', 't', 'r', 'R', 'e', 'g', 's', '6', '4', 0, /* 10 */ 'D', 'o', 'u', 'b', 'l', 'e', 'R', 'e', 'g', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'r', 'e', 'g', '_', 'h', 'i', 'r', 'e', 'g', '_', 'i', 'n', '_', 'I', 'n', 't', 'R', 'e', 'g', 's', 'L', 'o', 'w', '8', 0, /* 54 */ 'V', 'e', 'c', 'P', 'r', 'e', 'd', 'R', 'e', 'g', 's', '1', '2', '8', 'B', 0, /* 70 */ 'V', 'e', 'c', 'D', 'b', 'l', 'R', 'e', 'g', 's', '1', '2', '8', 'B', 0, /* 85 */ 'V', 'e', 'c', 't', 'o', 'r', 'R', 'e', 'g', 's', '1', '2', '8', 'B', 0, /* 100 */ 'V', 'e', 'c', 'P', 'r', 'e', 'd', 'R', 'e', 'g', 's', 0, /* 112 */ 'M', 'o', 'd', 'R', 'e', 'g', 's', 0, /* 120 */ 'D', 'o', 'u', 'b', 'l', 'e', 'R', 'e', 'g', 's', 0, /* 131 */ 'V', 'e', 'c', 'D', 'b', 'l', 'R', 'e', 'g', 's', 0, /* 142 */ 'V', 'e', 'c', 't', 'o', 'r', 'R', 'e', 'g', 's', 0, /* 153 */ 'C', 't', 'r', 'R', 'e', 'g', 's', 0, /* 161 */ 'I', 'n', 't', 'R', 'e', 'g', 's', 0, /* 169 */ 'C', 't', 'r', 'R', 'e', 'g', 's', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'r', 'e', 'g', '_', 'o', 'v', 'e', 'r', 'f', 'l', 'o', 'w', 0, /* 200 */ 'C', 't', 'r', 'R', 'e', 'g', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'r', 'e', 'g', '_', 'o', 'v', 'e', 'r', 'f', 'l', 'o', 'w', 0, }; extern const MCRegisterClass HexagonMCRegisterClasses[] = { { IntRegs, IntRegsBits, 161, 32, sizeof(IntRegsBits), Hexagon::IntRegsRegClassID, 4, 4, 1, 1 }, { CtrRegs, CtrRegsBits, 153, 18, sizeof(CtrRegsBits), Hexagon::CtrRegsRegClassID, 4, 4, 1, 0 }, { IntRegsLow8, IntRegsLow8Bits, 42, 8, sizeof(IntRegsLow8Bits), Hexagon::IntRegsLow8RegClassID, 4, 4, 1, 1 }, { PredRegs, PredRegsBits, 103, 4, sizeof(PredRegsBits), Hexagon::PredRegsRegClassID, 4, 4, 1, 1 }, { ModRegs, ModRegsBits, 112, 2, sizeof(ModRegsBits), Hexagon::ModRegsRegClassID, 4, 4, 1, 1 }, { CtrRegs_with_subreg_overflow, CtrRegs_with_subreg_overflowBits, 200, 1, sizeof(CtrRegs_with_subreg_overflowBits), Hexagon::CtrRegs_with_subreg_overflowRegClassID, 4, 4, 1, 0 }, { DoubleRegs, DoubleRegsBits, 120, 16, sizeof(DoubleRegsBits), Hexagon::DoubleRegsRegClassID, 8, 8, 1, 1 }, { CtrRegs64, CtrRegs64Bits, 0, 7, sizeof(CtrRegs64Bits), Hexagon::CtrRegs64RegClassID, 8, 8, 1, 0 }, { DoubleRegs_with_subreg_hireg_in_IntRegsLow8, DoubleRegs_with_subreg_hireg_in_IntRegsLow8Bits, 10, 4, sizeof(DoubleRegs_with_subreg_hireg_in_IntRegsLow8Bits), Hexagon::DoubleRegs_with_subreg_hireg_in_IntRegsLow8RegClassID, 8, 8, 1, 1 }, { CtrRegs64_with_subreg_overflow, CtrRegs64_with_subreg_overflowBits, 169, 1, sizeof(CtrRegs64_with_subreg_overflowBits), Hexagon::CtrRegs64_with_subreg_overflowRegClassID, 8, 8, 1, 0 }, { VectorRegs, VectorRegsBits, 142, 32, sizeof(VectorRegsBits), Hexagon::VectorRegsRegClassID, 64, 64, 1, 1 }, { VecPredRegs, VecPredRegsBits, 100, 4, sizeof(VecPredRegsBits), Hexagon::VecPredRegsRegClassID, 64, 64, 1, 1 }, { VectorRegs128B, VectorRegs128BBits, 85, 32, sizeof(VectorRegs128BBits), Hexagon::VectorRegs128BRegClassID, 128, 128, 1, 1 }, { VecDblRegs, VecDblRegsBits, 131, 16, sizeof(VecDblRegsBits), Hexagon::VecDblRegsRegClassID, 128, 128, 1, 1 }, { VecPredRegs128B, VecPredRegs128BBits, 54, 4, sizeof(VecPredRegs128BBits), Hexagon::VecPredRegs128BRegClassID, 128, 128, 1, 1 }, { VecDblRegs128B, VecDblRegs128BBits, 70, 16, sizeof(VecDblRegs128BBits), Hexagon::VecDblRegs128BRegClassID, 256, 256, 1, 1 }, }; // Hexagon Dwarf<->LLVM register mappings. extern const MCRegisterInfo::DwarfLLVMRegPair HexagonDwarfFlavour0Dwarf2L[] = { { 0U, Hexagon::R0 }, { 1U, Hexagon::R1 }, { 2U, Hexagon::R2 }, { 3U, Hexagon::R3 }, { 4U, Hexagon::R4 }, { 5U, Hexagon::R5 }, { 6U, Hexagon::R6 }, { 7U, Hexagon::R7 }, { 8U, Hexagon::R8 }, { 9U, Hexagon::R9 }, { 10U, Hexagon::R10 }, { 11U, Hexagon::R11 }, { 12U, Hexagon::R12 }, { 13U, Hexagon::R13 }, { 14U, Hexagon::R14 }, { 15U, Hexagon::R15 }, { 16U, Hexagon::R16 }, { 17U, Hexagon::R17 }, { 18U, Hexagon::R18 }, { 19U, Hexagon::R19 }, { 20U, Hexagon::R20 }, { 21U, Hexagon::R21 }, { 22U, Hexagon::R22 }, { 23U, Hexagon::R23 }, { 24U, Hexagon::R24 }, { 25U, Hexagon::R25 }, { 26U, Hexagon::R26 }, { 27U, Hexagon::R27 }, { 28U, Hexagon::R28 }, { 29U, Hexagon::R29 }, { 30U, Hexagon::R30 }, { 31U, Hexagon::R31 }, { 32U, Hexagon::D0 }, { 34U, Hexagon::D1 }, { 36U, Hexagon::D2 }, { 38U, Hexagon::D3 }, { 40U, Hexagon::D4 }, { 42U, Hexagon::D5 }, { 44U, Hexagon::D6 }, { 46U, Hexagon::D7 }, { 48U, Hexagon::D8 }, { 50U, Hexagon::D9 }, { 52U, Hexagon::D10 }, { 54U, Hexagon::D11 }, { 56U, Hexagon::D12 }, { 58U, Hexagon::D13 }, { 60U, Hexagon::D14 }, { 62U, Hexagon::D15 }, { 63U, Hexagon::P0 }, { 64U, Hexagon::P1 }, { 65U, Hexagon::P2 }, { 66U, Hexagon::P3 }, { 67U, Hexagon::C1_0 }, { 68U, Hexagon::LC0 }, { 69U, Hexagon::C3_2 }, { 70U, Hexagon::LC1 }, { 71U, Hexagon::P3_0 }, { 72U, Hexagon::C7_6 }, { 73U, Hexagon::M1 }, { 74U, Hexagon::C9_8 }, { 75U, Hexagon::USR }, { 76U, Hexagon::C11_10 }, { 77U, Hexagon::UGP }, { 78U, Hexagon::GP }, { 79U, Hexagon::CS0 }, { 80U, Hexagon::CS1 }, { 81U, Hexagon::UPCL }, { 82U, Hexagon::UPCH }, { 99U, Hexagon::W0 }, { 100U, Hexagon::V1 }, { 101U, Hexagon::W1 }, { 102U, Hexagon::V3 }, { 103U, Hexagon::W2 }, { 104U, Hexagon::V5 }, { 105U, Hexagon::W3 }, { 106U, Hexagon::V7 }, { 107U, Hexagon::W4 }, { 108U, Hexagon::V9 }, { 109U, Hexagon::W5 }, { 110U, Hexagon::V11 }, { 111U, Hexagon::W6 }, { 112U, Hexagon::V13 }, { 113U, Hexagon::W7 }, { 114U, Hexagon::V15 }, { 115U, Hexagon::W8 }, { 116U, Hexagon::V17 }, { 117U, Hexagon::W9 }, { 118U, Hexagon::V19 }, { 119U, Hexagon::W10 }, { 120U, Hexagon::V21 }, { 121U, Hexagon::W11 }, { 122U, Hexagon::V23 }, { 123U, Hexagon::W12 }, { 124U, Hexagon::V25 }, { 125U, Hexagon::W13 }, { 126U, Hexagon::V27 }, { 127U, Hexagon::W14 }, { 128U, Hexagon::V29 }, { 129U, Hexagon::W15 }, { 130U, Hexagon::V31 }, { 131U, Hexagon::Q0 }, { 132U, Hexagon::Q1 }, { 133U, Hexagon::Q2 }, { 134U, Hexagon::Q3 }, }; extern const unsigned HexagonDwarfFlavour0Dwarf2LSize = array_lengthof(HexagonDwarfFlavour0Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair HexagonEHFlavour0Dwarf2L[] = { { 0U, Hexagon::R0 }, { 1U, Hexagon::R1 }, { 2U, Hexagon::R2 }, { 3U, Hexagon::R3 }, { 4U, Hexagon::R4 }, { 5U, Hexagon::R5 }, { 6U, Hexagon::R6 }, { 7U, Hexagon::R7 }, { 8U, Hexagon::R8 }, { 9U, Hexagon::R9 }, { 10U, Hexagon::R10 }, { 11U, Hexagon::R11 }, { 12U, Hexagon::R12 }, { 13U, Hexagon::R13 }, { 14U, Hexagon::R14 }, { 15U, Hexagon::R15 }, { 16U, Hexagon::R16 }, { 17U, Hexagon::R17 }, { 18U, Hexagon::R18 }, { 19U, Hexagon::R19 }, { 20U, Hexagon::R20 }, { 21U, Hexagon::R21 }, { 22U, Hexagon::R22 }, { 23U, Hexagon::R23 }, { 24U, Hexagon::R24 }, { 25U, Hexagon::R25 }, { 26U, Hexagon::R26 }, { 27U, Hexagon::R27 }, { 28U, Hexagon::R28 }, { 29U, Hexagon::R29 }, { 30U, Hexagon::R30 }, { 31U, Hexagon::R31 }, { 32U, Hexagon::D0 }, { 34U, Hexagon::D1 }, { 36U, Hexagon::D2 }, { 38U, Hexagon::D3 }, { 40U, Hexagon::D4 }, { 42U, Hexagon::D5 }, { 44U, Hexagon::D6 }, { 46U, Hexagon::D7 }, { 48U, Hexagon::D8 }, { 50U, Hexagon::D9 }, { 52U, Hexagon::D10 }, { 54U, Hexagon::D11 }, { 56U, Hexagon::D12 }, { 58U, Hexagon::D13 }, { 60U, Hexagon::D14 }, { 62U, Hexagon::D15 }, { 63U, Hexagon::P0 }, { 64U, Hexagon::P1 }, { 65U, Hexagon::P2 }, { 66U, Hexagon::P3 }, { 67U, Hexagon::C1_0 }, { 68U, Hexagon::LC0 }, { 69U, Hexagon::C3_2 }, { 70U, Hexagon::LC1 }, { 71U, Hexagon::P3_0 }, { 72U, Hexagon::C7_6 }, { 73U, Hexagon::M1 }, { 74U, Hexagon::C9_8 }, { 75U, Hexagon::USR }, { 76U, Hexagon::C11_10 }, { 77U, Hexagon::UGP }, { 78U, Hexagon::GP }, { 79U, Hexagon::CS0 }, { 80U, Hexagon::CS1 }, { 81U, Hexagon::UPCL }, { 82U, Hexagon::UPCH }, { 99U, Hexagon::W0 }, { 100U, Hexagon::V1 }, { 101U, Hexagon::W1 }, { 102U, Hexagon::V3 }, { 103U, Hexagon::W2 }, { 104U, Hexagon::V5 }, { 105U, Hexagon::W3 }, { 106U, Hexagon::V7 }, { 107U, Hexagon::W4 }, { 108U, Hexagon::V9 }, { 109U, Hexagon::W5 }, { 110U, Hexagon::V11 }, { 111U, Hexagon::W6 }, { 112U, Hexagon::V13 }, { 113U, Hexagon::W7 }, { 114U, Hexagon::V15 }, { 115U, Hexagon::W8 }, { 116U, Hexagon::V17 }, { 117U, Hexagon::W9 }, { 118U, Hexagon::V19 }, { 119U, Hexagon::W10 }, { 120U, Hexagon::V21 }, { 121U, Hexagon::W11 }, { 122U, Hexagon::V23 }, { 123U, Hexagon::W12 }, { 124U, Hexagon::V25 }, { 125U, Hexagon::W13 }, { 126U, Hexagon::V27 }, { 127U, Hexagon::W14 }, { 128U, Hexagon::V29 }, { 129U, Hexagon::W15 }, { 130U, Hexagon::V31 }, { 131U, Hexagon::Q0 }, { 132U, Hexagon::Q1 }, { 133U, Hexagon::Q2 }, { 134U, Hexagon::Q3 }, }; extern const unsigned HexagonEHFlavour0Dwarf2LSize = array_lengthof(HexagonEHFlavour0Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair HexagonDwarfFlavour0L2Dwarf[] = { { Hexagon::CS, 78U }, { Hexagon::GP, 78U }, { Hexagon::PC, 76U }, { Hexagon::UGP, 77U }, { Hexagon::UPC, 80U }, { Hexagon::UPCH, 82U }, { Hexagon::UPCL, 81U }, { Hexagon::USR, 75U }, { Hexagon::C5, 72U }, { Hexagon::C6, 73U }, { Hexagon::C7, 74U }, { Hexagon::CS0, 79U }, { Hexagon::CS1, 80U }, { Hexagon::D0, 32U }, { Hexagon::D1, 34U }, { Hexagon::D2, 36U }, { Hexagon::D3, 38U }, { Hexagon::D4, 40U }, { Hexagon::D5, 42U }, { Hexagon::D6, 44U }, { Hexagon::D7, 46U }, { Hexagon::D8, 48U }, { Hexagon::D9, 50U }, { Hexagon::D10, 52U }, { Hexagon::D11, 54U }, { Hexagon::D12, 56U }, { Hexagon::D13, 58U }, { Hexagon::D14, 60U }, { Hexagon::D15, 62U }, { Hexagon::LC0, 68U }, { Hexagon::LC1, 70U }, { Hexagon::M0, 72U }, { Hexagon::M1, 73U }, { Hexagon::P0, 63U }, { Hexagon::P1, 64U }, { Hexagon::P2, 65U }, { Hexagon::P3, 66U }, { Hexagon::Q0, 131U }, { Hexagon::Q1, 132U }, { Hexagon::Q2, 133U }, { Hexagon::Q3, 134U }, { Hexagon::R0, 0U }, { Hexagon::R1, 1U }, { Hexagon::R2, 2U }, { Hexagon::R3, 3U }, { Hexagon::R4, 4U }, { Hexagon::R5, 5U }, { Hexagon::R6, 6U }, { Hexagon::R7, 7U }, { Hexagon::R8, 8U }, { Hexagon::R9, 9U }, { Hexagon::R10, 10U }, { Hexagon::R11, 11U }, { Hexagon::R12, 12U }, { Hexagon::R13, 13U }, { Hexagon::R14, 14U }, { Hexagon::R15, 15U }, { Hexagon::R16, 16U }, { Hexagon::R17, 17U }, { Hexagon::R18, 18U }, { Hexagon::R19, 19U }, { Hexagon::R20, 20U }, { Hexagon::R21, 21U }, { Hexagon::R22, 22U }, { Hexagon::R23, 23U }, { Hexagon::R24, 24U }, { Hexagon::R25, 25U }, { Hexagon::R26, 26U }, { Hexagon::R27, 27U }, { Hexagon::R28, 28U }, { Hexagon::R29, 29U }, { Hexagon::R30, 30U }, { Hexagon::R31, 31U }, { Hexagon::SA0, 67U }, { Hexagon::SA1, 69U }, { Hexagon::V0, 99U }, { Hexagon::V1, 100U }, { Hexagon::V2, 101U }, { Hexagon::V3, 102U }, { Hexagon::V4, 103U }, { Hexagon::V5, 104U }, { Hexagon::V6, 105U }, { Hexagon::V7, 106U }, { Hexagon::V8, 107U }, { Hexagon::V9, 108U }, { Hexagon::V10, 109U }, { Hexagon::V11, 110U }, { Hexagon::V12, 111U }, { Hexagon::V13, 112U }, { Hexagon::V14, 113U }, { Hexagon::V15, 114U }, { Hexagon::V16, 115U }, { Hexagon::V17, 116U }, { Hexagon::V18, 117U }, { Hexagon::V19, 118U }, { Hexagon::V20, 119U }, { Hexagon::V21, 120U }, { Hexagon::V22, 121U }, { Hexagon::V23, 122U }, { Hexagon::V24, 123U }, { Hexagon::V25, 124U }, { Hexagon::V26, 125U }, { Hexagon::V27, 126U }, { Hexagon::V28, 127U }, { Hexagon::V29, 128U }, { Hexagon::V30, 129U }, { Hexagon::V31, 130U }, { Hexagon::W0, 99U }, { Hexagon::W1, 101U }, { Hexagon::W2, 103U }, { Hexagon::W3, 105U }, { Hexagon::W4, 107U }, { Hexagon::W5, 109U }, { Hexagon::W6, 111U }, { Hexagon::W7, 113U }, { Hexagon::W8, 115U }, { Hexagon::W9, 117U }, { Hexagon::W10, 119U }, { Hexagon::W11, 121U }, { Hexagon::W12, 123U }, { Hexagon::W13, 125U }, { Hexagon::W14, 127U }, { Hexagon::W15, 129U }, { Hexagon::C1_0, 67U }, { Hexagon::C3_2, 69U }, { Hexagon::C7_6, 72U }, { Hexagon::C9_8, 74U }, { Hexagon::C11_10, 76U }, { Hexagon::P3_0, 71U }, }; extern const unsigned HexagonDwarfFlavour0L2DwarfSize = array_lengthof(HexagonDwarfFlavour0L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair HexagonEHFlavour0L2Dwarf[] = { { Hexagon::CS, 78U }, { Hexagon::GP, 78U }, { Hexagon::PC, 76U }, { Hexagon::UGP, 77U }, { Hexagon::UPC, 80U }, { Hexagon::UPCH, 82U }, { Hexagon::UPCL, 81U }, { Hexagon::USR, 75U }, { Hexagon::C5, 72U }, { Hexagon::C6, 73U }, { Hexagon::C7, 74U }, { Hexagon::CS0, 79U }, { Hexagon::CS1, 80U }, { Hexagon::D0, 32U }, { Hexagon::D1, 34U }, { Hexagon::D2, 36U }, { Hexagon::D3, 38U }, { Hexagon::D4, 40U }, { Hexagon::D5, 42U }, { Hexagon::D6, 44U }, { Hexagon::D7, 46U }, { Hexagon::D8, 48U }, { Hexagon::D9, 50U }, { Hexagon::D10, 52U }, { Hexagon::D11, 54U }, { Hexagon::D12, 56U }, { Hexagon::D13, 58U }, { Hexagon::D14, 60U }, { Hexagon::D15, 62U }, { Hexagon::LC0, 68U }, { Hexagon::LC1, 70U }, { Hexagon::M0, 72U }, { Hexagon::M1, 73U }, { Hexagon::P0, 63U }, { Hexagon::P1, 64U }, { Hexagon::P2, 65U }, { Hexagon::P3, 66U }, { Hexagon::Q0, 131U }, { Hexagon::Q1, 132U }, { Hexagon::Q2, 133U }, { Hexagon::Q3, 134U }, { Hexagon::R0, 0U }, { Hexagon::R1, 1U }, { Hexagon::R2, 2U }, { Hexagon::R3, 3U }, { Hexagon::R4, 4U }, { Hexagon::R5, 5U }, { Hexagon::R6, 6U }, { Hexagon::R7, 7U }, { Hexagon::R8, 8U }, { Hexagon::R9, 9U }, { Hexagon::R10, 10U }, { Hexagon::R11, 11U }, { Hexagon::R12, 12U }, { Hexagon::R13, 13U }, { Hexagon::R14, 14U }, { Hexagon::R15, 15U }, { Hexagon::R16, 16U }, { Hexagon::R17, 17U }, { Hexagon::R18, 18U }, { Hexagon::R19, 19U }, { Hexagon::R20, 20U }, { Hexagon::R21, 21U }, { Hexagon::R22, 22U }, { Hexagon::R23, 23U }, { Hexagon::R24, 24U }, { Hexagon::R25, 25U }, { Hexagon::R26, 26U }, { Hexagon::R27, 27U }, { Hexagon::R28, 28U }, { Hexagon::R29, 29U }, { Hexagon::R30, 30U }, { Hexagon::R31, 31U }, { Hexagon::SA0, 67U }, { Hexagon::SA1, 69U }, { Hexagon::V0, 99U }, { Hexagon::V1, 100U }, { Hexagon::V2, 101U }, { Hexagon::V3, 102U }, { Hexagon::V4, 103U }, { Hexagon::V5, 104U }, { Hexagon::V6, 105U }, { Hexagon::V7, 106U }, { Hexagon::V8, 107U }, { Hexagon::V9, 108U }, { Hexagon::V10, 109U }, { Hexagon::V11, 110U }, { Hexagon::V12, 111U }, { Hexagon::V13, 112U }, { Hexagon::V14, 113U }, { Hexagon::V15, 114U }, { Hexagon::V16, 115U }, { Hexagon::V17, 116U }, { Hexagon::V18, 117U }, { Hexagon::V19, 118U }, { Hexagon::V20, 119U }, { Hexagon::V21, 120U }, { Hexagon::V22, 121U }, { Hexagon::V23, 122U }, { Hexagon::V24, 123U }, { Hexagon::V25, 124U }, { Hexagon::V26, 125U }, { Hexagon::V27, 126U }, { Hexagon::V28, 127U }, { Hexagon::V29, 128U }, { Hexagon::V30, 129U }, { Hexagon::V31, 130U }, { Hexagon::W0, 99U }, { Hexagon::W1, 101U }, { Hexagon::W2, 103U }, { Hexagon::W3, 105U }, { Hexagon::W4, 107U }, { Hexagon::W5, 109U }, { Hexagon::W6, 111U }, { Hexagon::W7, 113U }, { Hexagon::W8, 115U }, { Hexagon::W9, 117U }, { Hexagon::W10, 119U }, { Hexagon::W11, 121U }, { Hexagon::W12, 123U }, { Hexagon::W13, 125U }, { Hexagon::W14, 127U }, { Hexagon::W15, 129U }, { Hexagon::C1_0, 67U }, { Hexagon::C3_2, 69U }, { Hexagon::C7_6, 72U }, { Hexagon::C9_8, 74U }, { Hexagon::C11_10, 76U }, { Hexagon::P3_0, 71U }, }; extern const unsigned HexagonEHFlavour0L2DwarfSize = array_lengthof(HexagonEHFlavour0L2Dwarf); extern const uint16_t HexagonRegEncodingTable[] = { 0, 12, 11, 9, 10, 14, 15, 14, 8, 0, 5, 6, 7, 12, 13, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 1, 3, 0, 1, 0, 1, 2, 3, 0, 1, 2, 3, 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, 2, 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, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 6, 8, 10, 4, }; static inline void InitHexagonMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) { RI->InitMCRegisterInfo(HexagonRegDesc, 131, RA, PC, HexagonMCRegisterClasses, 16, HexagonRegUnitRoots, 87, HexagonRegDiffLists, HexagonLaneMaskLists, HexagonRegStrings, HexagonRegClassStrings, HexagonSubRegIdxLists, 4, HexagonSubRegIdxRanges, HexagonRegEncodingTable); switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapDwarfRegsToLLVMRegs(HexagonDwarfFlavour0Dwarf2L, HexagonDwarfFlavour0Dwarf2LSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapDwarfRegsToLLVMRegs(HexagonEHFlavour0Dwarf2L, HexagonEHFlavour0Dwarf2LSize, true); break; } switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapLLVMRegsToDwarfRegs(HexagonDwarfFlavour0L2Dwarf, HexagonDwarfFlavour0L2DwarfSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapLLVMRegsToDwarfRegs(HexagonEHFlavour0L2Dwarf, HexagonEHFlavour0L2DwarfSize, true); break; } } } // End llvm namespace #endif // GET_REGINFO_MC_DESC