/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Target Register Enum Values *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_ENUM #undef GET_REGINFO_ENUM namespace llvm { class MCRegisterClass; extern const MCRegisterClass PPCMCRegisterClasses[]; namespace PPC { enum { NoRegister, BP = 1, CARRY = 2, CTR = 3, FP = 4, LR = 5, RM = 6, SPEFSCR = 7, VRSAVE = 8, XER = 9, ZERO = 10, BP8 = 11, CR0 = 12, CR1 = 13, CR2 = 14, CR3 = 15, CR4 = 16, CR5 = 17, CR6 = 18, CR7 = 19, CTR8 = 20, F0 = 21, F1 = 22, F2 = 23, F3 = 24, F4 = 25, F5 = 26, F6 = 27, F7 = 28, F8 = 29, F9 = 30, F10 = 31, F11 = 32, F12 = 33, F13 = 34, F14 = 35, F15 = 36, F16 = 37, F17 = 38, F18 = 39, F19 = 40, F20 = 41, F21 = 42, F22 = 43, F23 = 44, F24 = 45, F25 = 46, F26 = 47, F27 = 48, F28 = 49, F29 = 50, F30 = 51, F31 = 52, FP8 = 53, LR8 = 54, QF0 = 55, QF1 = 56, QF2 = 57, QF3 = 58, QF4 = 59, QF5 = 60, QF6 = 61, QF7 = 62, QF8 = 63, QF9 = 64, QF10 = 65, QF11 = 66, QF12 = 67, QF13 = 68, QF14 = 69, QF15 = 70, QF16 = 71, QF17 = 72, QF18 = 73, QF19 = 74, QF20 = 75, QF21 = 76, QF22 = 77, QF23 = 78, QF24 = 79, QF25 = 80, QF26 = 81, QF27 = 82, QF28 = 83, QF29 = 84, QF30 = 85, QF31 = 86, R0 = 87, R1 = 88, R2 = 89, R3 = 90, R4 = 91, R5 = 92, R6 = 93, R7 = 94, R8 = 95, R9 = 96, R10 = 97, R11 = 98, R12 = 99, R13 = 100, R14 = 101, R15 = 102, R16 = 103, R17 = 104, R18 = 105, R19 = 106, R20 = 107, R21 = 108, R22 = 109, R23 = 110, R24 = 111, R25 = 112, R26 = 113, R27 = 114, R28 = 115, R29 = 116, R30 = 117, R31 = 118, S0 = 119, S1 = 120, S2 = 121, S3 = 122, S4 = 123, S5 = 124, S6 = 125, S7 = 126, S8 = 127, S9 = 128, S10 = 129, S11 = 130, S12 = 131, S13 = 132, S14 = 133, S15 = 134, S16 = 135, S17 = 136, S18 = 137, S19 = 138, S20 = 139, S21 = 140, S22 = 141, S23 = 142, S24 = 143, S25 = 144, S26 = 145, S27 = 146, S28 = 147, S29 = 148, S30 = 149, S31 = 150, V0 = 151, V1 = 152, V2 = 153, V3 = 154, V4 = 155, V5 = 156, V6 = 157, V7 = 158, V8 = 159, V9 = 160, V10 = 161, V11 = 162, V12 = 163, V13 = 164, V14 = 165, V15 = 166, V16 = 167, V17 = 168, V18 = 169, V19 = 170, V20 = 171, V21 = 172, V22 = 173, V23 = 174, V24 = 175, V25 = 176, V26 = 177, V27 = 178, V28 = 179, V29 = 180, V30 = 181, V31 = 182, VF0 = 183, VF1 = 184, VF2 = 185, VF3 = 186, VF4 = 187, VF5 = 188, VF6 = 189, VF7 = 190, VF8 = 191, VF9 = 192, VF10 = 193, VF11 = 194, VF12 = 195, VF13 = 196, VF14 = 197, VF15 = 198, VF16 = 199, VF17 = 200, VF18 = 201, VF19 = 202, VF20 = 203, VF21 = 204, VF22 = 205, VF23 = 206, VF24 = 207, VF25 = 208, VF26 = 209, VF27 = 210, VF28 = 211, VF29 = 212, VF30 = 213, VF31 = 214, VSL0 = 215, VSL1 = 216, VSL2 = 217, VSL3 = 218, VSL4 = 219, VSL5 = 220, VSL6 = 221, VSL7 = 222, VSL8 = 223, VSL9 = 224, VSL10 = 225, VSL11 = 226, VSL12 = 227, VSL13 = 228, VSL14 = 229, VSL15 = 230, VSL16 = 231, VSL17 = 232, VSL18 = 233, VSL19 = 234, VSL20 = 235, VSL21 = 236, VSL22 = 237, VSL23 = 238, VSL24 = 239, VSL25 = 240, VSL26 = 241, VSL27 = 242, VSL28 = 243, VSL29 = 244, VSL30 = 245, VSL31 = 246, VSX32 = 247, VSX33 = 248, VSX34 = 249, VSX35 = 250, VSX36 = 251, VSX37 = 252, VSX38 = 253, VSX39 = 254, VSX40 = 255, VSX41 = 256, VSX42 = 257, VSX43 = 258, VSX44 = 259, VSX45 = 260, VSX46 = 261, VSX47 = 262, VSX48 = 263, VSX49 = 264, VSX50 = 265, VSX51 = 266, VSX52 = 267, VSX53 = 268, VSX54 = 269, VSX55 = 270, VSX56 = 271, VSX57 = 272, VSX58 = 273, VSX59 = 274, VSX60 = 275, VSX61 = 276, VSX62 = 277, VSX63 = 278, X0 = 279, X1 = 280, X2 = 281, X3 = 282, X4 = 283, X5 = 284, X6 = 285, X7 = 286, X8 = 287, X9 = 288, X10 = 289, X11 = 290, X12 = 291, X13 = 292, X14 = 293, X15 = 294, X16 = 295, X17 = 296, X18 = 297, X19 = 298, X20 = 299, X21 = 300, X22 = 301, X23 = 302, X24 = 303, X25 = 304, X26 = 305, X27 = 306, X28 = 307, X29 = 308, X30 = 309, X31 = 310, ZERO8 = 311, CR0EQ = 312, CR1EQ = 313, CR2EQ = 314, CR3EQ = 315, CR4EQ = 316, CR5EQ = 317, CR6EQ = 318, CR7EQ = 319, CR0GT = 320, CR1GT = 321, CR2GT = 322, CR3GT = 323, CR4GT = 324, CR5GT = 325, CR6GT = 326, CR7GT = 327, CR0LT = 328, CR1LT = 329, CR2LT = 330, CR3LT = 331, CR4LT = 332, CR5LT = 333, CR6LT = 334, CR7LT = 335, CR0UN = 336, CR1UN = 337, CR2UN = 338, CR3UN = 339, CR4UN = 340, CR5UN = 341, CR6UN = 342, CR7UN = 343, NUM_TARGET_REGS // 344 }; } // end namespace PPC // Register classes namespace PPC { enum { VSSRCRegClassID = 0, GPRCRegClassID = 1, GPRC_NOR0RegClassID = 2, GPRC_and_GPRC_NOR0RegClassID = 3, CRBITRCRegClassID = 4, F4RCRegClassID = 5, CRRCRegClassID = 6, CARRYRCRegClassID = 7, CTRRCRegClassID = 8, VRSAVERCRegClassID = 9, SPILLTOVSRRCRegClassID = 10, VSFRCRegClassID = 11, G8RCRegClassID = 12, G8RC_NOX0RegClassID = 13, SPILLTOVSRRC_and_VSFRCRegClassID = 14, G8RC_and_G8RC_NOX0RegClassID = 15, F8RCRegClassID = 16, SPERCRegClassID = 17, VFRCRegClassID = 18, SPERC_with_sub_32_in_GPRC_NOR0RegClassID = 19, SPILLTOVSRRC_and_VFRCRegClassID = 20, SPILLTOVSRRC_and_F4RCRegClassID = 21, CTRRC8RegClassID = 22, VSRCRegClassID = 23, VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 24, QSRCRegClassID = 25, VRRCRegClassID = 26, VSLRCRegClassID = 27, VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 28, QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 29, VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 30, QBRCRegClassID = 31, QFRCRegClassID = 32, QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 33, }; } // end namespace PPC // Subregister indices namespace PPC { enum { NoSubRegister, sub_32, // 1 sub_64, // 2 sub_eq, // 3 sub_gt, // 4 sub_lt, // 5 sub_un, // 6 NUM_TARGET_SUBREGS }; } // end namespace PPC } // end namespace llvm #endif // GET_REGINFO_ENUM /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* MC Register Information *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_MC_DESC #undef GET_REGINFO_MC_DESC namespace llvm { extern const MCPhysReg PPCRegDiffLists[] = { /* 0 */ 0, 0, /* 2 */ 65497, 1, 1, 1, 0, /* 7 */ 3, 0, /* 9 */ 10, 0, /* 11 */ 21, 0, /* 13 */ 316, 65528, 65528, 24, 0, /* 18 */ 32, 0, /* 20 */ 49, 0, /* 22 */ 74, 0, /* 24 */ 32, 160, 0, /* 27 */ 34, 160, 0, /* 30 */ 301, 0, /* 32 */ 64204, 0, /* 34 */ 64233, 0, /* 36 */ 64266, 0, /* 38 */ 64299, 0, /* 40 */ 64611, 0, /* 42 */ 65212, 0, /* 44 */ 65220, 0, /* 46 */ 65228, 0, /* 48 */ 65235, 0, /* 50 */ 65236, 0, /* 52 */ 65332, 0, /* 54 */ 65342, 0, /* 56 */ 65344, 0, /* 58 */ 65363, 0, /* 60 */ 65428, 0, /* 62 */ 65460, 0, /* 64 */ 65474, 0, /* 66 */ 65487, 0, /* 68 */ 65492, 0, /* 70 */ 65502, 0, /* 72 */ 65504, 0, /* 74 */ 65523, 0, /* 76 */ 65524, 0, /* 78 */ 65526, 0, /* 80 */ 65535, 0, }; extern const LaneBitmask PPCLaneMaskLists[] = { /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(), /* 2 */ LaneBitmask(0x00000001), LaneBitmask::getAll(), /* 4 */ LaneBitmask(0x00000002), LaneBitmask::getAll(), /* 6 */ LaneBitmask(0x00000010), LaneBitmask(0x00000008), LaneBitmask(0x00000004), LaneBitmask(0x00000020), LaneBitmask::getAll(), }; extern const uint16_t PPCSubRegIdxLists[] = { /* 0 */ 1, 0, /* 2 */ 2, 0, /* 4 */ 5, 4, 3, 6, 0, }; extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[] = { { 65535, 65535 }, { 0, 32 }, // sub_32 { 0, 64 }, // sub_64 { 2, 1 }, // sub_eq { 1, 1 }, // sub_gt { 0, 1 }, // sub_lt { 3, 1 }, // sub_un }; extern const char PPCRegStrings[] = { /* 0 */ 'Q', 'F', '1', '0', 0, /* 5 */ 'V', 'F', '1', '0', 0, /* 10 */ 'V', 'S', 'L', '1', '0', 0, /* 16 */ 'R', '1', '0', 0, /* 20 */ 'S', '1', '0', 0, /* 24 */ 'V', '1', '0', 0, /* 28 */ 'X', '1', '0', 0, /* 32 */ 'Q', 'F', '2', '0', 0, /* 37 */ 'V', 'F', '2', '0', 0, /* 42 */ 'V', 'S', 'L', '2', '0', 0, /* 48 */ 'R', '2', '0', 0, /* 52 */ 'S', '2', '0', 0, /* 56 */ 'V', '2', '0', 0, /* 60 */ 'X', '2', '0', 0, /* 64 */ 'Q', 'F', '3', '0', 0, /* 69 */ 'V', 'F', '3', '0', 0, /* 74 */ 'V', 'S', 'L', '3', '0', 0, /* 80 */ 'R', '3', '0', 0, /* 84 */ 'S', '3', '0', 0, /* 88 */ 'V', '3', '0', 0, /* 92 */ 'X', '3', '0', 0, /* 96 */ 'V', 'S', 'X', '4', '0', 0, /* 102 */ 'V', 'S', 'X', '5', '0', 0, /* 108 */ 'V', 'S', 'X', '6', '0', 0, /* 114 */ 'Q', 'F', '0', 0, /* 118 */ 'V', 'F', '0', 0, /* 122 */ 'V', 'S', 'L', '0', 0, /* 127 */ 'C', 'R', '0', 0, /* 131 */ 'S', '0', 0, /* 134 */ 'V', '0', 0, /* 137 */ 'X', '0', 0, /* 140 */ 'Q', 'F', '1', '1', 0, /* 145 */ 'V', 'F', '1', '1', 0, /* 150 */ 'V', 'S', 'L', '1', '1', 0, /* 156 */ 'R', '1', '1', 0, /* 160 */ 'S', '1', '1', 0, /* 164 */ 'V', '1', '1', 0, /* 168 */ 'X', '1', '1', 0, /* 172 */ 'Q', 'F', '2', '1', 0, /* 177 */ 'V', 'F', '2', '1', 0, /* 182 */ 'V', 'S', 'L', '2', '1', 0, /* 188 */ 'R', '2', '1', 0, /* 192 */ 'S', '2', '1', 0, /* 196 */ 'V', '2', '1', 0, /* 200 */ 'X', '2', '1', 0, /* 204 */ 'Q', 'F', '3', '1', 0, /* 209 */ 'V', 'F', '3', '1', 0, /* 214 */ 'V', 'S', 'L', '3', '1', 0, /* 220 */ 'R', '3', '1', 0, /* 224 */ 'S', '3', '1', 0, /* 228 */ 'V', '3', '1', 0, /* 232 */ 'X', '3', '1', 0, /* 236 */ 'V', 'S', 'X', '4', '1', 0, /* 242 */ 'V', 'S', 'X', '5', '1', 0, /* 248 */ 'V', 'S', 'X', '6', '1', 0, /* 254 */ 'Q', 'F', '1', 0, /* 258 */ 'V', 'F', '1', 0, /* 262 */ 'V', 'S', 'L', '1', 0, /* 267 */ 'C', 'R', '1', 0, /* 271 */ 'S', '1', 0, /* 274 */ 'V', '1', 0, /* 277 */ 'X', '1', 0, /* 280 */ 'Q', 'F', '1', '2', 0, /* 285 */ 'V', 'F', '1', '2', 0, /* 290 */ 'V', 'S', 'L', '1', '2', 0, /* 296 */ 'R', '1', '2', 0, /* 300 */ 'S', '1', '2', 0, /* 304 */ 'V', '1', '2', 0, /* 308 */ 'X', '1', '2', 0, /* 312 */ 'Q', 'F', '2', '2', 0, /* 317 */ 'V', 'F', '2', '2', 0, /* 322 */ 'V', 'S', 'L', '2', '2', 0, /* 328 */ 'R', '2', '2', 0, /* 332 */ 'S', '2', '2', 0, /* 336 */ 'V', '2', '2', 0, /* 340 */ 'X', '2', '2', 0, /* 344 */ 'V', 'S', 'X', '3', '2', 0, /* 350 */ 'V', 'S', 'X', '4', '2', 0, /* 356 */ 'V', 'S', 'X', '5', '2', 0, /* 362 */ 'V', 'S', 'X', '6', '2', 0, /* 368 */ 'Q', 'F', '2', 0, /* 372 */ 'V', 'F', '2', 0, /* 376 */ 'V', 'S', 'L', '2', 0, /* 381 */ 'C', 'R', '2', 0, /* 385 */ 'S', '2', 0, /* 388 */ 'V', '2', 0, /* 391 */ 'X', '2', 0, /* 394 */ 'Q', 'F', '1', '3', 0, /* 399 */ 'V', 'F', '1', '3', 0, /* 404 */ 'V', 'S', 'L', '1', '3', 0, /* 410 */ 'R', '1', '3', 0, /* 414 */ 'S', '1', '3', 0, /* 418 */ 'V', '1', '3', 0, /* 422 */ 'X', '1', '3', 0, /* 426 */ 'Q', 'F', '2', '3', 0, /* 431 */ 'V', 'F', '2', '3', 0, /* 436 */ 'V', 'S', 'L', '2', '3', 0, /* 442 */ 'R', '2', '3', 0, /* 446 */ 'S', '2', '3', 0, /* 450 */ 'V', '2', '3', 0, /* 454 */ 'X', '2', '3', 0, /* 458 */ 'V', 'S', 'X', '3', '3', 0, /* 464 */ 'V', 'S', 'X', '4', '3', 0, /* 470 */ 'V', 'S', 'X', '5', '3', 0, /* 476 */ 'V', 'S', 'X', '6', '3', 0, /* 482 */ 'Q', 'F', '3', 0, /* 486 */ 'V', 'F', '3', 0, /* 490 */ 'V', 'S', 'L', '3', 0, /* 495 */ 'C', 'R', '3', 0, /* 499 */ 'S', '3', 0, /* 502 */ 'V', '3', 0, /* 505 */ 'X', '3', 0, /* 508 */ 'Q', 'F', '1', '4', 0, /* 513 */ 'V', 'F', '1', '4', 0, /* 518 */ 'V', 'S', 'L', '1', '4', 0, /* 524 */ 'R', '1', '4', 0, /* 528 */ 'S', '1', '4', 0, /* 532 */ 'V', '1', '4', 0, /* 536 */ 'X', '1', '4', 0, /* 540 */ 'Q', 'F', '2', '4', 0, /* 545 */ 'V', 'F', '2', '4', 0, /* 550 */ 'V', 'S', 'L', '2', '4', 0, /* 556 */ 'R', '2', '4', 0, /* 560 */ 'S', '2', '4', 0, /* 564 */ 'V', '2', '4', 0, /* 568 */ 'X', '2', '4', 0, /* 572 */ 'V', 'S', 'X', '3', '4', 0, /* 578 */ 'V', 'S', 'X', '4', '4', 0, /* 584 */ 'V', 'S', 'X', '5', '4', 0, /* 590 */ 'Q', 'F', '4', 0, /* 594 */ 'V', 'F', '4', 0, /* 598 */ 'V', 'S', 'L', '4', 0, /* 603 */ 'C', 'R', '4', 0, /* 607 */ 'S', '4', 0, /* 610 */ 'V', '4', 0, /* 613 */ 'X', '4', 0, /* 616 */ 'Q', 'F', '1', '5', 0, /* 621 */ 'V', 'F', '1', '5', 0, /* 626 */ 'V', 'S', 'L', '1', '5', 0, /* 632 */ 'R', '1', '5', 0, /* 636 */ 'S', '1', '5', 0, /* 640 */ 'V', '1', '5', 0, /* 644 */ 'X', '1', '5', 0, /* 648 */ 'Q', 'F', '2', '5', 0, /* 653 */ 'V', 'F', '2', '5', 0, /* 658 */ 'V', 'S', 'L', '2', '5', 0, /* 664 */ 'R', '2', '5', 0, /* 668 */ 'S', '2', '5', 0, /* 672 */ 'V', '2', '5', 0, /* 676 */ 'X', '2', '5', 0, /* 680 */ 'V', 'S', 'X', '3', '5', 0, /* 686 */ 'V', 'S', 'X', '4', '5', 0, /* 692 */ 'V', 'S', 'X', '5', '5', 0, /* 698 */ 'Q', 'F', '5', 0, /* 702 */ 'V', 'F', '5', 0, /* 706 */ 'V', 'S', 'L', '5', 0, /* 711 */ 'C', 'R', '5', 0, /* 715 */ 'S', '5', 0, /* 718 */ 'V', '5', 0, /* 721 */ 'X', '5', 0, /* 724 */ 'Q', 'F', '1', '6', 0, /* 729 */ 'V', 'F', '1', '6', 0, /* 734 */ 'V', 'S', 'L', '1', '6', 0, /* 740 */ 'R', '1', '6', 0, /* 744 */ 'S', '1', '6', 0, /* 748 */ 'V', '1', '6', 0, /* 752 */ 'X', '1', '6', 0, /* 756 */ 'Q', 'F', '2', '6', 0, /* 761 */ 'V', 'F', '2', '6', 0, /* 766 */ 'V', 'S', 'L', '2', '6', 0, /* 772 */ 'R', '2', '6', 0, /* 776 */ 'S', '2', '6', 0, /* 780 */ 'V', '2', '6', 0, /* 784 */ 'X', '2', '6', 0, /* 788 */ 'V', 'S', 'X', '3', '6', 0, /* 794 */ 'V', 'S', 'X', '4', '6', 0, /* 800 */ 'V', 'S', 'X', '5', '6', 0, /* 806 */ 'Q', 'F', '6', 0, /* 810 */ 'V', 'F', '6', 0, /* 814 */ 'V', 'S', 'L', '6', 0, /* 819 */ 'C', 'R', '6', 0, /* 823 */ 'S', '6', 0, /* 826 */ 'V', '6', 0, /* 829 */ 'X', '6', 0, /* 832 */ 'Q', 'F', '1', '7', 0, /* 837 */ 'V', 'F', '1', '7', 0, /* 842 */ 'V', 'S', 'L', '1', '7', 0, /* 848 */ 'R', '1', '7', 0, /* 852 */ 'S', '1', '7', 0, /* 856 */ 'V', '1', '7', 0, /* 860 */ 'X', '1', '7', 0, /* 864 */ 'Q', 'F', '2', '7', 0, /* 869 */ 'V', 'F', '2', '7', 0, /* 874 */ 'V', 'S', 'L', '2', '7', 0, /* 880 */ 'R', '2', '7', 0, /* 884 */ 'S', '2', '7', 0, /* 888 */ 'V', '2', '7', 0, /* 892 */ 'X', '2', '7', 0, /* 896 */ 'V', 'S', 'X', '3', '7', 0, /* 902 */ 'V', 'S', 'X', '4', '7', 0, /* 908 */ 'V', 'S', 'X', '5', '7', 0, /* 914 */ 'Q', 'F', '7', 0, /* 918 */ 'V', 'F', '7', 0, /* 922 */ 'V', 'S', 'L', '7', 0, /* 927 */ 'C', 'R', '7', 0, /* 931 */ 'S', '7', 0, /* 934 */ 'V', '7', 0, /* 937 */ 'X', '7', 0, /* 940 */ 'Q', 'F', '1', '8', 0, /* 945 */ 'V', 'F', '1', '8', 0, /* 950 */ 'V', 'S', 'L', '1', '8', 0, /* 956 */ 'R', '1', '8', 0, /* 960 */ 'S', '1', '8', 0, /* 964 */ 'V', '1', '8', 0, /* 968 */ 'X', '1', '8', 0, /* 972 */ 'Q', 'F', '2', '8', 0, /* 977 */ 'V', 'F', '2', '8', 0, /* 982 */ 'V', 'S', 'L', '2', '8', 0, /* 988 */ 'R', '2', '8', 0, /* 992 */ 'S', '2', '8', 0, /* 996 */ 'V', '2', '8', 0, /* 1000 */ 'X', '2', '8', 0, /* 1004 */ 'V', 'S', 'X', '3', '8', 0, /* 1010 */ 'V', 'S', 'X', '4', '8', 0, /* 1016 */ 'V', 'S', 'X', '5', '8', 0, /* 1022 */ 'Q', 'F', '8', 0, /* 1026 */ 'V', 'F', '8', 0, /* 1030 */ 'V', 'S', 'L', '8', 0, /* 1035 */ 'Z', 'E', 'R', 'O', '8', 0, /* 1041 */ 'B', 'P', '8', 0, /* 1045 */ 'F', 'P', '8', 0, /* 1049 */ 'L', 'R', '8', 0, /* 1053 */ 'C', 'T', 'R', '8', 0, /* 1058 */ 'S', '8', 0, /* 1061 */ 'V', '8', 0, /* 1064 */ 'X', '8', 0, /* 1067 */ 'Q', 'F', '1', '9', 0, /* 1072 */ 'V', 'F', '1', '9', 0, /* 1077 */ 'V', 'S', 'L', '1', '9', 0, /* 1083 */ 'R', '1', '9', 0, /* 1087 */ 'S', '1', '9', 0, /* 1091 */ 'V', '1', '9', 0, /* 1095 */ 'X', '1', '9', 0, /* 1099 */ 'Q', 'F', '2', '9', 0, /* 1104 */ 'V', 'F', '2', '9', 0, /* 1109 */ 'V', 'S', 'L', '2', '9', 0, /* 1115 */ 'R', '2', '9', 0, /* 1119 */ 'S', '2', '9', 0, /* 1123 */ 'V', '2', '9', 0, /* 1127 */ 'X', '2', '9', 0, /* 1131 */ 'V', 'S', 'X', '3', '9', 0, /* 1137 */ 'V', 'S', 'X', '4', '9', 0, /* 1143 */ 'V', 'S', 'X', '5', '9', 0, /* 1149 */ 'Q', 'F', '9', 0, /* 1153 */ 'V', 'F', '9', 0, /* 1157 */ 'V', 'S', 'L', '9', 0, /* 1162 */ 'R', '9', 0, /* 1165 */ 'S', '9', 0, /* 1168 */ 'V', '9', 0, /* 1171 */ 'X', '9', 0, /* 1174 */ 'V', 'R', 'S', 'A', 'V', 'E', 0, /* 1181 */ 'R', 'M', 0, /* 1184 */ 'C', 'R', '0', 'U', 'N', 0, /* 1190 */ 'C', 'R', '1', 'U', 'N', 0, /* 1196 */ 'C', 'R', '2', 'U', 'N', 0, /* 1202 */ 'C', 'R', '3', 'U', 'N', 0, /* 1208 */ 'C', 'R', '4', 'U', 'N', 0, /* 1214 */ 'C', 'R', '5', 'U', 'N', 0, /* 1220 */ 'C', 'R', '6', 'U', 'N', 0, /* 1226 */ 'C', 'R', '7', 'U', 'N', 0, /* 1232 */ 'Z', 'E', 'R', 'O', 0, /* 1237 */ 'B', 'P', 0, /* 1240 */ 'F', 'P', 0, /* 1243 */ 'C', 'R', '0', 'E', 'Q', 0, /* 1249 */ 'C', 'R', '1', 'E', 'Q', 0, /* 1255 */ 'C', 'R', '2', 'E', 'Q', 0, /* 1261 */ 'C', 'R', '3', 'E', 'Q', 0, /* 1267 */ 'C', 'R', '4', 'E', 'Q', 0, /* 1273 */ 'C', 'R', '5', 'E', 'Q', 0, /* 1279 */ 'C', 'R', '6', 'E', 'Q', 0, /* 1285 */ 'C', 'R', '7', 'E', 'Q', 0, /* 1291 */ 'S', 'P', 'E', 'F', 'S', 'C', 'R', 0, /* 1299 */ 'X', 'E', 'R', 0, /* 1303 */ 'L', 'R', 0, /* 1306 */ 'C', 'T', 'R', 0, /* 1310 */ 'C', 'R', '0', 'G', 'T', 0, /* 1316 */ 'C', 'R', '1', 'G', 'T', 0, /* 1322 */ 'C', 'R', '2', 'G', 'T', 0, /* 1328 */ 'C', 'R', '3', 'G', 'T', 0, /* 1334 */ 'C', 'R', '4', 'G', 'T', 0, /* 1340 */ 'C', 'R', '5', 'G', 'T', 0, /* 1346 */ 'C', 'R', '6', 'G', 'T', 0, /* 1352 */ 'C', 'R', '7', 'G', 'T', 0, /* 1358 */ 'C', 'R', '0', 'L', 'T', 0, /* 1364 */ 'C', 'R', '1', 'L', 'T', 0, /* 1370 */ 'C', 'R', '2', 'L', 'T', 0, /* 1376 */ 'C', 'R', '3', 'L', 'T', 0, /* 1382 */ 'C', 'R', '4', 'L', 'T', 0, /* 1388 */ 'C', 'R', '5', 'L', 'T', 0, /* 1394 */ 'C', 'R', '6', 'L', 'T', 0, /* 1400 */ 'C', 'R', '7', 'L', 'T', 0, /* 1406 */ 'C', 'A', 'R', 'R', 'Y', 0, }; extern const MCRegisterDesc PPCRegDesc[] = { // Descriptors { 4, 0, 0, 0, 0, 0 }, { 1237, 1, 9, 1, 1281, 0 }, { 1406, 1, 1, 1, 1281, 0 }, { 1306, 1, 1, 1, 1281, 0 }, { 1240, 1, 20, 1, 1281, 0 }, { 1303, 1, 1, 1, 1281, 0 }, { 1181, 1, 1, 1, 1281, 0 }, { 1291, 1, 1, 1, 1281, 0 }, { 1174, 1, 1, 1, 1281, 0 }, { 1299, 1, 1, 1, 1031, 0 }, { 1232, 1, 30, 1, 1031, 0 }, { 1041, 78, 1, 0, 0, 2 }, { 127, 13, 1, 4, 36, 6 }, { 267, 13, 1, 4, 36, 6 }, { 381, 13, 1, 4, 36, 6 }, { 495, 13, 1, 4, 36, 6 }, { 603, 13, 1, 4, 36, 6 }, { 711, 13, 1, 4, 36, 6 }, { 819, 13, 1, 4, 36, 6 }, { 927, 13, 1, 4, 36, 6 }, { 1053, 1, 1, 1, 177, 0 }, { 115, 1, 27, 1, 177, 0 }, { 255, 1, 27, 1, 177, 0 }, { 369, 1, 27, 1, 177, 0 }, { 483, 1, 27, 1, 177, 0 }, { 591, 1, 27, 1, 177, 0 }, { 699, 1, 27, 1, 177, 0 }, { 807, 1, 27, 1, 177, 0 }, { 915, 1, 27, 1, 177, 0 }, { 1023, 1, 27, 1, 177, 0 }, { 1150, 1, 27, 1, 177, 0 }, { 1, 1, 27, 1, 177, 0 }, { 141, 1, 27, 1, 177, 0 }, { 281, 1, 27, 1, 177, 0 }, { 395, 1, 27, 1, 177, 0 }, { 509, 1, 27, 1, 177, 0 }, { 617, 1, 27, 1, 177, 0 }, { 725, 1, 27, 1, 177, 0 }, { 833, 1, 27, 1, 177, 0 }, { 941, 1, 27, 1, 177, 0 }, { 1068, 1, 27, 1, 177, 0 }, { 33, 1, 27, 1, 177, 0 }, { 173, 1, 27, 1, 177, 0 }, { 313, 1, 27, 1, 177, 0 }, { 427, 1, 27, 1, 177, 0 }, { 541, 1, 27, 1, 177, 0 }, { 649, 1, 27, 1, 177, 0 }, { 757, 1, 27, 1, 177, 0 }, { 865, 1, 27, 1, 177, 0 }, { 973, 1, 27, 1, 177, 0 }, { 1100, 1, 27, 1, 177, 0 }, { 65, 1, 27, 1, 177, 0 }, { 205, 1, 27, 1, 177, 0 }, { 1045, 66, 1, 0, 112, 2 }, { 1049, 1, 1, 1, 352, 0 }, { 114, 70, 1, 2, 1185, 4 }, { 254, 70, 1, 2, 1185, 4 }, { 368, 70, 1, 2, 1185, 4 }, { 482, 70, 1, 2, 1185, 4 }, { 590, 70, 1, 2, 1185, 4 }, { 698, 70, 1, 2, 1185, 4 }, { 806, 70, 1, 2, 1185, 4 }, { 914, 70, 1, 2, 1185, 4 }, { 1022, 70, 1, 2, 1185, 4 }, { 1149, 70, 1, 2, 1185, 4 }, { 0, 70, 1, 2, 1185, 4 }, { 140, 70, 1, 2, 1185, 4 }, { 280, 70, 1, 2, 1185, 4 }, { 394, 70, 1, 2, 1185, 4 }, { 508, 70, 1, 2, 1185, 4 }, { 616, 70, 1, 2, 1185, 4 }, { 724, 70, 1, 2, 1185, 4 }, { 832, 70, 1, 2, 1185, 4 }, { 940, 70, 1, 2, 1185, 4 }, { 1067, 70, 1, 2, 1185, 4 }, { 32, 70, 1, 2, 1185, 4 }, { 172, 70, 1, 2, 1185, 4 }, { 312, 70, 1, 2, 1185, 4 }, { 426, 70, 1, 2, 1185, 4 }, { 540, 70, 1, 2, 1185, 4 }, { 648, 70, 1, 2, 1185, 4 }, { 756, 70, 1, 2, 1185, 4 }, { 864, 70, 1, 2, 1185, 4 }, { 972, 70, 1, 2, 1185, 4 }, { 1099, 70, 1, 2, 1185, 4 }, { 64, 70, 1, 2, 1185, 4 }, { 204, 70, 1, 2, 1185, 4 }, { 128, 1, 24, 1, 1217, 0 }, { 268, 1, 24, 1, 1217, 0 }, { 382, 1, 24, 1, 1217, 0 }, { 496, 1, 24, 1, 1217, 0 }, { 604, 1, 24, 1, 1217, 0 }, { 712, 1, 24, 1, 1217, 0 }, { 820, 1, 24, 1, 1217, 0 }, { 928, 1, 24, 1, 1217, 0 }, { 1050, 1, 24, 1, 1217, 0 }, { 1162, 1, 24, 1, 1217, 0 }, { 16, 1, 24, 1, 1217, 0 }, { 156, 1, 24, 1, 1217, 0 }, { 296, 1, 24, 1, 1217, 0 }, { 410, 1, 24, 1, 1217, 0 }, { 524, 1, 24, 1, 1217, 0 }, { 632, 1, 24, 1, 1217, 0 }, { 740, 1, 24, 1, 1217, 0 }, { 848, 1, 24, 1, 1217, 0 }, { 956, 1, 24, 1, 1217, 0 }, { 1083, 1, 24, 1, 1217, 0 }, { 48, 1, 24, 1, 1217, 0 }, { 188, 1, 24, 1, 1217, 0 }, { 328, 1, 24, 1, 1217, 0 }, { 442, 1, 24, 1, 1217, 0 }, { 556, 1, 24, 1, 1217, 0 }, { 664, 1, 24, 1, 1217, 0 }, { 772, 1, 24, 1, 1217, 0 }, { 880, 1, 24, 1, 1217, 0 }, { 988, 1, 24, 1, 1217, 0 }, { 1115, 1, 24, 1, 1217, 0 }, { 80, 1, 24, 1, 1217, 0 }, { 220, 1, 24, 1, 1217, 0 }, { 131, 72, 1, 0, 1089, 2 }, { 271, 72, 1, 0, 1089, 2 }, { 385, 72, 1, 0, 1089, 2 }, { 499, 72, 1, 0, 1089, 2 }, { 607, 72, 1, 0, 1089, 2 }, { 715, 72, 1, 0, 1089, 2 }, { 823, 72, 1, 0, 1089, 2 }, { 931, 72, 1, 0, 1089, 2 }, { 1058, 72, 1, 0, 1089, 2 }, { 1165, 72, 1, 0, 1089, 2 }, { 20, 72, 1, 0, 1089, 2 }, { 160, 72, 1, 0, 1089, 2 }, { 300, 72, 1, 0, 1089, 2 }, { 414, 72, 1, 0, 1089, 2 }, { 528, 72, 1, 0, 1089, 2 }, { 636, 72, 1, 0, 1089, 2 }, { 744, 72, 1, 0, 1089, 2 }, { 852, 72, 1, 0, 1089, 2 }, { 960, 72, 1, 0, 1089, 2 }, { 1087, 72, 1, 0, 1089, 2 }, { 52, 72, 1, 0, 1089, 2 }, { 192, 72, 1, 0, 1089, 2 }, { 332, 72, 1, 0, 1089, 2 }, { 446, 72, 1, 0, 1089, 2 }, { 560, 72, 1, 0, 1089, 2 }, { 668, 72, 1, 0, 1089, 2 }, { 776, 72, 1, 0, 1089, 2 }, { 884, 72, 1, 0, 1089, 2 }, { 992, 72, 1, 0, 1089, 2 }, { 1119, 72, 1, 0, 1089, 2 }, { 84, 72, 1, 0, 1089, 2 }, { 224, 72, 1, 0, 1089, 2 }, { 134, 18, 1, 2, 1089, 4 }, { 274, 18, 1, 2, 1089, 4 }, { 388, 18, 1, 2, 1089, 4 }, { 502, 18, 1, 2, 1089, 4 }, { 610, 18, 1, 2, 1089, 4 }, { 718, 18, 1, 2, 1089, 4 }, { 826, 18, 1, 2, 1089, 4 }, { 934, 18, 1, 2, 1089, 4 }, { 1061, 18, 1, 2, 1089, 4 }, { 1168, 18, 1, 2, 1089, 4 }, { 24, 18, 1, 2, 1089, 4 }, { 164, 18, 1, 2, 1089, 4 }, { 304, 18, 1, 2, 1089, 4 }, { 418, 18, 1, 2, 1089, 4 }, { 532, 18, 1, 2, 1089, 4 }, { 640, 18, 1, 2, 1089, 4 }, { 748, 18, 1, 2, 1089, 4 }, { 856, 18, 1, 2, 1089, 4 }, { 964, 18, 1, 2, 1089, 4 }, { 1091, 18, 1, 2, 1089, 4 }, { 56, 18, 1, 2, 1089, 4 }, { 196, 18, 1, 2, 1089, 4 }, { 336, 18, 1, 2, 1089, 4 }, { 450, 18, 1, 2, 1089, 4 }, { 564, 18, 1, 2, 1089, 4 }, { 672, 18, 1, 2, 1089, 4 }, { 780, 18, 1, 2, 1089, 4 }, { 888, 18, 1, 2, 1089, 4 }, { 996, 18, 1, 2, 1089, 4 }, { 1123, 18, 1, 2, 1089, 4 }, { 88, 18, 1, 2, 1089, 4 }, { 228, 18, 1, 2, 1089, 4 }, { 118, 1, 72, 1, 993, 0 }, { 258, 1, 72, 1, 993, 0 }, { 372, 1, 72, 1, 993, 0 }, { 486, 1, 72, 1, 993, 0 }, { 594, 1, 72, 1, 993, 0 }, { 702, 1, 72, 1, 993, 0 }, { 810, 1, 72, 1, 993, 0 }, { 918, 1, 72, 1, 993, 0 }, { 1026, 1, 72, 1, 993, 0 }, { 1153, 1, 72, 1, 993, 0 }, { 5, 1, 72, 1, 993, 0 }, { 145, 1, 72, 1, 993, 0 }, { 285, 1, 72, 1, 993, 0 }, { 399, 1, 72, 1, 993, 0 }, { 513, 1, 72, 1, 993, 0 }, { 621, 1, 72, 1, 993, 0 }, { 729, 1, 72, 1, 993, 0 }, { 837, 1, 72, 1, 993, 0 }, { 945, 1, 72, 1, 993, 0 }, { 1072, 1, 72, 1, 993, 0 }, { 37, 1, 72, 1, 993, 0 }, { 177, 1, 72, 1, 993, 0 }, { 317, 1, 72, 1, 993, 0 }, { 431, 1, 72, 1, 993, 0 }, { 545, 1, 72, 1, 993, 0 }, { 653, 1, 72, 1, 993, 0 }, { 761, 1, 72, 1, 993, 0 }, { 869, 1, 72, 1, 993, 0 }, { 977, 1, 72, 1, 993, 0 }, { 1104, 1, 72, 1, 993, 0 }, { 69, 1, 72, 1, 993, 0 }, { 209, 1, 72, 1, 993, 0 }, { 122, 54, 1, 2, 929, 4 }, { 262, 54, 1, 2, 929, 4 }, { 376, 54, 1, 2, 929, 4 }, { 490, 54, 1, 2, 929, 4 }, { 598, 54, 1, 2, 929, 4 }, { 706, 54, 1, 2, 929, 4 }, { 814, 54, 1, 2, 929, 4 }, { 922, 54, 1, 2, 929, 4 }, { 1030, 54, 1, 2, 929, 4 }, { 1157, 54, 1, 2, 929, 4 }, { 10, 54, 1, 2, 929, 4 }, { 150, 54, 1, 2, 929, 4 }, { 290, 54, 1, 2, 929, 4 }, { 404, 54, 1, 2, 929, 4 }, { 518, 54, 1, 2, 929, 4 }, { 626, 54, 1, 2, 929, 4 }, { 734, 54, 1, 2, 929, 4 }, { 842, 54, 1, 2, 929, 4 }, { 950, 54, 1, 2, 929, 4 }, { 1077, 54, 1, 2, 929, 4 }, { 42, 54, 1, 2, 929, 4 }, { 182, 54, 1, 2, 929, 4 }, { 322, 54, 1, 2, 929, 4 }, { 436, 54, 1, 2, 929, 4 }, { 550, 54, 1, 2, 929, 4 }, { 658, 54, 1, 2, 929, 4 }, { 766, 54, 1, 2, 929, 4 }, { 874, 54, 1, 2, 929, 4 }, { 982, 54, 1, 2, 929, 4 }, { 1109, 54, 1, 2, 929, 4 }, { 74, 54, 1, 2, 929, 4 }, { 214, 54, 1, 2, 929, 4 }, { 344, 1, 1, 1, 961, 0 }, { 458, 1, 1, 1, 961, 0 }, { 572, 1, 1, 1, 961, 0 }, { 680, 1, 1, 1, 961, 0 }, { 788, 1, 1, 1, 961, 0 }, { 896, 1, 1, 1, 961, 0 }, { 1004, 1, 1, 1, 961, 0 }, { 1131, 1, 1, 1, 961, 0 }, { 96, 1, 1, 1, 961, 0 }, { 236, 1, 1, 1, 961, 0 }, { 350, 1, 1, 1, 961, 0 }, { 464, 1, 1, 1, 961, 0 }, { 578, 1, 1, 1, 961, 0 }, { 686, 1, 1, 1, 961, 0 }, { 794, 1, 1, 1, 961, 0 }, { 902, 1, 1, 1, 961, 0 }, { 1010, 1, 1, 1, 961, 0 }, { 1137, 1, 1, 1, 961, 0 }, { 102, 1, 1, 1, 961, 0 }, { 242, 1, 1, 1, 961, 0 }, { 356, 1, 1, 1, 961, 0 }, { 470, 1, 1, 1, 961, 0 }, { 584, 1, 1, 1, 961, 0 }, { 692, 1, 1, 1, 961, 0 }, { 800, 1, 1, 1, 961, 0 }, { 908, 1, 1, 1, 961, 0 }, { 1016, 1, 1, 1, 961, 0 }, { 1143, 1, 1, 1, 961, 0 }, { 108, 1, 1, 1, 961, 0 }, { 248, 1, 1, 1, 961, 0 }, { 362, 1, 1, 1, 961, 0 }, { 476, 1, 1, 1, 961, 0 }, { 137, 56, 1, 0, 833, 2 }, { 277, 56, 1, 0, 833, 2 }, { 391, 56, 1, 0, 833, 2 }, { 505, 56, 1, 0, 833, 2 }, { 613, 56, 1, 0, 833, 2 }, { 721, 56, 1, 0, 833, 2 }, { 829, 56, 1, 0, 833, 2 }, { 937, 56, 1, 0, 833, 2 }, { 1064, 56, 1, 0, 833, 2 }, { 1171, 56, 1, 0, 833, 2 }, { 28, 56, 1, 0, 833, 2 }, { 168, 56, 1, 0, 833, 2 }, { 308, 56, 1, 0, 833, 2 }, { 422, 56, 1, 0, 833, 2 }, { 536, 56, 1, 0, 833, 2 }, { 644, 56, 1, 0, 833, 2 }, { 752, 56, 1, 0, 833, 2 }, { 860, 56, 1, 0, 833, 2 }, { 968, 56, 1, 0, 833, 2 }, { 1095, 56, 1, 0, 833, 2 }, { 60, 56, 1, 0, 833, 2 }, { 200, 56, 1, 0, 833, 2 }, { 340, 56, 1, 0, 833, 2 }, { 454, 56, 1, 0, 833, 2 }, { 568, 56, 1, 0, 833, 2 }, { 676, 56, 1, 0, 833, 2 }, { 784, 56, 1, 0, 833, 2 }, { 892, 56, 1, 0, 833, 2 }, { 1000, 56, 1, 0, 833, 2 }, { 1127, 56, 1, 0, 833, 2 }, { 92, 56, 1, 0, 833, 2 }, { 232, 56, 1, 0, 833, 2 }, { 1035, 48, 1, 0, 643, 2 }, { 1243, 1, 50, 1, 643, 0 }, { 1249, 1, 50, 1, 612, 0 }, { 1255, 1, 50, 1, 612, 0 }, { 1261, 1, 50, 1, 612, 0 }, { 1267, 1, 50, 1, 612, 0 }, { 1273, 1, 50, 1, 612, 0 }, { 1279, 1, 50, 1, 612, 0 }, { 1285, 1, 50, 1, 612, 0 }, { 1310, 1, 46, 1, 580, 0 }, { 1316, 1, 46, 1, 580, 0 }, { 1322, 1, 46, 1, 580, 0 }, { 1328, 1, 46, 1, 580, 0 }, { 1334, 1, 46, 1, 580, 0 }, { 1340, 1, 46, 1, 580, 0 }, { 1346, 1, 46, 1, 580, 0 }, { 1352, 1, 46, 1, 580, 0 }, { 1358, 1, 44, 1, 548, 0 }, { 1364, 1, 44, 1, 548, 0 }, { 1370, 1, 44, 1, 548, 0 }, { 1376, 1, 44, 1, 548, 0 }, { 1382, 1, 44, 1, 548, 0 }, { 1388, 1, 44, 1, 548, 0 }, { 1394, 1, 44, 1, 548, 0 }, { 1400, 1, 44, 1, 548, 0 }, { 1184, 1, 42, 1, 516, 0 }, { 1190, 1, 42, 1, 516, 0 }, { 1196, 1, 42, 1, 516, 0 }, { 1202, 1, 42, 1, 516, 0 }, { 1208, 1, 42, 1, 516, 0 }, { 1214, 1, 42, 1, 516, 0 }, { 1220, 1, 42, 1, 516, 0 }, { 1226, 1, 42, 1, 516, 0 }, }; extern const MCPhysReg PPCRegUnitRoots[][2] = { { PPC::BP }, { PPC::CARRY, PPC::XER }, { PPC::CTR }, { PPC::FP }, { PPC::LR }, { PPC::RM }, { PPC::SPEFSCR }, { PPC::VRSAVE }, { PPC::ZERO }, { PPC::CR0LT }, { PPC::CR0GT }, { PPC::CR0EQ }, { PPC::CR0UN }, { PPC::CR1LT }, { PPC::CR1GT }, { PPC::CR1EQ }, { PPC::CR1UN }, { PPC::CR2LT }, { PPC::CR2GT }, { PPC::CR2EQ }, { PPC::CR2UN }, { PPC::CR3LT }, { PPC::CR3GT }, { PPC::CR3EQ }, { PPC::CR3UN }, { PPC::CR4LT }, { PPC::CR4GT }, { PPC::CR4EQ }, { PPC::CR4UN }, { PPC::CR5LT }, { PPC::CR5GT }, { PPC::CR5EQ }, { PPC::CR5UN }, { PPC::CR6LT }, { PPC::CR6GT }, { PPC::CR6EQ }, { PPC::CR6UN }, { PPC::CR7LT }, { PPC::CR7GT }, { PPC::CR7EQ }, { PPC::CR7UN }, { PPC::CTR8 }, { PPC::F0 }, { PPC::F1 }, { PPC::F2 }, { PPC::F3 }, { PPC::F4 }, { PPC::F5 }, { PPC::F6 }, { PPC::F7 }, { PPC::F8 }, { PPC::F9 }, { PPC::F10 }, { PPC::F11 }, { PPC::F12 }, { PPC::F13 }, { PPC::F14 }, { PPC::F15 }, { PPC::F16 }, { PPC::F17 }, { PPC::F18 }, { PPC::F19 }, { PPC::F20 }, { PPC::F21 }, { PPC::F22 }, { PPC::F23 }, { PPC::F24 }, { PPC::F25 }, { PPC::F26 }, { PPC::F27 }, { PPC::F28 }, { PPC::F29 }, { PPC::F30 }, { PPC::F31 }, { PPC::LR8 }, { PPC::R0 }, { PPC::R1 }, { PPC::R2 }, { PPC::R3 }, { PPC::R4 }, { PPC::R5 }, { PPC::R6 }, { PPC::R7 }, { PPC::R8 }, { PPC::R9 }, { PPC::R10 }, { PPC::R11 }, { PPC::R12 }, { PPC::R13 }, { PPC::R14 }, { PPC::R15 }, { PPC::R16 }, { PPC::R17 }, { PPC::R18 }, { PPC::R19 }, { PPC::R20 }, { PPC::R21 }, { PPC::R22 }, { PPC::R23 }, { PPC::R24 }, { PPC::R25 }, { PPC::R26 }, { PPC::R27 }, { PPC::R28 }, { PPC::R29 }, { PPC::R30 }, { PPC::R31 }, { PPC::VF0 }, { PPC::VF1 }, { PPC::VF2 }, { PPC::VF3 }, { PPC::VF4 }, { PPC::VF5 }, { PPC::VF6 }, { PPC::VF7 }, { PPC::VF8 }, { PPC::VF9 }, { PPC::VF10 }, { PPC::VF11 }, { PPC::VF12 }, { PPC::VF13 }, { PPC::VF14 }, { PPC::VF15 }, { PPC::VF16 }, { PPC::VF17 }, { PPC::VF18 }, { PPC::VF19 }, { PPC::VF20 }, { PPC::VF21 }, { PPC::VF22 }, { PPC::VF23 }, { PPC::VF24 }, { PPC::VF25 }, { PPC::VF26 }, { PPC::VF27 }, { PPC::VF28 }, { PPC::VF29 }, { PPC::VF30 }, { PPC::VF31 }, { PPC::VSX32 }, { PPC::VSX33 }, { PPC::VSX34 }, { PPC::VSX35 }, { PPC::VSX36 }, { PPC::VSX37 }, { PPC::VSX38 }, { PPC::VSX39 }, { PPC::VSX40 }, { PPC::VSX41 }, { PPC::VSX42 }, { PPC::VSX43 }, { PPC::VSX44 }, { PPC::VSX45 }, { PPC::VSX46 }, { PPC::VSX47 }, { PPC::VSX48 }, { PPC::VSX49 }, { PPC::VSX50 }, { PPC::VSX51 }, { PPC::VSX52 }, { PPC::VSX53 }, { PPC::VSX54 }, { PPC::VSX55 }, { PPC::VSX56 }, { PPC::VSX57 }, { PPC::VSX58 }, { PPC::VSX59 }, { PPC::VSX60 }, { PPC::VSX61 }, { PPC::VSX62 }, { PPC::VSX63 }, }; namespace { // Register classes... // VSSRC Register Class... const MCPhysReg VSSRC[] = { PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, PPC::VF31, PPC::VF30, PPC::VF29, PPC::VF28, PPC::VF27, PPC::VF26, PPC::VF25, PPC::VF24, PPC::VF23, PPC::VF22, PPC::VF21, PPC::VF20, }; // VSSRC Bit set. const uint8_t VSSRCBits[] = { 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // GPRC Register Class... const MCPhysReg GPRC[] = { PPC::R2, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R0, PPC::R1, PPC::FP, PPC::BP, }; // GPRC Bit set. const uint8_t GPRCBits[] = { 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // GPRC_NOR0 Register Class... const MCPhysReg GPRC_NOR0[] = { PPC::R2, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, PPC::ZERO, }; // GPRC_NOR0 Bit set. const uint8_t GPRC_NOR0Bits[] = { 0x12, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, }; // GPRC_and_GPRC_NOR0 Register Class... const MCPhysReg GPRC_and_GPRC_NOR0[] = { PPC::R2, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, }; // GPRC_and_GPRC_NOR0 Bit set. const uint8_t GPRC_and_GPRC_NOR0Bits[] = { 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, }; // CRBITRC Register Class... const MCPhysReg CRBITRC[] = { PPC::CR2LT, PPC::CR2GT, PPC::CR2EQ, PPC::CR2UN, PPC::CR3LT, PPC::CR3GT, PPC::CR3EQ, PPC::CR3UN, PPC::CR4LT, PPC::CR4GT, PPC::CR4EQ, PPC::CR4UN, PPC::CR5LT, PPC::CR5GT, PPC::CR5EQ, PPC::CR5UN, PPC::CR6LT, PPC::CR6GT, PPC::CR6EQ, PPC::CR6UN, PPC::CR7LT, PPC::CR7GT, PPC::CR7EQ, PPC::CR7UN, PPC::CR1LT, PPC::CR1GT, PPC::CR1EQ, PPC::CR1UN, PPC::CR0LT, PPC::CR0GT, PPC::CR0EQ, PPC::CR0UN, }; // CRBITRC Bit set. const uint8_t CRBITRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // F4RC Register Class... const MCPhysReg F4RC[] = { PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, }; // F4RC Bit set. const uint8_t F4RCBits[] = { 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, }; // CRRC Register Class... const MCPhysReg CRRC[] = { PPC::CR0, PPC::CR1, PPC::CR5, PPC::CR6, PPC::CR7, PPC::CR2, PPC::CR3, PPC::CR4, }; // CRRC Bit set. const uint8_t CRRCBits[] = { 0x00, 0xf0, 0x0f, }; // CARRYRC Register Class... const MCPhysReg CARRYRC[] = { PPC::CARRY, PPC::XER, }; // CARRYRC Bit set. const uint8_t CARRYRCBits[] = { 0x04, 0x02, }; // CTRRC Register Class... const MCPhysReg CTRRC[] = { PPC::CTR, }; // CTRRC Bit set. const uint8_t CTRRCBits[] = { 0x08, }; // VRSAVERC Register Class... const MCPhysReg VRSAVERC[] = { PPC::VRSAVE, }; // VRSAVERC Bit set. const uint8_t VRSAVERCBits[] = { 0x00, 0x01, }; // SPILLTOVSRRC Register Class... const MCPhysReg SPILLTOVSRRC[] = { PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X0, PPC::X1, PPC::FP8, PPC::BP8, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, }; // SPILLTOVSRRC Bit set. const uint8_t SPILLTOVSRRCBits[] = { 0x00, 0x08, 0xe0, 0xff, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // VSFRC Register Class... const MCPhysReg VSFRC[] = { PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, PPC::VF31, PPC::VF30, PPC::VF29, PPC::VF28, PPC::VF27, PPC::VF26, PPC::VF25, PPC::VF24, PPC::VF23, PPC::VF22, PPC::VF21, PPC::VF20, }; // VSFRC Bit set. const uint8_t VSFRCBits[] = { 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // G8RC Register Class... const MCPhysReg G8RC[] = { PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X0, PPC::X1, PPC::FP8, PPC::BP8, }; // G8RC Bit set. const uint8_t G8RCBits[] = { 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // G8RC_NOX0 Register Class... const MCPhysReg G8RC_NOX0[] = { PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, PPC::ZERO8, }; // G8RC_NOX0 Bit set. const uint8_t G8RC_NOX0Bits[] = { 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, }; // SPILLTOVSRRC_and_VSFRC Register Class... const MCPhysReg SPILLTOVSRRC_and_VSFRC[] = { PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, }; // SPILLTOVSRRC_and_VSFRC Bit set. const uint8_t SPILLTOVSRRC_and_VSFRCBits[] = { 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, }; // G8RC_and_G8RC_NOX0 Register Class... const MCPhysReg G8RC_and_G8RC_NOX0[] = { PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, }; // G8RC_and_G8RC_NOX0 Bit set. const uint8_t G8RC_and_G8RC_NOX0Bits[] = { 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, }; // F8RC Register Class... const MCPhysReg F8RC[] = { PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, }; // F8RC Bit set. const uint8_t F8RCBits[] = { 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, }; // SPERC Register Class... const MCPhysReg SPERC[] = { PPC::S2, PPC::S3, PPC::S4, PPC::S5, PPC::S6, PPC::S7, PPC::S8, PPC::S9, PPC::S10, PPC::S11, PPC::S12, PPC::S30, PPC::S29, PPC::S28, PPC::S27, PPC::S26, PPC::S25, PPC::S24, PPC::S23, PPC::S22, PPC::S21, PPC::S20, PPC::S19, PPC::S18, PPC::S17, PPC::S16, PPC::S15, PPC::S14, PPC::S13, PPC::S31, PPC::S0, PPC::S1, }; // SPERC Bit set. const uint8_t SPERCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // VFRC Register Class... const MCPhysReg VFRC[] = { PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, PPC::VF31, PPC::VF30, PPC::VF29, PPC::VF28, PPC::VF27, PPC::VF26, PPC::VF25, PPC::VF24, PPC::VF23, PPC::VF22, PPC::VF21, PPC::VF20, }; // VFRC Bit set. const uint8_t VFRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // SPERC_with_sub_32_in_GPRC_NOR0 Register Class... const MCPhysReg SPERC_with_sub_32_in_GPRC_NOR0[] = { PPC::S2, PPC::S3, PPC::S4, PPC::S5, PPC::S6, PPC::S7, PPC::S8, PPC::S9, PPC::S10, PPC::S11, PPC::S12, PPC::S30, PPC::S29, PPC::S28, PPC::S27, PPC::S26, PPC::S25, PPC::S24, PPC::S23, PPC::S22, PPC::S21, PPC::S20, PPC::S19, PPC::S18, PPC::S17, PPC::S16, PPC::S15, PPC::S14, PPC::S13, PPC::S31, PPC::S1, }; // SPERC_with_sub_32_in_GPRC_NOR0 Bit set. const uint8_t SPERC_with_sub_32_in_GPRC_NOR0Bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, }; // SPILLTOVSRRC_and_VFRC Register Class... const MCPhysReg SPILLTOVSRRC_and_VFRC[] = { PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, }; // SPILLTOVSRRC_and_VFRC Bit set. const uint8_t SPILLTOVSRRC_and_VFRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, }; // SPILLTOVSRRC_and_F4RC Register Class... const MCPhysReg SPILLTOVSRRC_and_F4RC[] = { PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, }; // SPILLTOVSRRC_and_F4RC Bit set. const uint8_t SPILLTOVSRRC_and_F4RCBits[] = { 0x00, 0x00, 0xe0, 0xff, 0x07, }; // CTRRC8 Register Class... const MCPhysReg CTRRC8[] = { PPC::CTR8, }; // CTRRC8 Bit set. const uint8_t CTRRC8Bits[] = { 0x00, 0x00, 0x10, }; // VSRC Register Class... const MCPhysReg VSRC[] = { PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::VSL31, PPC::VSL30, PPC::VSL29, PPC::VSL28, PPC::VSL27, PPC::VSL26, PPC::VSL25, PPC::VSL24, PPC::VSL23, PPC::VSL22, PPC::VSL21, PPC::VSL20, PPC::VSL19, PPC::VSL18, PPC::VSL17, PPC::VSL16, PPC::VSL15, PPC::VSL14, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V31, PPC::V30, PPC::V29, PPC::V28, PPC::V27, PPC::V26, PPC::V25, PPC::V24, PPC::V23, PPC::V22, PPC::V21, PPC::V20, }; // VSRC Bit set. const uint8_t VSRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // VSRC_with_sub_64_in_SPILLTOVSRRC Register Class... const MCPhysReg VSRC_with_sub_64_in_SPILLTOVSRRC[] = { PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, }; // VSRC_with_sub_64_in_SPILLTOVSRRC Bit set. const uint8_t VSRC_with_sub_64_in_SPILLTOVSRRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, }; // QSRC Register Class... const MCPhysReg QSRC[] = { PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, PPC::QF31, PPC::QF30, PPC::QF29, PPC::QF28, PPC::QF27, PPC::QF26, PPC::QF25, PPC::QF24, PPC::QF23, PPC::QF22, PPC::QF21, PPC::QF20, PPC::QF19, PPC::QF18, PPC::QF17, PPC::QF16, PPC::QF15, PPC::QF14, }; // QSRC Bit set. const uint8_t QSRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // VRRC Register Class... const MCPhysReg VRRC[] = { PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V31, PPC::V30, PPC::V29, PPC::V28, PPC::V27, PPC::V26, PPC::V25, PPC::V24, PPC::V23, PPC::V22, PPC::V21, PPC::V20, }; // VRRC Bit set. const uint8_t VRRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // VSLRC Register Class... const MCPhysReg VSLRC[] = { PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::VSL31, PPC::VSL30, PPC::VSL29, PPC::VSL28, PPC::VSL27, PPC::VSL26, PPC::VSL25, PPC::VSL24, PPC::VSL23, PPC::VSL22, PPC::VSL21, PPC::VSL20, PPC::VSL19, PPC::VSL18, PPC::VSL17, PPC::VSL16, PPC::VSL15, PPC::VSL14, }; // VSLRC Bit set. const uint8_t VSLRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // VRRC_with_sub_64_in_SPILLTOVSRRC Register Class... const MCPhysReg VRRC_with_sub_64_in_SPILLTOVSRRC[] = { PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, }; // VRRC_with_sub_64_in_SPILLTOVSRRC Bit set. const uint8_t VRRC_with_sub_64_in_SPILLTOVSRRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, }; // QSRC_with_sub_64_in_SPILLTOVSRRC Register Class... const MCPhysReg QSRC_with_sub_64_in_SPILLTOVSRRC[] = { PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, }; // QSRC_with_sub_64_in_SPILLTOVSRRC Bit set. const uint8_t QSRC_with_sub_64_in_SPILLTOVSRRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, }; // VSLRC_with_sub_64_in_SPILLTOVSRRC Register Class... const MCPhysReg VSLRC_with_sub_64_in_SPILLTOVSRRC[] = { PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, }; // VSLRC_with_sub_64_in_SPILLTOVSRRC Bit set. const uint8_t VSLRC_with_sub_64_in_SPILLTOVSRRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, }; // QBRC Register Class... const MCPhysReg QBRC[] = { PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, PPC::QF31, PPC::QF30, PPC::QF29, PPC::QF28, PPC::QF27, PPC::QF26, PPC::QF25, PPC::QF24, PPC::QF23, PPC::QF22, PPC::QF21, PPC::QF20, PPC::QF19, PPC::QF18, PPC::QF17, PPC::QF16, PPC::QF15, PPC::QF14, }; // QBRC Bit set. const uint8_t QBRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // QFRC Register Class... const MCPhysReg QFRC[] = { PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, PPC::QF31, PPC::QF30, PPC::QF29, PPC::QF28, PPC::QF27, PPC::QF26, PPC::QF25, PPC::QF24, PPC::QF23, PPC::QF22, PPC::QF21, PPC::QF20, PPC::QF19, PPC::QF18, PPC::QF17, PPC::QF16, PPC::QF15, PPC::QF14, }; // QFRC Bit set. const uint8_t QFRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, }; // QBRC_with_sub_64_in_SPILLTOVSRRC Register Class... const MCPhysReg QBRC_with_sub_64_in_SPILLTOVSRRC[] = { PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, }; // QBRC_with_sub_64_in_SPILLTOVSRRC Bit set. const uint8_t QBRC_with_sub_64_in_SPILLTOVSRRCBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, }; } // end anonymous namespace extern const char PPCRegClassStrings[] = { /* 0 */ 'G', 'P', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'C', '_', 'N', 'O', 'R', '0', 0, /* 19 */ 'S', 'P', 'E', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'C', '_', 'N', 'O', 'R', '0', 0, /* 50 */ 'G', '8', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', '8', 'R', 'C', '_', 'N', 'O', 'X', '0', 0, /* 69 */ 'C', 'T', 'R', 'R', 'C', '8', 0, /* 76 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'F', '4', 'R', 'C', 0, /* 98 */ 'F', '8', 'R', 'C', 0, /* 103 */ 'G', '8', 'R', 'C', 0, /* 108 */ 'Q', 'B', 'R', 'C', 0, /* 113 */ 'S', 'P', 'E', 'R', 'C', 0, /* 119 */ 'V', 'R', 'S', 'A', 'V', 'E', 'R', 'C', 0, /* 128 */ 'Q', 'F', 'R', 'C', 0, /* 133 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'V', 'S', 'F', 'R', 'C', 0, /* 156 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'V', 'F', 'R', 'C', 0, /* 178 */ 'V', 'S', 'L', 'R', 'C', 0, /* 184 */ 'G', 'P', 'R', 'C', 0, /* 189 */ 'C', 'R', 'R', 'C', 0, /* 194 */ 'Q', 'B', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0, /* 227 */ 'V', 'S', 'L', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0, /* 261 */ 'V', 'R', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0, /* 294 */ 'Q', 'S', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0, /* 327 */ 'V', 'S', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0, /* 360 */ 'C', 'T', 'R', 'R', 'C', 0, /* 366 */ 'V', 'R', 'R', 'C', 0, /* 371 */ 'Q', 'S', 'R', 'C', 0, /* 376 */ 'V', 'S', 'S', 'R', 'C', 0, /* 382 */ 'V', 'S', 'R', 'C', 0, /* 387 */ 'C', 'R', 'B', 'I', 'T', 'R', 'C', 0, /* 395 */ 'C', 'A', 'R', 'R', 'Y', 'R', 'C', 0, }; extern const MCRegisterClass PPCMCRegisterClasses[] = { { VSSRC, VSSRCBits, 376, 64, sizeof(VSSRCBits), PPC::VSSRCRegClassID, 1, true }, { GPRC, GPRCBits, 184, 34, sizeof(GPRCBits), PPC::GPRCRegClassID, 1, true }, { GPRC_NOR0, GPRC_NOR0Bits, 9, 34, sizeof(GPRC_NOR0Bits), PPC::GPRC_NOR0RegClassID, 1, true }, { GPRC_and_GPRC_NOR0, GPRC_and_GPRC_NOR0Bits, 0, 33, sizeof(GPRC_and_GPRC_NOR0Bits), PPC::GPRC_and_GPRC_NOR0RegClassID, 1, true }, { CRBITRC, CRBITRCBits, 387, 32, sizeof(CRBITRCBits), PPC::CRBITRCRegClassID, 1, true }, { F4RC, F4RCBits, 93, 32, sizeof(F4RCBits), PPC::F4RCRegClassID, 1, true }, { CRRC, CRRCBits, 189, 8, sizeof(CRRCBits), PPC::CRRCRegClassID, 1, true }, { CARRYRC, CARRYRCBits, 395, 2, sizeof(CARRYRCBits), PPC::CARRYRCRegClassID, -1, true }, { CTRRC, CTRRCBits, 360, 1, sizeof(CTRRCBits), PPC::CTRRCRegClassID, 1, false }, { VRSAVERC, VRSAVERCBits, 119, 1, sizeof(VRSAVERCBits), PPC::VRSAVERCRegClassID, 1, true }, { SPILLTOVSRRC, SPILLTOVSRRCBits, 214, 68, sizeof(SPILLTOVSRRCBits), PPC::SPILLTOVSRRCRegClassID, 1, true }, { VSFRC, VSFRCBits, 150, 64, sizeof(VSFRCBits), PPC::VSFRCRegClassID, 1, true }, { G8RC, G8RCBits, 103, 34, sizeof(G8RCBits), PPC::G8RCRegClassID, 1, true }, { G8RC_NOX0, G8RC_NOX0Bits, 59, 34, sizeof(G8RC_NOX0Bits), PPC::G8RC_NOX0RegClassID, 1, true }, { SPILLTOVSRRC_and_VSFRC, SPILLTOVSRRC_and_VSFRCBits, 133, 34, sizeof(SPILLTOVSRRC_and_VSFRCBits), PPC::SPILLTOVSRRC_and_VSFRCRegClassID, 1, true }, { G8RC_and_G8RC_NOX0, G8RC_and_G8RC_NOX0Bits, 50, 33, sizeof(G8RC_and_G8RC_NOX0Bits), PPC::G8RC_and_G8RC_NOX0RegClassID, 1, true }, { F8RC, F8RCBits, 98, 32, sizeof(F8RCBits), PPC::F8RCRegClassID, 1, true }, { SPERC, SPERCBits, 113, 32, sizeof(SPERCBits), PPC::SPERCRegClassID, 1, true }, { VFRC, VFRCBits, 173, 32, sizeof(VFRCBits), PPC::VFRCRegClassID, 1, true }, { SPERC_with_sub_32_in_GPRC_NOR0, SPERC_with_sub_32_in_GPRC_NOR0Bits, 19, 31, sizeof(SPERC_with_sub_32_in_GPRC_NOR0Bits), PPC::SPERC_with_sub_32_in_GPRC_NOR0RegClassID, 1, true }, { SPILLTOVSRRC_and_VFRC, SPILLTOVSRRC_and_VFRCBits, 156, 20, sizeof(SPILLTOVSRRC_and_VFRCBits), PPC::SPILLTOVSRRC_and_VFRCRegClassID, 1, true }, { SPILLTOVSRRC_and_F4RC, SPILLTOVSRRC_and_F4RCBits, 76, 14, sizeof(SPILLTOVSRRC_and_F4RCBits), PPC::SPILLTOVSRRC_and_F4RCRegClassID, 1, true }, { CTRRC8, CTRRC8Bits, 69, 1, sizeof(CTRRC8Bits), PPC::CTRRC8RegClassID, 1, false }, { VSRC, VSRCBits, 382, 64, sizeof(VSRCBits), PPC::VSRCRegClassID, 1, true }, { VSRC_with_sub_64_in_SPILLTOVSRRC, VSRC_with_sub_64_in_SPILLTOVSRRCBits, 327, 34, sizeof(VSRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true }, { QSRC, QSRCBits, 371, 32, sizeof(QSRCBits), PPC::QSRCRegClassID, 1, true }, { VRRC, VRRCBits, 366, 32, sizeof(VRRCBits), PPC::VRRCRegClassID, 1, true }, { VSLRC, VSLRCBits, 178, 32, sizeof(VSLRCBits), PPC::VSLRCRegClassID, 1, true }, { VRRC_with_sub_64_in_SPILLTOVSRRC, VRRC_with_sub_64_in_SPILLTOVSRRCBits, 261, 20, sizeof(VRRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true }, { QSRC_with_sub_64_in_SPILLTOVSRRC, QSRC_with_sub_64_in_SPILLTOVSRRCBits, 294, 14, sizeof(QSRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true }, { VSLRC_with_sub_64_in_SPILLTOVSRRC, VSLRC_with_sub_64_in_SPILLTOVSRRCBits, 227, 14, sizeof(VSLRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true }, { QBRC, QBRCBits, 108, 32, sizeof(QBRCBits), PPC::QBRCRegClassID, 1, true }, { QFRC, QFRCBits, 128, 32, sizeof(QFRCBits), PPC::QFRCRegClassID, 1, true }, { QBRC_with_sub_64_in_SPILLTOVSRRC, QBRC_with_sub_64_in_SPILLTOVSRRCBits, 194, 14, sizeof(QBRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true }, }; // PPC Dwarf<->LLVM register mappings. extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[] = { { 0U, PPC::X0 }, { 1U, PPC::X1 }, { 2U, PPC::X2 }, { 3U, PPC::X3 }, { 4U, PPC::X4 }, { 5U, PPC::X5 }, { 6U, PPC::X6 }, { 7U, PPC::X7 }, { 8U, PPC::X8 }, { 9U, PPC::X9 }, { 10U, PPC::X10 }, { 11U, PPC::X11 }, { 12U, PPC::X12 }, { 13U, PPC::X13 }, { 14U, PPC::X14 }, { 15U, PPC::X15 }, { 16U, PPC::X16 }, { 17U, PPC::X17 }, { 18U, PPC::X18 }, { 19U, PPC::X19 }, { 20U, PPC::X20 }, { 21U, PPC::X21 }, { 22U, PPC::X22 }, { 23U, PPC::X23 }, { 24U, PPC::X24 }, { 25U, PPC::X25 }, { 26U, PPC::X26 }, { 27U, PPC::X27 }, { 28U, PPC::X28 }, { 29U, PPC::X29 }, { 30U, PPC::X30 }, { 31U, PPC::X31 }, { 32U, PPC::QF0 }, { 33U, PPC::QF1 }, { 34U, PPC::QF2 }, { 35U, PPC::QF3 }, { 36U, PPC::QF4 }, { 37U, PPC::QF5 }, { 38U, PPC::QF6 }, { 39U, PPC::QF7 }, { 40U, PPC::QF8 }, { 41U, PPC::QF9 }, { 42U, PPC::QF10 }, { 43U, PPC::QF11 }, { 44U, PPC::QF12 }, { 45U, PPC::QF13 }, { 46U, PPC::QF14 }, { 47U, PPC::QF15 }, { 48U, PPC::QF16 }, { 49U, PPC::QF17 }, { 50U, PPC::QF18 }, { 51U, PPC::QF19 }, { 52U, PPC::QF20 }, { 53U, PPC::QF21 }, { 54U, PPC::QF22 }, { 55U, PPC::QF23 }, { 56U, PPC::QF24 }, { 57U, PPC::QF25 }, { 58U, PPC::QF26 }, { 59U, PPC::QF27 }, { 60U, PPC::QF28 }, { 61U, PPC::QF29 }, { 62U, PPC::QF30 }, { 63U, PPC::QF31 }, { 65U, PPC::LR8 }, { 66U, PPC::CTR8 }, { 68U, PPC::CR0 }, { 69U, PPC::CR1 }, { 70U, PPC::CR2 }, { 71U, PPC::CR3 }, { 72U, PPC::CR4 }, { 73U, PPC::CR5 }, { 74U, PPC::CR6 }, { 75U, PPC::CR7 }, { 76U, PPC::XER }, { 77U, PPC::VF0 }, { 78U, PPC::VF1 }, { 79U, PPC::VF2 }, { 80U, PPC::VF3 }, { 81U, PPC::VF4 }, { 82U, PPC::VF5 }, { 83U, PPC::VF6 }, { 84U, PPC::VF7 }, { 85U, PPC::VF8 }, { 86U, PPC::VF9 }, { 87U, PPC::VF10 }, { 88U, PPC::VF11 }, { 89U, PPC::VF12 }, { 90U, PPC::VF13 }, { 91U, PPC::VF14 }, { 92U, PPC::VF15 }, { 93U, PPC::VF16 }, { 94U, PPC::VF17 }, { 95U, PPC::VF18 }, { 96U, PPC::VF19 }, { 97U, PPC::VF20 }, { 98U, PPC::VF21 }, { 99U, PPC::VF22 }, { 100U, PPC::VF23 }, { 101U, PPC::VF24 }, { 102U, PPC::VF25 }, { 103U, PPC::VF26 }, { 104U, PPC::VF27 }, { 105U, PPC::VF28 }, { 106U, PPC::VF29 }, { 107U, PPC::VF30 }, { 108U, PPC::VF31 }, { 109U, PPC::VRSAVE }, { 612U, PPC::SPEFSCR }, { 1200U, PPC::S0 }, { 1201U, PPC::S1 }, { 1202U, PPC::S2 }, { 1203U, PPC::S3 }, { 1204U, PPC::S4 }, { 1205U, PPC::S5 }, { 1206U, PPC::S6 }, { 1207U, PPC::S7 }, { 1208U, PPC::S8 }, { 1209U, PPC::S9 }, { 1210U, PPC::S10 }, { 1211U, PPC::S11 }, { 1212U, PPC::S12 }, { 1213U, PPC::S13 }, { 1214U, PPC::S14 }, { 1215U, PPC::S15 }, { 1216U, PPC::S16 }, { 1217U, PPC::S17 }, { 1218U, PPC::S18 }, { 1219U, PPC::S19 }, { 1220U, PPC::S20 }, { 1221U, PPC::S21 }, { 1222U, PPC::S22 }, { 1223U, PPC::S23 }, { 1224U, PPC::S24 }, { 1225U, PPC::S25 }, { 1226U, PPC::S26 }, { 1227U, PPC::S27 }, { 1228U, PPC::S28 }, { 1229U, PPC::S29 }, { 1230U, PPC::S30 }, { 1231U, PPC::S31 }, }; extern const unsigned PPCDwarfFlavour0Dwarf2LSize = array_lengthof(PPCDwarfFlavour0Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[] = { { 0U, PPC::R0 }, { 1U, PPC::R1 }, { 2U, PPC::R2 }, { 3U, PPC::R3 }, { 4U, PPC::R4 }, { 5U, PPC::R5 }, { 6U, PPC::R6 }, { 7U, PPC::R7 }, { 8U, PPC::R8 }, { 9U, PPC::R9 }, { 10U, PPC::R10 }, { 11U, PPC::R11 }, { 12U, PPC::R12 }, { 13U, PPC::R13 }, { 14U, PPC::R14 }, { 15U, PPC::R15 }, { 16U, PPC::R16 }, { 17U, PPC::R17 }, { 18U, PPC::R18 }, { 19U, PPC::R19 }, { 20U, PPC::R20 }, { 21U, PPC::R21 }, { 22U, PPC::R22 }, { 23U, PPC::R23 }, { 24U, PPC::R24 }, { 25U, PPC::R25 }, { 26U, PPC::R26 }, { 27U, PPC::R27 }, { 28U, PPC::R28 }, { 29U, PPC::R29 }, { 30U, PPC::R30 }, { 31U, PPC::R31 }, { 32U, PPC::QF0 }, { 33U, PPC::QF1 }, { 34U, PPC::QF2 }, { 35U, PPC::QF3 }, { 36U, PPC::QF4 }, { 37U, PPC::QF5 }, { 38U, PPC::QF6 }, { 39U, PPC::QF7 }, { 40U, PPC::QF8 }, { 41U, PPC::QF9 }, { 42U, PPC::QF10 }, { 43U, PPC::QF11 }, { 44U, PPC::QF12 }, { 45U, PPC::QF13 }, { 46U, PPC::QF14 }, { 47U, PPC::QF15 }, { 48U, PPC::QF16 }, { 49U, PPC::QF17 }, { 50U, PPC::QF18 }, { 51U, PPC::QF19 }, { 52U, PPC::QF20 }, { 53U, PPC::QF21 }, { 54U, PPC::QF22 }, { 55U, PPC::QF23 }, { 56U, PPC::QF24 }, { 57U, PPC::QF25 }, { 58U, PPC::QF26 }, { 59U, PPC::QF27 }, { 60U, PPC::QF28 }, { 61U, PPC::QF29 }, { 62U, PPC::QF30 }, { 63U, PPC::QF31 }, { 65U, PPC::LR }, { 66U, PPC::CTR }, { 68U, PPC::CR0 }, { 69U, PPC::CR1 }, { 70U, PPC::CR2 }, { 71U, PPC::CR3 }, { 72U, PPC::CR4 }, { 73U, PPC::CR5 }, { 74U, PPC::CR6 }, { 75U, PPC::CR7 }, { 77U, PPC::VF0 }, { 78U, PPC::VF1 }, { 79U, PPC::VF2 }, { 80U, PPC::VF3 }, { 81U, PPC::VF4 }, { 82U, PPC::VF5 }, { 83U, PPC::VF6 }, { 84U, PPC::VF7 }, { 85U, PPC::VF8 }, { 86U, PPC::VF9 }, { 87U, PPC::VF10 }, { 88U, PPC::VF11 }, { 89U, PPC::VF12 }, { 90U, PPC::VF13 }, { 91U, PPC::VF14 }, { 92U, PPC::VF15 }, { 93U, PPC::VF16 }, { 94U, PPC::VF17 }, { 95U, PPC::VF18 }, { 96U, PPC::VF19 }, { 97U, PPC::VF20 }, { 98U, PPC::VF21 }, { 99U, PPC::VF22 }, { 100U, PPC::VF23 }, { 101U, PPC::VF24 }, { 102U, PPC::VF25 }, { 103U, PPC::VF26 }, { 104U, PPC::VF27 }, { 105U, PPC::VF28 }, { 106U, PPC::VF29 }, { 107U, PPC::VF30 }, { 108U, PPC::VF31 }, { 112U, PPC::SPEFSCR }, { 1200U, PPC::S0 }, { 1201U, PPC::S1 }, { 1202U, PPC::S2 }, { 1203U, PPC::S3 }, { 1204U, PPC::S4 }, { 1205U, PPC::S5 }, { 1206U, PPC::S6 }, { 1207U, PPC::S7 }, { 1208U, PPC::S8 }, { 1209U, PPC::S9 }, { 1210U, PPC::S10 }, { 1211U, PPC::S11 }, { 1212U, PPC::S12 }, { 1213U, PPC::S13 }, { 1214U, PPC::S14 }, { 1215U, PPC::S15 }, { 1216U, PPC::S16 }, { 1217U, PPC::S17 }, { 1218U, PPC::S18 }, { 1219U, PPC::S19 }, { 1220U, PPC::S20 }, { 1221U, PPC::S21 }, { 1222U, PPC::S22 }, { 1223U, PPC::S23 }, { 1224U, PPC::S24 }, { 1225U, PPC::S25 }, { 1226U, PPC::S26 }, { 1227U, PPC::S27 }, { 1228U, PPC::S28 }, { 1229U, PPC::S29 }, { 1230U, PPC::S30 }, { 1231U, PPC::S31 }, }; extern const unsigned PPCDwarfFlavour1Dwarf2LSize = array_lengthof(PPCDwarfFlavour1Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[] = { { 0U, PPC::X0 }, { 1U, PPC::X1 }, { 2U, PPC::X2 }, { 3U, PPC::X3 }, { 4U, PPC::X4 }, { 5U, PPC::X5 }, { 6U, PPC::X6 }, { 7U, PPC::X7 }, { 8U, PPC::X8 }, { 9U, PPC::X9 }, { 10U, PPC::X10 }, { 11U, PPC::X11 }, { 12U, PPC::X12 }, { 13U, PPC::X13 }, { 14U, PPC::X14 }, { 15U, PPC::X15 }, { 16U, PPC::X16 }, { 17U, PPC::X17 }, { 18U, PPC::X18 }, { 19U, PPC::X19 }, { 20U, PPC::X20 }, { 21U, PPC::X21 }, { 22U, PPC::X22 }, { 23U, PPC::X23 }, { 24U, PPC::X24 }, { 25U, PPC::X25 }, { 26U, PPC::X26 }, { 27U, PPC::X27 }, { 28U, PPC::X28 }, { 29U, PPC::X29 }, { 30U, PPC::X30 }, { 31U, PPC::X31 }, { 32U, PPC::QF0 }, { 33U, PPC::QF1 }, { 34U, PPC::QF2 }, { 35U, PPC::QF3 }, { 36U, PPC::QF4 }, { 37U, PPC::QF5 }, { 38U, PPC::QF6 }, { 39U, PPC::QF7 }, { 40U, PPC::QF8 }, { 41U, PPC::QF9 }, { 42U, PPC::QF10 }, { 43U, PPC::QF11 }, { 44U, PPC::QF12 }, { 45U, PPC::QF13 }, { 46U, PPC::QF14 }, { 47U, PPC::QF15 }, { 48U, PPC::QF16 }, { 49U, PPC::QF17 }, { 50U, PPC::QF18 }, { 51U, PPC::QF19 }, { 52U, PPC::QF20 }, { 53U, PPC::QF21 }, { 54U, PPC::QF22 }, { 55U, PPC::QF23 }, { 56U, PPC::QF24 }, { 57U, PPC::QF25 }, { 58U, PPC::QF26 }, { 59U, PPC::QF27 }, { 60U, PPC::QF28 }, { 61U, PPC::QF29 }, { 62U, PPC::QF30 }, { 63U, PPC::QF31 }, { 65U, PPC::LR8 }, { 66U, PPC::CTR8 }, { 68U, PPC::CR0 }, { 69U, PPC::CR1 }, { 70U, PPC::CR2 }, { 71U, PPC::CR3 }, { 72U, PPC::CR4 }, { 73U, PPC::CR5 }, { 74U, PPC::CR6 }, { 75U, PPC::CR7 }, { 76U, PPC::XER }, { 77U, PPC::VF0 }, { 78U, PPC::VF1 }, { 79U, PPC::VF2 }, { 80U, PPC::VF3 }, { 81U, PPC::VF4 }, { 82U, PPC::VF5 }, { 83U, PPC::VF6 }, { 84U, PPC::VF7 }, { 85U, PPC::VF8 }, { 86U, PPC::VF9 }, { 87U, PPC::VF10 }, { 88U, PPC::VF11 }, { 89U, PPC::VF12 }, { 90U, PPC::VF13 }, { 91U, PPC::VF14 }, { 92U, PPC::VF15 }, { 93U, PPC::VF16 }, { 94U, PPC::VF17 }, { 95U, PPC::VF18 }, { 96U, PPC::VF19 }, { 97U, PPC::VF20 }, { 98U, PPC::VF21 }, { 99U, PPC::VF22 }, { 100U, PPC::VF23 }, { 101U, PPC::VF24 }, { 102U, PPC::VF25 }, { 103U, PPC::VF26 }, { 104U, PPC::VF27 }, { 105U, PPC::VF28 }, { 106U, PPC::VF29 }, { 107U, PPC::VF30 }, { 108U, PPC::VF31 }, { 109U, PPC::VRSAVE }, { 612U, PPC::SPEFSCR }, { 1200U, PPC::S0 }, { 1201U, PPC::S1 }, { 1202U, PPC::S2 }, { 1203U, PPC::S3 }, { 1204U, PPC::S4 }, { 1205U, PPC::S5 }, { 1206U, PPC::S6 }, { 1207U, PPC::S7 }, { 1208U, PPC::S8 }, { 1209U, PPC::S9 }, { 1210U, PPC::S10 }, { 1211U, PPC::S11 }, { 1212U, PPC::S12 }, { 1213U, PPC::S13 }, { 1214U, PPC::S14 }, { 1215U, PPC::S15 }, { 1216U, PPC::S16 }, { 1217U, PPC::S17 }, { 1218U, PPC::S18 }, { 1219U, PPC::S19 }, { 1220U, PPC::S20 }, { 1221U, PPC::S21 }, { 1222U, PPC::S22 }, { 1223U, PPC::S23 }, { 1224U, PPC::S24 }, { 1225U, PPC::S25 }, { 1226U, PPC::S26 }, { 1227U, PPC::S27 }, { 1228U, PPC::S28 }, { 1229U, PPC::S29 }, { 1230U, PPC::S30 }, { 1231U, PPC::S31 }, }; extern const unsigned PPCEHFlavour0Dwarf2LSize = array_lengthof(PPCEHFlavour0Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[] = { { 0U, PPC::R0 }, { 1U, PPC::R1 }, { 2U, PPC::R2 }, { 3U, PPC::R3 }, { 4U, PPC::R4 }, { 5U, PPC::R5 }, { 6U, PPC::R6 }, { 7U, PPC::R7 }, { 8U, PPC::R8 }, { 9U, PPC::R9 }, { 10U, PPC::R10 }, { 11U, PPC::R11 }, { 12U, PPC::R12 }, { 13U, PPC::R13 }, { 14U, PPC::R14 }, { 15U, PPC::R15 }, { 16U, PPC::R16 }, { 17U, PPC::R17 }, { 18U, PPC::R18 }, { 19U, PPC::R19 }, { 20U, PPC::R20 }, { 21U, PPC::R21 }, { 22U, PPC::R22 }, { 23U, PPC::R23 }, { 24U, PPC::R24 }, { 25U, PPC::R25 }, { 26U, PPC::R26 }, { 27U, PPC::R27 }, { 28U, PPC::R28 }, { 29U, PPC::R29 }, { 30U, PPC::R30 }, { 31U, PPC::R31 }, { 32U, PPC::QF0 }, { 33U, PPC::QF1 }, { 34U, PPC::QF2 }, { 35U, PPC::QF3 }, { 36U, PPC::QF4 }, { 37U, PPC::QF5 }, { 38U, PPC::QF6 }, { 39U, PPC::QF7 }, { 40U, PPC::QF8 }, { 41U, PPC::QF9 }, { 42U, PPC::QF10 }, { 43U, PPC::QF11 }, { 44U, PPC::QF12 }, { 45U, PPC::QF13 }, { 46U, PPC::QF14 }, { 47U, PPC::QF15 }, { 48U, PPC::QF16 }, { 49U, PPC::QF17 }, { 50U, PPC::QF18 }, { 51U, PPC::QF19 }, { 52U, PPC::QF20 }, { 53U, PPC::QF21 }, { 54U, PPC::QF22 }, { 55U, PPC::QF23 }, { 56U, PPC::QF24 }, { 57U, PPC::QF25 }, { 58U, PPC::QF26 }, { 59U, PPC::QF27 }, { 60U, PPC::QF28 }, { 61U, PPC::QF29 }, { 62U, PPC::QF30 }, { 63U, PPC::QF31 }, { 65U, PPC::LR }, { 66U, PPC::CTR }, { 68U, PPC::CR0 }, { 69U, PPC::CR1 }, { 70U, PPC::CR2 }, { 71U, PPC::CR3 }, { 72U, PPC::CR4 }, { 73U, PPC::CR5 }, { 74U, PPC::CR6 }, { 75U, PPC::CR7 }, { 77U, PPC::VF0 }, { 78U, PPC::VF1 }, { 79U, PPC::VF2 }, { 80U, PPC::VF3 }, { 81U, PPC::VF4 }, { 82U, PPC::VF5 }, { 83U, PPC::VF6 }, { 84U, PPC::VF7 }, { 85U, PPC::VF8 }, { 86U, PPC::VF9 }, { 87U, PPC::VF10 }, { 88U, PPC::VF11 }, { 89U, PPC::VF12 }, { 90U, PPC::VF13 }, { 91U, PPC::VF14 }, { 92U, PPC::VF15 }, { 93U, PPC::VF16 }, { 94U, PPC::VF17 }, { 95U, PPC::VF18 }, { 96U, PPC::VF19 }, { 97U, PPC::VF20 }, { 98U, PPC::VF21 }, { 99U, PPC::VF22 }, { 100U, PPC::VF23 }, { 101U, PPC::VF24 }, { 102U, PPC::VF25 }, { 103U, PPC::VF26 }, { 104U, PPC::VF27 }, { 105U, PPC::VF28 }, { 106U, PPC::VF29 }, { 107U, PPC::VF30 }, { 108U, PPC::VF31 }, { 112U, PPC::SPEFSCR }, { 1200U, PPC::S0 }, { 1201U, PPC::S1 }, { 1202U, PPC::S2 }, { 1203U, PPC::S3 }, { 1204U, PPC::S4 }, { 1205U, PPC::S5 }, { 1206U, PPC::S6 }, { 1207U, PPC::S7 }, { 1208U, PPC::S8 }, { 1209U, PPC::S9 }, { 1210U, PPC::S10 }, { 1211U, PPC::S11 }, { 1212U, PPC::S12 }, { 1213U, PPC::S13 }, { 1214U, PPC::S14 }, { 1215U, PPC::S15 }, { 1216U, PPC::S16 }, { 1217U, PPC::S17 }, { 1218U, PPC::S18 }, { 1219U, PPC::S19 }, { 1220U, PPC::S20 }, { 1221U, PPC::S21 }, { 1222U, PPC::S22 }, { 1223U, PPC::S23 }, { 1224U, PPC::S24 }, { 1225U, PPC::S25 }, { 1226U, PPC::S26 }, { 1227U, PPC::S27 }, { 1228U, PPC::S28 }, { 1229U, PPC::S29 }, { 1230U, PPC::S30 }, { 1231U, PPC::S31 }, }; extern const unsigned PPCEHFlavour1Dwarf2LSize = array_lengthof(PPCEHFlavour1Dwarf2L); extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[] = { { PPC::CARRY, 76U }, { PPC::CTR, -2U }, { PPC::LR, -2U }, { PPC::SPEFSCR, 612U }, { PPC::VRSAVE, 109U }, { PPC::XER, 76U }, { PPC::ZERO, -2U }, { PPC::CR0, 68U }, { PPC::CR1, 69U }, { PPC::CR2, 70U }, { PPC::CR3, 71U }, { PPC::CR4, 72U }, { PPC::CR5, 73U }, { PPC::CR6, 74U }, { PPC::CR7, 75U }, { PPC::CTR8, 66U }, { PPC::F0, 32U }, { PPC::F1, 33U }, { PPC::F2, 34U }, { PPC::F3, 35U }, { PPC::F4, 36U }, { PPC::F5, 37U }, { PPC::F6, 38U }, { PPC::F7, 39U }, { PPC::F8, 40U }, { PPC::F9, 41U }, { PPC::F10, 42U }, { PPC::F11, 43U }, { PPC::F12, 44U }, { PPC::F13, 45U }, { PPC::F14, 46U }, { PPC::F15, 47U }, { PPC::F16, 48U }, { PPC::F17, 49U }, { PPC::F18, 50U }, { PPC::F19, 51U }, { PPC::F20, 52U }, { PPC::F21, 53U }, { PPC::F22, 54U }, { PPC::F23, 55U }, { PPC::F24, 56U }, { PPC::F25, 57U }, { PPC::F26, 58U }, { PPC::F27, 59U }, { PPC::F28, 60U }, { PPC::F29, 61U }, { PPC::F30, 62U }, { PPC::F31, 63U }, { PPC::LR8, 65U }, { PPC::QF0, 32U }, { PPC::QF1, 33U }, { PPC::QF2, 34U }, { PPC::QF3, 35U }, { PPC::QF4, 36U }, { PPC::QF5, 37U }, { PPC::QF6, 38U }, { PPC::QF7, 39U }, { PPC::QF8, 40U }, { PPC::QF9, 41U }, { PPC::QF10, 42U }, { PPC::QF11, 43U }, { PPC::QF12, 44U }, { PPC::QF13, 45U }, { PPC::QF14, 46U }, { PPC::QF15, 47U }, { PPC::QF16, 48U }, { PPC::QF17, 49U }, { PPC::QF18, 50U }, { PPC::QF19, 51U }, { PPC::QF20, 52U }, { PPC::QF21, 53U }, { PPC::QF22, 54U }, { PPC::QF23, 55U }, { PPC::QF24, 56U }, { PPC::QF25, 57U }, { PPC::QF26, 58U }, { PPC::QF27, 59U }, { PPC::QF28, 60U }, { PPC::QF29, 61U }, { PPC::QF30, 62U }, { PPC::QF31, 63U }, { PPC::R0, -2U }, { PPC::R1, -2U }, { PPC::R2, -2U }, { PPC::R3, -2U }, { PPC::R4, -2U }, { PPC::R5, -2U }, { PPC::R6, -2U }, { PPC::R7, -2U }, { PPC::R8, -2U }, { PPC::R9, -2U }, { PPC::R10, -2U }, { PPC::R11, -2U }, { PPC::R12, -2U }, { PPC::R13, -2U }, { PPC::R14, -2U }, { PPC::R15, -2U }, { PPC::R16, -2U }, { PPC::R17, -2U }, { PPC::R18, -2U }, { PPC::R19, -2U }, { PPC::R20, -2U }, { PPC::R21, -2U }, { PPC::R22, -2U }, { PPC::R23, -2U }, { PPC::R24, -2U }, { PPC::R25, -2U }, { PPC::R26, -2U }, { PPC::R27, -2U }, { PPC::R28, -2U }, { PPC::R29, -2U }, { PPC::R30, -2U }, { PPC::R31, -2U }, { PPC::S0, 1200U }, { PPC::S1, 1201U }, { PPC::S2, 1202U }, { PPC::S3, 1203U }, { PPC::S4, 1204U }, { PPC::S5, 1205U }, { PPC::S6, 1206U }, { PPC::S7, 1207U }, { PPC::S8, 1208U }, { PPC::S9, 1209U }, { PPC::S10, 1210U }, { PPC::S11, 1211U }, { PPC::S12, 1212U }, { PPC::S13, 1213U }, { PPC::S14, 1214U }, { PPC::S15, 1215U }, { PPC::S16, 1216U }, { PPC::S17, 1217U }, { PPC::S18, 1218U }, { PPC::S19, 1219U }, { PPC::S20, 1220U }, { PPC::S21, 1221U }, { PPC::S22, 1222U }, { PPC::S23, 1223U }, { PPC::S24, 1224U }, { PPC::S25, 1225U }, { PPC::S26, 1226U }, { PPC::S27, 1227U }, { PPC::S28, 1228U }, { PPC::S29, 1229U }, { PPC::S30, 1230U }, { PPC::S31, 1231U }, { PPC::V0, 77U }, { PPC::V1, 78U }, { PPC::V2, 79U }, { PPC::V3, 80U }, { PPC::V4, 81U }, { PPC::V5, 82U }, { PPC::V6, 83U }, { PPC::V7, 84U }, { PPC::V8, 85U }, { PPC::V9, 86U }, { PPC::V10, 87U }, { PPC::V11, 88U }, { PPC::V12, 89U }, { PPC::V13, 90U }, { PPC::V14, 91U }, { PPC::V15, 92U }, { PPC::V16, 93U }, { PPC::V17, 94U }, { PPC::V18, 95U }, { PPC::V19, 96U }, { PPC::V20, 97U }, { PPC::V21, 98U }, { PPC::V22, 99U }, { PPC::V23, 100U }, { PPC::V24, 101U }, { PPC::V25, 102U }, { PPC::V26, 103U }, { PPC::V27, 104U }, { PPC::V28, 105U }, { PPC::V29, 106U }, { PPC::V30, 107U }, { PPC::V31, 108U }, { PPC::VF0, 77U }, { PPC::VF1, 78U }, { PPC::VF2, 79U }, { PPC::VF3, 80U }, { PPC::VF4, 81U }, { PPC::VF5, 82U }, { PPC::VF6, 83U }, { PPC::VF7, 84U }, { PPC::VF8, 85U }, { PPC::VF9, 86U }, { PPC::VF10, 87U }, { PPC::VF11, 88U }, { PPC::VF12, 89U }, { PPC::VF13, 90U }, { PPC::VF14, 91U }, { PPC::VF15, 92U }, { PPC::VF16, 93U }, { PPC::VF17, 94U }, { PPC::VF18, 95U }, { PPC::VF19, 96U }, { PPC::VF20, 97U }, { PPC::VF21, 98U }, { PPC::VF22, 99U }, { PPC::VF23, 100U }, { PPC::VF24, 101U }, { PPC::VF25, 102U }, { PPC::VF26, 103U }, { PPC::VF27, 104U }, { PPC::VF28, 105U }, { PPC::VF29, 106U }, { PPC::VF30, 107U }, { PPC::VF31, 108U }, { PPC::VSL0, 32U }, { PPC::VSL1, 33U }, { PPC::VSL2, 34U }, { PPC::VSL3, 35U }, { PPC::VSL4, 36U }, { PPC::VSL5, 37U }, { PPC::VSL6, 38U }, { PPC::VSL7, 39U }, { PPC::VSL8, 40U }, { PPC::VSL9, 41U }, { PPC::VSL10, 42U }, { PPC::VSL11, 43U }, { PPC::VSL12, 44U }, { PPC::VSL13, 45U }, { PPC::VSL14, 46U }, { PPC::VSL15, 47U }, { PPC::VSL16, 48U }, { PPC::VSL17, 49U }, { PPC::VSL18, 50U }, { PPC::VSL19, 51U }, { PPC::VSL20, 52U }, { PPC::VSL21, 53U }, { PPC::VSL22, 54U }, { PPC::VSL23, 55U }, { PPC::VSL24, 56U }, { PPC::VSL25, 57U }, { PPC::VSL26, 58U }, { PPC::VSL27, 59U }, { PPC::VSL28, 60U }, { PPC::VSL29, 61U }, { PPC::VSL30, 62U }, { PPC::VSL31, 63U }, { PPC::X0, 0U }, { PPC::X1, 1U }, { PPC::X2, 2U }, { PPC::X3, 3U }, { PPC::X4, 4U }, { PPC::X5, 5U }, { PPC::X6, 6U }, { PPC::X7, 7U }, { PPC::X8, 8U }, { PPC::X9, 9U }, { PPC::X10, 10U }, { PPC::X11, 11U }, { PPC::X12, 12U }, { PPC::X13, 13U }, { PPC::X14, 14U }, { PPC::X15, 15U }, { PPC::X16, 16U }, { PPC::X17, 17U }, { PPC::X18, 18U }, { PPC::X19, 19U }, { PPC::X20, 20U }, { PPC::X21, 21U }, { PPC::X22, 22U }, { PPC::X23, 23U }, { PPC::X24, 24U }, { PPC::X25, 25U }, { PPC::X26, 26U }, { PPC::X27, 27U }, { PPC::X28, 28U }, { PPC::X29, 29U }, { PPC::X30, 30U }, { PPC::X31, 31U }, { PPC::ZERO8, 0U }, }; extern const unsigned PPCDwarfFlavour0L2DwarfSize = array_lengthof(PPCDwarfFlavour0L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[] = { { PPC::CTR, 66U }, { PPC::LR, 65U }, { PPC::SPEFSCR, 112U }, { PPC::ZERO, 0U }, { PPC::CR0, 68U }, { PPC::CR1, 69U }, { PPC::CR2, 70U }, { PPC::CR3, 71U }, { PPC::CR4, 72U }, { PPC::CR5, 73U }, { PPC::CR6, 74U }, { PPC::CR7, 75U }, { PPC::CTR8, -2U }, { PPC::F0, 32U }, { PPC::F1, 33U }, { PPC::F2, 34U }, { PPC::F3, 35U }, { PPC::F4, 36U }, { PPC::F5, 37U }, { PPC::F6, 38U }, { PPC::F7, 39U }, { PPC::F8, 40U }, { PPC::F9, 41U }, { PPC::F10, 42U }, { PPC::F11, 43U }, { PPC::F12, 44U }, { PPC::F13, 45U }, { PPC::F14, 46U }, { PPC::F15, 47U }, { PPC::F16, 48U }, { PPC::F17, 49U }, { PPC::F18, 50U }, { PPC::F19, 51U }, { PPC::F20, 52U }, { PPC::F21, 53U }, { PPC::F22, 54U }, { PPC::F23, 55U }, { PPC::F24, 56U }, { PPC::F25, 57U }, { PPC::F26, 58U }, { PPC::F27, 59U }, { PPC::F28, 60U }, { PPC::F29, 61U }, { PPC::F30, 62U }, { PPC::F31, 63U }, { PPC::LR8, -2U }, { PPC::QF0, 32U }, { PPC::QF1, 33U }, { PPC::QF2, 34U }, { PPC::QF3, 35U }, { PPC::QF4, 36U }, { PPC::QF5, 37U }, { PPC::QF6, 38U }, { PPC::QF7, 39U }, { PPC::QF8, 40U }, { PPC::QF9, 41U }, { PPC::QF10, 42U }, { PPC::QF11, 43U }, { PPC::QF12, 44U }, { PPC::QF13, 45U }, { PPC::QF14, 46U }, { PPC::QF15, 47U }, { PPC::QF16, 48U }, { PPC::QF17, 49U }, { PPC::QF18, 50U }, { PPC::QF19, 51U }, { PPC::QF20, 52U }, { PPC::QF21, 53U }, { PPC::QF22, 54U }, { PPC::QF23, 55U }, { PPC::QF24, 56U }, { PPC::QF25, 57U }, { PPC::QF26, 58U }, { PPC::QF27, 59U }, { PPC::QF28, 60U }, { PPC::QF29, 61U }, { PPC::QF30, 62U }, { PPC::QF31, 63U }, { PPC::R0, 0U }, { PPC::R1, 1U }, { PPC::R2, 2U }, { PPC::R3, 3U }, { PPC::R4, 4U }, { PPC::R5, 5U }, { PPC::R6, 6U }, { PPC::R7, 7U }, { PPC::R8, 8U }, { PPC::R9, 9U }, { PPC::R10, 10U }, { PPC::R11, 11U }, { PPC::R12, 12U }, { PPC::R13, 13U }, { PPC::R14, 14U }, { PPC::R15, 15U }, { PPC::R16, 16U }, { PPC::R17, 17U }, { PPC::R18, 18U }, { PPC::R19, 19U }, { PPC::R20, 20U }, { PPC::R21, 21U }, { PPC::R22, 22U }, { PPC::R23, 23U }, { PPC::R24, 24U }, { PPC::R25, 25U }, { PPC::R26, 26U }, { PPC::R27, 27U }, { PPC::R28, 28U }, { PPC::R29, 29U }, { PPC::R30, 30U }, { PPC::R31, 31U }, { PPC::S0, 1200U }, { PPC::S1, 1201U }, { PPC::S2, 1202U }, { PPC::S3, 1203U }, { PPC::S4, 1204U }, { PPC::S5, 1205U }, { PPC::S6, 1206U }, { PPC::S7, 1207U }, { PPC::S8, 1208U }, { PPC::S9, 1209U }, { PPC::S10, 1210U }, { PPC::S11, 1211U }, { PPC::S12, 1212U }, { PPC::S13, 1213U }, { PPC::S14, 1214U }, { PPC::S15, 1215U }, { PPC::S16, 1216U }, { PPC::S17, 1217U }, { PPC::S18, 1218U }, { PPC::S19, 1219U }, { PPC::S20, 1220U }, { PPC::S21, 1221U }, { PPC::S22, 1222U }, { PPC::S23, 1223U }, { PPC::S24, 1224U }, { PPC::S25, 1225U }, { PPC::S26, 1226U }, { PPC::S27, 1227U }, { PPC::S28, 1228U }, { PPC::S29, 1229U }, { PPC::S30, 1230U }, { PPC::S31, 1231U }, { PPC::V0, 77U }, { PPC::V1, 78U }, { PPC::V2, 79U }, { PPC::V3, 80U }, { PPC::V4, 81U }, { PPC::V5, 82U }, { PPC::V6, 83U }, { PPC::V7, 84U }, { PPC::V8, 85U }, { PPC::V9, 86U }, { PPC::V10, 87U }, { PPC::V11, 88U }, { PPC::V12, 89U }, { PPC::V13, 90U }, { PPC::V14, 91U }, { PPC::V15, 92U }, { PPC::V16, 93U }, { PPC::V17, 94U }, { PPC::V18, 95U }, { PPC::V19, 96U }, { PPC::V20, 97U }, { PPC::V21, 98U }, { PPC::V22, 99U }, { PPC::V23, 100U }, { PPC::V24, 101U }, { PPC::V25, 102U }, { PPC::V26, 103U }, { PPC::V27, 104U }, { PPC::V28, 105U }, { PPC::V29, 106U }, { PPC::V30, 107U }, { PPC::V31, 108U }, { PPC::VF0, 77U }, { PPC::VF1, 78U }, { PPC::VF2, 79U }, { PPC::VF3, 80U }, { PPC::VF4, 81U }, { PPC::VF5, 82U }, { PPC::VF6, 83U }, { PPC::VF7, 84U }, { PPC::VF8, 85U }, { PPC::VF9, 86U }, { PPC::VF10, 87U }, { PPC::VF11, 88U }, { PPC::VF12, 89U }, { PPC::VF13, 90U }, { PPC::VF14, 91U }, { PPC::VF15, 92U }, { PPC::VF16, 93U }, { PPC::VF17, 94U }, { PPC::VF18, 95U }, { PPC::VF19, 96U }, { PPC::VF20, 97U }, { PPC::VF21, 98U }, { PPC::VF22, 99U }, { PPC::VF23, 100U }, { PPC::VF24, 101U }, { PPC::VF25, 102U }, { PPC::VF26, 103U }, { PPC::VF27, 104U }, { PPC::VF28, 105U }, { PPC::VF29, 106U }, { PPC::VF30, 107U }, { PPC::VF31, 108U }, { PPC::VSL0, 32U }, { PPC::VSL1, 33U }, { PPC::VSL2, 34U }, { PPC::VSL3, 35U }, { PPC::VSL4, 36U }, { PPC::VSL5, 37U }, { PPC::VSL6, 38U }, { PPC::VSL7, 39U }, { PPC::VSL8, 40U }, { PPC::VSL9, 41U }, { PPC::VSL10, 42U }, { PPC::VSL11, 43U }, { PPC::VSL12, 44U }, { PPC::VSL13, 45U }, { PPC::VSL14, 46U }, { PPC::VSL15, 47U }, { PPC::VSL16, 48U }, { PPC::VSL17, 49U }, { PPC::VSL18, 50U }, { PPC::VSL19, 51U }, { PPC::VSL20, 52U }, { PPC::VSL21, 53U }, { PPC::VSL22, 54U }, { PPC::VSL23, 55U }, { PPC::VSL24, 56U }, { PPC::VSL25, 57U }, { PPC::VSL26, 58U }, { PPC::VSL27, 59U }, { PPC::VSL28, 60U }, { PPC::VSL29, 61U }, { PPC::VSL30, 62U }, { PPC::VSL31, 63U }, { PPC::X0, -2U }, { PPC::X1, -2U }, { PPC::X2, -2U }, { PPC::X3, -2U }, { PPC::X4, -2U }, { PPC::X5, -2U }, { PPC::X6, -2U }, { PPC::X7, -2U }, { PPC::X8, -2U }, { PPC::X9, -2U }, { PPC::X10, -2U }, { PPC::X11, -2U }, { PPC::X12, -2U }, { PPC::X13, -2U }, { PPC::X14, -2U }, { PPC::X15, -2U }, { PPC::X16, -2U }, { PPC::X17, -2U }, { PPC::X18, -2U }, { PPC::X19, -2U }, { PPC::X20, -2U }, { PPC::X21, -2U }, { PPC::X22, -2U }, { PPC::X23, -2U }, { PPC::X24, -2U }, { PPC::X25, -2U }, { PPC::X26, -2U }, { PPC::X27, -2U }, { PPC::X28, -2U }, { PPC::X29, -2U }, { PPC::X30, -2U }, { PPC::X31, -2U }, { PPC::ZERO8, -2U }, }; extern const unsigned PPCDwarfFlavour1L2DwarfSize = array_lengthof(PPCDwarfFlavour1L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[] = { { PPC::CARRY, 76U }, { PPC::CTR, -2U }, { PPC::LR, -2U }, { PPC::SPEFSCR, 612U }, { PPC::VRSAVE, 109U }, { PPC::XER, 76U }, { PPC::ZERO, -2U }, { PPC::CR0, 68U }, { PPC::CR1, 69U }, { PPC::CR2, 70U }, { PPC::CR3, 71U }, { PPC::CR4, 72U }, { PPC::CR5, 73U }, { PPC::CR6, 74U }, { PPC::CR7, 75U }, { PPC::CTR8, 66U }, { PPC::F0, 32U }, { PPC::F1, 33U }, { PPC::F2, 34U }, { PPC::F3, 35U }, { PPC::F4, 36U }, { PPC::F5, 37U }, { PPC::F6, 38U }, { PPC::F7, 39U }, { PPC::F8, 40U }, { PPC::F9, 41U }, { PPC::F10, 42U }, { PPC::F11, 43U }, { PPC::F12, 44U }, { PPC::F13, 45U }, { PPC::F14, 46U }, { PPC::F15, 47U }, { PPC::F16, 48U }, { PPC::F17, 49U }, { PPC::F18, 50U }, { PPC::F19, 51U }, { PPC::F20, 52U }, { PPC::F21, 53U }, { PPC::F22, 54U }, { PPC::F23, 55U }, { PPC::F24, 56U }, { PPC::F25, 57U }, { PPC::F26, 58U }, { PPC::F27, 59U }, { PPC::F28, 60U }, { PPC::F29, 61U }, { PPC::F30, 62U }, { PPC::F31, 63U }, { PPC::LR8, 65U }, { PPC::QF0, 32U }, { PPC::QF1, 33U }, { PPC::QF2, 34U }, { PPC::QF3, 35U }, { PPC::QF4, 36U }, { PPC::QF5, 37U }, { PPC::QF6, 38U }, { PPC::QF7, 39U }, { PPC::QF8, 40U }, { PPC::QF9, 41U }, { PPC::QF10, 42U }, { PPC::QF11, 43U }, { PPC::QF12, 44U }, { PPC::QF13, 45U }, { PPC::QF14, 46U }, { PPC::QF15, 47U }, { PPC::QF16, 48U }, { PPC::QF17, 49U }, { PPC::QF18, 50U }, { PPC::QF19, 51U }, { PPC::QF20, 52U }, { PPC::QF21, 53U }, { PPC::QF22, 54U }, { PPC::QF23, 55U }, { PPC::QF24, 56U }, { PPC::QF25, 57U }, { PPC::QF26, 58U }, { PPC::QF27, 59U }, { PPC::QF28, 60U }, { PPC::QF29, 61U }, { PPC::QF30, 62U }, { PPC::QF31, 63U }, { PPC::R0, -2U }, { PPC::R1, -2U }, { PPC::R2, -2U }, { PPC::R3, -2U }, { PPC::R4, -2U }, { PPC::R5, -2U }, { PPC::R6, -2U }, { PPC::R7, -2U }, { PPC::R8, -2U }, { PPC::R9, -2U }, { PPC::R10, -2U }, { PPC::R11, -2U }, { PPC::R12, -2U }, { PPC::R13, -2U }, { PPC::R14, -2U }, { PPC::R15, -2U }, { PPC::R16, -2U }, { PPC::R17, -2U }, { PPC::R18, -2U }, { PPC::R19, -2U }, { PPC::R20, -2U }, { PPC::R21, -2U }, { PPC::R22, -2U }, { PPC::R23, -2U }, { PPC::R24, -2U }, { PPC::R25, -2U }, { PPC::R26, -2U }, { PPC::R27, -2U }, { PPC::R28, -2U }, { PPC::R29, -2U }, { PPC::R30, -2U }, { PPC::R31, -2U }, { PPC::S0, 1200U }, { PPC::S1, 1201U }, { PPC::S2, 1202U }, { PPC::S3, 1203U }, { PPC::S4, 1204U }, { PPC::S5, 1205U }, { PPC::S6, 1206U }, { PPC::S7, 1207U }, { PPC::S8, 1208U }, { PPC::S9, 1209U }, { PPC::S10, 1210U }, { PPC::S11, 1211U }, { PPC::S12, 1212U }, { PPC::S13, 1213U }, { PPC::S14, 1214U }, { PPC::S15, 1215U }, { PPC::S16, 1216U }, { PPC::S17, 1217U }, { PPC::S18, 1218U }, { PPC::S19, 1219U }, { PPC::S20, 1220U }, { PPC::S21, 1221U }, { PPC::S22, 1222U }, { PPC::S23, 1223U }, { PPC::S24, 1224U }, { PPC::S25, 1225U }, { PPC::S26, 1226U }, { PPC::S27, 1227U }, { PPC::S28, 1228U }, { PPC::S29, 1229U }, { PPC::S30, 1230U }, { PPC::S31, 1231U }, { PPC::V0, 77U }, { PPC::V1, 78U }, { PPC::V2, 79U }, { PPC::V3, 80U }, { PPC::V4, 81U }, { PPC::V5, 82U }, { PPC::V6, 83U }, { PPC::V7, 84U }, { PPC::V8, 85U }, { PPC::V9, 86U }, { PPC::V10, 87U }, { PPC::V11, 88U }, { PPC::V12, 89U }, { PPC::V13, 90U }, { PPC::V14, 91U }, { PPC::V15, 92U }, { PPC::V16, 93U }, { PPC::V17, 94U }, { PPC::V18, 95U }, { PPC::V19, 96U }, { PPC::V20, 97U }, { PPC::V21, 98U }, { PPC::V22, 99U }, { PPC::V23, 100U }, { PPC::V24, 101U }, { PPC::V25, 102U }, { PPC::V26, 103U }, { PPC::V27, 104U }, { PPC::V28, 105U }, { PPC::V29, 106U }, { PPC::V30, 107U }, { PPC::V31, 108U }, { PPC::VF0, 77U }, { PPC::VF1, 78U }, { PPC::VF2, 79U }, { PPC::VF3, 80U }, { PPC::VF4, 81U }, { PPC::VF5, 82U }, { PPC::VF6, 83U }, { PPC::VF7, 84U }, { PPC::VF8, 85U }, { PPC::VF9, 86U }, { PPC::VF10, 87U }, { PPC::VF11, 88U }, { PPC::VF12, 89U }, { PPC::VF13, 90U }, { PPC::VF14, 91U }, { PPC::VF15, 92U }, { PPC::VF16, 93U }, { PPC::VF17, 94U }, { PPC::VF18, 95U }, { PPC::VF19, 96U }, { PPC::VF20, 97U }, { PPC::VF21, 98U }, { PPC::VF22, 99U }, { PPC::VF23, 100U }, { PPC::VF24, 101U }, { PPC::VF25, 102U }, { PPC::VF26, 103U }, { PPC::VF27, 104U }, { PPC::VF28, 105U }, { PPC::VF29, 106U }, { PPC::VF30, 107U }, { PPC::VF31, 108U }, { PPC::VSL0, 32U }, { PPC::VSL1, 33U }, { PPC::VSL2, 34U }, { PPC::VSL3, 35U }, { PPC::VSL4, 36U }, { PPC::VSL5, 37U }, { PPC::VSL6, 38U }, { PPC::VSL7, 39U }, { PPC::VSL8, 40U }, { PPC::VSL9, 41U }, { PPC::VSL10, 42U }, { PPC::VSL11, 43U }, { PPC::VSL12, 44U }, { PPC::VSL13, 45U }, { PPC::VSL14, 46U }, { PPC::VSL15, 47U }, { PPC::VSL16, 48U }, { PPC::VSL17, 49U }, { PPC::VSL18, 50U }, { PPC::VSL19, 51U }, { PPC::VSL20, 52U }, { PPC::VSL21, 53U }, { PPC::VSL22, 54U }, { PPC::VSL23, 55U }, { PPC::VSL24, 56U }, { PPC::VSL25, 57U }, { PPC::VSL26, 58U }, { PPC::VSL27, 59U }, { PPC::VSL28, 60U }, { PPC::VSL29, 61U }, { PPC::VSL30, 62U }, { PPC::VSL31, 63U }, { PPC::X0, 0U }, { PPC::X1, 1U }, { PPC::X2, 2U }, { PPC::X3, 3U }, { PPC::X4, 4U }, { PPC::X5, 5U }, { PPC::X6, 6U }, { PPC::X7, 7U }, { PPC::X8, 8U }, { PPC::X9, 9U }, { PPC::X10, 10U }, { PPC::X11, 11U }, { PPC::X12, 12U }, { PPC::X13, 13U }, { PPC::X14, 14U }, { PPC::X15, 15U }, { PPC::X16, 16U }, { PPC::X17, 17U }, { PPC::X18, 18U }, { PPC::X19, 19U }, { PPC::X20, 20U }, { PPC::X21, 21U }, { PPC::X22, 22U }, { PPC::X23, 23U }, { PPC::X24, 24U }, { PPC::X25, 25U }, { PPC::X26, 26U }, { PPC::X27, 27U }, { PPC::X28, 28U }, { PPC::X29, 29U }, { PPC::X30, 30U }, { PPC::X31, 31U }, { PPC::ZERO8, 0U }, }; extern const unsigned PPCEHFlavour0L2DwarfSize = array_lengthof(PPCEHFlavour0L2Dwarf); extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[] = { { PPC::CTR, 66U }, { PPC::LR, 65U }, { PPC::SPEFSCR, 112U }, { PPC::ZERO, 0U }, { PPC::CR0, 68U }, { PPC::CR1, 69U }, { PPC::CR2, 70U }, { PPC::CR3, 71U }, { PPC::CR4, 72U }, { PPC::CR5, 73U }, { PPC::CR6, 74U }, { PPC::CR7, 75U }, { PPC::CTR8, -2U }, { PPC::F0, 32U }, { PPC::F1, 33U }, { PPC::F2, 34U }, { PPC::F3, 35U }, { PPC::F4, 36U }, { PPC::F5, 37U }, { PPC::F6, 38U }, { PPC::F7, 39U }, { PPC::F8, 40U }, { PPC::F9, 41U }, { PPC::F10, 42U }, { PPC::F11, 43U }, { PPC::F12, 44U }, { PPC::F13, 45U }, { PPC::F14, 46U }, { PPC::F15, 47U }, { PPC::F16, 48U }, { PPC::F17, 49U }, { PPC::F18, 50U }, { PPC::F19, 51U }, { PPC::F20, 52U }, { PPC::F21, 53U }, { PPC::F22, 54U }, { PPC::F23, 55U }, { PPC::F24, 56U }, { PPC::F25, 57U }, { PPC::F26, 58U }, { PPC::F27, 59U }, { PPC::F28, 60U }, { PPC::F29, 61U }, { PPC::F30, 62U }, { PPC::F31, 63U }, { PPC::LR8, -2U }, { PPC::QF0, 32U }, { PPC::QF1, 33U }, { PPC::QF2, 34U }, { PPC::QF3, 35U }, { PPC::QF4, 36U }, { PPC::QF5, 37U }, { PPC::QF6, 38U }, { PPC::QF7, 39U }, { PPC::QF8, 40U }, { PPC::QF9, 41U }, { PPC::QF10, 42U }, { PPC::QF11, 43U }, { PPC::QF12, 44U }, { PPC::QF13, 45U }, { PPC::QF14, 46U }, { PPC::QF15, 47U }, { PPC::QF16, 48U }, { PPC::QF17, 49U }, { PPC::QF18, 50U }, { PPC::QF19, 51U }, { PPC::QF20, 52U }, { PPC::QF21, 53U }, { PPC::QF22, 54U }, { PPC::QF23, 55U }, { PPC::QF24, 56U }, { PPC::QF25, 57U }, { PPC::QF26, 58U }, { PPC::QF27, 59U }, { PPC::QF28, 60U }, { PPC::QF29, 61U }, { PPC::QF30, 62U }, { PPC::QF31, 63U }, { PPC::R0, 0U }, { PPC::R1, 1U }, { PPC::R2, 2U }, { PPC::R3, 3U }, { PPC::R4, 4U }, { PPC::R5, 5U }, { PPC::R6, 6U }, { PPC::R7, 7U }, { PPC::R8, 8U }, { PPC::R9, 9U }, { PPC::R10, 10U }, { PPC::R11, 11U }, { PPC::R12, 12U }, { PPC::R13, 13U }, { PPC::R14, 14U }, { PPC::R15, 15U }, { PPC::R16, 16U }, { PPC::R17, 17U }, { PPC::R18, 18U }, { PPC::R19, 19U }, { PPC::R20, 20U }, { PPC::R21, 21U }, { PPC::R22, 22U }, { PPC::R23, 23U }, { PPC::R24, 24U }, { PPC::R25, 25U }, { PPC::R26, 26U }, { PPC::R27, 27U }, { PPC::R28, 28U }, { PPC::R29, 29U }, { PPC::R30, 30U }, { PPC::R31, 31U }, { PPC::S0, 1200U }, { PPC::S1, 1201U }, { PPC::S2, 1202U }, { PPC::S3, 1203U }, { PPC::S4, 1204U }, { PPC::S5, 1205U }, { PPC::S6, 1206U }, { PPC::S7, 1207U }, { PPC::S8, 1208U }, { PPC::S9, 1209U }, { PPC::S10, 1210U }, { PPC::S11, 1211U }, { PPC::S12, 1212U }, { PPC::S13, 1213U }, { PPC::S14, 1214U }, { PPC::S15, 1215U }, { PPC::S16, 1216U }, { PPC::S17, 1217U }, { PPC::S18, 1218U }, { PPC::S19, 1219U }, { PPC::S20, 1220U }, { PPC::S21, 1221U }, { PPC::S22, 1222U }, { PPC::S23, 1223U }, { PPC::S24, 1224U }, { PPC::S25, 1225U }, { PPC::S26, 1226U }, { PPC::S27, 1227U }, { PPC::S28, 1228U }, { PPC::S29, 1229U }, { PPC::S30, 1230U }, { PPC::S31, 1231U }, { PPC::V0, 77U }, { PPC::V1, 78U }, { PPC::V2, 79U }, { PPC::V3, 80U }, { PPC::V4, 81U }, { PPC::V5, 82U }, { PPC::V6, 83U }, { PPC::V7, 84U }, { PPC::V8, 85U }, { PPC::V9, 86U }, { PPC::V10, 87U }, { PPC::V11, 88U }, { PPC::V12, 89U }, { PPC::V13, 90U }, { PPC::V14, 91U }, { PPC::V15, 92U }, { PPC::V16, 93U }, { PPC::V17, 94U }, { PPC::V18, 95U }, { PPC::V19, 96U }, { PPC::V20, 97U }, { PPC::V21, 98U }, { PPC::V22, 99U }, { PPC::V23, 100U }, { PPC::V24, 101U }, { PPC::V25, 102U }, { PPC::V26, 103U }, { PPC::V27, 104U }, { PPC::V28, 105U }, { PPC::V29, 106U }, { PPC::V30, 107U }, { PPC::V31, 108U }, { PPC::VF0, 77U }, { PPC::VF1, 78U }, { PPC::VF2, 79U }, { PPC::VF3, 80U }, { PPC::VF4, 81U }, { PPC::VF5, 82U }, { PPC::VF6, 83U }, { PPC::VF7, 84U }, { PPC::VF8, 85U }, { PPC::VF9, 86U }, { PPC::VF10, 87U }, { PPC::VF11, 88U }, { PPC::VF12, 89U }, { PPC::VF13, 90U }, { PPC::VF14, 91U }, { PPC::VF15, 92U }, { PPC::VF16, 93U }, { PPC::VF17, 94U }, { PPC::VF18, 95U }, { PPC::VF19, 96U }, { PPC::VF20, 97U }, { PPC::VF21, 98U }, { PPC::VF22, 99U }, { PPC::VF23, 100U }, { PPC::VF24, 101U }, { PPC::VF25, 102U }, { PPC::VF26, 103U }, { PPC::VF27, 104U }, { PPC::VF28, 105U }, { PPC::VF29, 106U }, { PPC::VF30, 107U }, { PPC::VF31, 108U }, { PPC::VSL0, 32U }, { PPC::VSL1, 33U }, { PPC::VSL2, 34U }, { PPC::VSL3, 35U }, { PPC::VSL4, 36U }, { PPC::VSL5, 37U }, { PPC::VSL6, 38U }, { PPC::VSL7, 39U }, { PPC::VSL8, 40U }, { PPC::VSL9, 41U }, { PPC::VSL10, 42U }, { PPC::VSL11, 43U }, { PPC::VSL12, 44U }, { PPC::VSL13, 45U }, { PPC::VSL14, 46U }, { PPC::VSL15, 47U }, { PPC::VSL16, 48U }, { PPC::VSL17, 49U }, { PPC::VSL18, 50U }, { PPC::VSL19, 51U }, { PPC::VSL20, 52U }, { PPC::VSL21, 53U }, { PPC::VSL22, 54U }, { PPC::VSL23, 55U }, { PPC::VSL24, 56U }, { PPC::VSL25, 57U }, { PPC::VSL26, 58U }, { PPC::VSL27, 59U }, { PPC::VSL28, 60U }, { PPC::VSL29, 61U }, { PPC::VSL30, 62U }, { PPC::VSL31, 63U }, { PPC::X0, -2U }, { PPC::X1, -2U }, { PPC::X2, -2U }, { PPC::X3, -2U }, { PPC::X4, -2U }, { PPC::X5, -2U }, { PPC::X6, -2U }, { PPC::X7, -2U }, { PPC::X8, -2U }, { PPC::X9, -2U }, { PPC::X10, -2U }, { PPC::X11, -2U }, { PPC::X12, -2U }, { PPC::X13, -2U }, { PPC::X14, -2U }, { PPC::X15, -2U }, { PPC::X16, -2U }, { PPC::X17, -2U }, { PPC::X18, -2U }, { PPC::X19, -2U }, { PPC::X20, -2U }, { PPC::X21, -2U }, { PPC::X22, -2U }, { PPC::X23, -2U }, { PPC::X24, -2U }, { PPC::X25, -2U }, { PPC::X26, -2U }, { PPC::X27, -2U }, { PPC::X28, -2U }, { PPC::X29, -2U }, { PPC::X30, -2U }, { PPC::X31, -2U }, { PPC::ZERO8, -2U }, }; extern const unsigned PPCEHFlavour1L2DwarfSize = array_lengthof(PPCEHFlavour1L2Dwarf); extern const uint16_t PPCRegEncodingTable[] = { 0, 0, 1, 9, 0, 8, 0, 512, 256, 1, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 9, 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, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 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, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 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, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 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, 6, 10, 14, 18, 22, 26, 30, 1, 5, 9, 13, 17, 21, 25, 29, 0, 4, 8, 12, 16, 20, 24, 28, 3, 7, 11, 15, 19, 23, 27, 31, }; static inline void InitPPCMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) { RI->InitMCRegisterInfo(PPCRegDesc, 344, RA, PC, PPCMCRegisterClasses, 34, PPCRegUnitRoots, 171, PPCRegDiffLists, PPCLaneMaskLists, PPCRegStrings, PPCRegClassStrings, PPCSubRegIdxLists, 7, PPCSubRegIdxRanges, PPCRegEncodingTable); switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false); break; case 1: RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true); break; case 1: RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true); break; } switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false); break; case 1: RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true); break; case 1: RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true); break; } } } // end namespace llvm #endif // GET_REGINFO_MC_DESC /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Register Information Header Fragment *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_HEADER #undef GET_REGINFO_HEADER #include "llvm/CodeGen/TargetRegisterInfo.h" namespace llvm { class PPCFrameLowering; struct PPCGenRegisterInfo : public TargetRegisterInfo { explicit PPCGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0, unsigned PC = 0, unsigned HwMode = 0); unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override; LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override; LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override; const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override; const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override; unsigned getRegUnitWeight(unsigned RegUnit) const override; unsigned getNumRegPressureSets() const override; const char *getRegPressureSetName(unsigned Idx) const override; unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override; const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override; const int *getRegUnitPressureSets(unsigned RegUnit) const override; ArrayRef getRegMaskNames() const override; ArrayRef getRegMasks() const override; /// Devirtualized TargetFrameLowering. static const PPCFrameLowering *getFrameLowering( const MachineFunction &MF); }; namespace PPC { // Register classes extern const TargetRegisterClass VSSRCRegClass; extern const TargetRegisterClass GPRCRegClass; extern const TargetRegisterClass GPRC_NOR0RegClass; extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass; extern const TargetRegisterClass CRBITRCRegClass; extern const TargetRegisterClass F4RCRegClass; extern const TargetRegisterClass CRRCRegClass; extern const TargetRegisterClass CARRYRCRegClass; extern const TargetRegisterClass CTRRCRegClass; extern const TargetRegisterClass VRSAVERCRegClass; extern const TargetRegisterClass SPILLTOVSRRCRegClass; extern const TargetRegisterClass VSFRCRegClass; extern const TargetRegisterClass G8RCRegClass; extern const TargetRegisterClass G8RC_NOX0RegClass; extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass; extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass; extern const TargetRegisterClass F8RCRegClass; extern const TargetRegisterClass SPERCRegClass; extern const TargetRegisterClass VFRCRegClass; extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass; extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass; extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass; extern const TargetRegisterClass CTRRC8RegClass; extern const TargetRegisterClass VSRCRegClass; extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass; extern const TargetRegisterClass QSRCRegClass; extern const TargetRegisterClass VRRCRegClass; extern const TargetRegisterClass VSLRCRegClass; extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass; extern const TargetRegisterClass QSRC_with_sub_64_in_SPILLTOVSRRCRegClass; extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass; extern const TargetRegisterClass QBRCRegClass; extern const TargetRegisterClass QFRCRegClass; extern const TargetRegisterClass QBRC_with_sub_64_in_SPILLTOVSRRCRegClass; } // end namespace PPC } // end namespace llvm #endif // GET_REGINFO_HEADER /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Target Register and Register Classes Information *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef GET_REGINFO_TARGET_DESC #undef GET_REGINFO_TARGET_DESC namespace llvm { extern const MCRegisterClass PPCMCRegisterClasses[]; static const MVT::SimpleValueType VTLists[] = { /* 0 */ MVT::i1, MVT::Other, /* 2 */ MVT::i32, MVT::Other, /* 4 */ MVT::i64, MVT::Other, /* 6 */ MVT::i32, MVT::f32, MVT::Other, /* 9 */ MVT::i64, MVT::f64, MVT::Other, /* 12 */ MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::v1i128, MVT::v4f32, MVT::v2f64, MVT::f128, MVT::Other, /* 21 */ MVT::v4i1, MVT::Other, /* 23 */ MVT::v4i32, MVT::v4f32, MVT::v2f64, MVT::v2i64, MVT::Other, /* 28 */ MVT::v4f32, MVT::Other, /* 30 */ MVT::v4f64, MVT::Other, }; static const char *const SubRegIndexNameTable[] = { "sub_32", "sub_64", "sub_eq", "sub_gt", "sub_lt", "sub_un", "" }; static const LaneBitmask SubRegIndexLaneMaskTable[] = { LaneBitmask::getAll(), LaneBitmask(0x00000001), // sub_32 LaneBitmask(0x00000002), // sub_64 LaneBitmask(0x00000004), // sub_eq LaneBitmask(0x00000008), // sub_gt LaneBitmask(0x00000010), // sub_lt LaneBitmask(0x00000020), // sub_un }; static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = { // Mode = 0 (Default) { 32, 32, 32, VTLists+7 }, // VSSRC { 32, 32, 32, VTLists+6 }, // GPRC { 32, 32, 32, VTLists+6 }, // GPRC_NOR0 { 32, 32, 32, VTLists+6 }, // GPRC_and_GPRC_NOR0 { 32, 32, 32, VTLists+0 }, // CRBITRC { 32, 32, 32, VTLists+7 }, // F4RC { 32, 32, 32, VTLists+2 }, // CRRC { 32, 32, 32, VTLists+2 }, // CARRYRC { 32, 32, 32, VTLists+2 }, // CTRRC { 32, 32, 32, VTLists+2 }, // VRSAVERC { 64, 64, 64, VTLists+9 }, // SPILLTOVSRRC { 64, 64, 64, VTLists+10 }, // VSFRC { 64, 64, 64, VTLists+4 }, // G8RC { 64, 64, 64, VTLists+4 }, // G8RC_NOX0 { 64, 64, 64, VTLists+10 }, // SPILLTOVSRRC_and_VSFRC { 64, 64, 64, VTLists+4 }, // G8RC_and_G8RC_NOX0 { 64, 64, 64, VTLists+10 }, // F8RC { 64, 64, 64, VTLists+10 }, // SPERC { 64, 64, 64, VTLists+10 }, // VFRC { 64, 64, 64, VTLists+10 }, // SPERC_with_sub_32_in_GPRC_NOR0 { 64, 64, 64, VTLists+10 }, // SPILLTOVSRRC_and_VFRC { 64, 64, 64, VTLists+10 }, // SPILLTOVSRRC_and_F4RC { 64, 64, 64, VTLists+4 }, // CTRRC8 { 128, 128, 128, VTLists+23 }, // VSRC { 128, 128, 128, VTLists+23 }, // VSRC_with_sub_64_in_SPILLTOVSRRC { 128, 128, 128, VTLists+28 }, // QSRC { 128, 128, 128, VTLists+12 }, // VRRC { 128, 128, 128, VTLists+23 }, // VSLRC { 128, 128, 128, VTLists+12 }, // VRRC_with_sub_64_in_SPILLTOVSRRC { 128, 128, 128, VTLists+28 }, // QSRC_with_sub_64_in_SPILLTOVSRRC { 128, 128, 128, VTLists+23 }, // VSLRC_with_sub_64_in_SPILLTOVSRRC { 256, 256, 256, VTLists+21 }, // QBRC { 256, 256, 256, VTLists+30 }, // QFRC { 256, 256, 256, VTLists+30 }, // QBRC_with_sub_64_in_SPILLTOVSRRC }; static const TargetRegisterClass *const NullRegClasses[] = { nullptr }; static const uint32_t VSSRCSubClassMask[] = { 0x00354821, 0x00000000, 0xff800000, 0x00000003, // sub_64 }; static const uint32_t GPRCSubClassMask[] = { 0x0000000a, 0x00000000, 0x000a9000, 0x00000000, // sub_32 }; static const uint32_t GPRC_NOR0SubClassMask[] = { 0x0000000c, 0x00000000, 0x0008a000, 0x00000000, // sub_32 }; static const uint32_t GPRC_and_GPRC_NOR0SubClassMask[] = { 0x00000008, 0x00000000, 0x00088000, 0x00000000, // sub_32 }; static const uint32_t CRBITRCSubClassMask[] = { 0x00000010, 0x00000000, 0x00000040, 0x00000000, // sub_eq 0x00000040, 0x00000000, // sub_gt 0x00000040, 0x00000000, // sub_lt 0x00000040, 0x00000000, // sub_un }; static const uint32_t F4RCSubClassMask[] = { 0x00210020, 0x00000000, 0xea000000, 0x00000003, // sub_64 }; static const uint32_t CRRCSubClassMask[] = { 0x00000040, 0x00000000, }; static const uint32_t CARRYRCSubClassMask[] = { 0x00000080, 0x00000000, }; static const uint32_t CTRRCSubClassMask[] = { 0x00000100, 0x00000000, }; static const uint32_t VRSAVERCSubClassMask[] = { 0x00000200, 0x00000000, }; static const uint32_t SPILLTOVSRRCSubClassMask[] = { 0x0030d400, 0x00000000, 0x71000000, 0x00000002, // sub_64 }; static const uint32_t VSFRCSubClassMask[] = { 0x00354800, 0x00000000, 0xff800000, 0x00000003, // sub_64 }; static const uint32_t G8RCSubClassMask[] = { 0x00009000, 0x00000000, }; static const uint32_t G8RC_NOX0SubClassMask[] = { 0x0000a000, 0x00000000, }; static const uint32_t SPILLTOVSRRC_and_VSFRCSubClassMask[] = { 0x00304000, 0x00000000, 0x71000000, 0x00000002, // sub_64 }; static const uint32_t G8RC_and_G8RC_NOX0SubClassMask[] = { 0x00008000, 0x00000000, }; static const uint32_t F8RCSubClassMask[] = { 0x00210000, 0x00000000, 0xea000000, 0x00000003, // sub_64 }; static const uint32_t SPERCSubClassMask[] = { 0x000a0000, 0x00000000, }; static const uint32_t VFRCSubClassMask[] = { 0x00140000, 0x00000000, 0x14000000, 0x00000000, // sub_64 }; static const uint32_t SPERC_with_sub_32_in_GPRC_NOR0SubClassMask[] = { 0x00080000, 0x00000000, }; static const uint32_t SPILLTOVSRRC_and_VFRCSubClassMask[] = { 0x00100000, 0x00000000, 0x10000000, 0x00000000, // sub_64 }; static const uint32_t SPILLTOVSRRC_and_F4RCSubClassMask[] = { 0x00200000, 0x00000000, 0x60000000, 0x00000002, // sub_64 }; static const uint32_t CTRRC8SubClassMask[] = { 0x00400000, 0x00000000, }; static const uint32_t VSRCSubClassMask[] = { 0x5d800000, 0x00000000, }; static const uint32_t VSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = { 0x51000000, 0x00000000, }; static const uint32_t QSRCSubClassMask[] = { 0xa2000000, 0x00000003, }; static const uint32_t VRRCSubClassMask[] = { 0x14000000, 0x00000000, }; static const uint32_t VSLRCSubClassMask[] = { 0x48000000, 0x00000000, }; static const uint32_t VRRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = { 0x10000000, 0x00000000, }; static const uint32_t QSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = { 0x20000000, 0x00000002, }; static const uint32_t VSLRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = { 0x40000000, 0x00000000, }; static const uint32_t QBRCSubClassMask[] = { 0x80000000, 0x00000003, }; static const uint32_t QFRCSubClassMask[] = { 0x80000000, 0x00000003, }; static const uint32_t QBRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = { 0x00000000, 0x00000002, }; static const uint16_t SuperRegIdxSeqs[] = { /* 0 */ 1, 0, /* 2 */ 2, 0, /* 4 */ 3, 4, 5, 6, 0, }; static const TargetRegisterClass *const GPRC_and_GPRC_NOR0Superclasses[] = { &PPC::GPRCRegClass, &PPC::GPRC_NOR0RegClass, nullptr }; static const TargetRegisterClass *const F4RCSuperclasses[] = { &PPC::VSSRCRegClass, nullptr }; static const TargetRegisterClass *const VSFRCSuperclasses[] = { &PPC::VSSRCRegClass, nullptr }; static const TargetRegisterClass *const G8RCSuperclasses[] = { &PPC::SPILLTOVSRRCRegClass, nullptr }; static const TargetRegisterClass *const SPILLTOVSRRC_and_VSFRCSuperclasses[] = { &PPC::VSSRCRegClass, &PPC::SPILLTOVSRRCRegClass, &PPC::VSFRCRegClass, nullptr }; static const TargetRegisterClass *const G8RC_and_G8RC_NOX0Superclasses[] = { &PPC::SPILLTOVSRRCRegClass, &PPC::G8RCRegClass, &PPC::G8RC_NOX0RegClass, nullptr }; static const TargetRegisterClass *const F8RCSuperclasses[] = { &PPC::VSSRCRegClass, &PPC::F4RCRegClass, &PPC::VSFRCRegClass, nullptr }; static const TargetRegisterClass *const VFRCSuperclasses[] = { &PPC::VSSRCRegClass, &PPC::VSFRCRegClass, nullptr }; static const TargetRegisterClass *const SPERC_with_sub_32_in_GPRC_NOR0Superclasses[] = { &PPC::SPERCRegClass, nullptr }; static const TargetRegisterClass *const SPILLTOVSRRC_and_VFRCSuperclasses[] = { &PPC::VSSRCRegClass, &PPC::SPILLTOVSRRCRegClass, &PPC::VSFRCRegClass, &PPC::SPILLTOVSRRC_and_VSFRCRegClass, &PPC::VFRCRegClass, nullptr }; static const TargetRegisterClass *const SPILLTOVSRRC_and_F4RCSuperclasses[] = { &PPC::VSSRCRegClass, &PPC::F4RCRegClass, &PPC::SPILLTOVSRRCRegClass, &PPC::VSFRCRegClass, &PPC::SPILLTOVSRRC_and_VSFRCRegClass, &PPC::F8RCRegClass, nullptr }; static const TargetRegisterClass *const VSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = { &PPC::VSRCRegClass, nullptr }; static const TargetRegisterClass *const VRRCSuperclasses[] = { &PPC::VSRCRegClass, nullptr }; static const TargetRegisterClass *const VSLRCSuperclasses[] = { &PPC::VSRCRegClass, nullptr }; static const TargetRegisterClass *const VRRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = { &PPC::VSRCRegClass, &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::VRRCRegClass, nullptr }; static const TargetRegisterClass *const QSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = { &PPC::QSRCRegClass, nullptr }; static const TargetRegisterClass *const VSLRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = { &PPC::VSRCRegClass, &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::VSLRCRegClass, nullptr }; static const TargetRegisterClass *const QBRCSuperclasses[] = { &PPC::QSRCRegClass, &PPC::QFRCRegClass, nullptr }; static const TargetRegisterClass *const QFRCSuperclasses[] = { &PPC::QSRCRegClass, &PPC::QBRCRegClass, nullptr }; static const TargetRegisterClass *const QBRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = { &PPC::QSRCRegClass, &PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::QBRCRegClass, &PPC::QFRCRegClass, nullptr }; static inline unsigned GPRCAltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64BitELFABI(); } static ArrayRef GPRCGetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R0, PPC::R1, PPC::FP, PPC::BP, PPC::R2 }; const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRCRegClassID]; const ArrayRef Order[] = { makeArrayRef(MCR.begin(), MCR.getNumRegs()), makeArrayRef(AltOrder1) }; const unsigned Select = GPRCAltOrderSelect(MF); assert(Select < 2); return Order[Select]; } static inline unsigned GPRC_NOR0AltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64BitELFABI(); } static ArrayRef GPRC_NOR0GetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, PPC::ZERO, PPC::R2 }; const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRC_NOR0RegClassID]; const ArrayRef Order[] = { makeArrayRef(MCR.begin(), MCR.getNumRegs()), makeArrayRef(AltOrder1) }; const unsigned Select = GPRC_NOR0AltOrderSelect(MF); assert(Select < 2); return Order[Select]; } static inline unsigned GPRC_and_GPRC_NOR0AltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64BitELFABI(); } static ArrayRef GPRC_and_GPRC_NOR0GetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, PPC::R2 }; const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRC_and_GPRC_NOR0RegClassID]; const ArrayRef Order[] = { makeArrayRef(MCR.begin(), MCR.getNumRegs()), makeArrayRef(AltOrder1) }; const unsigned Select = GPRC_and_GPRC_NOR0AltOrderSelect(MF); assert(Select < 2); return Order[Select]; } static inline unsigned G8RCAltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64BitELFABI(); } static ArrayRef G8RCGetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X0, PPC::X1, PPC::FP8, PPC::BP8, PPC::X2 }; const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RCRegClassID]; const ArrayRef Order[] = { makeArrayRef(MCR.begin(), MCR.getNumRegs()), makeArrayRef(AltOrder1) }; const unsigned Select = G8RCAltOrderSelect(MF); assert(Select < 2); return Order[Select]; } static inline unsigned G8RC_NOX0AltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64BitELFABI(); } static ArrayRef G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, PPC::ZERO8, PPC::X2 }; const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_NOX0RegClassID]; const ArrayRef Order[] = { makeArrayRef(MCR.begin(), MCR.getNumRegs()), makeArrayRef(AltOrder1) }; const unsigned Select = G8RC_NOX0AltOrderSelect(MF); assert(Select < 2); return Order[Select]; } static inline unsigned G8RC_and_G8RC_NOX0AltOrderSelect(const MachineFunction &MF) { return MF.getSubtarget().is64BitELFABI(); } static ArrayRef G8RC_and_G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) { static const MCPhysReg AltOrder1[] = { PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, PPC::X2 }; const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_and_G8RC_NOX0RegClassID]; const ArrayRef Order[] = { makeArrayRef(MCR.begin(), MCR.getNumRegs()), makeArrayRef(AltOrder1) }; const unsigned Select = G8RC_and_G8RC_NOX0AltOrderSelect(MF); assert(Select < 2); return Order[Select]; } namespace PPC { // Register class instances extern const TargetRegisterClass VSSRCRegClass = { &PPCMCRegisterClasses[VSSRCRegClassID], VSSRCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass GPRCRegClass = { &PPCMCRegisterClasses[GPRCRegClassID], GPRCSubClassMask, SuperRegIdxSeqs + 0, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, GPRCGetRawAllocationOrder }; extern const TargetRegisterClass GPRC_NOR0RegClass = { &PPCMCRegisterClasses[GPRC_NOR0RegClassID], GPRC_NOR0SubClassMask, SuperRegIdxSeqs + 0, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, GPRC_NOR0GetRawAllocationOrder }; extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass = { &PPCMCRegisterClasses[GPRC_and_GPRC_NOR0RegClassID], GPRC_and_GPRC_NOR0SubClassMask, SuperRegIdxSeqs + 0, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ GPRC_and_GPRC_NOR0Superclasses, GPRC_and_GPRC_NOR0GetRawAllocationOrder }; extern const TargetRegisterClass CRBITRCRegClass = { &PPCMCRegisterClasses[CRBITRCRegClassID], CRBITRCSubClassMask, SuperRegIdxSeqs + 4, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass F4RCRegClass = { &PPCMCRegisterClasses[F4RCRegClassID], F4RCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ F4RCSuperclasses, nullptr }; extern const TargetRegisterClass CRRCRegClass = { &PPCMCRegisterClasses[CRRCRegClassID], CRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x0000003C), 0, true, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass CARRYRCRegClass = { &PPCMCRegisterClasses[CARRYRCRegClassID], CARRYRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass CTRRCRegClass = { &PPCMCRegisterClasses[CTRRCRegClassID], CTRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VRSAVERCRegClass = { &PPCMCRegisterClasses[VRSAVERCRegClassID], VRSAVERCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass SPILLTOVSRRCRegClass = { &PPCMCRegisterClasses[SPILLTOVSRRCRegClassID], SPILLTOVSRRCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VSFRCRegClass = { &PPCMCRegisterClasses[VSFRCRegClassID], VSFRCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VSFRCSuperclasses, nullptr }; extern const TargetRegisterClass G8RCRegClass = { &PPCMCRegisterClasses[G8RCRegClassID], G8RCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ G8RCSuperclasses, G8RCGetRawAllocationOrder }; extern const TargetRegisterClass G8RC_NOX0RegClass = { &PPCMCRegisterClasses[G8RC_NOX0RegClassID], G8RC_NOX0SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, G8RC_NOX0GetRawAllocationOrder }; extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass = { &PPCMCRegisterClasses[SPILLTOVSRRC_and_VSFRCRegClassID], SPILLTOVSRRC_and_VSFRCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ SPILLTOVSRRC_and_VSFRCSuperclasses, nullptr }; extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass = { &PPCMCRegisterClasses[G8RC_and_G8RC_NOX0RegClassID], G8RC_and_G8RC_NOX0SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ G8RC_and_G8RC_NOX0Superclasses, G8RC_and_G8RC_NOX0GetRawAllocationOrder }; extern const TargetRegisterClass F8RCRegClass = { &PPCMCRegisterClasses[F8RCRegClassID], F8RCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ F8RCSuperclasses, nullptr }; extern const TargetRegisterClass SPERCRegClass = { &PPCMCRegisterClasses[SPERCRegClassID], SPERCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VFRCRegClass = { &PPCMCRegisterClasses[VFRCRegClassID], VFRCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VFRCSuperclasses, nullptr }; extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass = { &PPCMCRegisterClasses[SPERC_with_sub_32_in_GPRC_NOR0RegClassID], SPERC_with_sub_32_in_GPRC_NOR0SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ SPERC_with_sub_32_in_GPRC_NOR0Superclasses, nullptr }; extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass = { &PPCMCRegisterClasses[SPILLTOVSRRC_and_VFRCRegClassID], SPILLTOVSRRC_and_VFRCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ SPILLTOVSRRC_and_VFRCSuperclasses, nullptr }; extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass = { &PPCMCRegisterClasses[SPILLTOVSRRC_and_F4RCRegClassID], SPILLTOVSRRC_and_F4RCSubClassMask, SuperRegIdxSeqs + 2, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ SPILLTOVSRRC_and_F4RCSuperclasses, nullptr }; extern const TargetRegisterClass CTRRC8RegClass = { &PPCMCRegisterClasses[CTRRC8RegClassID], CTRRC8SubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000001), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VSRCRegClass = { &PPCMCRegisterClasses[VSRCRegClassID], VSRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass = { &PPCMCRegisterClasses[VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID], VSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses, nullptr }; extern const TargetRegisterClass QSRCRegClass = { &PPCMCRegisterClasses[QSRCRegClassID], QSRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ NullRegClasses, nullptr }; extern const TargetRegisterClass VRRCRegClass = { &PPCMCRegisterClasses[VRRCRegClassID], VRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VRRCSuperclasses, nullptr }; extern const TargetRegisterClass VSLRCRegClass = { &PPCMCRegisterClasses[VSLRCRegClassID], VSLRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VSLRCSuperclasses, nullptr }; extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass = { &PPCMCRegisterClasses[VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID], VRRC_with_sub_64_in_SPILLTOVSRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VRRC_with_sub_64_in_SPILLTOVSRRCSuperclasses, nullptr }; extern const TargetRegisterClass QSRC_with_sub_64_in_SPILLTOVSRRCRegClass = { &PPCMCRegisterClasses[QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID], QSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ QSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses, nullptr }; extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass = { &PPCMCRegisterClasses[VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID], VSLRC_with_sub_64_in_SPILLTOVSRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ VSLRC_with_sub_64_in_SPILLTOVSRRCSuperclasses, nullptr }; extern const TargetRegisterClass QBRCRegClass = { &PPCMCRegisterClasses[QBRCRegClassID], QBRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ QBRCSuperclasses, nullptr }; extern const TargetRegisterClass QFRCRegClass = { &PPCMCRegisterClasses[QFRCRegClassID], QFRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ QFRCSuperclasses, nullptr }; extern const TargetRegisterClass QBRC_with_sub_64_in_SPILLTOVSRRCRegClass = { &PPCMCRegisterClasses[QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID], QBRC_with_sub_64_in_SPILLTOVSRRCSubClassMask, SuperRegIdxSeqs + 1, LaneBitmask(0x00000002), 0, false, /* HasDisjunctSubRegs */ false, /* CoveredBySubRegs */ QBRC_with_sub_64_in_SPILLTOVSRRCSuperclasses, nullptr }; } // end namespace PPC namespace { const TargetRegisterClass* const RegisterClasses[] = { &PPC::VSSRCRegClass, &PPC::GPRCRegClass, &PPC::GPRC_NOR0RegClass, &PPC::GPRC_and_GPRC_NOR0RegClass, &PPC::CRBITRCRegClass, &PPC::F4RCRegClass, &PPC::CRRCRegClass, &PPC::CARRYRCRegClass, &PPC::CTRRCRegClass, &PPC::VRSAVERCRegClass, &PPC::SPILLTOVSRRCRegClass, &PPC::VSFRCRegClass, &PPC::G8RCRegClass, &PPC::G8RC_NOX0RegClass, &PPC::SPILLTOVSRRC_and_VSFRCRegClass, &PPC::G8RC_and_G8RC_NOX0RegClass, &PPC::F8RCRegClass, &PPC::SPERCRegClass, &PPC::VFRCRegClass, &PPC::SPERC_with_sub_32_in_GPRC_NOR0RegClass, &PPC::SPILLTOVSRRC_and_VFRCRegClass, &PPC::SPILLTOVSRRC_and_F4RCRegClass, &PPC::CTRRC8RegClass, &PPC::VSRCRegClass, &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::QSRCRegClass, &PPC::VRRCRegClass, &PPC::VSLRCRegClass, &PPC::VRRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass, &PPC::QBRCRegClass, &PPC::QFRCRegClass, &PPC::QBRC_with_sub_64_in_SPILLTOVSRRCRegClass, }; } // end anonymous namespace static const TargetRegisterInfoDesc PPCRegInfoDesc[] = { // Extra Descriptors { 0, false }, { 0, true }, { 0, true }, { 0, false }, { 0, true }, { 0, false }, { 0, false }, { 0, false }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, false }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, false }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, false }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, { 0, true }, }; unsigned PPCGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const { static const uint8_t Rows[1][6] = { { 0, 0, 0, 0, 0, 0, }, }; --IdxA; assert(IdxA < 6); --IdxB; assert(IdxB < 6); return Rows[0][IdxB]; } struct MaskRolOp { LaneBitmask Mask; uint8_t RotateLeft; }; static const MaskRolOp LaneMaskComposeSequences[] = { { LaneBitmask(0xFFFFFFFF), 0 }, { LaneBitmask::getNone(), 0 }, // Sequence 0 { LaneBitmask(0xFFFFFFFF), 1 }, { LaneBitmask::getNone(), 0 }, // Sequence 2 { LaneBitmask(0xFFFFFFFF), 2 }, { LaneBitmask::getNone(), 0 }, // Sequence 4 { LaneBitmask(0xFFFFFFFF), 3 }, { LaneBitmask::getNone(), 0 }, // Sequence 6 { LaneBitmask(0xFFFFFFFF), 4 }, { LaneBitmask::getNone(), 0 }, // Sequence 8 { LaneBitmask(0xFFFFFFFF), 5 }, { LaneBitmask::getNone(), 0 } // Sequence 10 }; static const MaskRolOp *const CompositeSequences[] = { &LaneMaskComposeSequences[0], // to sub_32 &LaneMaskComposeSequences[2], // to sub_64 &LaneMaskComposeSequences[4], // to sub_eq &LaneMaskComposeSequences[6], // to sub_gt &LaneMaskComposeSequences[8], // to sub_lt &LaneMaskComposeSequences[10] // to sub_un }; LaneBitmask PPCGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const { --IdxA; assert(IdxA < 6 && "Subregister index out of bounds"); LaneBitmask Result; for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) { LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger(); if (unsigned S = Ops->RotateLeft) Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S))); else Result |= LaneBitmask(M); } return Result; } LaneBitmask PPCGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const { LaneMask &= getSubRegIndexLaneMask(IdxA); --IdxA; assert(IdxA < 6 && "Subregister index out of bounds"); LaneBitmask Result; for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) { LaneBitmask::Type M = LaneMask.getAsInteger(); if (unsigned S = Ops->RotateLeft) Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S))); else Result |= LaneBitmask(M); } return Result; } const TargetRegisterClass *PPCGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const { static const uint8_t Table[34][6] = { { // VSSRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // GPRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // GPRC_NOR0 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // GPRC_and_GPRC_NOR0 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // CRBITRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // F4RC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // CRRC 0, // sub_32 0, // sub_64 7, // sub_eq -> CRRC 7, // sub_gt -> CRRC 7, // sub_lt -> CRRC 7, // sub_un -> CRRC }, { // CARRYRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // CTRRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VRSAVERC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // SPILLTOVSRRC 13, // sub_32 -> G8RC 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VSFRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // G8RC 13, // sub_32 -> G8RC 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // G8RC_NOX0 14, // sub_32 -> G8RC_NOX0 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // SPILLTOVSRRC_and_VSFRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // G8RC_and_G8RC_NOX0 16, // sub_32 -> G8RC_and_G8RC_NOX0 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // F8RC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // SPERC 18, // sub_32 -> SPERC 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VFRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // SPERC_with_sub_32_in_GPRC_NOR0 20, // sub_32 -> SPERC_with_sub_32_in_GPRC_NOR0 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // SPILLTOVSRRC_and_VFRC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // SPILLTOVSRRC_and_F4RC 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // CTRRC8 0, // sub_32 0, // sub_64 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VSRC 0, // sub_32 24, // sub_64 -> VSRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VSRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_32 25, // sub_64 -> VSRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // QSRC 0, // sub_32 26, // sub_64 -> QSRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VRRC 0, // sub_32 27, // sub_64 -> VRRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VSLRC 0, // sub_32 28, // sub_64 -> VSLRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VRRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_32 29, // sub_64 -> VRRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // QSRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_32 30, // sub_64 -> QSRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // VSLRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_32 31, // sub_64 -> VSLRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // QBRC 0, // sub_32 32, // sub_64 -> QBRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // QFRC 0, // sub_32 33, // sub_64 -> QFRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, { // QBRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_32 34, // sub_64 -> QBRC_with_sub_64_in_SPILLTOVSRRC 0, // sub_eq 0, // sub_gt 0, // sub_lt 0, // sub_un }, }; assert(RC && "Missing regclass"); if (!Idx) return RC; --Idx; assert(Idx < 6 && "Bad subreg"); unsigned TV = Table[RC->getID()][Idx]; return TV ? getRegClass(TV - 1) : nullptr; } /// Get the weight in units of pressure for this register class. const RegClassWeight &PPCGenRegisterInfo:: getRegClassWeight(const TargetRegisterClass *RC) const { static const RegClassWeight RCWeightTable[] = { {1, 64}, // VSSRC {1, 34}, // GPRC {1, 34}, // GPRC_NOR0 {1, 33}, // GPRC_and_GPRC_NOR0 {1, 32}, // CRBITRC {1, 32}, // F4RC {4, 32}, // CRRC {1, 1}, // CARRYRC {0, 0}, // CTRRC {1, 1}, // VRSAVERC {1, 68}, // SPILLTOVSRRC {1, 64}, // VSFRC {1, 34}, // G8RC {1, 34}, // G8RC_NOX0 {1, 34}, // SPILLTOVSRRC_and_VSFRC {1, 33}, // G8RC_and_G8RC_NOX0 {1, 32}, // F8RC {1, 32}, // SPERC {1, 32}, // VFRC {1, 31}, // SPERC_with_sub_32_in_GPRC_NOR0 {1, 20}, // SPILLTOVSRRC_and_VFRC {1, 14}, // SPILLTOVSRRC_and_F4RC {0, 0}, // CTRRC8 {1, 64}, // VSRC {1, 34}, // VSRC_with_sub_64_in_SPILLTOVSRRC {1, 32}, // QSRC {1, 32}, // VRRC {1, 32}, // VSLRC {1, 20}, // VRRC_with_sub_64_in_SPILLTOVSRRC {1, 14}, // QSRC_with_sub_64_in_SPILLTOVSRRC {1, 14}, // VSLRC_with_sub_64_in_SPILLTOVSRRC {1, 32}, // QBRC {1, 32}, // QFRC {1, 14}, // QBRC_with_sub_64_in_SPILLTOVSRRC }; return RCWeightTable[RC->getID()]; } /// Get the weight in units of pressure for this register unit. unsigned PPCGenRegisterInfo:: getRegUnitWeight(unsigned RegUnit) const { assert(RegUnit < 171 && "invalid register unit"); // All register units have unit weight. return 1; } // Get the number of dimensions of register pressure. unsigned PPCGenRegisterInfo::getNumRegPressureSets() const { return 16; } // Get the name of this register unit pressure set. const char *PPCGenRegisterInfo:: getRegPressureSetName(unsigned Idx) const { static const char *const PressureNameTable[] = { "CARRYRC", "VRSAVERC", "SPILLTOVSRRC_and_F4RC", "SPILLTOVSRRC_and_VFRC", "CRBITRC", "F4RC", "VFRC", "SPILLTOVSRRC_and_VSFRC", "GPRC", "SPILLTOVSRRC_and_VSFRC+VFRC", "F4RC+SPILLTOVSRRC_and_VSFRC", "VSSRC", "SPILLTOVSRRC", "SPILLTOVSRRC+VFRC", "F4RC+SPILLTOVSRRC", "VSSRC+SPILLTOVSRRC", }; return PressureNameTable[Idx]; } // Get the register unit pressure limit for this dimension. // This limit must be adjusted dynamically for reserved registers. unsigned PPCGenRegisterInfo:: getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const { static const uint8_t PressureLimitTable[] = { 1, // 0: CARRYRC 1, // 1: VRSAVERC 14, // 2: SPILLTOVSRRC_and_F4RC 20, // 3: SPILLTOVSRRC_and_VFRC 32, // 4: CRBITRC 32, // 5: F4RC 32, // 6: VFRC 34, // 7: SPILLTOVSRRC_and_VSFRC 35, // 8: GPRC 46, // 9: SPILLTOVSRRC_and_VSFRC+VFRC 52, // 10: F4RC+SPILLTOVSRRC_and_VSFRC 64, // 11: VSSRC 69, // 12: SPILLTOVSRRC 80, // 13: SPILLTOVSRRC+VFRC 86, // 14: F4RC+SPILLTOVSRRC 98, // 15: VSSRC+SPILLTOVSRRC }; return PressureLimitTable[Idx]; } /// Table of pressure sets per register class or unit. static const int RCSetsTable[] = { /* 0 */ 0, -1, /* 2 */ 1, -1, /* 4 */ 4, -1, /* 6 */ 8, 12, -1, /* 9 */ 11, 15, -1, /* 12 */ 6, 9, 11, 13, 15, -1, /* 18 */ 5, 10, 11, 14, 15, -1, /* 24 */ 8, 12, 13, 14, 15, -1, /* 30 */ 2, 5, 7, 9, 10, 11, 12, 13, 14, 15, -1, /* 41 */ 3, 6, 7, 9, 10, 11, 12, 13, 14, 15, -1, }; /// Get the dimensions of register pressure impacted by this register class. /// Returns a -1 terminated array of pressure set IDs const int* PPCGenRegisterInfo:: getRegClassPressureSets(const TargetRegisterClass *RC) const { static const uint8_t RCSetStartTable[] = { 9,24,6,24,4,18,4,0,1,2,25,9,24,6,32,24,18,24,12,24,41,30,1,9,32,18,12,18,41,30,30,18,18,30,}; return &RCSetsTable[RCSetStartTable[RC->getID()]]; } /// Get the dimensions of register pressure impacted by this register unit. /// Returns a -1 terminated array of pressure set IDs const int* PPCGenRegisterInfo:: getRegUnitPressureSets(unsigned RegUnit) const { assert(RegUnit < 171 && "invalid register unit"); static const uint8_t RUSetStartTable[] = { 24,0,1,24,1,1,1,2,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,30,30,30,30,30,30,30,30,30,30,30,30,30,30,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,1,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,12,12,12,12,12,12,12,12,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}; return &RCSetsTable[RUSetStartTable[RegUnit]]; } extern const MCRegisterDesc PPCRegDesc[]; extern const MCPhysReg PPCRegDiffLists[]; extern const LaneBitmask PPCLaneMaskLists[]; extern const char PPCRegStrings[]; extern const char PPCRegClassStrings[]; extern const MCPhysReg PPCRegUnitRoots[][2]; extern const uint16_t PPCSubRegIdxLists[]; extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[]; extern const uint16_t PPCRegEncodingTable[]; // PPC Dwarf<->LLVM register mappings. extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[]; extern const unsigned PPCDwarfFlavour0Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[]; extern const unsigned PPCDwarfFlavour1Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[]; extern const unsigned PPCEHFlavour0Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[]; extern const unsigned PPCEHFlavour1Dwarf2LSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[]; extern const unsigned PPCDwarfFlavour0L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[]; extern const unsigned PPCDwarfFlavour1L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[]; extern const unsigned PPCEHFlavour0L2DwarfSize; extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[]; extern const unsigned PPCEHFlavour1L2DwarfSize; PPCGenRegisterInfo:: PPCGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour, unsigned PC, unsigned HwMode) : TargetRegisterInfo(PPCRegInfoDesc, RegisterClasses, RegisterClasses+34, SubRegIndexNameTable, SubRegIndexLaneMaskTable, LaneBitmask(0xFFFFFFC0), RegClassInfos, HwMode) { InitMCRegisterInfo(PPCRegDesc, 344, RA, PC, PPCMCRegisterClasses, 34, PPCRegUnitRoots, 171, PPCRegDiffLists, PPCLaneMaskLists, PPCRegStrings, PPCRegClassStrings, PPCSubRegIdxLists, 7, PPCSubRegIdxRanges, PPCRegEncodingTable); switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false); break; case 1: mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true); break; case 1: mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true); break; } switch (DwarfFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false); break; case 1: mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false); break; } switch (EHFlavour) { default: llvm_unreachable("Unknown DWARF flavour"); case 0: mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true); break; case 1: mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true); break; } } static const MCPhysReg CSR_64_AllRegs_SaveList[] = { PPC::X0, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, 0 }; static const uint32_t CSR_64_AllRegs_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfc800000, 0xff7fffe3, 0x00ffffff, }; static const MCPhysReg CSR_64_AllRegs_Altivec_SaveList[] = { PPC::X0, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_64_AllRegs_Altivec_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0xff800000, 0xffffffff, 0x007fffff, 0x00000000, 0xfc800000, 0xff7fffe3, 0x00ffffff, }; static const MCPhysReg CSR_64_AllRegs_VSX_SaveList[] = { PPC::X0, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::VSL14, PPC::VSL15, PPC::VSL16, PPC::VSL17, PPC::VSL18, PPC::VSL19, PPC::VSL20, PPC::VSL21, PPC::VSL22, PPC::VSL23, PPC::VSL24, PPC::VSL25, PPC::VSL26, PPC::VSL27, PPC::VSL28, PPC::VSL29, PPC::VSL30, PPC::VSL31, 0 }; static const uint32_t CSR_64_AllRegs_VSX_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0xff800000, 0xffffffff, 0xffffffff, 0x007fffff, 0xfc800000, 0xff7fffe3, 0x00ffffff, }; static const MCPhysReg CSR_AIX32_SaveList[] = { PPC::R13, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_AIX32_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_AIX64_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_AIX64_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_Altivec_SaveList[] = { PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_Altivec_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_Darwin32_SaveList[] = { PPC::R13, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_Darwin32_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_Darwin32_Altivec_SaveList[] = { PPC::R13, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_Darwin32_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_Darwin64_SaveList[] = { PPC::X13, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_Darwin64_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7ffff0, 0x001c1c1c, }; static const MCPhysReg CSR_Darwin64_Altivec_SaveList[] = { PPC::X13, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_Darwin64_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7ffff0, 0x001c1c1c, }; static const MCPhysReg CSR_NoRegs_SaveList[] = { 0 }; static const uint32_t CSR_NoRegs_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_SPE_SaveList[] = { PPC::S14, PPC::S15, PPC::S16, PPC::S17, PPC::S18, PPC::S19, PPC::S20, PPC::S21, PPC::S22, PPC::S23, PPC::S24, PPC::S25, PPC::S26, PPC::S27, PPC::S28, PPC::S29, PPC::S30, PPC::S31, 0 }; static const uint32_t CSR_SPE_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x007fffe0, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_SRV464_TLS_PE_SaveList[] = { 0 }; static const uint32_t CSR_SRV464_TLS_PE_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; static const MCPhysReg CSR_SVR32_ColdCC_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, 0 }; static const uint32_t CSR_SVR32_ColdCC_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, }; static const MCPhysReg CSR_SVR32_ColdCC_Altivec_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::V0, PPC::V1, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_SVR32_ColdCC_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, }; static const MCPhysReg CSR_SVR32_ColdCC_Common_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, 0 }; static const uint32_t CSR_SVR32_ColdCC_Common_RegMask[] = { 0x000ff000, 0x00000000, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, }; static const MCPhysReg CSR_SVR32_ColdCC_SPE_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::S4, PPC::S5, PPC::S6, PPC::S7, PPC::S8, PPC::S9, PPC::S10, PPC::S14, PPC::S15, PPC::S16, PPC::S17, PPC::S18, PPC::S19, PPC::S20, PPC::S21, PPC::S22, PPC::S23, PPC::S24, PPC::S25, PPC::S26, PPC::S27, PPC::S28, PPC::S29, PPC::S30, PPC::S31, 0 }; static const uint32_t CSR_SVR32_ColdCC_SPE_RegMask[] = { 0x000ff000, 0x00000000, 0xf8000000, 0xf87fffe3, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, }; static const MCPhysReg CSR_SVR432_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, 0 }; static const uint32_t CSR_SVR432_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_SVR432_Altivec_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_SVR432_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_SVR432_COMM_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_SVR432_COMM_RegMask[] = { 0x0001c000, 0x00000000, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_SVR432_SPE_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::S14, PPC::S15, PPC::S16, PPC::S17, PPC::S18, PPC::S19, PPC::S20, PPC::S21, PPC::S22, PPC::S23, PPC::S24, PPC::S25, PPC::S26, PPC::S27, PPC::S28, PPC::S29, PPC::S30, PPC::S31, 0 }; static const uint32_t CSR_SVR432_SPE_RegMask[] = { 0x0001c000, 0x00000000, 0x00000000, 0x007fffe0, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_SVR464_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_Altivec_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_SVR464_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_Altivec_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_SVR464_Altivec_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_R2_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::X2, 0 }; static const uint32_t CSR_SVR464_R2_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_R2_Altivec_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::X2, 0 }; static const uint32_t CSR_SVR464_R2_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_R2_Altivec_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::X2, 0 }; static const uint32_t CSR_SVR464_R2_Altivec_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_R2_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::X2, 0 }; static const uint32_t CSR_SVR464_R2_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR464_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 }; static const uint32_t CSR_SVR464_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, }; static const MCPhysReg CSR_SVR64_ColdCC_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, 0 }; static const uint32_t CSR_SVR64_ColdCC_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xf8000000, 0xff7fffe3, 0x00ffffff, }; static const MCPhysReg CSR_SVR64_ColdCC_Altivec_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 }; static const uint32_t CSR_SVR64_ColdCC_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0xf8000000, 0xff7fffe3, 0x00ffffff, }; static const MCPhysReg CSR_SVR64_ColdCC_R2_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::X2, 0 }; static const uint32_t CSR_SVR64_ColdCC_R2_RegMask[] = { 0xffaff000, 0x001fffff, 0xfa000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfa000000, 0xff7fffe3, 0x00ffffff, }; static const MCPhysReg CSR_SVR64_ColdCC_R2_Altivec_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::X2, 0 }; static const uint32_t CSR_SVR64_ColdCC_R2_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xfa000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0xfa000000, 0xff7fffe3, 0x00ffffff, }; ArrayRef PPCGenRegisterInfo::getRegMasks() const { static const uint32_t *const Masks[] = { CSR_64_AllRegs_RegMask, CSR_64_AllRegs_Altivec_RegMask, CSR_64_AllRegs_VSX_RegMask, CSR_AIX32_RegMask, CSR_AIX64_RegMask, CSR_Altivec_RegMask, CSR_Darwin32_RegMask, CSR_Darwin32_Altivec_RegMask, CSR_Darwin64_RegMask, CSR_Darwin64_Altivec_RegMask, CSR_NoRegs_RegMask, CSR_SPE_RegMask, CSR_SRV464_TLS_PE_RegMask, CSR_SVR32_ColdCC_RegMask, CSR_SVR32_ColdCC_Altivec_RegMask, CSR_SVR32_ColdCC_Common_RegMask, CSR_SVR32_ColdCC_SPE_RegMask, CSR_SVR432_RegMask, CSR_SVR432_Altivec_RegMask, CSR_SVR432_COMM_RegMask, CSR_SVR432_SPE_RegMask, CSR_SVR464_RegMask, CSR_SVR464_Altivec_RegMask, CSR_SVR464_Altivec_ViaCopy_RegMask, CSR_SVR464_R2_RegMask, CSR_SVR464_R2_Altivec_RegMask, CSR_SVR464_R2_Altivec_ViaCopy_RegMask, CSR_SVR464_R2_ViaCopy_RegMask, CSR_SVR464_ViaCopy_RegMask, CSR_SVR64_ColdCC_RegMask, CSR_SVR64_ColdCC_Altivec_RegMask, CSR_SVR64_ColdCC_R2_RegMask, CSR_SVR64_ColdCC_R2_Altivec_RegMask, }; return makeArrayRef(Masks); } ArrayRef PPCGenRegisterInfo::getRegMaskNames() const { static const char *const Names[] = { "CSR_64_AllRegs", "CSR_64_AllRegs_Altivec", "CSR_64_AllRegs_VSX", "CSR_AIX32", "CSR_AIX64", "CSR_Altivec", "CSR_Darwin32", "CSR_Darwin32_Altivec", "CSR_Darwin64", "CSR_Darwin64_Altivec", "CSR_NoRegs", "CSR_SPE", "CSR_SRV464_TLS_PE", "CSR_SVR32_ColdCC", "CSR_SVR32_ColdCC_Altivec", "CSR_SVR32_ColdCC_Common", "CSR_SVR32_ColdCC_SPE", "CSR_SVR432", "CSR_SVR432_Altivec", "CSR_SVR432_COMM", "CSR_SVR432_SPE", "CSR_SVR464", "CSR_SVR464_Altivec", "CSR_SVR464_Altivec_ViaCopy", "CSR_SVR464_R2", "CSR_SVR464_R2_Altivec", "CSR_SVR464_R2_Altivec_ViaCopy", "CSR_SVR464_R2_ViaCopy", "CSR_SVR464_ViaCopy", "CSR_SVR64_ColdCC", "CSR_SVR64_ColdCC_Altivec", "CSR_SVR64_ColdCC_R2", "CSR_SVR64_ColdCC_R2_Altivec", }; return makeArrayRef(Names); } const PPCFrameLowering * PPCGenRegisterInfo::getFrameLowering(const MachineFunction &MF) { return static_cast( MF.getSubtarget().getFrameLowering()); } } // end namespace llvm #endif // GET_REGINFO_TARGET_DESC