You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
keystone/llvm/lib/Target/Sparc/SparcGenRegisterInfo.inc

1581 lines
36 KiB

/*===- 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 SPMCRegisterClasses[];
namespace SP {
enum {
NoRegister,
CANRESTORE = 1,
CANSAVE = 2,
CLEANWIN = 3,
CWP = 4,
FSR = 5,
ICC = 6,
OTHERWIN = 7,
PIL = 8,
PSR = 9,
PSTATE = 10,
TBA = 11,
TBR = 12,
TICK = 13,
TL = 14,
TNPC = 15,
TPC = 16,
TSTATE = 17,
TT = 18,
WIM = 19,
WSTATE = 20,
Y = 21,
ASR1 = 22,
ASR2 = 23,
ASR3 = 24,
ASR4 = 25,
ASR5 = 26,
ASR6 = 27,
ASR7 = 28,
ASR8 = 29,
ASR9 = 30,
ASR10 = 31,
ASR11 = 32,
ASR12 = 33,
ASR13 = 34,
ASR14 = 35,
ASR15 = 36,
ASR16 = 37,
ASR17 = 38,
ASR18 = 39,
ASR19 = 40,
ASR20 = 41,
ASR21 = 42,
ASR22 = 43,
ASR23 = 44,
ASR24 = 45,
ASR25 = 46,
ASR26 = 47,
ASR27 = 48,
ASR28 = 49,
ASR29 = 50,
ASR30 = 51,
ASR31 = 52,
D0 = 53,
D1 = 54,
D2 = 55,
D3 = 56,
D4 = 57,
D5 = 58,
D6 = 59,
D7 = 60,
D8 = 61,
D9 = 62,
D10 = 63,
D11 = 64,
D12 = 65,
D13 = 66,
D14 = 67,
D15 = 68,
D16 = 69,
D17 = 70,
D18 = 71,
D19 = 72,
D20 = 73,
D21 = 74,
D22 = 75,
D23 = 76,
D24 = 77,
D25 = 78,
D26 = 79,
D27 = 80,
D28 = 81,
D29 = 82,
D30 = 83,
D31 = 84,
F0 = 85,
F1 = 86,
F2 = 87,
F3 = 88,
F4 = 89,
F5 = 90,
F6 = 91,
F7 = 92,
F8 = 93,
F9 = 94,
F10 = 95,
F11 = 96,
F12 = 97,
F13 = 98,
F14 = 99,
F15 = 100,
F16 = 101,
F17 = 102,
F18 = 103,
F19 = 104,
F20 = 105,
F21 = 106,
F22 = 107,
F23 = 108,
F24 = 109,
F25 = 110,
F26 = 111,
F27 = 112,
F28 = 113,
F29 = 114,
F30 = 115,
F31 = 116,
FCC0 = 117,
FCC1 = 118,
FCC2 = 119,
FCC3 = 120,
G0 = 121,
G1 = 122,
G2 = 123,
G3 = 124,
G4 = 125,
G5 = 126,
G6 = 127,
G7 = 128,
I0 = 129,
I1 = 130,
I2 = 131,
I3 = 132,
I4 = 133,
I5 = 134,
I6 = 135,
I7 = 136,
L0 = 137,
L1 = 138,
L2 = 139,
L3 = 140,
L4 = 141,
L5 = 142,
L6 = 143,
L7 = 144,
O0 = 145,
O1 = 146,
O2 = 147,
O3 = 148,
O4 = 149,
O5 = 150,
O6 = 151,
O7 = 152,
Q0 = 153,
Q1 = 154,
Q2 = 155,
Q3 = 156,
Q4 = 157,
Q5 = 158,
Q6 = 159,
Q7 = 160,
Q8 = 161,
Q9 = 162,
Q10 = 163,
Q11 = 164,
Q12 = 165,
Q13 = 166,
Q14 = 167,
Q15 = 168,
G0_G1 = 169,
G2_G3 = 170,
G4_G5 = 171,
G6_G7 = 172,
I0_I1 = 173,
I2_I3 = 174,
I4_I5 = 175,
I6_I7 = 176,
L0_L1 = 177,
L2_L3 = 178,
L4_L5 = 179,
L6_L7 = 180,
O0_O1 = 181,
O2_O3 = 182,
O4_O5 = 183,
O6_O7 = 184,
NUM_TARGET_REGS // 185
};
}
// Register classes
namespace SP {
enum {
FCCRegsRegClassID = 0,
ASRRegsRegClassID = 1,
FPRegsRegClassID = 2,
IntRegsRegClassID = 3,
DFPRegsRegClassID = 4,
I64RegsRegClassID = 5,
DFPRegs_with_sub_evenRegClassID = 6,
IntPairRegClassID = 7,
PRRegsRegClassID = 8,
QFPRegsRegClassID = 9,
QFPRegs_with_sub_evenRegClassID = 10,
};
}
// Subregister indices
namespace SP {
enum {
NoSubRegister,
sub_even, // 1
sub_even64, // 2
sub_odd, // 3
sub_odd64, // 4
sub_odd64_then_sub_even, // 5
sub_odd64_then_sub_odd, // 6
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 SparcRegDiffLists[] = {
/* 0 */ 64976, 1, 1, 1, 0,
/* 5 */ 32, 1, 0,
/* 8 */ 65436, 32, 1, 65504, 33, 1, 0,
/* 15 */ 34, 1, 0,
/* 18 */ 65437, 34, 1, 65502, 35, 1, 0,
/* 25 */ 36, 1, 0,
/* 28 */ 65438, 36, 1, 65500, 37, 1, 0,
/* 35 */ 38, 1, 0,
/* 38 */ 65439, 38, 1, 65498, 39, 1, 0,
/* 45 */ 40, 1, 0,
/* 48 */ 65440, 40, 1, 65496, 41, 1, 0,
/* 55 */ 42, 1, 0,
/* 58 */ 65441, 42, 1, 65494, 43, 1, 0,
/* 65 */ 44, 1, 0,
/* 68 */ 65442, 44, 1, 65492, 45, 1, 0,
/* 75 */ 46, 1, 0,
/* 78 */ 65443, 46, 1, 65490, 47, 1, 0,
/* 85 */ 65298, 1, 0,
/* 88 */ 65302, 1, 0,
/* 91 */ 65444, 1, 0,
/* 94 */ 65445, 1, 0,
/* 97 */ 65446, 1, 0,
/* 100 */ 65447, 1, 0,
/* 103 */ 65448, 1, 0,
/* 106 */ 65449, 1, 0,
/* 109 */ 65450, 1, 0,
/* 112 */ 65451, 1, 0,
/* 115 */ 65482, 1, 0,
/* 118 */ 65488, 1, 0,
/* 121 */ 65489, 1, 0,
/* 124 */ 65490, 1, 0,
/* 127 */ 65491, 1, 0,
/* 130 */ 65492, 1, 0,
/* 133 */ 65493, 1, 0,
/* 136 */ 65494, 1, 0,
/* 139 */ 65495, 1, 0,
/* 142 */ 65496, 1, 0,
/* 145 */ 65497, 1, 0,
/* 148 */ 65498, 1, 0,
/* 151 */ 65499, 1, 0,
/* 154 */ 65500, 1, 0,
/* 157 */ 65501, 1, 0,
/* 160 */ 65502, 1, 0,
/* 163 */ 65503, 1, 0,
/* 166 */ 15, 0,
/* 168 */ 32, 0,
/* 170 */ 33, 0,
/* 172 */ 34, 0,
/* 174 */ 35, 0,
/* 176 */ 36, 0,
/* 178 */ 37, 0,
/* 180 */ 38, 0,
/* 182 */ 39, 0,
/* 184 */ 40, 0,
/* 186 */ 41, 0,
/* 188 */ 42, 0,
/* 190 */ 43, 0,
/* 192 */ 44, 0,
/* 194 */ 45, 0,
/* 196 */ 46, 0,
/* 198 */ 47, 0,
/* 200 */ 48, 0,
/* 202 */ 84, 0,
/* 204 */ 85, 0,
/* 206 */ 86, 0,
/* 208 */ 87, 0,
/* 210 */ 88, 0,
/* 212 */ 89, 0,
/* 214 */ 90, 0,
/* 216 */ 91, 0,
/* 218 */ 65488, 92, 0,
/* 221 */ 65489, 92, 0,
/* 224 */ 65489, 93, 0,
/* 227 */ 65490, 93, 0,
/* 230 */ 65491, 93, 0,
/* 233 */ 65491, 94, 0,
/* 236 */ 65492, 94, 0,
/* 239 */ 65493, 94, 0,
/* 242 */ 65493, 95, 0,
/* 245 */ 65494, 95, 0,
/* 248 */ 65495, 95, 0,
/* 251 */ 65495, 96, 0,
/* 254 */ 65496, 96, 0,
/* 257 */ 65497, 96, 0,
/* 260 */ 65497, 97, 0,
/* 263 */ 65498, 97, 0,
/* 266 */ 65499, 97, 0,
/* 269 */ 65499, 98, 0,
/* 272 */ 65500, 98, 0,
/* 275 */ 65501, 98, 0,
/* 278 */ 65501, 99, 0,
/* 281 */ 65502, 99, 0,
/* 284 */ 65503, 99, 0,
/* 287 */ 65503, 100, 0,
/* 290 */ 65504, 100, 0,
/* 293 */ 65503, 0,
/* 295 */ 65519, 0,
/* 297 */ 65535, 0,
};
extern const unsigned SparcLaneMaskLists[] = {
/* 0 */ 0x00000000, ~0u,
/* 2 */ 0x00000001, 0x00000002, ~0u,
/* 5 */ 0x00000001, 0x00000002, 0x00000004, 0x00000008, ~0u,
/* 10 */ 0x00000003, 0x0000000C, ~0u,
};
extern const uint16_t SparcSubRegIdxLists[] = {
/* 0 */ 1, 3, 0,
/* 3 */ 2, 4, 0,
/* 6 */ 2, 1, 3, 4, 5, 6, 0,
};
extern const MCRegisterInfo::SubRegCoveredBits SparcSubRegIdxRanges[] = {
{ 65535, 65535 },
{ 0, 32 }, // sub_even
{ 0, 64 }, // sub_even64
{ 32, 32 }, // sub_odd
{ 64, 64 }, // sub_odd64
{ 64, 32 }, // sub_odd64_then_sub_even
{ 96, 32 }, // sub_odd64_then_sub_odd
};
extern const char SparcRegStrings[] = {
/* 0 */ 'D', '1', '0', 0,
/* 4 */ 'F', '1', '0', 0,
/* 8 */ 'Q', '1', '0', 0,
/* 12 */ 'A', 'S', 'R', '1', '0', 0,
/* 18 */ 'D', '2', '0', 0,
/* 22 */ 'F', '2', '0', 0,
/* 26 */ 'A', 'S', 'R', '2', '0', 0,
/* 32 */ 'D', '3', '0', 0,
/* 36 */ 'F', '3', '0', 0,
/* 40 */ 'A', 'S', 'R', '3', '0', 0,
/* 46 */ 'F', 'C', 'C', '0', 0,
/* 51 */ 'D', '0', 0,
/* 54 */ 'F', '0', 0,
/* 57 */ 'G', '0', 0,
/* 60 */ 'I', '0', 0,
/* 63 */ 'L', '0', 0,
/* 66 */ 'O', '0', 0,
/* 69 */ 'Q', '0', 0,
/* 72 */ 'D', '1', '1', 0,
/* 76 */ 'F', '1', '1', 0,
/* 80 */ 'Q', '1', '1', 0,
/* 84 */ 'A', 'S', 'R', '1', '1', 0,
/* 90 */ 'D', '2', '1', 0,
/* 94 */ 'F', '2', '1', 0,
/* 98 */ 'A', 'S', 'R', '2', '1', 0,
/* 104 */ 'D', '3', '1', 0,
/* 108 */ 'F', '3', '1', 0,
/* 112 */ 'A', 'S', 'R', '3', '1', 0,
/* 118 */ 'F', 'C', 'C', '1', 0,
/* 123 */ 'D', '1', 0,
/* 126 */ 'F', '1', 0,
/* 129 */ 'G', '0', '_', 'G', '1', 0,
/* 135 */ 'I', '0', '_', 'I', '1', 0,
/* 141 */ 'L', '0', '_', 'L', '1', 0,
/* 147 */ 'O', '0', '_', 'O', '1', 0,
/* 153 */ 'Q', '1', 0,
/* 156 */ 'A', 'S', 'R', '1', 0,
/* 161 */ 'D', '1', '2', 0,
/* 165 */ 'F', '1', '2', 0,
/* 169 */ 'Q', '1', '2', 0,
/* 173 */ 'A', 'S', 'R', '1', '2', 0,
/* 179 */ 'D', '2', '2', 0,
/* 183 */ 'F', '2', '2', 0,
/* 187 */ 'A', 'S', 'R', '2', '2', 0,
/* 193 */ 'F', 'C', 'C', '2', 0,
/* 198 */ 'D', '2', 0,
/* 201 */ 'F', '2', 0,
/* 204 */ 'G', '2', 0,
/* 207 */ 'I', '2', 0,
/* 210 */ 'L', '2', 0,
/* 213 */ 'O', '2', 0,
/* 216 */ 'Q', '2', 0,
/* 219 */ 'A', 'S', 'R', '2', 0,
/* 224 */ 'D', '1', '3', 0,
/* 228 */ 'F', '1', '3', 0,
/* 232 */ 'Q', '1', '3', 0,
/* 236 */ 'A', 'S', 'R', '1', '3', 0,
/* 242 */ 'D', '2', '3', 0,
/* 246 */ 'F', '2', '3', 0,
/* 250 */ 'A', 'S', 'R', '2', '3', 0,
/* 256 */ 'F', 'C', 'C', '3', 0,
/* 261 */ 'D', '3', 0,
/* 264 */ 'F', '3', 0,
/* 267 */ 'G', '2', '_', 'G', '3', 0,
/* 273 */ 'I', '2', '_', 'I', '3', 0,
/* 279 */ 'L', '2', '_', 'L', '3', 0,
/* 285 */ 'O', '2', '_', 'O', '3', 0,
/* 291 */ 'Q', '3', 0,
/* 294 */ 'A', 'S', 'R', '3', 0,
/* 299 */ 'D', '1', '4', 0,
/* 303 */ 'F', '1', '4', 0,
/* 307 */ 'Q', '1', '4', 0,
/* 311 */ 'A', 'S', 'R', '1', '4', 0,
/* 317 */ 'D', '2', '4', 0,
/* 321 */ 'F', '2', '4', 0,
/* 325 */ 'A', 'S', 'R', '2', '4', 0,
/* 331 */ 'D', '4', 0,
/* 334 */ 'F', '4', 0,
/* 337 */ 'G', '4', 0,
/* 340 */ 'I', '4', 0,
/* 343 */ 'L', '4', 0,
/* 346 */ 'O', '4', 0,
/* 349 */ 'Q', '4', 0,
/* 352 */ 'A', 'S', 'R', '4', 0,
/* 357 */ 'D', '1', '5', 0,
/* 361 */ 'F', '1', '5', 0,
/* 365 */ 'Q', '1', '5', 0,
/* 369 */ 'A', 'S', 'R', '1', '5', 0,
/* 375 */ 'D', '2', '5', 0,
/* 379 */ 'F', '2', '5', 0,
/* 383 */ 'A', 'S', 'R', '2', '5', 0,
/* 389 */ 'D', '5', 0,
/* 392 */ 'F', '5', 0,
/* 395 */ 'G', '4', '_', 'G', '5', 0,
/* 401 */ 'I', '4', '_', 'I', '5', 0,
/* 407 */ 'L', '4', '_', 'L', '5', 0,
/* 413 */ 'O', '4', '_', 'O', '5', 0,
/* 419 */ 'Q', '5', 0,
/* 422 */ 'A', 'S', 'R', '5', 0,
/* 427 */ 'D', '1', '6', 0,
/* 431 */ 'F', '1', '6', 0,
/* 435 */ 'A', 'S', 'R', '1', '6', 0,
/* 441 */ 'D', '2', '6', 0,
/* 445 */ 'F', '2', '6', 0,
/* 449 */ 'A', 'S', 'R', '2', '6', 0,
/* 455 */ 'D', '6', 0,
/* 458 */ 'F', '6', 0,
/* 461 */ 'G', '6', 0,
/* 464 */ 'I', '6', 0,
/* 467 */ 'L', '6', 0,
/* 470 */ 'O', '6', 0,
/* 473 */ 'Q', '6', 0,
/* 476 */ 'A', 'S', 'R', '6', 0,
/* 481 */ 'D', '1', '7', 0,
/* 485 */ 'F', '1', '7', 0,
/* 489 */ 'A', 'S', 'R', '1', '7', 0,
/* 495 */ 'D', '2', '7', 0,
/* 499 */ 'F', '2', '7', 0,
/* 503 */ 'A', 'S', 'R', '2', '7', 0,
/* 509 */ 'D', '7', 0,
/* 512 */ 'F', '7', 0,
/* 515 */ 'G', '6', '_', 'G', '7', 0,
/* 521 */ 'I', '6', '_', 'I', '7', 0,
/* 527 */ 'L', '6', '_', 'L', '7', 0,
/* 533 */ 'O', '6', '_', 'O', '7', 0,
/* 539 */ 'Q', '7', 0,
/* 542 */ 'A', 'S', 'R', '7', 0,
/* 547 */ 'D', '1', '8', 0,
/* 551 */ 'F', '1', '8', 0,
/* 555 */ 'A', 'S', 'R', '1', '8', 0,
/* 561 */ 'D', '2', '8', 0,
/* 565 */ 'F', '2', '8', 0,
/* 569 */ 'A', 'S', 'R', '2', '8', 0,
/* 575 */ 'D', '8', 0,
/* 578 */ 'F', '8', 0,
/* 581 */ 'Q', '8', 0,
/* 584 */ 'A', 'S', 'R', '8', 0,
/* 589 */ 'D', '1', '9', 0,
/* 593 */ 'F', '1', '9', 0,
/* 597 */ 'A', 'S', 'R', '1', '9', 0,
/* 603 */ 'D', '2', '9', 0,
/* 607 */ 'F', '2', '9', 0,
/* 611 */ 'A', 'S', 'R', '2', '9', 0,
/* 617 */ 'D', '9', 0,
/* 620 */ 'F', '9', 0,
/* 623 */ 'Q', '9', 0,
/* 626 */ 'A', 'S', 'R', '9', 0,
/* 631 */ 'T', 'B', 'A', 0,
/* 635 */ 'I', 'C', 'C', 0,
/* 639 */ 'T', 'N', 'P', 'C', 0,
/* 644 */ 'T', 'P', 'C', 0,
/* 648 */ 'C', 'A', 'N', 'R', 'E', 'S', 'T', 'O', 'R', 'E', 0,
/* 659 */ 'P', 'S', 'T', 'A', 'T', 'E', 0,
/* 666 */ 'T', 'S', 'T', 'A', 'T', 'E', 0,
/* 673 */ 'W', 'S', 'T', 'A', 'T', 'E', 0,
/* 680 */ 'C', 'A', 'N', 'S', 'A', 'V', 'E', 0,
/* 688 */ 'T', 'I', 'C', 'K', 0,
/* 693 */ 'P', 'I', 'L', 0,
/* 697 */ 'T', 'L', 0,
/* 700 */ 'W', 'I', 'M', 0,
/* 704 */ 'C', 'L', 'E', 'A', 'N', 'W', 'I', 'N', 0,
/* 713 */ 'O', 'T', 'H', 'E', 'R', 'W', 'I', 'N', 0,
/* 722 */ 'C', 'W', 'P', 0,
/* 726 */ 'T', 'B', 'R', 0,
/* 730 */ 'F', 'S', 'R', 0,
/* 734 */ 'P', 'S', 'R', 0,
/* 738 */ 'T', 'T', 0,
/* 741 */ 'Y', 0,
};
extern const MCRegisterDesc SparcRegDesc[] = { // Descriptors
{ 3, 0, 0, 0, 0, 0 },
{ 648, 4, 4, 2, 4753, 0 },
{ 680, 4, 4, 2, 4753, 0 },
{ 704, 4, 4, 2, 4753, 0 },
{ 722, 4, 4, 2, 4753, 0 },
{ 730, 4, 4, 2, 4753, 0 },
{ 635, 4, 4, 2, 4753, 0 },
{ 713, 4, 4, 2, 4753, 0 },
{ 693, 4, 4, 2, 4753, 0 },
{ 734, 4, 4, 2, 4753, 0 },
{ 659, 4, 4, 2, 4753, 0 },
{ 631, 4, 4, 2, 4753, 0 },
{ 726, 4, 4, 2, 4753, 0 },
{ 688, 4, 4, 2, 4753, 0 },
{ 697, 4, 4, 2, 4753, 0 },
{ 639, 4, 4, 2, 4753, 0 },
{ 644, 4, 4, 2, 4753, 0 },
{ 666, 4, 4, 2, 4753, 0 },
{ 738, 4, 4, 2, 4753, 0 },
{ 700, 4, 4, 2, 4753, 0 },
{ 673, 4, 4, 2, 4753, 0 },
{ 741, 4, 4, 2, 4753, 0 },
{ 156, 4, 4, 2, 4753, 0 },
{ 219, 4, 4, 2, 4753, 0 },
{ 294, 4, 4, 2, 4753, 0 },
{ 352, 4, 4, 2, 4753, 0 },
{ 422, 4, 4, 2, 4753, 0 },
{ 476, 4, 4, 2, 4753, 0 },
{ 542, 4, 4, 2, 4753, 0 },
{ 584, 4, 4, 2, 4753, 0 },
{ 626, 4, 4, 2, 4753, 0 },
{ 12, 4, 4, 2, 4753, 0 },
{ 84, 4, 4, 2, 4753, 0 },
{ 173, 4, 4, 2, 4753, 0 },
{ 236, 4, 4, 2, 4753, 0 },
{ 311, 4, 4, 2, 4753, 0 },
{ 369, 4, 4, 2, 4753, 0 },
{ 435, 4, 4, 2, 4753, 0 },
{ 489, 4, 4, 2, 4753, 0 },
{ 555, 4, 4, 2, 4753, 0 },
{ 597, 4, 4, 2, 4753, 0 },
{ 26, 4, 4, 2, 4753, 0 },
{ 98, 4, 4, 2, 4753, 0 },
{ 187, 4, 4, 2, 4753, 0 },
{ 250, 4, 4, 2, 4753, 0 },
{ 325, 4, 4, 2, 4753, 0 },
{ 383, 4, 4, 2, 4753, 0 },
{ 449, 4, 4, 2, 4753, 0 },
{ 503, 4, 4, 2, 4753, 0 },
{ 569, 4, 4, 2, 4753, 0 },
{ 611, 4, 4, 2, 4753, 0 },
{ 40, 4, 4, 2, 4753, 0 },
{ 112, 4, 4, 2, 4753, 0 },
{ 51, 5, 288, 0, 1842, 2 },
{ 123, 12, 279, 0, 1842, 2 },
{ 198, 15, 279, 0, 1842, 2 },
{ 261, 22, 270, 0, 1842, 2 },
{ 331, 25, 270, 0, 1842, 2 },
{ 389, 32, 261, 0, 1842, 2 },
{ 455, 35, 261, 0, 1842, 2 },
{ 509, 42, 252, 0, 1842, 2 },
{ 575, 45, 252, 0, 1842, 2 },
{ 617, 52, 243, 0, 1842, 2 },
{ 0, 55, 243, 0, 1842, 2 },
{ 72, 62, 234, 0, 1842, 2 },
{ 161, 65, 234, 0, 1842, 2 },
{ 224, 72, 225, 0, 1842, 2 },
{ 299, 75, 225, 0, 1842, 2 },
{ 357, 82, 219, 0, 1842, 2 },
{ 427, 4, 219, 2, 2657, 0 },
{ 481, 4, 216, 2, 2657, 0 },
{ 547, 4, 216, 2, 2657, 0 },
{ 589, 4, 214, 2, 2657, 0 },
{ 18, 4, 214, 2, 2657, 0 },
{ 90, 4, 212, 2, 2657, 0 },
{ 179, 4, 212, 2, 2657, 0 },
{ 242, 4, 210, 2, 2657, 0 },
{ 317, 4, 210, 2, 2657, 0 },
{ 375, 4, 208, 2, 2657, 0 },
{ 441, 4, 208, 2, 2657, 0 },
{ 495, 4, 206, 2, 2657, 0 },
{ 561, 4, 206, 2, 2657, 0 },
{ 603, 4, 204, 2, 2657, 0 },
{ 32, 4, 204, 2, 2657, 0 },
{ 104, 4, 202, 2, 2657, 0 },
{ 54, 4, 290, 2, 4689, 0 },
{ 126, 4, 287, 2, 4689, 0 },
{ 201, 4, 284, 2, 4689, 0 },
{ 264, 4, 281, 2, 4689, 0 },
{ 334, 4, 281, 2, 4689, 0 },
{ 392, 4, 278, 2, 4689, 0 },
{ 458, 4, 275, 2, 4689, 0 },
{ 512, 4, 272, 2, 4689, 0 },
{ 578, 4, 272, 2, 4689, 0 },
{ 620, 4, 269, 2, 4689, 0 },
{ 4, 4, 266, 2, 4689, 0 },
{ 76, 4, 263, 2, 4689, 0 },
{ 165, 4, 263, 2, 4689, 0 },
{ 228, 4, 260, 2, 4689, 0 },
{ 303, 4, 257, 2, 4689, 0 },
{ 361, 4, 254, 2, 4689, 0 },
{ 431, 4, 254, 2, 4689, 0 },
{ 485, 4, 251, 2, 4689, 0 },
{ 551, 4, 248, 2, 4689, 0 },
{ 593, 4, 245, 2, 4689, 0 },
{ 22, 4, 245, 2, 4689, 0 },
{ 94, 4, 242, 2, 4689, 0 },
{ 183, 4, 239, 2, 4689, 0 },
{ 246, 4, 236, 2, 4689, 0 },
{ 321, 4, 236, 2, 4689, 0 },
{ 379, 4, 233, 2, 4689, 0 },
{ 445, 4, 230, 2, 4689, 0 },
{ 499, 4, 227, 2, 4689, 0 },
{ 565, 4, 227, 2, 4689, 0 },
{ 607, 4, 224, 2, 4689, 0 },
{ 36, 4, 221, 2, 4689, 0 },
{ 108, 4, 218, 2, 4689, 0 },
{ 46, 4, 4, 2, 4721, 0 },
{ 118, 4, 4, 2, 4721, 0 },
{ 193, 4, 4, 2, 4721, 0 },
{ 256, 4, 4, 2, 4721, 0 },
{ 57, 4, 200, 2, 4721, 0 },
{ 132, 4, 198, 2, 4721, 0 },
{ 204, 4, 198, 2, 4721, 0 },
{ 270, 4, 196, 2, 4721, 0 },
{ 337, 4, 196, 2, 4721, 0 },
{ 398, 4, 194, 2, 4721, 0 },
{ 461, 4, 194, 2, 4721, 0 },
{ 518, 4, 192, 2, 4721, 0 },
{ 60, 4, 192, 2, 4721, 0 },
{ 138, 4, 190, 2, 4721, 0 },
{ 207, 4, 190, 2, 4721, 0 },
{ 276, 4, 188, 2, 4721, 0 },
{ 340, 4, 188, 2, 4721, 0 },
{ 404, 4, 186, 2, 4721, 0 },
{ 464, 4, 186, 2, 4721, 0 },
{ 524, 4, 184, 2, 4721, 0 },
{ 63, 4, 184, 2, 4721, 0 },
{ 144, 4, 182, 2, 4721, 0 },
{ 210, 4, 182, 2, 4721, 0 },
{ 282, 4, 180, 2, 4721, 0 },
{ 343, 4, 180, 2, 4721, 0 },
{ 410, 4, 178, 2, 4721, 0 },
{ 467, 4, 178, 2, 4721, 0 },
{ 530, 4, 176, 2, 4721, 0 },
{ 66, 4, 176, 2, 4721, 0 },
{ 150, 4, 174, 2, 4721, 0 },
{ 213, 4, 174, 2, 4721, 0 },
{ 288, 4, 172, 2, 4721, 0 },
{ 346, 4, 172, 2, 4721, 0 },
{ 416, 4, 170, 2, 4721, 0 },
{ 470, 4, 170, 2, 4721, 0 },
{ 536, 4, 168, 2, 4721, 0 },
{ 69, 8, 4, 6, 4, 5 },
{ 153, 18, 4, 6, 4, 5 },
{ 216, 28, 4, 6, 4, 5 },
{ 291, 38, 4, 6, 4, 5 },
{ 349, 48, 4, 6, 4, 5 },
{ 419, 58, 4, 6, 4, 5 },
{ 473, 68, 4, 6, 4, 5 },
{ 539, 78, 4, 6, 4, 5 },
{ 581, 91, 4, 3, 1362, 10 },
{ 623, 94, 4, 3, 1362, 10 },
{ 8, 97, 4, 3, 1362, 10 },
{ 80, 100, 4, 3, 1362, 10 },
{ 169, 103, 4, 3, 1362, 10 },
{ 232, 106, 4, 3, 1362, 10 },
{ 307, 109, 4, 3, 1362, 10 },
{ 365, 112, 4, 3, 1362, 10 },
{ 129, 118, 4, 0, 1410, 2 },
{ 267, 121, 4, 0, 1410, 2 },
{ 395, 124, 4, 0, 1410, 2 },
{ 515, 127, 4, 0, 1410, 2 },
{ 135, 130, 4, 0, 1410, 2 },
{ 273, 133, 4, 0, 1410, 2 },
{ 401, 136, 4, 0, 1410, 2 },
{ 521, 139, 4, 0, 1410, 2 },
{ 141, 142, 4, 0, 1410, 2 },
{ 279, 145, 4, 0, 1410, 2 },
{ 407, 148, 4, 0, 1410, 2 },
{ 527, 151, 4, 0, 1410, 2 },
{ 147, 154, 4, 0, 1410, 2 },
{ 285, 157, 4, 0, 1410, 2 },
{ 413, 160, 4, 0, 1410, 2 },
{ 533, 163, 4, 0, 1410, 2 },
};
extern const MCPhysReg SparcRegUnitRoots[][2] = {
{ SP::CANRESTORE },
{ SP::CANSAVE },
{ SP::CLEANWIN },
{ SP::CWP },
{ SP::FSR },
{ SP::ICC },
{ SP::OTHERWIN },
{ SP::PIL },
{ SP::PSR },
{ SP::PSTATE },
{ SP::TBA },
{ SP::TBR },
{ SP::TICK },
{ SP::TL },
{ SP::TNPC },
{ SP::TPC },
{ SP::TSTATE },
{ SP::TT },
{ SP::WIM },
{ SP::WSTATE },
{ SP::Y },
{ SP::ASR1 },
{ SP::ASR2 },
{ SP::ASR3 },
{ SP::ASR4 },
{ SP::ASR5 },
{ SP::ASR6 },
{ SP::ASR7 },
{ SP::ASR8 },
{ SP::ASR9 },
{ SP::ASR10 },
{ SP::ASR11 },
{ SP::ASR12 },
{ SP::ASR13 },
{ SP::ASR14 },
{ SP::ASR15 },
{ SP::ASR16 },
{ SP::ASR17 },
{ SP::ASR18 },
{ SP::ASR19 },
{ SP::ASR20 },
{ SP::ASR21 },
{ SP::ASR22 },
{ SP::ASR23 },
{ SP::ASR24 },
{ SP::ASR25 },
{ SP::ASR26 },
{ SP::ASR27 },
{ SP::ASR28 },
{ SP::ASR29 },
{ SP::ASR30 },
{ SP::ASR31 },
{ SP::F0 },
{ SP::F1 },
{ SP::F2 },
{ SP::F3 },
{ SP::F4 },
{ SP::F5 },
{ SP::F6 },
{ SP::F7 },
{ SP::F8 },
{ SP::F9 },
{ SP::F10 },
{ SP::F11 },
{ SP::F12 },
{ SP::F13 },
{ SP::F14 },
{ SP::F15 },
{ SP::F16 },
{ SP::F17 },
{ SP::F18 },
{ SP::F19 },
{ SP::F20 },
{ SP::F21 },
{ SP::F22 },
{ SP::F23 },
{ SP::F24 },
{ SP::F25 },
{ SP::F26 },
{ SP::F27 },
{ SP::F28 },
{ SP::F29 },
{ SP::F30 },
{ SP::F31 },
{ SP::D16 },
{ SP::D17 },
{ SP::D18 },
{ SP::D19 },
{ SP::D20 },
{ SP::D21 },
{ SP::D22 },
{ SP::D23 },
{ SP::D24 },
{ SP::D25 },
{ SP::D26 },
{ SP::D27 },
{ SP::D28 },
{ SP::D29 },
{ SP::D30 },
{ SP::D31 },
{ SP::FCC0 },
{ SP::FCC1 },
{ SP::FCC2 },
{ SP::FCC3 },
{ SP::G0 },
{ SP::G1 },
{ SP::G2 },
{ SP::G3 },
{ SP::G4 },
{ SP::G5 },
{ SP::G6 },
{ SP::G7 },
{ SP::I0 },
{ SP::I1 },
{ SP::I2 },
{ SP::I3 },
{ SP::I4 },
{ SP::I5 },
{ SP::I6 },
{ SP::I7 },
{ SP::L0 },
{ SP::L1 },
{ SP::L2 },
{ SP::L3 },
{ SP::L4 },
{ SP::L5 },
{ SP::L6 },
{ SP::L7 },
{ SP::O0 },
{ SP::O1 },
{ SP::O2 },
{ SP::O3 },
{ SP::O4 },
{ SP::O5 },
{ SP::O6 },
{ SP::O7 },
};
namespace { // Register classes...
// FCCRegs Register Class...
const MCPhysReg FCCRegs[] = {
SP::FCC0, SP::FCC1, SP::FCC2, SP::FCC3,
};
// FCCRegs Bit set.
const uint8_t FCCRegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01,
};
// ASRRegs Register Class...
const MCPhysReg ASRRegs[] = {
SP::Y, SP::ASR1, SP::ASR2, SP::ASR3, SP::ASR4, SP::ASR5, SP::ASR6, SP::ASR7, SP::ASR8, SP::ASR9, SP::ASR10, SP::ASR11, SP::ASR12, SP::ASR13, SP::ASR14, SP::ASR15, SP::ASR16, SP::ASR17, SP::ASR18, SP::ASR19, SP::ASR20, SP::ASR21, SP::ASR22, SP::ASR23, SP::ASR24, SP::ASR25, SP::ASR26, SP::ASR27, SP::ASR28, SP::ASR29, SP::ASR30, SP::ASR31,
};
// ASRRegs Bit set.
const uint8_t ASRRegsBits[] = {
0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
};
// FPRegs Register Class...
const MCPhysReg FPRegs[] = {
SP::F0, SP::F1, SP::F2, SP::F3, SP::F4, SP::F5, SP::F6, SP::F7, SP::F8, SP::F9, SP::F10, SP::F11, SP::F12, SP::F13, SP::F14, SP::F15, SP::F16, SP::F17, SP::F18, SP::F19, SP::F20, SP::F21, SP::F22, SP::F23, SP::F24, SP::F25, SP::F26, SP::F27, SP::F28, SP::F29, SP::F30, SP::F31,
};
// FPRegs Bit set.
const uint8_t FPRegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
};
// IntRegs Register Class...
const MCPhysReg IntRegs[] = {
SP::I0, SP::I1, SP::I2, SP::I3, SP::I4, SP::I5, SP::I6, SP::I7, SP::G0, SP::G1, SP::G2, SP::G3, SP::G4, SP::G5, SP::G6, SP::G7, SP::L0, SP::L1, SP::L2, SP::L3, SP::L4, SP::L5, SP::L6, SP::L7, SP::O0, SP::O1, SP::O2, SP::O3, SP::O4, SP::O5, SP::O6, SP::O7,
};
// IntRegs Bit set.
const uint8_t IntRegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01,
};
// DFPRegs Register Class...
const MCPhysReg DFPRegs[] = {
SP::D0, SP::D1, SP::D2, SP::D3, SP::D4, SP::D5, SP::D6, SP::D7, SP::D8, SP::D9, SP::D10, SP::D11, SP::D12, SP::D13, SP::D14, SP::D15, SP::D16, SP::D17, SP::D18, SP::D19, SP::D20, SP::D21, SP::D22, SP::D23, SP::D24, SP::D25, SP::D26, SP::D27, SP::D28, SP::D29, SP::D30, SP::D31,
};
// DFPRegs Bit set.
const uint8_t DFPRegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
};
// I64Regs Register Class...
const MCPhysReg I64Regs[] = {
SP::I0, SP::I1, SP::I2, SP::I3, SP::I4, SP::I5, SP::I6, SP::I7, SP::G0, SP::G1, SP::G2, SP::G3, SP::G4, SP::G5, SP::G6, SP::G7, SP::L0, SP::L1, SP::L2, SP::L3, SP::L4, SP::L5, SP::L6, SP::L7, SP::O0, SP::O1, SP::O2, SP::O3, SP::O4, SP::O5, SP::O6, SP::O7,
};
// I64Regs Bit set.
const uint8_t I64RegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01,
};
// DFPRegs_with_sub_even Register Class...
const MCPhysReg DFPRegs_with_sub_even[] = {
SP::D0, SP::D1, SP::D2, SP::D3, SP::D4, SP::D5, SP::D6, SP::D7, SP::D8, SP::D9, SP::D10, SP::D11, SP::D12, SP::D13, SP::D14, SP::D15,
};
// DFPRegs_with_sub_even Bit set.
const uint8_t DFPRegs_with_sub_evenBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
};
// IntPair Register Class...
const MCPhysReg IntPair[] = {
SP::I0_I1, SP::I2_I3, SP::I4_I5, SP::I6_I7, SP::G0_G1, SP::G2_G3, SP::G4_G5, SP::G6_G7, SP::L0_L1, SP::L2_L3, SP::L4_L5, SP::L6_L7, SP::O0_O1, SP::O2_O3, SP::O4_O5, SP::O6_O7,
};
// IntPair Bit set.
const uint8_t IntPairBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01,
};
// PRRegs Register Class...
const MCPhysReg PRRegs[] = {
SP::TPC, SP::TNPC, SP::TSTATE, SP::TT, SP::TICK, SP::TBA, SP::PSTATE, SP::TL, SP::PIL, SP::CWP, SP::CANSAVE, SP::CANRESTORE, SP::CLEANWIN, SP::OTHERWIN, SP::WSTATE,
};
// PRRegs Bit set.
const uint8_t PRRegsBits[] = {
0x9e, 0xed, 0x17,
};
// QFPRegs Register Class...
const MCPhysReg QFPRegs[] = {
SP::Q0, SP::Q1, SP::Q2, SP::Q3, SP::Q4, SP::Q5, SP::Q6, SP::Q7, SP::Q8, SP::Q9, SP::Q10, SP::Q11, SP::Q12, SP::Q13, SP::Q14, SP::Q15,
};
// QFPRegs Bit set.
const uint8_t QFPRegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01,
};
// QFPRegs_with_sub_even Register Class...
const MCPhysReg QFPRegs_with_sub_even[] = {
SP::Q0, SP::Q1, SP::Q2, SP::Q3, SP::Q4, SP::Q5, SP::Q6, SP::Q7,
};
// QFPRegs_with_sub_even Bit set.
const uint8_t QFPRegs_with_sub_evenBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01,
};
}
extern const char SparcRegClassStrings[] = {
/* 0 */ 'D', 'F', 'P', 'R', 'e', 'g', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'e', 'v', 'e', 'n', 0,
/* 22 */ 'Q', 'F', 'P', 'R', 'e', 'g', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'e', 'v', 'e', 'n', 0,
/* 44 */ 'I', 'n', 't', 'P', 'a', 'i', 'r', 0,
/* 52 */ 'I', '6', '4', 'R', 'e', 'g', 's', 0,
/* 60 */ 'F', 'C', 'C', 'R', 'e', 'g', 's', 0,
/* 68 */ 'D', 'F', 'P', 'R', 'e', 'g', 's', 0,
/* 76 */ 'Q', 'F', 'P', 'R', 'e', 'g', 's', 0,
/* 84 */ 'P', 'R', 'R', 'e', 'g', 's', 0,
/* 91 */ 'A', 'S', 'R', 'R', 'e', 'g', 's', 0,
/* 99 */ 'I', 'n', 't', 'R', 'e', 'g', 's', 0,
};
extern const MCRegisterClass SparcMCRegisterClasses[] = {
{ FCCRegs, FCCRegsBits, 60, 4, sizeof(FCCRegsBits), SP::FCCRegsRegClassID, 0, 0, 1, 1 },
{ ASRRegs, ASRRegsBits, 91, 32, sizeof(ASRRegsBits), SP::ASRRegsRegClassID, 4, 4, 1, 0 },
{ FPRegs, FPRegsBits, 69, 32, sizeof(FPRegsBits), SP::FPRegsRegClassID, 4, 4, 1, 1 },
{ IntRegs, IntRegsBits, 99, 32, sizeof(IntRegsBits), SP::IntRegsRegClassID, 4, 4, 1, 1 },
{ DFPRegs, DFPRegsBits, 68, 32, sizeof(DFPRegsBits), SP::DFPRegsRegClassID, 8, 8, 1, 1 },
{ I64Regs, I64RegsBits, 52, 32, sizeof(I64RegsBits), SP::I64RegsRegClassID, 8, 8, 1, 1 },
{ DFPRegs_with_sub_even, DFPRegs_with_sub_evenBits, 0, 16, sizeof(DFPRegs_with_sub_evenBits), SP::DFPRegs_with_sub_evenRegClassID, 8, 8, 1, 1 },
{ IntPair, IntPairBits, 44, 16, sizeof(IntPairBits), SP::IntPairRegClassID, 8, 8, 1, 1 },
{ PRRegs, PRRegsBits, 84, 15, sizeof(PRRegsBits), SP::PRRegsRegClassID, 8, 8, 1, 1 },
{ QFPRegs, QFPRegsBits, 76, 16, sizeof(QFPRegsBits), SP::QFPRegsRegClassID, 16, 16, 1, 1 },
{ QFPRegs_with_sub_even, QFPRegs_with_sub_evenBits, 22, 8, sizeof(QFPRegs_with_sub_evenBits), SP::QFPRegs_with_sub_evenRegClassID, 16, 16, 1, 1 },
};
// SP Dwarf<->LLVM register mappings.
extern const MCRegisterInfo::DwarfLLVMRegPair SPDwarfFlavour0Dwarf2L[] = {
{ 0U, SP::G0 },
{ 1U, SP::G1 },
{ 2U, SP::G2 },
{ 3U, SP::G3 },
{ 4U, SP::G4 },
{ 5U, SP::G5 },
{ 6U, SP::G6 },
{ 7U, SP::G7 },
{ 8U, SP::O0 },
{ 9U, SP::O1 },
{ 10U, SP::O2 },
{ 11U, SP::O3 },
{ 12U, SP::O4 },
{ 13U, SP::O5 },
{ 14U, SP::O6 },
{ 15U, SP::O7 },
{ 16U, SP::L0 },
{ 17U, SP::L1 },
{ 18U, SP::L2 },
{ 19U, SP::L3 },
{ 20U, SP::L4 },
{ 21U, SP::L5 },
{ 22U, SP::L6 },
{ 23U, SP::L7 },
{ 24U, SP::I0 },
{ 25U, SP::I1 },
{ 26U, SP::I2 },
{ 27U, SP::I3 },
{ 28U, SP::I4 },
{ 29U, SP::I5 },
{ 30U, SP::I6 },
{ 31U, SP::I7 },
{ 32U, SP::F0 },
{ 33U, SP::F1 },
{ 34U, SP::F2 },
{ 35U, SP::F3 },
{ 36U, SP::F4 },
{ 37U, SP::F5 },
{ 38U, SP::F6 },
{ 39U, SP::F7 },
{ 40U, SP::F8 },
{ 41U, SP::F9 },
{ 42U, SP::F10 },
{ 43U, SP::F11 },
{ 44U, SP::F12 },
{ 45U, SP::F13 },
{ 46U, SP::F14 },
{ 47U, SP::F15 },
{ 48U, SP::F16 },
{ 49U, SP::F17 },
{ 50U, SP::F18 },
{ 51U, SP::F19 },
{ 52U, SP::F20 },
{ 53U, SP::F21 },
{ 54U, SP::F22 },
{ 55U, SP::F23 },
{ 56U, SP::F24 },
{ 57U, SP::F25 },
{ 58U, SP::F26 },
{ 59U, SP::F27 },
{ 60U, SP::F28 },
{ 61U, SP::F29 },
{ 62U, SP::F30 },
{ 63U, SP::F31 },
{ 64U, SP::Y },
{ 72U, SP::D0 },
{ 73U, SP::D1 },
{ 74U, SP::D2 },
{ 75U, SP::D3 },
{ 76U, SP::D4 },
{ 77U, SP::D5 },
{ 78U, SP::D6 },
{ 79U, SP::D7 },
{ 80U, SP::D8 },
{ 81U, SP::D9 },
{ 82U, SP::D10 },
{ 83U, SP::D11 },
{ 84U, SP::D12 },
{ 85U, SP::D13 },
{ 86U, SP::D14 },
{ 87U, SP::D15 },
};
extern const unsigned SPDwarfFlavour0Dwarf2LSize = array_lengthof(SPDwarfFlavour0Dwarf2L);
extern const MCRegisterInfo::DwarfLLVMRegPair SPEHFlavour0Dwarf2L[] = {
{ 0U, SP::G0 },
{ 1U, SP::G1 },
{ 2U, SP::G2 },
{ 3U, SP::G3 },
{ 4U, SP::G4 },
{ 5U, SP::G5 },
{ 6U, SP::G6 },
{ 7U, SP::G7 },
{ 8U, SP::O0 },
{ 9U, SP::O1 },
{ 10U, SP::O2 },
{ 11U, SP::O3 },
{ 12U, SP::O4 },
{ 13U, SP::O5 },
{ 14U, SP::O6 },
{ 15U, SP::O7 },
{ 16U, SP::L0 },
{ 17U, SP::L1 },
{ 18U, SP::L2 },
{ 19U, SP::L3 },
{ 20U, SP::L4 },
{ 21U, SP::L5 },
{ 22U, SP::L6 },
{ 23U, SP::L7 },
{ 24U, SP::I0 },
{ 25U, SP::I1 },
{ 26U, SP::I2 },
{ 27U, SP::I3 },
{ 28U, SP::I4 },
{ 29U, SP::I5 },
{ 30U, SP::I6 },
{ 31U, SP::I7 },
{ 32U, SP::F0 },
{ 33U, SP::F1 },
{ 34U, SP::F2 },
{ 35U, SP::F3 },
{ 36U, SP::F4 },
{ 37U, SP::F5 },
{ 38U, SP::F6 },
{ 39U, SP::F7 },
{ 40U, SP::F8 },
{ 41U, SP::F9 },
{ 42U, SP::F10 },
{ 43U, SP::F11 },
{ 44U, SP::F12 },
{ 45U, SP::F13 },
{ 46U, SP::F14 },
{ 47U, SP::F15 },
{ 48U, SP::F16 },
{ 49U, SP::F17 },
{ 50U, SP::F18 },
{ 51U, SP::F19 },
{ 52U, SP::F20 },
{ 53U, SP::F21 },
{ 54U, SP::F22 },
{ 55U, SP::F23 },
{ 56U, SP::F24 },
{ 57U, SP::F25 },
{ 58U, SP::F26 },
{ 59U, SP::F27 },
{ 60U, SP::F28 },
{ 61U, SP::F29 },
{ 62U, SP::F30 },
{ 63U, SP::F31 },
{ 64U, SP::Y },
{ 72U, SP::D0 },
{ 73U, SP::D1 },
{ 74U, SP::D2 },
{ 75U, SP::D3 },
{ 76U, SP::D4 },
{ 77U, SP::D5 },
{ 78U, SP::D6 },
{ 79U, SP::D7 },
{ 80U, SP::D8 },
{ 81U, SP::D9 },
{ 82U, SP::D10 },
{ 83U, SP::D11 },
{ 84U, SP::D12 },
{ 85U, SP::D13 },
{ 86U, SP::D14 },
{ 87U, SP::D15 },
};
extern const unsigned SPEHFlavour0Dwarf2LSize = array_lengthof(SPEHFlavour0Dwarf2L);
extern const MCRegisterInfo::DwarfLLVMRegPair SPDwarfFlavour0L2Dwarf[] = {
{ SP::Y, 64U },
{ SP::D0, 72U },
{ SP::D1, 73U },
{ SP::D2, 74U },
{ SP::D3, 75U },
{ SP::D4, 76U },
{ SP::D5, 77U },
{ SP::D6, 78U },
{ SP::D7, 79U },
{ SP::D8, 80U },
{ SP::D9, 81U },
{ SP::D10, 82U },
{ SP::D11, 83U },
{ SP::D12, 84U },
{ SP::D13, 85U },
{ SP::D14, 86U },
{ SP::D15, 87U },
{ SP::F0, 32U },
{ SP::F1, 33U },
{ SP::F2, 34U },
{ SP::F3, 35U },
{ SP::F4, 36U },
{ SP::F5, 37U },
{ SP::F6, 38U },
{ SP::F7, 39U },
{ SP::F8, 40U },
{ SP::F9, 41U },
{ SP::F10, 42U },
{ SP::F11, 43U },
{ SP::F12, 44U },
{ SP::F13, 45U },
{ SP::F14, 46U },
{ SP::F15, 47U },
{ SP::F16, 48U },
{ SP::F17, 49U },
{ SP::F18, 50U },
{ SP::F19, 51U },
{ SP::F20, 52U },
{ SP::F21, 53U },
{ SP::F22, 54U },
{ SP::F23, 55U },
{ SP::F24, 56U },
{ SP::F25, 57U },
{ SP::F26, 58U },
{ SP::F27, 59U },
{ SP::F28, 60U },
{ SP::F29, 61U },
{ SP::F30, 62U },
{ SP::F31, 63U },
{ SP::G0, 0U },
{ SP::G1, 1U },
{ SP::G2, 2U },
{ SP::G3, 3U },
{ SP::G4, 4U },
{ SP::G5, 5U },
{ SP::G6, 6U },
{ SP::G7, 7U },
{ SP::I0, 24U },
{ SP::I1, 25U },
{ SP::I2, 26U },
{ SP::I3, 27U },
{ SP::I4, 28U },
{ SP::I5, 29U },
{ SP::I6, 30U },
{ SP::I7, 31U },
{ SP::L0, 16U },
{ SP::L1, 17U },
{ SP::L2, 18U },
{ SP::L3, 19U },
{ SP::L4, 20U },
{ SP::L5, 21U },
{ SP::L6, 22U },
{ SP::L7, 23U },
{ SP::O0, 8U },
{ SP::O1, 9U },
{ SP::O2, 10U },
{ SP::O3, 11U },
{ SP::O4, 12U },
{ SP::O5, 13U },
{ SP::O6, 14U },
{ SP::O7, 15U },
};
extern const unsigned SPDwarfFlavour0L2DwarfSize = array_lengthof(SPDwarfFlavour0L2Dwarf);
extern const MCRegisterInfo::DwarfLLVMRegPair SPEHFlavour0L2Dwarf[] = {
{ SP::Y, 64U },
{ SP::D0, 72U },
{ SP::D1, 73U },
{ SP::D2, 74U },
{ SP::D3, 75U },
{ SP::D4, 76U },
{ SP::D5, 77U },
{ SP::D6, 78U },
{ SP::D7, 79U },
{ SP::D8, 80U },
{ SP::D9, 81U },
{ SP::D10, 82U },
{ SP::D11, 83U },
{ SP::D12, 84U },
{ SP::D13, 85U },
{ SP::D14, 86U },
{ SP::D15, 87U },
{ SP::F0, 32U },
{ SP::F1, 33U },
{ SP::F2, 34U },
{ SP::F3, 35U },
{ SP::F4, 36U },
{ SP::F5, 37U },
{ SP::F6, 38U },
{ SP::F7, 39U },
{ SP::F8, 40U },
{ SP::F9, 41U },
{ SP::F10, 42U },
{ SP::F11, 43U },
{ SP::F12, 44U },
{ SP::F13, 45U },
{ SP::F14, 46U },
{ SP::F15, 47U },
{ SP::F16, 48U },
{ SP::F17, 49U },
{ SP::F18, 50U },
{ SP::F19, 51U },
{ SP::F20, 52U },
{ SP::F21, 53U },
{ SP::F22, 54U },
{ SP::F23, 55U },
{ SP::F24, 56U },
{ SP::F25, 57U },
{ SP::F26, 58U },
{ SP::F27, 59U },
{ SP::F28, 60U },
{ SP::F29, 61U },
{ SP::F30, 62U },
{ SP::F31, 63U },
{ SP::G0, 0U },
{ SP::G1, 1U },
{ SP::G2, 2U },
{ SP::G3, 3U },
{ SP::G4, 4U },
{ SP::G5, 5U },
{ SP::G6, 6U },
{ SP::G7, 7U },
{ SP::I0, 24U },
{ SP::I1, 25U },
{ SP::I2, 26U },
{ SP::I3, 27U },
{ SP::I4, 28U },
{ SP::I5, 29U },
{ SP::I6, 30U },
{ SP::I7, 31U },
{ SP::L0, 16U },
{ SP::L1, 17U },
{ SP::L2, 18U },
{ SP::L3, 19U },
{ SP::L4, 20U },
{ SP::L5, 21U },
{ SP::L6, 22U },
{ SP::L7, 23U },
{ SP::O0, 8U },
{ SP::O1, 9U },
{ SP::O2, 10U },
{ SP::O3, 11U },
{ SP::O4, 12U },
{ SP::O5, 13U },
{ SP::O6, 14U },
{ SP::O7, 15U },
};
extern const unsigned SPEHFlavour0L2DwarfSize = array_lengthof(SPEHFlavour0L2Dwarf);
extern const uint16_t SparcRegEncodingTable[] = {
0,
11,
10,
12,
9,
0,
0,
13,
8,
0,
6,
5,
0,
4,
7,
1,
0,
2,
3,
0,
14,
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,
1,
3,
5,
7,
9,
11,
13,
15,
17,
19,
21,
23,
25,
27,
29,
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,
0,
1,
2,
3,
4,
5,
6,
7,
24,
25,
26,
27,
28,
29,
30,
31,
16,
17,
18,
19,
20,
21,
22,
23,
8,
9,
10,
11,
12,
13,
14,
15,
0,
4,
8,
12,
16,
20,
24,
28,
1,
5,
9,
13,
17,
21,
25,
29,
0,
2,
4,
6,
24,
26,
28,
30,
16,
18,
20,
22,
8,
10,
12,
14,
};
static inline void InitSparcMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
RI->InitMCRegisterInfo(SparcRegDesc, 185, RA, PC, SparcMCRegisterClasses, 11, SparcRegUnitRoots, 136, SparcRegDiffLists, SparcLaneMaskLists, SparcRegStrings, SparcRegClassStrings, SparcSubRegIdxLists, 7,
SparcSubRegIdxRanges, SparcRegEncodingTable);
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapDwarfRegsToLLVMRegs(SPDwarfFlavour0Dwarf2L, SPDwarfFlavour0Dwarf2LSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapDwarfRegsToLLVMRegs(SPEHFlavour0Dwarf2L, SPEHFlavour0Dwarf2LSize, true);
break;
}
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapLLVMRegsToDwarfRegs(SPDwarfFlavour0L2Dwarf, SPDwarfFlavour0L2DwarfSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapLLVMRegsToDwarfRegs(SPEHFlavour0L2Dwarf, SPEHFlavour0L2DwarfSize, true);
break;
}
}
} // End llvm namespace
#endif // GET_REGINFO_MC_DESC