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/SystemZ/SystemZGenRegisterInfo.inc

1388 lines
37 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 SystemZMCRegisterClasses[];
namespace SystemZ {
enum {
NoRegister,
CC = 1,
V0 = 2,
V1 = 3,
V2 = 4,
V3 = 5,
V4 = 6,
V5 = 7,
V6 = 8,
V7 = 9,
V8 = 10,
V9 = 11,
V10 = 12,
V11 = 13,
V12 = 14,
V13 = 15,
V14 = 16,
V15 = 17,
V16 = 18,
V17 = 19,
V18 = 20,
V19 = 21,
V20 = 22,
V21 = 23,
V22 = 24,
V23 = 25,
V24 = 26,
V25 = 27,
V26 = 28,
V27 = 29,
V28 = 30,
V29 = 31,
V30 = 32,
V31 = 33,
F0D = 34,
F1D = 35,
F2D = 36,
F3D = 37,
F4D = 38,
F5D = 39,
F6D = 40,
F7D = 41,
F8D = 42,
F9D = 43,
F10D = 44,
F11D = 45,
F12D = 46,
F13D = 47,
F14D = 48,
F15D = 49,
F16D = 50,
F17D = 51,
F18D = 52,
F19D = 53,
F20D = 54,
F21D = 55,
F22D = 56,
F23D = 57,
F24D = 58,
F25D = 59,
F26D = 60,
F27D = 61,
F28D = 62,
F29D = 63,
F30D = 64,
F31D = 65,
F0Q = 66,
F1Q = 67,
F4Q = 68,
F5Q = 69,
F8Q = 70,
F9Q = 71,
F12Q = 72,
F13Q = 73,
F0S = 74,
F1S = 75,
F2S = 76,
F3S = 77,
F4S = 78,
F5S = 79,
F6S = 80,
F7S = 81,
F8S = 82,
F9S = 83,
F10S = 84,
F11S = 85,
F12S = 86,
F13S = 87,
F14S = 88,
F15S = 89,
F16S = 90,
F17S = 91,
F18S = 92,
F19S = 93,
F20S = 94,
F21S = 95,
F22S = 96,
F23S = 97,
F24S = 98,
F25S = 99,
F26S = 100,
F27S = 101,
F28S = 102,
F29S = 103,
F30S = 104,
F31S = 105,
R0D = 106,
R1D = 107,
R2D = 108,
R3D = 109,
R4D = 110,
R5D = 111,
R6D = 112,
R7D = 113,
R8D = 114,
R9D = 115,
R10D = 116,
R11D = 117,
R12D = 118,
R13D = 119,
R14D = 120,
R15D = 121,
R0H = 122,
R1H = 123,
R2H = 124,
R3H = 125,
R4H = 126,
R5H = 127,
R6H = 128,
R7H = 129,
R8H = 130,
R9H = 131,
R10H = 132,
R11H = 133,
R12H = 134,
R13H = 135,
R14H = 136,
R15H = 137,
R0L = 138,
R1L = 139,
R2L = 140,
R3L = 141,
R4L = 142,
R5L = 143,
R6L = 144,
R7L = 145,
R8L = 146,
R9L = 147,
R10L = 148,
R11L = 149,
R12L = 150,
R13L = 151,
R14L = 152,
R15L = 153,
R0Q = 154,
R2Q = 155,
R4Q = 156,
R6Q = 157,
R8Q = 158,
R10Q = 159,
R12Q = 160,
R14Q = 161,
NUM_TARGET_REGS // 162
};
}
// Register classes
namespace SystemZ {
enum {
GRX32BitRegClassID = 0,
VR32BitRegClassID = 1,
FP32BitRegClassID = 2,
GR32BitRegClassID = 3,
GRH32BitRegClassID = 4,
ADDR32BitRegClassID = 5,
CCRegsRegClassID = 6,
VR64BitRegClassID = 7,
FP64BitRegClassID = 8,
GR64BitRegClassID = 9,
ADDR64BitRegClassID = 10,
VR128BitRegClassID = 11,
VF128BitRegClassID = 12,
FP128BitRegClassID = 13,
GR128BitRegClassID = 14,
ADDR128BitRegClassID = 15,
};
}
// Subregister indices
namespace SystemZ {
enum {
NoSubRegister,
subreg_h32, // 1
subreg_h64, // 2
subreg_hh32, // 3
subreg_hl32, // 4
subreg_hr32, // 5
subreg_l32, // 6
subreg_l64, // 7
subreg_r32, // 8
subreg_r64, // 9
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 SystemZRegDiffLists[] = {
/* 0 */ 64953, 1, 1, 1, 0,
/* 5 */ 65357, 1, 0,
/* 8 */ 65471, 2, 0,
/* 11 */ 65473, 2, 0,
/* 14 */ 65475, 2, 0,
/* 17 */ 65477, 2, 0,
/* 20 */ 32, 40, 0,
/* 23 */ 65506, 40, 65494, 40, 0,
/* 28 */ 65508, 40, 65494, 40, 0,
/* 33 */ 65510, 40, 65494, 40, 0,
/* 38 */ 65512, 40, 65494, 40, 0,
/* 43 */ 65504, 40, 0,
/* 46 */ 65520, 40, 0,
/* 49 */ 65504, 41, 0,
/* 52 */ 65520, 41, 0,
/* 55 */ 65504, 42, 0,
/* 58 */ 65520, 42, 0,
/* 61 */ 65504, 43, 0,
/* 64 */ 65520, 43, 0,
/* 67 */ 65504, 44, 0,
/* 70 */ 65520, 44, 0,
/* 73 */ 65504, 45, 0,
/* 76 */ 65520, 45, 0,
/* 79 */ 65504, 46, 0,
/* 82 */ 65520, 46, 0,
/* 85 */ 65504, 47, 0,
/* 88 */ 65520, 47, 0,
/* 91 */ 65504, 48, 0,
/* 94 */ 65520, 48, 0,
/* 97 */ 65496, 65504, 56, 0,
/* 101 */ 65496, 65504, 58, 0,
/* 105 */ 65496, 65504, 60, 0,
/* 109 */ 65496, 65504, 62, 0,
/* 113 */ 65496, 65504, 64, 0,
/* 117 */ 65293, 0,
/* 119 */ 65326, 0,
/* 121 */ 65463, 0,
/* 123 */ 65503, 0,
/* 125 */ 65496, 65504, 0,
/* 128 */ 65489, 32, 65520, 65519, 32, 65520, 0,
/* 135 */ 65490, 32, 65520, 65519, 32, 65520, 0,
/* 142 */ 65491, 32, 65520, 65519, 32, 65520, 0,
/* 149 */ 65492, 32, 65520, 65519, 32, 65520, 0,
/* 156 */ 65493, 32, 65520, 65519, 32, 65520, 0,
/* 163 */ 65494, 32, 65520, 65519, 32, 65520, 0,
/* 170 */ 65495, 32, 65520, 65519, 32, 65520, 0,
/* 177 */ 65496, 32, 65520, 65519, 32, 65520, 0,
/* 184 */ 65535, 0,
};
extern const unsigned SystemZLaneMaskLists[] = {
/* 0 */ 0x00000000, ~0u,
/* 2 */ 0x00000004, 0x00000002, 0x00000010, 0x00000001, ~0u,
/* 7 */ 0x00000008, 0x00000020, ~0u,
};
extern const uint16_t SystemZSubRegIdxLists[] = {
/* 0 */ 6, 1, 0,
/* 3 */ 7, 6, 1, 2, 4, 3, 0,
/* 10 */ 7, 8, 2, 5, 0,
/* 15 */ 9, 8, 0,
};
extern const MCRegisterInfo::SubRegCoveredBits SystemZSubRegIdxRanges[] = {
{ 65535, 65535 },
{ 32, 32 }, // subreg_h32
{ 64, 64 }, // subreg_h64
{ 96, 32 }, // subreg_hh32
{ 64, 32 }, // subreg_hl32
{ 96, 32 }, // subreg_hr32
{ 0, 32 }, // subreg_l32
{ 0, 64 }, // subreg_l64
{ 32, 32 }, // subreg_r32
{ 64, 64 }, // subreg_r64
};
extern const char SystemZRegStrings[] = {
/* 0 */ 'V', '1', '0', 0,
/* 4 */ 'V', '2', '0', 0,
/* 8 */ 'V', '3', '0', 0,
/* 12 */ 'V', '0', 0,
/* 15 */ 'V', '1', '1', 0,
/* 19 */ 'V', '2', '1', 0,
/* 23 */ 'V', '3', '1', 0,
/* 27 */ 'V', '1', 0,
/* 30 */ 'V', '1', '2', 0,
/* 34 */ 'V', '2', '2', 0,
/* 38 */ 'V', '2', 0,
/* 41 */ 'V', '1', '3', 0,
/* 45 */ 'V', '2', '3', 0,
/* 49 */ 'V', '3', 0,
/* 52 */ 'V', '1', '4', 0,
/* 56 */ 'V', '2', '4', 0,
/* 60 */ 'V', '4', 0,
/* 63 */ 'V', '1', '5', 0,
/* 67 */ 'V', '2', '5', 0,
/* 71 */ 'V', '5', 0,
/* 74 */ 'V', '1', '6', 0,
/* 78 */ 'V', '2', '6', 0,
/* 82 */ 'V', '6', 0,
/* 85 */ 'V', '1', '7', 0,
/* 89 */ 'V', '2', '7', 0,
/* 93 */ 'V', '7', 0,
/* 96 */ 'V', '1', '8', 0,
/* 100 */ 'V', '2', '8', 0,
/* 104 */ 'V', '8', 0,
/* 107 */ 'V', '1', '9', 0,
/* 111 */ 'V', '2', '9', 0,
/* 115 */ 'V', '9', 0,
/* 118 */ 'C', 'C', 0,
/* 121 */ 'F', '1', '0', 'D', 0,
/* 126 */ 'R', '1', '0', 'D', 0,
/* 131 */ 'F', '2', '0', 'D', 0,
/* 136 */ 'F', '3', '0', 'D', 0,
/* 141 */ 'F', '0', 'D', 0,
/* 145 */ 'R', '0', 'D', 0,
/* 149 */ 'F', '1', '1', 'D', 0,
/* 154 */ 'R', '1', '1', 'D', 0,
/* 159 */ 'F', '2', '1', 'D', 0,
/* 164 */ 'F', '3', '1', 'D', 0,
/* 169 */ 'F', '1', 'D', 0,
/* 173 */ 'R', '1', 'D', 0,
/* 177 */ 'F', '1', '2', 'D', 0,
/* 182 */ 'R', '1', '2', 'D', 0,
/* 187 */ 'F', '2', '2', 'D', 0,
/* 192 */ 'F', '2', 'D', 0,
/* 196 */ 'R', '2', 'D', 0,
/* 200 */ 'F', '1', '3', 'D', 0,
/* 205 */ 'R', '1', '3', 'D', 0,
/* 210 */ 'F', '2', '3', 'D', 0,
/* 215 */ 'F', '3', 'D', 0,
/* 219 */ 'R', '3', 'D', 0,
/* 223 */ 'F', '1', '4', 'D', 0,
/* 228 */ 'R', '1', '4', 'D', 0,
/* 233 */ 'F', '2', '4', 'D', 0,
/* 238 */ 'F', '4', 'D', 0,
/* 242 */ 'R', '4', 'D', 0,
/* 246 */ 'F', '1', '5', 'D', 0,
/* 251 */ 'R', '1', '5', 'D', 0,
/* 256 */ 'F', '2', '5', 'D', 0,
/* 261 */ 'F', '5', 'D', 0,
/* 265 */ 'R', '5', 'D', 0,
/* 269 */ 'F', '1', '6', 'D', 0,
/* 274 */ 'F', '2', '6', 'D', 0,
/* 279 */ 'F', '6', 'D', 0,
/* 283 */ 'R', '6', 'D', 0,
/* 287 */ 'F', '1', '7', 'D', 0,
/* 292 */ 'F', '2', '7', 'D', 0,
/* 297 */ 'F', '7', 'D', 0,
/* 301 */ 'R', '7', 'D', 0,
/* 305 */ 'F', '1', '8', 'D', 0,
/* 310 */ 'F', '2', '8', 'D', 0,
/* 315 */ 'F', '8', 'D', 0,
/* 319 */ 'R', '8', 'D', 0,
/* 323 */ 'F', '1', '9', 'D', 0,
/* 328 */ 'F', '2', '9', 'D', 0,
/* 333 */ 'F', '9', 'D', 0,
/* 337 */ 'R', '9', 'D', 0,
/* 341 */ 'R', '1', '0', 'H', 0,
/* 346 */ 'R', '0', 'H', 0,
/* 350 */ 'R', '1', '1', 'H', 0,
/* 355 */ 'R', '1', 'H', 0,
/* 359 */ 'R', '1', '2', 'H', 0,
/* 364 */ 'R', '2', 'H', 0,
/* 368 */ 'R', '1', '3', 'H', 0,
/* 373 */ 'R', '3', 'H', 0,
/* 377 */ 'R', '1', '4', 'H', 0,
/* 382 */ 'R', '4', 'H', 0,
/* 386 */ 'R', '1', '5', 'H', 0,
/* 391 */ 'R', '5', 'H', 0,
/* 395 */ 'R', '6', 'H', 0,
/* 399 */ 'R', '7', 'H', 0,
/* 403 */ 'R', '8', 'H', 0,
/* 407 */ 'R', '9', 'H', 0,
/* 411 */ 'R', '1', '0', 'L', 0,
/* 416 */ 'R', '0', 'L', 0,
/* 420 */ 'R', '1', '1', 'L', 0,
/* 425 */ 'R', '1', 'L', 0,
/* 429 */ 'R', '1', '2', 'L', 0,
/* 434 */ 'R', '2', 'L', 0,
/* 438 */ 'R', '1', '3', 'L', 0,
/* 443 */ 'R', '3', 'L', 0,
/* 447 */ 'R', '1', '4', 'L', 0,
/* 452 */ 'R', '4', 'L', 0,
/* 456 */ 'R', '1', '5', 'L', 0,
/* 461 */ 'R', '5', 'L', 0,
/* 465 */ 'R', '6', 'L', 0,
/* 469 */ 'R', '7', 'L', 0,
/* 473 */ 'R', '8', 'L', 0,
/* 477 */ 'R', '9', 'L', 0,
/* 481 */ 'R', '1', '0', 'Q', 0,
/* 486 */ 'F', '0', 'Q', 0,
/* 490 */ 'R', '0', 'Q', 0,
/* 494 */ 'F', '1', 'Q', 0,
/* 498 */ 'F', '1', '2', 'Q', 0,
/* 503 */ 'R', '1', '2', 'Q', 0,
/* 508 */ 'R', '2', 'Q', 0,
/* 512 */ 'F', '1', '3', 'Q', 0,
/* 517 */ 'R', '1', '4', 'Q', 0,
/* 522 */ 'F', '4', 'Q', 0,
/* 526 */ 'R', '4', 'Q', 0,
/* 530 */ 'F', '5', 'Q', 0,
/* 534 */ 'R', '6', 'Q', 0,
/* 538 */ 'F', '8', 'Q', 0,
/* 542 */ 'R', '8', 'Q', 0,
/* 546 */ 'F', '9', 'Q', 0,
/* 550 */ 'F', '1', '0', 'S', 0,
/* 555 */ 'F', '2', '0', 'S', 0,
/* 560 */ 'F', '3', '0', 'S', 0,
/* 565 */ 'F', '0', 'S', 0,
/* 569 */ 'F', '1', '1', 'S', 0,
/* 574 */ 'F', '2', '1', 'S', 0,
/* 579 */ 'F', '3', '1', 'S', 0,
/* 584 */ 'F', '1', 'S', 0,
/* 588 */ 'F', '1', '2', 'S', 0,
/* 593 */ 'F', '2', '2', 'S', 0,
/* 598 */ 'F', '2', 'S', 0,
/* 602 */ 'F', '1', '3', 'S', 0,
/* 607 */ 'F', '2', '3', 'S', 0,
/* 612 */ 'F', '3', 'S', 0,
/* 616 */ 'F', '1', '4', 'S', 0,
/* 621 */ 'F', '2', '4', 'S', 0,
/* 626 */ 'F', '4', 'S', 0,
/* 630 */ 'F', '1', '5', 'S', 0,
/* 635 */ 'F', '2', '5', 'S', 0,
/* 640 */ 'F', '5', 'S', 0,
/* 644 */ 'F', '1', '6', 'S', 0,
/* 649 */ 'F', '2', '6', 'S', 0,
/* 654 */ 'F', '6', 'S', 0,
/* 658 */ 'F', '1', '7', 'S', 0,
/* 663 */ 'F', '2', '7', 'S', 0,
/* 668 */ 'F', '7', 'S', 0,
/* 672 */ 'F', '1', '8', 'S', 0,
/* 677 */ 'F', '2', '8', 'S', 0,
/* 682 */ 'F', '8', 'S', 0,
/* 686 */ 'F', '1', '9', 'S', 0,
/* 691 */ 'F', '2', '9', 'S', 0,
/* 696 */ 'F', '9', 'S', 0,
};
extern const MCRegisterDesc SystemZRegDesc[] = { // Descriptors
{ 3, 0, 0, 0, 0, 0 },
{ 118, 4, 4, 2, 2945, 0 },
{ 12, 20, 4, 15, 2945, 8 },
{ 27, 20, 4, 15, 2945, 8 },
{ 38, 20, 4, 15, 2945, 8 },
{ 49, 20, 4, 15, 2945, 8 },
{ 60, 20, 4, 15, 2945, 8 },
{ 71, 20, 4, 15, 2945, 8 },
{ 82, 20, 4, 15, 2945, 8 },
{ 93, 20, 4, 15, 2945, 8 },
{ 104, 20, 4, 15, 2945, 8 },
{ 115, 20, 4, 15, 2945, 8 },
{ 0, 20, 4, 15, 2945, 8 },
{ 15, 20, 4, 15, 2945, 8 },
{ 30, 20, 4, 15, 2945, 8 },
{ 41, 20, 4, 15, 2945, 8 },
{ 52, 20, 4, 15, 2945, 8 },
{ 63, 20, 4, 15, 2945, 8 },
{ 74, 20, 4, 15, 2945, 8 },
{ 85, 20, 4, 15, 2945, 8 },
{ 96, 20, 4, 15, 2945, 8 },
{ 107, 20, 4, 15, 2945, 8 },
{ 4, 20, 4, 15, 2945, 8 },
{ 19, 20, 4, 15, 2945, 8 },
{ 34, 20, 4, 15, 2945, 8 },
{ 45, 20, 4, 15, 2945, 8 },
{ 56, 20, 4, 15, 2945, 8 },
{ 67, 20, 4, 15, 2945, 8 },
{ 78, 20, 4, 15, 2945, 8 },
{ 89, 20, 4, 15, 2945, 8 },
{ 100, 20, 4, 15, 2945, 8 },
{ 111, 20, 4, 15, 2945, 8 },
{ 8, 20, 4, 15, 2945, 8 },
{ 23, 20, 4, 15, 2945, 8 },
{ 141, 21, 114, 16, 1969, 8 },
{ 169, 21, 114, 16, 1969, 8 },
{ 192, 21, 110, 16, 1969, 8 },
{ 215, 21, 110, 16, 1969, 8 },
{ 238, 21, 110, 16, 1969, 8 },
{ 261, 21, 110, 16, 1969, 8 },
{ 279, 21, 106, 16, 1969, 8 },
{ 297, 21, 106, 16, 1969, 8 },
{ 315, 21, 106, 16, 1969, 8 },
{ 333, 21, 106, 16, 1969, 8 },
{ 121, 21, 102, 16, 1969, 8 },
{ 149, 21, 102, 16, 1969, 8 },
{ 177, 21, 102, 16, 1969, 8 },
{ 200, 21, 102, 16, 1969, 8 },
{ 223, 21, 98, 16, 1969, 8 },
{ 246, 21, 98, 16, 1969, 8 },
{ 269, 21, 126, 16, 1969, 8 },
{ 287, 21, 126, 16, 1969, 8 },
{ 305, 21, 126, 16, 1969, 8 },
{ 323, 21, 126, 16, 1969, 8 },
{ 131, 21, 126, 16, 1969, 8 },
{ 159, 21, 126, 16, 1969, 8 },
{ 187, 21, 126, 16, 1969, 8 },
{ 210, 21, 126, 16, 1969, 8 },
{ 233, 21, 126, 16, 1969, 8 },
{ 256, 21, 126, 16, 1969, 8 },
{ 274, 21, 126, 16, 1969, 8 },
{ 292, 21, 126, 16, 1969, 8 },
{ 310, 21, 126, 16, 1969, 8 },
{ 328, 21, 126, 16, 1969, 8 },
{ 136, 21, 126, 16, 1969, 8 },
{ 164, 21, 126, 16, 1969, 8 },
{ 486, 23, 4, 10, 129, 7 },
{ 494, 23, 4, 10, 129, 7 },
{ 522, 28, 4, 10, 177, 7 },
{ 530, 28, 4, 10, 177, 7 },
{ 538, 33, 4, 10, 225, 7 },
{ 546, 33, 4, 10, 225, 7 },
{ 498, 38, 4, 10, 273, 7 },
{ 512, 38, 4, 10, 273, 7 },
{ 565, 4, 113, 2, 1937, 0 },
{ 584, 4, 113, 2, 1937, 0 },
{ 598, 4, 109, 2, 1937, 0 },
{ 612, 4, 109, 2, 1937, 0 },
{ 626, 4, 109, 2, 1937, 0 },
{ 640, 4, 109, 2, 1937, 0 },
{ 654, 4, 105, 2, 1937, 0 },
{ 668, 4, 105, 2, 1937, 0 },
{ 682, 4, 105, 2, 1937, 0 },
{ 696, 4, 105, 2, 1937, 0 },
{ 550, 4, 101, 2, 1937, 0 },
{ 569, 4, 101, 2, 1937, 0 },
{ 588, 4, 101, 2, 1937, 0 },
{ 602, 4, 101, 2, 1937, 0 },
{ 616, 4, 97, 2, 1937, 0 },
{ 630, 4, 97, 2, 1937, 0 },
{ 644, 4, 125, 2, 1937, 0 },
{ 658, 4, 125, 2, 1937, 0 },
{ 672, 4, 125, 2, 1937, 0 },
{ 686, 4, 125, 2, 1937, 0 },
{ 555, 4, 125, 2, 1937, 0 },
{ 574, 4, 125, 2, 1937, 0 },
{ 593, 4, 125, 2, 1937, 0 },
{ 607, 4, 125, 2, 1937, 0 },
{ 621, 4, 125, 2, 1937, 0 },
{ 635, 4, 125, 2, 1937, 0 },
{ 649, 4, 125, 2, 1937, 0 },
{ 663, 4, 125, 2, 1937, 0 },
{ 677, 4, 125, 2, 1937, 0 },
{ 691, 4, 125, 2, 1937, 0 },
{ 560, 4, 125, 2, 1937, 0 },
{ 579, 4, 125, 2, 1937, 0 },
{ 145, 132, 92, 0, 82, 4 },
{ 173, 132, 86, 0, 82, 4 },
{ 196, 132, 86, 0, 82, 4 },
{ 219, 132, 80, 0, 82, 4 },
{ 242, 132, 80, 0, 82, 4 },
{ 265, 132, 74, 0, 82, 4 },
{ 283, 132, 74, 0, 82, 4 },
{ 301, 132, 68, 0, 82, 4 },
{ 319, 132, 68, 0, 82, 4 },
{ 337, 132, 62, 0, 82, 4 },
{ 126, 132, 62, 0, 82, 4 },
{ 154, 132, 56, 0, 82, 4 },
{ 182, 132, 56, 0, 82, 4 },
{ 205, 132, 50, 0, 82, 4 },
{ 228, 132, 50, 0, 82, 4 },
{ 251, 132, 21, 0, 82, 4 },
{ 346, 4, 94, 2, 1906, 0 },
{ 355, 4, 88, 2, 1906, 0 },
{ 364, 4, 88, 2, 1906, 0 },
{ 373, 4, 82, 2, 1906, 0 },
{ 382, 4, 82, 2, 1906, 0 },
{ 391, 4, 76, 2, 1906, 0 },
{ 395, 4, 76, 2, 1906, 0 },
{ 399, 4, 70, 2, 1906, 0 },
{ 403, 4, 70, 2, 1906, 0 },
{ 407, 4, 64, 2, 1906, 0 },
{ 341, 4, 64, 2, 1906, 0 },
{ 350, 4, 58, 2, 1906, 0 },
{ 359, 4, 58, 2, 1906, 0 },
{ 368, 4, 52, 2, 1906, 0 },
{ 377, 4, 52, 2, 1906, 0 },
{ 386, 4, 46, 2, 1906, 0 },
{ 416, 4, 91, 2, 1874, 0 },
{ 425, 4, 85, 2, 1874, 0 },
{ 434, 4, 85, 2, 1874, 0 },
{ 443, 4, 79, 2, 1874, 0 },
{ 452, 4, 79, 2, 1874, 0 },
{ 461, 4, 73, 2, 1874, 0 },
{ 465, 4, 73, 2, 1874, 0 },
{ 469, 4, 67, 2, 1874, 0 },
{ 473, 4, 67, 2, 1874, 0 },
{ 477, 4, 61, 2, 1874, 0 },
{ 411, 4, 61, 2, 1874, 0 },
{ 420, 4, 55, 2, 1874, 0 },
{ 429, 4, 55, 2, 1874, 0 },
{ 438, 4, 49, 2, 1874, 0 },
{ 447, 4, 49, 2, 1874, 0 },
{ 456, 4, 43, 2, 1874, 0 },
{ 490, 128, 4, 3, 4, 2 },
{ 508, 135, 4, 3, 4, 2 },
{ 526, 142, 4, 3, 4, 2 },
{ 534, 149, 4, 3, 4, 2 },
{ 542, 156, 4, 3, 4, 2 },
{ 481, 163, 4, 3, 4, 2 },
{ 503, 170, 4, 3, 4, 2 },
{ 517, 177, 4, 3, 4, 2 },
};
extern const MCPhysReg SystemZRegUnitRoots[][2] = {
{ SystemZ::CC },
{ SystemZ::F0S },
{ SystemZ::F1S },
{ SystemZ::F2S },
{ SystemZ::F3S },
{ SystemZ::F4S },
{ SystemZ::F5S },
{ SystemZ::F6S },
{ SystemZ::F7S },
{ SystemZ::F8S },
{ SystemZ::F9S },
{ SystemZ::F10S },
{ SystemZ::F11S },
{ SystemZ::F12S },
{ SystemZ::F13S },
{ SystemZ::F14S },
{ SystemZ::F15S },
{ SystemZ::F16S },
{ SystemZ::F17S },
{ SystemZ::F18S },
{ SystemZ::F19S },
{ SystemZ::F20S },
{ SystemZ::F21S },
{ SystemZ::F22S },
{ SystemZ::F23S },
{ SystemZ::F24S },
{ SystemZ::F25S },
{ SystemZ::F26S },
{ SystemZ::F27S },
{ SystemZ::F28S },
{ SystemZ::F29S },
{ SystemZ::F30S },
{ SystemZ::F31S },
{ SystemZ::R0L },
{ SystemZ::R0H },
{ SystemZ::R1L },
{ SystemZ::R1H },
{ SystemZ::R2L },
{ SystemZ::R2H },
{ SystemZ::R3L },
{ SystemZ::R3H },
{ SystemZ::R4L },
{ SystemZ::R4H },
{ SystemZ::R5L },
{ SystemZ::R5H },
{ SystemZ::R6L },
{ SystemZ::R6H },
{ SystemZ::R7L },
{ SystemZ::R7H },
{ SystemZ::R8L },
{ SystemZ::R8H },
{ SystemZ::R9L },
{ SystemZ::R9H },
{ SystemZ::R10L },
{ SystemZ::R10H },
{ SystemZ::R11L },
{ SystemZ::R11H },
{ SystemZ::R12L },
{ SystemZ::R12H },
{ SystemZ::R13L },
{ SystemZ::R13H },
{ SystemZ::R14L },
{ SystemZ::R14H },
{ SystemZ::R15L },
{ SystemZ::R15H },
};
namespace { // Register classes...
// GRX32Bit Register Class...
const MCPhysReg GRX32Bit[] = {
SystemZ::R0L, SystemZ::R1L, SystemZ::R2L, SystemZ::R3L, SystemZ::R4L, SystemZ::R5L, SystemZ::R0H, SystemZ::R1H, SystemZ::R2H, SystemZ::R3H, SystemZ::R4H, SystemZ::R5H, SystemZ::R15L, SystemZ::R15H, SystemZ::R14L, SystemZ::R14H, SystemZ::R13L, SystemZ::R13H, SystemZ::R12L, SystemZ::R12H, SystemZ::R11L, SystemZ::R11H, SystemZ::R10L, SystemZ::R10H, SystemZ::R9L, SystemZ::R9H, SystemZ::R8L, SystemZ::R8H, SystemZ::R7L, SystemZ::R7H, SystemZ::R6L, SystemZ::R6H,
};
// GRX32Bit Bit set.
const uint8_t GRX32BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
};
// VR32Bit Register Class...
const MCPhysReg VR32Bit[] = {
SystemZ::F0S, SystemZ::F1S, SystemZ::F2S, SystemZ::F3S, SystemZ::F4S, SystemZ::F5S, SystemZ::F6S, SystemZ::F7S, SystemZ::F16S, SystemZ::F17S, SystemZ::F18S, SystemZ::F19S, SystemZ::F20S, SystemZ::F21S, SystemZ::F22S, SystemZ::F23S, SystemZ::F24S, SystemZ::F25S, SystemZ::F26S, SystemZ::F27S, SystemZ::F28S, SystemZ::F29S, SystemZ::F30S, SystemZ::F31S, SystemZ::F8S, SystemZ::F9S, SystemZ::F10S, SystemZ::F11S, SystemZ::F12S, SystemZ::F13S, SystemZ::F14S, SystemZ::F15S,
};
// VR32Bit Bit set.
const uint8_t VR32BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
};
// FP32Bit Register Class...
const MCPhysReg FP32Bit[] = {
SystemZ::F0S, SystemZ::F1S, SystemZ::F2S, SystemZ::F3S, SystemZ::F4S, SystemZ::F5S, SystemZ::F6S, SystemZ::F7S, SystemZ::F8S, SystemZ::F9S, SystemZ::F10S, SystemZ::F11S, SystemZ::F12S, SystemZ::F13S, SystemZ::F14S, SystemZ::F15S,
};
// FP32Bit Bit set.
const uint8_t FP32BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
};
// GR32Bit Register Class...
const MCPhysReg GR32Bit[] = {
SystemZ::R0L, SystemZ::R1L, SystemZ::R2L, SystemZ::R3L, SystemZ::R4L, SystemZ::R5L, SystemZ::R15L, SystemZ::R14L, SystemZ::R13L, SystemZ::R12L, SystemZ::R11L, SystemZ::R10L, SystemZ::R9L, SystemZ::R8L, SystemZ::R7L, SystemZ::R6L,
};
// GR32Bit Bit set.
const uint8_t GR32BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
};
// GRH32Bit Register Class...
const MCPhysReg GRH32Bit[] = {
SystemZ::R0H, SystemZ::R1H, SystemZ::R2H, SystemZ::R3H, SystemZ::R4H, SystemZ::R5H, SystemZ::R15H, SystemZ::R14H, SystemZ::R13H, SystemZ::R12H, SystemZ::R11H, SystemZ::R10H, SystemZ::R9H, SystemZ::R8H, SystemZ::R7H, SystemZ::R6H,
};
// GRH32Bit Bit set.
const uint8_t GRH32BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
};
// ADDR32Bit Register Class...
const MCPhysReg ADDR32Bit[] = {
SystemZ::R1L, SystemZ::R2L, SystemZ::R3L, SystemZ::R4L, SystemZ::R5L, SystemZ::R15L, SystemZ::R14L, SystemZ::R13L, SystemZ::R12L, SystemZ::R11L, SystemZ::R10L, SystemZ::R9L, SystemZ::R8L, SystemZ::R7L, SystemZ::R6L,
};
// ADDR32Bit Bit set.
const uint8_t ADDR32BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03,
};
// CCRegs Register Class...
const MCPhysReg CCRegs[] = {
SystemZ::CC,
};
// CCRegs Bit set.
const uint8_t CCRegsBits[] = {
0x02,
};
// VR64Bit Register Class...
const MCPhysReg VR64Bit[] = {
SystemZ::F0D, SystemZ::F1D, SystemZ::F2D, SystemZ::F3D, SystemZ::F4D, SystemZ::F5D, SystemZ::F6D, SystemZ::F7D, SystemZ::F16D, SystemZ::F17D, SystemZ::F18D, SystemZ::F19D, SystemZ::F20D, SystemZ::F21D, SystemZ::F22D, SystemZ::F23D, SystemZ::F24D, SystemZ::F25D, SystemZ::F26D, SystemZ::F27D, SystemZ::F28D, SystemZ::F29D, SystemZ::F30D, SystemZ::F31D, SystemZ::F8D, SystemZ::F9D, SystemZ::F10D, SystemZ::F11D, SystemZ::F12D, SystemZ::F13D, SystemZ::F14D, SystemZ::F15D,
};
// VR64Bit Bit set.
const uint8_t VR64BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
};
// FP64Bit Register Class...
const MCPhysReg FP64Bit[] = {
SystemZ::F0D, SystemZ::F1D, SystemZ::F2D, SystemZ::F3D, SystemZ::F4D, SystemZ::F5D, SystemZ::F6D, SystemZ::F7D, SystemZ::F8D, SystemZ::F9D, SystemZ::F10D, SystemZ::F11D, SystemZ::F12D, SystemZ::F13D, SystemZ::F14D, SystemZ::F15D,
};
// FP64Bit Bit set.
const uint8_t FP64BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
};
// GR64Bit Register Class...
const MCPhysReg GR64Bit[] = {
SystemZ::R0D, SystemZ::R1D, SystemZ::R2D, SystemZ::R3D, SystemZ::R4D, SystemZ::R5D, SystemZ::R15D, SystemZ::R14D, SystemZ::R13D, SystemZ::R12D, SystemZ::R11D, SystemZ::R10D, SystemZ::R9D, SystemZ::R8D, SystemZ::R7D, SystemZ::R6D,
};
// GR64Bit Bit set.
const uint8_t GR64BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
};
// ADDR64Bit Register Class...
const MCPhysReg ADDR64Bit[] = {
SystemZ::R1D, SystemZ::R2D, SystemZ::R3D, SystemZ::R4D, SystemZ::R5D, SystemZ::R15D, SystemZ::R14D, SystemZ::R13D, SystemZ::R12D, SystemZ::R11D, SystemZ::R10D, SystemZ::R9D, SystemZ::R8D, SystemZ::R7D, SystemZ::R6D,
};
// ADDR64Bit Bit set.
const uint8_t ADDR64BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03,
};
// VR128Bit Register Class...
const MCPhysReg VR128Bit[] = {
SystemZ::V0, SystemZ::V1, SystemZ::V2, SystemZ::V3, SystemZ::V4, SystemZ::V5, SystemZ::V6, SystemZ::V7, SystemZ::V16, SystemZ::V17, SystemZ::V18, SystemZ::V19, SystemZ::V20, SystemZ::V21, SystemZ::V22, SystemZ::V23, SystemZ::V24, SystemZ::V25, SystemZ::V26, SystemZ::V27, SystemZ::V28, SystemZ::V29, SystemZ::V30, SystemZ::V31, SystemZ::V8, SystemZ::V9, SystemZ::V10, SystemZ::V11, SystemZ::V12, SystemZ::V13, SystemZ::V14, SystemZ::V15,
};
// VR128Bit Bit set.
const uint8_t VR128BitBits[] = {
0xfc, 0xff, 0xff, 0xff, 0x03,
};
// VF128Bit Register Class...
const MCPhysReg VF128Bit[] = {
SystemZ::V0, SystemZ::V1, SystemZ::V2, SystemZ::V3, SystemZ::V4, SystemZ::V5, SystemZ::V6, SystemZ::V7, SystemZ::V8, SystemZ::V9, SystemZ::V10, SystemZ::V11, SystemZ::V12, SystemZ::V13, SystemZ::V14, SystemZ::V15,
};
// VF128Bit Bit set.
const uint8_t VF128BitBits[] = {
0xfc, 0xff, 0x03,
};
// FP128Bit Register Class...
const MCPhysReg FP128Bit[] = {
SystemZ::F0Q, SystemZ::F1Q, SystemZ::F4Q, SystemZ::F5Q, SystemZ::F8Q, SystemZ::F9Q, SystemZ::F12Q, SystemZ::F13Q,
};
// FP128Bit Bit set.
const uint8_t FP128BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
};
// GR128Bit Register Class...
const MCPhysReg GR128Bit[] = {
SystemZ::R0Q, SystemZ::R2Q, SystemZ::R4Q, SystemZ::R12Q, SystemZ::R10Q, SystemZ::R8Q, SystemZ::R6Q, SystemZ::R14Q,
};
// GR128Bit Bit set.
const uint8_t GR128BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
};
// ADDR128Bit Register Class...
const MCPhysReg ADDR128Bit[] = {
SystemZ::R2Q, SystemZ::R4Q, SystemZ::R12Q, SystemZ::R10Q, SystemZ::R8Q, SystemZ::R6Q, SystemZ::R14Q,
};
// ADDR128Bit Bit set.
const uint8_t ADDR128BitBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
};
}
extern const char SystemZRegClassStrings[] = {
/* 0 */ 'C', 'C', 'R', 'e', 'g', 's', 0,
/* 7 */ 'G', 'R', 'H', '3', '2', 'B', 'i', 't', 0,
/* 16 */ 'F', 'P', '3', '2', 'B', 'i', 't', 0,
/* 24 */ 'A', 'D', 'D', 'R', '3', '2', 'B', 'i', 't', 0,
/* 34 */ 'G', 'R', '3', '2', 'B', 'i', 't', 0,
/* 42 */ 'V', 'R', '3', '2', 'B', 'i', 't', 0,
/* 50 */ 'G', 'R', 'X', '3', '2', 'B', 'i', 't', 0,
/* 59 */ 'F', 'P', '6', '4', 'B', 'i', 't', 0,
/* 67 */ 'A', 'D', 'D', 'R', '6', '4', 'B', 'i', 't', 0,
/* 77 */ 'G', 'R', '6', '4', 'B', 'i', 't', 0,
/* 85 */ 'V', 'R', '6', '4', 'B', 'i', 't', 0,
/* 93 */ 'V', 'F', '1', '2', '8', 'B', 'i', 't', 0,
/* 102 */ 'F', 'P', '1', '2', '8', 'B', 'i', 't', 0,
/* 111 */ 'A', 'D', 'D', 'R', '1', '2', '8', 'B', 'i', 't', 0,
/* 122 */ 'G', 'R', '1', '2', '8', 'B', 'i', 't', 0,
/* 131 */ 'V', 'R', '1', '2', '8', 'B', 'i', 't', 0,
};
extern const MCRegisterClass SystemZMCRegisterClasses[] = {
{ GRX32Bit, GRX32BitBits, 50, 32, sizeof(GRX32BitBits), SystemZ::GRX32BitRegClassID, 4, 4, 1, 1 },
{ VR32Bit, VR32BitBits, 42, 32, sizeof(VR32BitBits), SystemZ::VR32BitRegClassID, 4, 4, 1, 1 },
{ FP32Bit, FP32BitBits, 16, 16, sizeof(FP32BitBits), SystemZ::FP32BitRegClassID, 4, 4, 1, 1 },
{ GR32Bit, GR32BitBits, 34, 16, sizeof(GR32BitBits), SystemZ::GR32BitRegClassID, 4, 4, 1, 1 },
{ GRH32Bit, GRH32BitBits, 7, 16, sizeof(GRH32BitBits), SystemZ::GRH32BitRegClassID, 4, 4, 1, 1 },
{ ADDR32Bit, ADDR32BitBits, 24, 15, sizeof(ADDR32BitBits), SystemZ::ADDR32BitRegClassID, 4, 4, 1, 1 },
{ CCRegs, CCRegsBits, 0, 1, sizeof(CCRegsBits), SystemZ::CCRegsRegClassID, 4, 4, 1, 0 },
{ VR64Bit, VR64BitBits, 85, 32, sizeof(VR64BitBits), SystemZ::VR64BitRegClassID, 8, 8, 1, 1 },
{ FP64Bit, FP64BitBits, 59, 16, sizeof(FP64BitBits), SystemZ::FP64BitRegClassID, 8, 8, 1, 1 },
{ GR64Bit, GR64BitBits, 77, 16, sizeof(GR64BitBits), SystemZ::GR64BitRegClassID, 8, 8, 1, 1 },
{ ADDR64Bit, ADDR64BitBits, 67, 15, sizeof(ADDR64BitBits), SystemZ::ADDR64BitRegClassID, 8, 8, 1, 1 },
{ VR128Bit, VR128BitBits, 131, 32, sizeof(VR128BitBits), SystemZ::VR128BitRegClassID, 16, 16, 1, 1 },
{ VF128Bit, VF128BitBits, 93, 16, sizeof(VF128BitBits), SystemZ::VF128BitRegClassID, 16, 16, 1, 1 },
{ FP128Bit, FP128BitBits, 102, 8, sizeof(FP128BitBits), SystemZ::FP128BitRegClassID, 16, 16, 1, 1 },
{ GR128Bit, GR128BitBits, 122, 8, sizeof(GR128BitBits), SystemZ::GR128BitRegClassID, 16, 16, 1, 1 },
{ ADDR128Bit, ADDR128BitBits, 111, 7, sizeof(ADDR128BitBits), SystemZ::ADDR128BitRegClassID, 16, 16, 1, 1 },
};
// SystemZ Dwarf<->LLVM register mappings.
extern const MCRegisterInfo::DwarfLLVMRegPair SystemZDwarfFlavour0Dwarf2L[] = {
{ 0U, SystemZ::R0D },
{ 1U, SystemZ::R1D },
{ 2U, SystemZ::R2D },
{ 3U, SystemZ::R3D },
{ 4U, SystemZ::R4D },
{ 5U, SystemZ::R5D },
{ 6U, SystemZ::R6D },
{ 7U, SystemZ::R7D },
{ 8U, SystemZ::R8D },
{ 9U, SystemZ::R9D },
{ 10U, SystemZ::R10D },
{ 11U, SystemZ::R11D },
{ 12U, SystemZ::R12D },
{ 13U, SystemZ::R13D },
{ 14U, SystemZ::R14D },
{ 15U, SystemZ::R15D },
{ 16U, SystemZ::F0D },
{ 17U, SystemZ::F2D },
{ 18U, SystemZ::F4D },
{ 19U, SystemZ::F6D },
{ 20U, SystemZ::F1D },
{ 21U, SystemZ::F3D },
{ 22U, SystemZ::F5D },
{ 23U, SystemZ::F7D },
{ 24U, SystemZ::F8D },
{ 25U, SystemZ::F10D },
{ 26U, SystemZ::F12D },
{ 27U, SystemZ::F14D },
{ 28U, SystemZ::F9D },
{ 29U, SystemZ::F11D },
{ 30U, SystemZ::F13D },
{ 31U, SystemZ::F15D },
{ 68U, SystemZ::F16D },
{ 69U, SystemZ::F18D },
{ 70U, SystemZ::F20D },
{ 71U, SystemZ::F22D },
{ 72U, SystemZ::F17D },
{ 73U, SystemZ::F19D },
{ 74U, SystemZ::F21D },
{ 75U, SystemZ::F23D },
{ 76U, SystemZ::F24D },
{ 77U, SystemZ::F26D },
{ 78U, SystemZ::F28D },
{ 79U, SystemZ::F30D },
{ 80U, SystemZ::F25D },
{ 81U, SystemZ::F27D },
{ 82U, SystemZ::F29D },
{ 83U, SystemZ::F31D },
};
extern const unsigned SystemZDwarfFlavour0Dwarf2LSize = array_lengthof(SystemZDwarfFlavour0Dwarf2L);
extern const MCRegisterInfo::DwarfLLVMRegPair SystemZEHFlavour0Dwarf2L[] = {
{ 0U, SystemZ::R0D },
{ 1U, SystemZ::R1D },
{ 2U, SystemZ::R2D },
{ 3U, SystemZ::R3D },
{ 4U, SystemZ::R4D },
{ 5U, SystemZ::R5D },
{ 6U, SystemZ::R6D },
{ 7U, SystemZ::R7D },
{ 8U, SystemZ::R8D },
{ 9U, SystemZ::R9D },
{ 10U, SystemZ::R10D },
{ 11U, SystemZ::R11D },
{ 12U, SystemZ::R12D },
{ 13U, SystemZ::R13D },
{ 14U, SystemZ::R14D },
{ 15U, SystemZ::R15D },
{ 16U, SystemZ::F0D },
{ 17U, SystemZ::F2D },
{ 18U, SystemZ::F4D },
{ 19U, SystemZ::F6D },
{ 20U, SystemZ::F1D },
{ 21U, SystemZ::F3D },
{ 22U, SystemZ::F5D },
{ 23U, SystemZ::F7D },
{ 24U, SystemZ::F8D },
{ 25U, SystemZ::F10D },
{ 26U, SystemZ::F12D },
{ 27U, SystemZ::F14D },
{ 28U, SystemZ::F9D },
{ 29U, SystemZ::F11D },
{ 30U, SystemZ::F13D },
{ 31U, SystemZ::F15D },
{ 68U, SystemZ::F16D },
{ 69U, SystemZ::F18D },
{ 70U, SystemZ::F20D },
{ 71U, SystemZ::F22D },
{ 72U, SystemZ::F17D },
{ 73U, SystemZ::F19D },
{ 74U, SystemZ::F21D },
{ 75U, SystemZ::F23D },
{ 76U, SystemZ::F24D },
{ 77U, SystemZ::F26D },
{ 78U, SystemZ::F28D },
{ 79U, SystemZ::F30D },
{ 80U, SystemZ::F25D },
{ 81U, SystemZ::F27D },
{ 82U, SystemZ::F29D },
{ 83U, SystemZ::F31D },
};
extern const unsigned SystemZEHFlavour0Dwarf2LSize = array_lengthof(SystemZEHFlavour0Dwarf2L);
extern const MCRegisterInfo::DwarfLLVMRegPair SystemZDwarfFlavour0L2Dwarf[] = {
{ SystemZ::V0, 16U },
{ SystemZ::V1, 20U },
{ SystemZ::V2, 17U },
{ SystemZ::V3, 21U },
{ SystemZ::V4, 18U },
{ SystemZ::V5, 22U },
{ SystemZ::V6, 19U },
{ SystemZ::V7, 23U },
{ SystemZ::V8, 24U },
{ SystemZ::V9, 28U },
{ SystemZ::V10, 25U },
{ SystemZ::V11, 29U },
{ SystemZ::V12, 26U },
{ SystemZ::V13, 30U },
{ SystemZ::V14, 27U },
{ SystemZ::V15, 31U },
{ SystemZ::V16, 68U },
{ SystemZ::V17, 72U },
{ SystemZ::V18, 69U },
{ SystemZ::V19, 73U },
{ SystemZ::V20, 70U },
{ SystemZ::V21, 74U },
{ SystemZ::V22, 71U },
{ SystemZ::V23, 75U },
{ SystemZ::V24, 76U },
{ SystemZ::V25, 80U },
{ SystemZ::V26, 77U },
{ SystemZ::V27, 81U },
{ SystemZ::V28, 78U },
{ SystemZ::V29, 82U },
{ SystemZ::V30, 79U },
{ SystemZ::V31, 83U },
{ SystemZ::F0D, 16U },
{ SystemZ::F1D, 20U },
{ SystemZ::F2D, 17U },
{ SystemZ::F3D, 21U },
{ SystemZ::F4D, 18U },
{ SystemZ::F5D, 22U },
{ SystemZ::F6D, 19U },
{ SystemZ::F7D, 23U },
{ SystemZ::F8D, 24U },
{ SystemZ::F9D, 28U },
{ SystemZ::F10D, 25U },
{ SystemZ::F11D, 29U },
{ SystemZ::F12D, 26U },
{ SystemZ::F13D, 30U },
{ SystemZ::F14D, 27U },
{ SystemZ::F15D, 31U },
{ SystemZ::F16D, 68U },
{ SystemZ::F17D, 72U },
{ SystemZ::F18D, 69U },
{ SystemZ::F19D, 73U },
{ SystemZ::F20D, 70U },
{ SystemZ::F21D, 74U },
{ SystemZ::F22D, 71U },
{ SystemZ::F23D, 75U },
{ SystemZ::F24D, 76U },
{ SystemZ::F25D, 80U },
{ SystemZ::F26D, 77U },
{ SystemZ::F27D, 81U },
{ SystemZ::F28D, 78U },
{ SystemZ::F29D, 82U },
{ SystemZ::F30D, 79U },
{ SystemZ::F31D, 83U },
{ SystemZ::R0D, 0U },
{ SystemZ::R1D, 1U },
{ SystemZ::R2D, 2U },
{ SystemZ::R3D, 3U },
{ SystemZ::R4D, 4U },
{ SystemZ::R5D, 5U },
{ SystemZ::R6D, 6U },
{ SystemZ::R7D, 7U },
{ SystemZ::R8D, 8U },
{ SystemZ::R9D, 9U },
{ SystemZ::R10D, 10U },
{ SystemZ::R11D, 11U },
{ SystemZ::R12D, 12U },
{ SystemZ::R13D, 13U },
{ SystemZ::R14D, 14U },
{ SystemZ::R15D, 15U },
};
extern const unsigned SystemZDwarfFlavour0L2DwarfSize = array_lengthof(SystemZDwarfFlavour0L2Dwarf);
extern const MCRegisterInfo::DwarfLLVMRegPair SystemZEHFlavour0L2Dwarf[] = {
{ SystemZ::V0, 16U },
{ SystemZ::V1, 20U },
{ SystemZ::V2, 17U },
{ SystemZ::V3, 21U },
{ SystemZ::V4, 18U },
{ SystemZ::V5, 22U },
{ SystemZ::V6, 19U },
{ SystemZ::V7, 23U },
{ SystemZ::V8, 24U },
{ SystemZ::V9, 28U },
{ SystemZ::V10, 25U },
{ SystemZ::V11, 29U },
{ SystemZ::V12, 26U },
{ SystemZ::V13, 30U },
{ SystemZ::V14, 27U },
{ SystemZ::V15, 31U },
{ SystemZ::V16, 68U },
{ SystemZ::V17, 72U },
{ SystemZ::V18, 69U },
{ SystemZ::V19, 73U },
{ SystemZ::V20, 70U },
{ SystemZ::V21, 74U },
{ SystemZ::V22, 71U },
{ SystemZ::V23, 75U },
{ SystemZ::V24, 76U },
{ SystemZ::V25, 80U },
{ SystemZ::V26, 77U },
{ SystemZ::V27, 81U },
{ SystemZ::V28, 78U },
{ SystemZ::V29, 82U },
{ SystemZ::V30, 79U },
{ SystemZ::V31, 83U },
{ SystemZ::F0D, 16U },
{ SystemZ::F1D, 20U },
{ SystemZ::F2D, 17U },
{ SystemZ::F3D, 21U },
{ SystemZ::F4D, 18U },
{ SystemZ::F5D, 22U },
{ SystemZ::F6D, 19U },
{ SystemZ::F7D, 23U },
{ SystemZ::F8D, 24U },
{ SystemZ::F9D, 28U },
{ SystemZ::F10D, 25U },
{ SystemZ::F11D, 29U },
{ SystemZ::F12D, 26U },
{ SystemZ::F13D, 30U },
{ SystemZ::F14D, 27U },
{ SystemZ::F15D, 31U },
{ SystemZ::F16D, 68U },
{ SystemZ::F17D, 72U },
{ SystemZ::F18D, 69U },
{ SystemZ::F19D, 73U },
{ SystemZ::F20D, 70U },
{ SystemZ::F21D, 74U },
{ SystemZ::F22D, 71U },
{ SystemZ::F23D, 75U },
{ SystemZ::F24D, 76U },
{ SystemZ::F25D, 80U },
{ SystemZ::F26D, 77U },
{ SystemZ::F27D, 81U },
{ SystemZ::F28D, 78U },
{ SystemZ::F29D, 82U },
{ SystemZ::F30D, 79U },
{ SystemZ::F31D, 83U },
{ SystemZ::R0D, 0U },
{ SystemZ::R1D, 1U },
{ SystemZ::R2D, 2U },
{ SystemZ::R3D, 3U },
{ SystemZ::R4D, 4U },
{ SystemZ::R5D, 5U },
{ SystemZ::R6D, 6U },
{ SystemZ::R7D, 7U },
{ SystemZ::R8D, 8U },
{ SystemZ::R9D, 9U },
{ SystemZ::R10D, 10U },
{ SystemZ::R11D, 11U },
{ SystemZ::R12D, 12U },
{ SystemZ::R13D, 13U },
{ SystemZ::R14D, 14U },
{ SystemZ::R15D, 15U },
};
extern const unsigned SystemZEHFlavour0L2DwarfSize = array_lengthof(SystemZEHFlavour0L2Dwarf);
extern const uint16_t SystemZRegEncodingTable[] = {
0,
0,
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,
4,
5,
8,
9,
12,
13,
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,
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,
2,
4,
6,
8,
10,
12,
14,
};
static inline void InitSystemZMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
RI->InitMCRegisterInfo(SystemZRegDesc, 162, RA, PC, SystemZMCRegisterClasses, 16, SystemZRegUnitRoots, 65, SystemZRegDiffLists, SystemZLaneMaskLists, SystemZRegStrings, SystemZRegClassStrings, SystemZSubRegIdxLists, 10,
SystemZSubRegIdxRanges, SystemZRegEncodingTable);
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapDwarfRegsToLLVMRegs(SystemZDwarfFlavour0Dwarf2L, SystemZDwarfFlavour0Dwarf2LSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapDwarfRegsToLLVMRegs(SystemZEHFlavour0Dwarf2L, SystemZEHFlavour0Dwarf2LSize, true);
break;
}
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapLLVMRegsToDwarfRegs(SystemZDwarfFlavour0L2Dwarf, SystemZDwarfFlavour0L2DwarfSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapLLVMRegsToDwarfRegs(SystemZEHFlavour0L2Dwarf, SystemZEHFlavour0L2DwarfSize, true);
break;
}
}
} // End llvm namespace
#endif // GET_REGINFO_MC_DESC