LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/PowerPC - PPCGenRegisterInfo.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 93 128 72.7 %
Date: 2018-10-20 13:21:21 Functions: 22 26 84.6 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Target Register Enum Values                                                *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : 
      10             : #ifdef GET_REGINFO_ENUM
      11             : #undef GET_REGINFO_ENUM
      12             : 
      13             : namespace llvm {
      14             : 
      15             : class MCRegisterClass;
      16             : extern const MCRegisterClass PPCMCRegisterClasses[];
      17             : 
      18             : namespace PPC {
      19             : enum {
      20             :   NoRegister,
      21             :   BP = 1,
      22             :   CARRY = 2,
      23             :   CTR = 3,
      24             :   FP = 4,
      25             :   LR = 5,
      26             :   RM = 6,
      27             :   SPEFSCR = 7,
      28             :   VRSAVE = 8,
      29             :   XER = 9,
      30             :   ZERO = 10,
      31             :   BP8 = 11,
      32             :   CR0 = 12,
      33             :   CR1 = 13,
      34             :   CR2 = 14,
      35             :   CR3 = 15,
      36             :   CR4 = 16,
      37             :   CR5 = 17,
      38             :   CR6 = 18,
      39             :   CR7 = 19,
      40             :   CTR8 = 20,
      41             :   F0 = 21,
      42             :   F1 = 22,
      43             :   F2 = 23,
      44             :   F3 = 24,
      45             :   F4 = 25,
      46             :   F5 = 26,
      47             :   F6 = 27,
      48             :   F7 = 28,
      49             :   F8 = 29,
      50             :   F9 = 30,
      51             :   F10 = 31,
      52             :   F11 = 32,
      53             :   F12 = 33,
      54             :   F13 = 34,
      55             :   F14 = 35,
      56             :   F15 = 36,
      57             :   F16 = 37,
      58             :   F17 = 38,
      59             :   F18 = 39,
      60             :   F19 = 40,
      61             :   F20 = 41,
      62             :   F21 = 42,
      63             :   F22 = 43,
      64             :   F23 = 44,
      65             :   F24 = 45,
      66             :   F25 = 46,
      67             :   F26 = 47,
      68             :   F27 = 48,
      69             :   F28 = 49,
      70             :   F29 = 50,
      71             :   F30 = 51,
      72             :   F31 = 52,
      73             :   FP8 = 53,
      74             :   LR8 = 54,
      75             :   QF0 = 55,
      76             :   QF1 = 56,
      77             :   QF2 = 57,
      78             :   QF3 = 58,
      79             :   QF4 = 59,
      80             :   QF5 = 60,
      81             :   QF6 = 61,
      82             :   QF7 = 62,
      83             :   QF8 = 63,
      84             :   QF9 = 64,
      85             :   QF10 = 65,
      86             :   QF11 = 66,
      87             :   QF12 = 67,
      88             :   QF13 = 68,
      89             :   QF14 = 69,
      90             :   QF15 = 70,
      91             :   QF16 = 71,
      92             :   QF17 = 72,
      93             :   QF18 = 73,
      94             :   QF19 = 74,
      95             :   QF20 = 75,
      96             :   QF21 = 76,
      97             :   QF22 = 77,
      98             :   QF23 = 78,
      99             :   QF24 = 79,
     100             :   QF25 = 80,
     101             :   QF26 = 81,
     102             :   QF27 = 82,
     103             :   QF28 = 83,
     104             :   QF29 = 84,
     105             :   QF30 = 85,
     106             :   QF31 = 86,
     107             :   R0 = 87,
     108             :   R1 = 88,
     109             :   R2 = 89,
     110             :   R3 = 90,
     111             :   R4 = 91,
     112             :   R5 = 92,
     113             :   R6 = 93,
     114             :   R7 = 94,
     115             :   R8 = 95,
     116             :   R9 = 96,
     117             :   R10 = 97,
     118             :   R11 = 98,
     119             :   R12 = 99,
     120             :   R13 = 100,
     121             :   R14 = 101,
     122             :   R15 = 102,
     123             :   R16 = 103,
     124             :   R17 = 104,
     125             :   R18 = 105,
     126             :   R19 = 106,
     127             :   R20 = 107,
     128             :   R21 = 108,
     129             :   R22 = 109,
     130             :   R23 = 110,
     131             :   R24 = 111,
     132             :   R25 = 112,
     133             :   R26 = 113,
     134             :   R27 = 114,
     135             :   R28 = 115,
     136             :   R29 = 116,
     137             :   R30 = 117,
     138             :   R31 = 118,
     139             :   S0 = 119,
     140             :   S1 = 120,
     141             :   S2 = 121,
     142             :   S3 = 122,
     143             :   S4 = 123,
     144             :   S5 = 124,
     145             :   S6 = 125,
     146             :   S7 = 126,
     147             :   S8 = 127,
     148             :   S9 = 128,
     149             :   S10 = 129,
     150             :   S11 = 130,
     151             :   S12 = 131,
     152             :   S13 = 132,
     153             :   S14 = 133,
     154             :   S15 = 134,
     155             :   S16 = 135,
     156             :   S17 = 136,
     157             :   S18 = 137,
     158             :   S19 = 138,
     159             :   S20 = 139,
     160             :   S21 = 140,
     161             :   S22 = 141,
     162             :   S23 = 142,
     163             :   S24 = 143,
     164             :   S25 = 144,
     165             :   S26 = 145,
     166             :   S27 = 146,
     167             :   S28 = 147,
     168             :   S29 = 148,
     169             :   S30 = 149,
     170             :   S31 = 150,
     171             :   V0 = 151,
     172             :   V1 = 152,
     173             :   V2 = 153,
     174             :   V3 = 154,
     175             :   V4 = 155,
     176             :   V5 = 156,
     177             :   V6 = 157,
     178             :   V7 = 158,
     179             :   V8 = 159,
     180             :   V9 = 160,
     181             :   V10 = 161,
     182             :   V11 = 162,
     183             :   V12 = 163,
     184             :   V13 = 164,
     185             :   V14 = 165,
     186             :   V15 = 166,
     187             :   V16 = 167,
     188             :   V17 = 168,
     189             :   V18 = 169,
     190             :   V19 = 170,
     191             :   V20 = 171,
     192             :   V21 = 172,
     193             :   V22 = 173,
     194             :   V23 = 174,
     195             :   V24 = 175,
     196             :   V25 = 176,
     197             :   V26 = 177,
     198             :   V27 = 178,
     199             :   V28 = 179,
     200             :   V29 = 180,
     201             :   V30 = 181,
     202             :   V31 = 182,
     203             :   VF0 = 183,
     204             :   VF1 = 184,
     205             :   VF2 = 185,
     206             :   VF3 = 186,
     207             :   VF4 = 187,
     208             :   VF5 = 188,
     209             :   VF6 = 189,
     210             :   VF7 = 190,
     211             :   VF8 = 191,
     212             :   VF9 = 192,
     213             :   VF10 = 193,
     214             :   VF11 = 194,
     215             :   VF12 = 195,
     216             :   VF13 = 196,
     217             :   VF14 = 197,
     218             :   VF15 = 198,
     219             :   VF16 = 199,
     220             :   VF17 = 200,
     221             :   VF18 = 201,
     222             :   VF19 = 202,
     223             :   VF20 = 203,
     224             :   VF21 = 204,
     225             :   VF22 = 205,
     226             :   VF23 = 206,
     227             :   VF24 = 207,
     228             :   VF25 = 208,
     229             :   VF26 = 209,
     230             :   VF27 = 210,
     231             :   VF28 = 211,
     232             :   VF29 = 212,
     233             :   VF30 = 213,
     234             :   VF31 = 214,
     235             :   VSL0 = 215,
     236             :   VSL1 = 216,
     237             :   VSL2 = 217,
     238             :   VSL3 = 218,
     239             :   VSL4 = 219,
     240             :   VSL5 = 220,
     241             :   VSL6 = 221,
     242             :   VSL7 = 222,
     243             :   VSL8 = 223,
     244             :   VSL9 = 224,
     245             :   VSL10 = 225,
     246             :   VSL11 = 226,
     247             :   VSL12 = 227,
     248             :   VSL13 = 228,
     249             :   VSL14 = 229,
     250             :   VSL15 = 230,
     251             :   VSL16 = 231,
     252             :   VSL17 = 232,
     253             :   VSL18 = 233,
     254             :   VSL19 = 234,
     255             :   VSL20 = 235,
     256             :   VSL21 = 236,
     257             :   VSL22 = 237,
     258             :   VSL23 = 238,
     259             :   VSL24 = 239,
     260             :   VSL25 = 240,
     261             :   VSL26 = 241,
     262             :   VSL27 = 242,
     263             :   VSL28 = 243,
     264             :   VSL29 = 244,
     265             :   VSL30 = 245,
     266             :   VSL31 = 246,
     267             :   VSX32 = 247,
     268             :   VSX33 = 248,
     269             :   VSX34 = 249,
     270             :   VSX35 = 250,
     271             :   VSX36 = 251,
     272             :   VSX37 = 252,
     273             :   VSX38 = 253,
     274             :   VSX39 = 254,
     275             :   VSX40 = 255,
     276             :   VSX41 = 256,
     277             :   VSX42 = 257,
     278             :   VSX43 = 258,
     279             :   VSX44 = 259,
     280             :   VSX45 = 260,
     281             :   VSX46 = 261,
     282             :   VSX47 = 262,
     283             :   VSX48 = 263,
     284             :   VSX49 = 264,
     285             :   VSX50 = 265,
     286             :   VSX51 = 266,
     287             :   VSX52 = 267,
     288             :   VSX53 = 268,
     289             :   VSX54 = 269,
     290             :   VSX55 = 270,
     291             :   VSX56 = 271,
     292             :   VSX57 = 272,
     293             :   VSX58 = 273,
     294             :   VSX59 = 274,
     295             :   VSX60 = 275,
     296             :   VSX61 = 276,
     297             :   VSX62 = 277,
     298             :   VSX63 = 278,
     299             :   X0 = 279,
     300             :   X1 = 280,
     301             :   X2 = 281,
     302             :   X3 = 282,
     303             :   X4 = 283,
     304             :   X5 = 284,
     305             :   X6 = 285,
     306             :   X7 = 286,
     307             :   X8 = 287,
     308             :   X9 = 288,
     309             :   X10 = 289,
     310             :   X11 = 290,
     311             :   X12 = 291,
     312             :   X13 = 292,
     313             :   X14 = 293,
     314             :   X15 = 294,
     315             :   X16 = 295,
     316             :   X17 = 296,
     317             :   X18 = 297,
     318             :   X19 = 298,
     319             :   X20 = 299,
     320             :   X21 = 300,
     321             :   X22 = 301,
     322             :   X23 = 302,
     323             :   X24 = 303,
     324             :   X25 = 304,
     325             :   X26 = 305,
     326             :   X27 = 306,
     327             :   X28 = 307,
     328             :   X29 = 308,
     329             :   X30 = 309,
     330             :   X31 = 310,
     331             :   ZERO8 = 311,
     332             :   CR0EQ = 312,
     333             :   CR1EQ = 313,
     334             :   CR2EQ = 314,
     335             :   CR3EQ = 315,
     336             :   CR4EQ = 316,
     337             :   CR5EQ = 317,
     338             :   CR6EQ = 318,
     339             :   CR7EQ = 319,
     340             :   CR0GT = 320,
     341             :   CR1GT = 321,
     342             :   CR2GT = 322,
     343             :   CR3GT = 323,
     344             :   CR4GT = 324,
     345             :   CR5GT = 325,
     346             :   CR6GT = 326,
     347             :   CR7GT = 327,
     348             :   CR0LT = 328,
     349             :   CR1LT = 329,
     350             :   CR2LT = 330,
     351             :   CR3LT = 331,
     352             :   CR4LT = 332,
     353             :   CR5LT = 333,
     354             :   CR6LT = 334,
     355             :   CR7LT = 335,
     356             :   CR0UN = 336,
     357             :   CR1UN = 337,
     358             :   CR2UN = 338,
     359             :   CR3UN = 339,
     360             :   CR4UN = 340,
     361             :   CR5UN = 341,
     362             :   CR6UN = 342,
     363             :   CR7UN = 343,
     364             :   NUM_TARGET_REGS       // 344
     365             : };
     366             : } // end namespace PPC
     367             : 
     368             : // Register classes
     369             : 
     370             : namespace PPC {
     371             : enum {
     372             :   VSSRCRegClassID = 0,
     373             :   GPRCRegClassID = 1,
     374             :   GPRC_NOR0RegClassID = 2,
     375             :   SPE4RCRegClassID = 3,
     376             :   GPRC_and_GPRC_NOR0RegClassID = 4,
     377             :   CRBITRCRegClassID = 5,
     378             :   F4RCRegClassID = 6,
     379             :   CRRCRegClassID = 7,
     380             :   CARRYRCRegClassID = 8,
     381             :   CRRC0RegClassID = 9,
     382             :   CTRRCRegClassID = 10,
     383             :   VRSAVERCRegClassID = 11,
     384             :   SPILLTOVSRRCRegClassID = 12,
     385             :   VSFRCRegClassID = 13,
     386             :   G8RCRegClassID = 14,
     387             :   G8RC_NOX0RegClassID = 15,
     388             :   SPILLTOVSRRC_and_VSFRCRegClassID = 16,
     389             :   G8RC_and_G8RC_NOX0RegClassID = 17,
     390             :   F8RCRegClassID = 18,
     391             :   SPERCRegClassID = 19,
     392             :   VFRCRegClassID = 20,
     393             :   SPERC_with_sub_32_in_GPRC_NOR0RegClassID = 21,
     394             :   SPILLTOVSRRC_and_VFRCRegClassID = 22,
     395             :   SPILLTOVSRRC_and_F4RCRegClassID = 23,
     396             :   CTRRC8RegClassID = 24,
     397             :   VSRCRegClassID = 25,
     398             :   VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 26,
     399             :   QSRCRegClassID = 27,
     400             :   VRRCRegClassID = 28,
     401             :   VSLRCRegClassID = 29,
     402             :   VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 30,
     403             :   QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 31,
     404             :   VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 32,
     405             :   QBRCRegClassID = 33,
     406             :   QFRCRegClassID = 34,
     407             :   QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 35,
     408             : 
     409             :   };
     410             : } // end namespace PPC
     411             : 
     412             : 
     413             : // Subregister indices
     414             : 
     415             : namespace PPC {
     416             : enum {
     417             :   NoSubRegister,
     418             :   sub_32,       // 1
     419             :   sub_64,       // 2
     420             :   sub_eq,       // 3
     421             :   sub_gt,       // 4
     422             :   sub_lt,       // 5
     423             :   sub_un,       // 6
     424             :   NUM_TARGET_SUBREGS
     425             : };
     426             : } // end namespace PPC
     427             : 
     428             : } // end namespace llvm
     429             : 
     430             : #endif // GET_REGINFO_ENUM
     431             : 
     432             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
     433             : |*                                                                            *|
     434             : |* MC Register Information                                                    *|
     435             : |*                                                                            *|
     436             : |* Automatically generated file, do not edit!                                 *|
     437             : |*                                                                            *|
     438             : \*===----------------------------------------------------------------------===*/
     439             : 
     440             : 
     441             : #ifdef GET_REGINFO_MC_DESC
     442             : #undef GET_REGINFO_MC_DESC
     443             : 
     444             : namespace llvm {
     445             : 
     446             : extern const MCPhysReg PPCRegDiffLists[] = {
     447             :   /* 0 */ 0, 0,
     448             :   /* 2 */ 65497, 1, 1, 1, 0,
     449             :   /* 7 */ 3, 0,
     450             :   /* 9 */ 10, 0,
     451             :   /* 11 */ 21, 0,
     452             :   /* 13 */ 316, 65528, 65528, 24, 0,
     453             :   /* 18 */ 32, 0,
     454             :   /* 20 */ 49, 0,
     455             :   /* 22 */ 74, 0,
     456             :   /* 24 */ 32, 160, 0,
     457             :   /* 27 */ 34, 160, 0,
     458             :   /* 30 */ 301, 0,
     459             :   /* 32 */ 64204, 0,
     460             :   /* 34 */ 64233, 0,
     461             :   /* 36 */ 64266, 0,
     462             :   /* 38 */ 64299, 0,
     463             :   /* 40 */ 64611, 0,
     464             :   /* 42 */ 65212, 0,
     465             :   /* 44 */ 65220, 0,
     466             :   /* 46 */ 65228, 0,
     467             :   /* 48 */ 65235, 0,
     468             :   /* 50 */ 65236, 0,
     469             :   /* 52 */ 65332, 0,
     470             :   /* 54 */ 65342, 0,
     471             :   /* 56 */ 65344, 0,
     472             :   /* 58 */ 65363, 0,
     473             :   /* 60 */ 65428, 0,
     474             :   /* 62 */ 65460, 0,
     475             :   /* 64 */ 65474, 0,
     476             :   /* 66 */ 65487, 0,
     477             :   /* 68 */ 65492, 0,
     478             :   /* 70 */ 65502, 0,
     479             :   /* 72 */ 65504, 0,
     480             :   /* 74 */ 65523, 0,
     481             :   /* 76 */ 65524, 0,
     482             :   /* 78 */ 65526, 0,
     483             :   /* 80 */ 65535, 0,
     484             : };
     485             : 
     486             : extern const LaneBitmask PPCLaneMaskLists[] = {
     487             :   /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(),
     488             :   /* 2 */ LaneBitmask(0x00000001), LaneBitmask::getAll(),
     489             :   /* 4 */ LaneBitmask(0x00000002), LaneBitmask::getAll(),
     490             :   /* 6 */ LaneBitmask(0x00000010), LaneBitmask(0x00000008), LaneBitmask(0x00000004), LaneBitmask(0x00000020), LaneBitmask::getAll(),
     491             : };
     492             : 
     493             : extern const uint16_t PPCSubRegIdxLists[] = {
     494             :   /* 0 */ 1, 0,
     495             :   /* 2 */ 2, 0,
     496             :   /* 4 */ 5, 4, 3, 6, 0,
     497             : };
     498             : 
     499             : extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[] = {
     500             :   { 65535, 65535 },
     501             :   { 0, 32 },    // sub_32
     502             :   { 0, 64 },    // sub_64
     503             :   { 2, 1 },     // sub_eq
     504             :   { 1, 1 },     // sub_gt
     505             :   { 0, 1 },     // sub_lt
     506             :   { 3, 1 },     // sub_un
     507             : };
     508             : 
     509             : extern const char PPCRegStrings[] = {
     510             :   /* 0 */ 'Q', 'F', '1', '0', 0,
     511             :   /* 5 */ 'V', 'F', '1', '0', 0,
     512             :   /* 10 */ 'V', 'S', 'L', '1', '0', 0,
     513             :   /* 16 */ 'R', '1', '0', 0,
     514             :   /* 20 */ 'S', '1', '0', 0,
     515             :   /* 24 */ 'V', '1', '0', 0,
     516             :   /* 28 */ 'X', '1', '0', 0,
     517             :   /* 32 */ 'Q', 'F', '2', '0', 0,
     518             :   /* 37 */ 'V', 'F', '2', '0', 0,
     519             :   /* 42 */ 'V', 'S', 'L', '2', '0', 0,
     520             :   /* 48 */ 'R', '2', '0', 0,
     521             :   /* 52 */ 'S', '2', '0', 0,
     522             :   /* 56 */ 'V', '2', '0', 0,
     523             :   /* 60 */ 'X', '2', '0', 0,
     524             :   /* 64 */ 'Q', 'F', '3', '0', 0,
     525             :   /* 69 */ 'V', 'F', '3', '0', 0,
     526             :   /* 74 */ 'V', 'S', 'L', '3', '0', 0,
     527             :   /* 80 */ 'R', '3', '0', 0,
     528             :   /* 84 */ 'S', '3', '0', 0,
     529             :   /* 88 */ 'V', '3', '0', 0,
     530             :   /* 92 */ 'X', '3', '0', 0,
     531             :   /* 96 */ 'V', 'S', 'X', '4', '0', 0,
     532             :   /* 102 */ 'V', 'S', 'X', '5', '0', 0,
     533             :   /* 108 */ 'V', 'S', 'X', '6', '0', 0,
     534             :   /* 114 */ 'Q', 'F', '0', 0,
     535             :   /* 118 */ 'V', 'F', '0', 0,
     536             :   /* 122 */ 'V', 'S', 'L', '0', 0,
     537             :   /* 127 */ 'C', 'R', '0', 0,
     538             :   /* 131 */ 'S', '0', 0,
     539             :   /* 134 */ 'V', '0', 0,
     540             :   /* 137 */ 'X', '0', 0,
     541             :   /* 140 */ 'Q', 'F', '1', '1', 0,
     542             :   /* 145 */ 'V', 'F', '1', '1', 0,
     543             :   /* 150 */ 'V', 'S', 'L', '1', '1', 0,
     544             :   /* 156 */ 'R', '1', '1', 0,
     545             :   /* 160 */ 'S', '1', '1', 0,
     546             :   /* 164 */ 'V', '1', '1', 0,
     547             :   /* 168 */ 'X', '1', '1', 0,
     548             :   /* 172 */ 'Q', 'F', '2', '1', 0,
     549             :   /* 177 */ 'V', 'F', '2', '1', 0,
     550             :   /* 182 */ 'V', 'S', 'L', '2', '1', 0,
     551             :   /* 188 */ 'R', '2', '1', 0,
     552             :   /* 192 */ 'S', '2', '1', 0,
     553             :   /* 196 */ 'V', '2', '1', 0,
     554             :   /* 200 */ 'X', '2', '1', 0,
     555             :   /* 204 */ 'Q', 'F', '3', '1', 0,
     556             :   /* 209 */ 'V', 'F', '3', '1', 0,
     557             :   /* 214 */ 'V', 'S', 'L', '3', '1', 0,
     558             :   /* 220 */ 'R', '3', '1', 0,
     559             :   /* 224 */ 'S', '3', '1', 0,
     560             :   /* 228 */ 'V', '3', '1', 0,
     561             :   /* 232 */ 'X', '3', '1', 0,
     562             :   /* 236 */ 'V', 'S', 'X', '4', '1', 0,
     563             :   /* 242 */ 'V', 'S', 'X', '5', '1', 0,
     564             :   /* 248 */ 'V', 'S', 'X', '6', '1', 0,
     565             :   /* 254 */ 'Q', 'F', '1', 0,
     566             :   /* 258 */ 'V', 'F', '1', 0,
     567             :   /* 262 */ 'V', 'S', 'L', '1', 0,
     568             :   /* 267 */ 'C', 'R', '1', 0,
     569             :   /* 271 */ 'S', '1', 0,
     570             :   /* 274 */ 'V', '1', 0,
     571             :   /* 277 */ 'X', '1', 0,
     572             :   /* 280 */ 'Q', 'F', '1', '2', 0,
     573             :   /* 285 */ 'V', 'F', '1', '2', 0,
     574             :   /* 290 */ 'V', 'S', 'L', '1', '2', 0,
     575             :   /* 296 */ 'R', '1', '2', 0,
     576             :   /* 300 */ 'S', '1', '2', 0,
     577             :   /* 304 */ 'V', '1', '2', 0,
     578             :   /* 308 */ 'X', '1', '2', 0,
     579             :   /* 312 */ 'Q', 'F', '2', '2', 0,
     580             :   /* 317 */ 'V', 'F', '2', '2', 0,
     581             :   /* 322 */ 'V', 'S', 'L', '2', '2', 0,
     582             :   /* 328 */ 'R', '2', '2', 0,
     583             :   /* 332 */ 'S', '2', '2', 0,
     584             :   /* 336 */ 'V', '2', '2', 0,
     585             :   /* 340 */ 'X', '2', '2', 0,
     586             :   /* 344 */ 'V', 'S', 'X', '3', '2', 0,
     587             :   /* 350 */ 'V', 'S', 'X', '4', '2', 0,
     588             :   /* 356 */ 'V', 'S', 'X', '5', '2', 0,
     589             :   /* 362 */ 'V', 'S', 'X', '6', '2', 0,
     590             :   /* 368 */ 'Q', 'F', '2', 0,
     591             :   /* 372 */ 'V', 'F', '2', 0,
     592             :   /* 376 */ 'V', 'S', 'L', '2', 0,
     593             :   /* 381 */ 'C', 'R', '2', 0,
     594             :   /* 385 */ 'S', '2', 0,
     595             :   /* 388 */ 'V', '2', 0,
     596             :   /* 391 */ 'X', '2', 0,
     597             :   /* 394 */ 'Q', 'F', '1', '3', 0,
     598             :   /* 399 */ 'V', 'F', '1', '3', 0,
     599             :   /* 404 */ 'V', 'S', 'L', '1', '3', 0,
     600             :   /* 410 */ 'R', '1', '3', 0,
     601             :   /* 414 */ 'S', '1', '3', 0,
     602             :   /* 418 */ 'V', '1', '3', 0,
     603             :   /* 422 */ 'X', '1', '3', 0,
     604             :   /* 426 */ 'Q', 'F', '2', '3', 0,
     605             :   /* 431 */ 'V', 'F', '2', '3', 0,
     606             :   /* 436 */ 'V', 'S', 'L', '2', '3', 0,
     607             :   /* 442 */ 'R', '2', '3', 0,
     608             :   /* 446 */ 'S', '2', '3', 0,
     609             :   /* 450 */ 'V', '2', '3', 0,
     610             :   /* 454 */ 'X', '2', '3', 0,
     611             :   /* 458 */ 'V', 'S', 'X', '3', '3', 0,
     612             :   /* 464 */ 'V', 'S', 'X', '4', '3', 0,
     613             :   /* 470 */ 'V', 'S', 'X', '5', '3', 0,
     614             :   /* 476 */ 'V', 'S', 'X', '6', '3', 0,
     615             :   /* 482 */ 'Q', 'F', '3', 0,
     616             :   /* 486 */ 'V', 'F', '3', 0,
     617             :   /* 490 */ 'V', 'S', 'L', '3', 0,
     618             :   /* 495 */ 'C', 'R', '3', 0,
     619             :   /* 499 */ 'S', '3', 0,
     620             :   /* 502 */ 'V', '3', 0,
     621             :   /* 505 */ 'X', '3', 0,
     622             :   /* 508 */ 'Q', 'F', '1', '4', 0,
     623             :   /* 513 */ 'V', 'F', '1', '4', 0,
     624             :   /* 518 */ 'V', 'S', 'L', '1', '4', 0,
     625             :   /* 524 */ 'R', '1', '4', 0,
     626             :   /* 528 */ 'S', '1', '4', 0,
     627             :   /* 532 */ 'V', '1', '4', 0,
     628             :   /* 536 */ 'X', '1', '4', 0,
     629             :   /* 540 */ 'Q', 'F', '2', '4', 0,
     630             :   /* 545 */ 'V', 'F', '2', '4', 0,
     631             :   /* 550 */ 'V', 'S', 'L', '2', '4', 0,
     632             :   /* 556 */ 'R', '2', '4', 0,
     633             :   /* 560 */ 'S', '2', '4', 0,
     634             :   /* 564 */ 'V', '2', '4', 0,
     635             :   /* 568 */ 'X', '2', '4', 0,
     636             :   /* 572 */ 'V', 'S', 'X', '3', '4', 0,
     637             :   /* 578 */ 'V', 'S', 'X', '4', '4', 0,
     638             :   /* 584 */ 'V', 'S', 'X', '5', '4', 0,
     639             :   /* 590 */ 'Q', 'F', '4', 0,
     640             :   /* 594 */ 'V', 'F', '4', 0,
     641             :   /* 598 */ 'V', 'S', 'L', '4', 0,
     642             :   /* 603 */ 'C', 'R', '4', 0,
     643             :   /* 607 */ 'S', '4', 0,
     644             :   /* 610 */ 'V', '4', 0,
     645             :   /* 613 */ 'X', '4', 0,
     646             :   /* 616 */ 'Q', 'F', '1', '5', 0,
     647             :   /* 621 */ 'V', 'F', '1', '5', 0,
     648             :   /* 626 */ 'V', 'S', 'L', '1', '5', 0,
     649             :   /* 632 */ 'R', '1', '5', 0,
     650             :   /* 636 */ 'S', '1', '5', 0,
     651             :   /* 640 */ 'V', '1', '5', 0,
     652             :   /* 644 */ 'X', '1', '5', 0,
     653             :   /* 648 */ 'Q', 'F', '2', '5', 0,
     654             :   /* 653 */ 'V', 'F', '2', '5', 0,
     655             :   /* 658 */ 'V', 'S', 'L', '2', '5', 0,
     656             :   /* 664 */ 'R', '2', '5', 0,
     657             :   /* 668 */ 'S', '2', '5', 0,
     658             :   /* 672 */ 'V', '2', '5', 0,
     659             :   /* 676 */ 'X', '2', '5', 0,
     660             :   /* 680 */ 'V', 'S', 'X', '3', '5', 0,
     661             :   /* 686 */ 'V', 'S', 'X', '4', '5', 0,
     662             :   /* 692 */ 'V', 'S', 'X', '5', '5', 0,
     663             :   /* 698 */ 'Q', 'F', '5', 0,
     664             :   /* 702 */ 'V', 'F', '5', 0,
     665             :   /* 706 */ 'V', 'S', 'L', '5', 0,
     666             :   /* 711 */ 'C', 'R', '5', 0,
     667             :   /* 715 */ 'S', '5', 0,
     668             :   /* 718 */ 'V', '5', 0,
     669             :   /* 721 */ 'X', '5', 0,
     670             :   /* 724 */ 'Q', 'F', '1', '6', 0,
     671             :   /* 729 */ 'V', 'F', '1', '6', 0,
     672             :   /* 734 */ 'V', 'S', 'L', '1', '6', 0,
     673             :   /* 740 */ 'R', '1', '6', 0,
     674             :   /* 744 */ 'S', '1', '6', 0,
     675             :   /* 748 */ 'V', '1', '6', 0,
     676             :   /* 752 */ 'X', '1', '6', 0,
     677             :   /* 756 */ 'Q', 'F', '2', '6', 0,
     678             :   /* 761 */ 'V', 'F', '2', '6', 0,
     679             :   /* 766 */ 'V', 'S', 'L', '2', '6', 0,
     680             :   /* 772 */ 'R', '2', '6', 0,
     681             :   /* 776 */ 'S', '2', '6', 0,
     682             :   /* 780 */ 'V', '2', '6', 0,
     683             :   /* 784 */ 'X', '2', '6', 0,
     684             :   /* 788 */ 'V', 'S', 'X', '3', '6', 0,
     685             :   /* 794 */ 'V', 'S', 'X', '4', '6', 0,
     686             :   /* 800 */ 'V', 'S', 'X', '5', '6', 0,
     687             :   /* 806 */ 'Q', 'F', '6', 0,
     688             :   /* 810 */ 'V', 'F', '6', 0,
     689             :   /* 814 */ 'V', 'S', 'L', '6', 0,
     690             :   /* 819 */ 'C', 'R', '6', 0,
     691             :   /* 823 */ 'S', '6', 0,
     692             :   /* 826 */ 'V', '6', 0,
     693             :   /* 829 */ 'X', '6', 0,
     694             :   /* 832 */ 'Q', 'F', '1', '7', 0,
     695             :   /* 837 */ 'V', 'F', '1', '7', 0,
     696             :   /* 842 */ 'V', 'S', 'L', '1', '7', 0,
     697             :   /* 848 */ 'R', '1', '7', 0,
     698             :   /* 852 */ 'S', '1', '7', 0,
     699             :   /* 856 */ 'V', '1', '7', 0,
     700             :   /* 860 */ 'X', '1', '7', 0,
     701             :   /* 864 */ 'Q', 'F', '2', '7', 0,
     702             :   /* 869 */ 'V', 'F', '2', '7', 0,
     703             :   /* 874 */ 'V', 'S', 'L', '2', '7', 0,
     704             :   /* 880 */ 'R', '2', '7', 0,
     705             :   /* 884 */ 'S', '2', '7', 0,
     706             :   /* 888 */ 'V', '2', '7', 0,
     707             :   /* 892 */ 'X', '2', '7', 0,
     708             :   /* 896 */ 'V', 'S', 'X', '3', '7', 0,
     709             :   /* 902 */ 'V', 'S', 'X', '4', '7', 0,
     710             :   /* 908 */ 'V', 'S', 'X', '5', '7', 0,
     711             :   /* 914 */ 'Q', 'F', '7', 0,
     712             :   /* 918 */ 'V', 'F', '7', 0,
     713             :   /* 922 */ 'V', 'S', 'L', '7', 0,
     714             :   /* 927 */ 'C', 'R', '7', 0,
     715             :   /* 931 */ 'S', '7', 0,
     716             :   /* 934 */ 'V', '7', 0,
     717             :   /* 937 */ 'X', '7', 0,
     718             :   /* 940 */ 'Q', 'F', '1', '8', 0,
     719             :   /* 945 */ 'V', 'F', '1', '8', 0,
     720             :   /* 950 */ 'V', 'S', 'L', '1', '8', 0,
     721             :   /* 956 */ 'R', '1', '8', 0,
     722             :   /* 960 */ 'S', '1', '8', 0,
     723             :   /* 964 */ 'V', '1', '8', 0,
     724             :   /* 968 */ 'X', '1', '8', 0,
     725             :   /* 972 */ 'Q', 'F', '2', '8', 0,
     726             :   /* 977 */ 'V', 'F', '2', '8', 0,
     727             :   /* 982 */ 'V', 'S', 'L', '2', '8', 0,
     728             :   /* 988 */ 'R', '2', '8', 0,
     729             :   /* 992 */ 'S', '2', '8', 0,
     730             :   /* 996 */ 'V', '2', '8', 0,
     731             :   /* 1000 */ 'X', '2', '8', 0,
     732             :   /* 1004 */ 'V', 'S', 'X', '3', '8', 0,
     733             :   /* 1010 */ 'V', 'S', 'X', '4', '8', 0,
     734             :   /* 1016 */ 'V', 'S', 'X', '5', '8', 0,
     735             :   /* 1022 */ 'Q', 'F', '8', 0,
     736             :   /* 1026 */ 'V', 'F', '8', 0,
     737             :   /* 1030 */ 'V', 'S', 'L', '8', 0,
     738             :   /* 1035 */ 'Z', 'E', 'R', 'O', '8', 0,
     739             :   /* 1041 */ 'B', 'P', '8', 0,
     740             :   /* 1045 */ 'F', 'P', '8', 0,
     741             :   /* 1049 */ 'L', 'R', '8', 0,
     742             :   /* 1053 */ 'C', 'T', 'R', '8', 0,
     743             :   /* 1058 */ 'S', '8', 0,
     744             :   /* 1061 */ 'V', '8', 0,
     745             :   /* 1064 */ 'X', '8', 0,
     746             :   /* 1067 */ 'Q', 'F', '1', '9', 0,
     747             :   /* 1072 */ 'V', 'F', '1', '9', 0,
     748             :   /* 1077 */ 'V', 'S', 'L', '1', '9', 0,
     749             :   /* 1083 */ 'R', '1', '9', 0,
     750             :   /* 1087 */ 'S', '1', '9', 0,
     751             :   /* 1091 */ 'V', '1', '9', 0,
     752             :   /* 1095 */ 'X', '1', '9', 0,
     753             :   /* 1099 */ 'Q', 'F', '2', '9', 0,
     754             :   /* 1104 */ 'V', 'F', '2', '9', 0,
     755             :   /* 1109 */ 'V', 'S', 'L', '2', '9', 0,
     756             :   /* 1115 */ 'R', '2', '9', 0,
     757             :   /* 1119 */ 'S', '2', '9', 0,
     758             :   /* 1123 */ 'V', '2', '9', 0,
     759             :   /* 1127 */ 'X', '2', '9', 0,
     760             :   /* 1131 */ 'V', 'S', 'X', '3', '9', 0,
     761             :   /* 1137 */ 'V', 'S', 'X', '4', '9', 0,
     762             :   /* 1143 */ 'V', 'S', 'X', '5', '9', 0,
     763             :   /* 1149 */ 'Q', 'F', '9', 0,
     764             :   /* 1153 */ 'V', 'F', '9', 0,
     765             :   /* 1157 */ 'V', 'S', 'L', '9', 0,
     766             :   /* 1162 */ 'R', '9', 0,
     767             :   /* 1165 */ 'S', '9', 0,
     768             :   /* 1168 */ 'V', '9', 0,
     769             :   /* 1171 */ 'X', '9', 0,
     770             :   /* 1174 */ 'V', 'R', 'S', 'A', 'V', 'E', 0,
     771             :   /* 1181 */ 'R', 'M', 0,
     772             :   /* 1184 */ 'C', 'R', '0', 'U', 'N', 0,
     773             :   /* 1190 */ 'C', 'R', '1', 'U', 'N', 0,
     774             :   /* 1196 */ 'C', 'R', '2', 'U', 'N', 0,
     775             :   /* 1202 */ 'C', 'R', '3', 'U', 'N', 0,
     776             :   /* 1208 */ 'C', 'R', '4', 'U', 'N', 0,
     777             :   /* 1214 */ 'C', 'R', '5', 'U', 'N', 0,
     778             :   /* 1220 */ 'C', 'R', '6', 'U', 'N', 0,
     779             :   /* 1226 */ 'C', 'R', '7', 'U', 'N', 0,
     780             :   /* 1232 */ 'Z', 'E', 'R', 'O', 0,
     781             :   /* 1237 */ 'B', 'P', 0,
     782             :   /* 1240 */ 'F', 'P', 0,
     783             :   /* 1243 */ 'C', 'R', '0', 'E', 'Q', 0,
     784             :   /* 1249 */ 'C', 'R', '1', 'E', 'Q', 0,
     785             :   /* 1255 */ 'C', 'R', '2', 'E', 'Q', 0,
     786             :   /* 1261 */ 'C', 'R', '3', 'E', 'Q', 0,
     787             :   /* 1267 */ 'C', 'R', '4', 'E', 'Q', 0,
     788             :   /* 1273 */ 'C', 'R', '5', 'E', 'Q', 0,
     789             :   /* 1279 */ 'C', 'R', '6', 'E', 'Q', 0,
     790             :   /* 1285 */ 'C', 'R', '7', 'E', 'Q', 0,
     791             :   /* 1291 */ 'S', 'P', 'E', 'F', 'S', 'C', 'R', 0,
     792             :   /* 1299 */ 'X', 'E', 'R', 0,
     793             :   /* 1303 */ 'L', 'R', 0,
     794             :   /* 1306 */ 'C', 'T', 'R', 0,
     795             :   /* 1310 */ 'C', 'R', '0', 'G', 'T', 0,
     796             :   /* 1316 */ 'C', 'R', '1', 'G', 'T', 0,
     797             :   /* 1322 */ 'C', 'R', '2', 'G', 'T', 0,
     798             :   /* 1328 */ 'C', 'R', '3', 'G', 'T', 0,
     799             :   /* 1334 */ 'C', 'R', '4', 'G', 'T', 0,
     800             :   /* 1340 */ 'C', 'R', '5', 'G', 'T', 0,
     801             :   /* 1346 */ 'C', 'R', '6', 'G', 'T', 0,
     802             :   /* 1352 */ 'C', 'R', '7', 'G', 'T', 0,
     803             :   /* 1358 */ 'C', 'R', '0', 'L', 'T', 0,
     804             :   /* 1364 */ 'C', 'R', '1', 'L', 'T', 0,
     805             :   /* 1370 */ 'C', 'R', '2', 'L', 'T', 0,
     806             :   /* 1376 */ 'C', 'R', '3', 'L', 'T', 0,
     807             :   /* 1382 */ 'C', 'R', '4', 'L', 'T', 0,
     808             :   /* 1388 */ 'C', 'R', '5', 'L', 'T', 0,
     809             :   /* 1394 */ 'C', 'R', '6', 'L', 'T', 0,
     810             :   /* 1400 */ 'C', 'R', '7', 'L', 'T', 0,
     811             :   /* 1406 */ 'C', 'A', 'R', 'R', 'Y', 0,
     812             : };
     813             : 
     814             : extern const MCRegisterDesc PPCRegDesc[] = { // Descriptors
     815             :   { 4, 0, 0, 0, 0, 0 },
     816             :   { 1237, 1, 9, 1, 1281, 0 },
     817             :   { 1406, 1, 1, 1, 1281, 0 },
     818             :   { 1306, 1, 1, 1, 1281, 0 },
     819             :   { 1240, 1, 20, 1, 1281, 0 },
     820             :   { 1303, 1, 1, 1, 1281, 0 },
     821             :   { 1181, 1, 1, 1, 1281, 0 },
     822             :   { 1291, 1, 1, 1, 1281, 0 },
     823             :   { 1174, 1, 1, 1, 1281, 0 },
     824             :   { 1299, 1, 1, 1, 1031, 0 },
     825             :   { 1232, 1, 30, 1, 1031, 0 },
     826             :   { 1041, 78, 1, 0, 0, 2 },
     827             :   { 127, 13, 1, 4, 36, 6 },
     828             :   { 267, 13, 1, 4, 36, 6 },
     829             :   { 381, 13, 1, 4, 36, 6 },
     830             :   { 495, 13, 1, 4, 36, 6 },
     831             :   { 603, 13, 1, 4, 36, 6 },
     832             :   { 711, 13, 1, 4, 36, 6 },
     833             :   { 819, 13, 1, 4, 36, 6 },
     834             :   { 927, 13, 1, 4, 36, 6 },
     835             :   { 1053, 1, 1, 1, 177, 0 },
     836             :   { 115, 1, 27, 1, 177, 0 },
     837             :   { 255, 1, 27, 1, 177, 0 },
     838             :   { 369, 1, 27, 1, 177, 0 },
     839             :   { 483, 1, 27, 1, 177, 0 },
     840             :   { 591, 1, 27, 1, 177, 0 },
     841             :   { 699, 1, 27, 1, 177, 0 },
     842             :   { 807, 1, 27, 1, 177, 0 },
     843             :   { 915, 1, 27, 1, 177, 0 },
     844             :   { 1023, 1, 27, 1, 177, 0 },
     845             :   { 1150, 1, 27, 1, 177, 0 },
     846             :   { 1, 1, 27, 1, 177, 0 },
     847             :   { 141, 1, 27, 1, 177, 0 },
     848             :   { 281, 1, 27, 1, 177, 0 },
     849             :   { 395, 1, 27, 1, 177, 0 },
     850             :   { 509, 1, 27, 1, 177, 0 },
     851             :   { 617, 1, 27, 1, 177, 0 },
     852             :   { 725, 1, 27, 1, 177, 0 },
     853             :   { 833, 1, 27, 1, 177, 0 },
     854             :   { 941, 1, 27, 1, 177, 0 },
     855             :   { 1068, 1, 27, 1, 177, 0 },
     856             :   { 33, 1, 27, 1, 177, 0 },
     857             :   { 173, 1, 27, 1, 177, 0 },
     858             :   { 313, 1, 27, 1, 177, 0 },
     859             :   { 427, 1, 27, 1, 177, 0 },
     860             :   { 541, 1, 27, 1, 177, 0 },
     861             :   { 649, 1, 27, 1, 177, 0 },
     862             :   { 757, 1, 27, 1, 177, 0 },
     863             :   { 865, 1, 27, 1, 177, 0 },
     864             :   { 973, 1, 27, 1, 177, 0 },
     865             :   { 1100, 1, 27, 1, 177, 0 },
     866             :   { 65, 1, 27, 1, 177, 0 },
     867             :   { 205, 1, 27, 1, 177, 0 },
     868             :   { 1045, 66, 1, 0, 112, 2 },
     869             :   { 1049, 1, 1, 1, 352, 0 },
     870             :   { 114, 70, 1, 2, 1185, 4 },
     871             :   { 254, 70, 1, 2, 1185, 4 },
     872             :   { 368, 70, 1, 2, 1185, 4 },
     873             :   { 482, 70, 1, 2, 1185, 4 },
     874             :   { 590, 70, 1, 2, 1185, 4 },
     875             :   { 698, 70, 1, 2, 1185, 4 },
     876             :   { 806, 70, 1, 2, 1185, 4 },
     877             :   { 914, 70, 1, 2, 1185, 4 },
     878             :   { 1022, 70, 1, 2, 1185, 4 },
     879             :   { 1149, 70, 1, 2, 1185, 4 },
     880             :   { 0, 70, 1, 2, 1185, 4 },
     881             :   { 140, 70, 1, 2, 1185, 4 },
     882             :   { 280, 70, 1, 2, 1185, 4 },
     883             :   { 394, 70, 1, 2, 1185, 4 },
     884             :   { 508, 70, 1, 2, 1185, 4 },
     885             :   { 616, 70, 1, 2, 1185, 4 },
     886             :   { 724, 70, 1, 2, 1185, 4 },
     887             :   { 832, 70, 1, 2, 1185, 4 },
     888             :   { 940, 70, 1, 2, 1185, 4 },
     889             :   { 1067, 70, 1, 2, 1185, 4 },
     890             :   { 32, 70, 1, 2, 1185, 4 },
     891             :   { 172, 70, 1, 2, 1185, 4 },
     892             :   { 312, 70, 1, 2, 1185, 4 },
     893             :   { 426, 70, 1, 2, 1185, 4 },
     894             :   { 540, 70, 1, 2, 1185, 4 },
     895             :   { 648, 70, 1, 2, 1185, 4 },
     896             :   { 756, 70, 1, 2, 1185, 4 },
     897             :   { 864, 70, 1, 2, 1185, 4 },
     898             :   { 972, 70, 1, 2, 1185, 4 },
     899             :   { 1099, 70, 1, 2, 1185, 4 },
     900             :   { 64, 70, 1, 2, 1185, 4 },
     901             :   { 204, 70, 1, 2, 1185, 4 },
     902             :   { 128, 1, 24, 1, 1217, 0 },
     903             :   { 268, 1, 24, 1, 1217, 0 },
     904             :   { 382, 1, 24, 1, 1217, 0 },
     905             :   { 496, 1, 24, 1, 1217, 0 },
     906             :   { 604, 1, 24, 1, 1217, 0 },
     907             :   { 712, 1, 24, 1, 1217, 0 },
     908             :   { 820, 1, 24, 1, 1217, 0 },
     909             :   { 928, 1, 24, 1, 1217, 0 },
     910             :   { 1050, 1, 24, 1, 1217, 0 },
     911             :   { 1162, 1, 24, 1, 1217, 0 },
     912             :   { 16, 1, 24, 1, 1217, 0 },
     913             :   { 156, 1, 24, 1, 1217, 0 },
     914             :   { 296, 1, 24, 1, 1217, 0 },
     915             :   { 410, 1, 24, 1, 1217, 0 },
     916             :   { 524, 1, 24, 1, 1217, 0 },
     917             :   { 632, 1, 24, 1, 1217, 0 },
     918             :   { 740, 1, 24, 1, 1217, 0 },
     919             :   { 848, 1, 24, 1, 1217, 0 },
     920             :   { 956, 1, 24, 1, 1217, 0 },
     921             :   { 1083, 1, 24, 1, 1217, 0 },
     922             :   { 48, 1, 24, 1, 1217, 0 },
     923             :   { 188, 1, 24, 1, 1217, 0 },
     924             :   { 328, 1, 24, 1, 1217, 0 },
     925             :   { 442, 1, 24, 1, 1217, 0 },
     926             :   { 556, 1, 24, 1, 1217, 0 },
     927             :   { 664, 1, 24, 1, 1217, 0 },
     928             :   { 772, 1, 24, 1, 1217, 0 },
     929             :   { 880, 1, 24, 1, 1217, 0 },
     930             :   { 988, 1, 24, 1, 1217, 0 },
     931             :   { 1115, 1, 24, 1, 1217, 0 },
     932             :   { 80, 1, 24, 1, 1217, 0 },
     933             :   { 220, 1, 24, 1, 1217, 0 },
     934             :   { 131, 72, 1, 0, 1089, 2 },
     935             :   { 271, 72, 1, 0, 1089, 2 },
     936             :   { 385, 72, 1, 0, 1089, 2 },
     937             :   { 499, 72, 1, 0, 1089, 2 },
     938             :   { 607, 72, 1, 0, 1089, 2 },
     939             :   { 715, 72, 1, 0, 1089, 2 },
     940             :   { 823, 72, 1, 0, 1089, 2 },
     941             :   { 931, 72, 1, 0, 1089, 2 },
     942             :   { 1058, 72, 1, 0, 1089, 2 },
     943             :   { 1165, 72, 1, 0, 1089, 2 },
     944             :   { 20, 72, 1, 0, 1089, 2 },
     945             :   { 160, 72, 1, 0, 1089, 2 },
     946             :   { 300, 72, 1, 0, 1089, 2 },
     947             :   { 414, 72, 1, 0, 1089, 2 },
     948             :   { 528, 72, 1, 0, 1089, 2 },
     949             :   { 636, 72, 1, 0, 1089, 2 },
     950             :   { 744, 72, 1, 0, 1089, 2 },
     951             :   { 852, 72, 1, 0, 1089, 2 },
     952             :   { 960, 72, 1, 0, 1089, 2 },
     953             :   { 1087, 72, 1, 0, 1089, 2 },
     954             :   { 52, 72, 1, 0, 1089, 2 },
     955             :   { 192, 72, 1, 0, 1089, 2 },
     956             :   { 332, 72, 1, 0, 1089, 2 },
     957             :   { 446, 72, 1, 0, 1089, 2 },
     958             :   { 560, 72, 1, 0, 1089, 2 },
     959             :   { 668, 72, 1, 0, 1089, 2 },
     960             :   { 776, 72, 1, 0, 1089, 2 },
     961             :   { 884, 72, 1, 0, 1089, 2 },
     962             :   { 992, 72, 1, 0, 1089, 2 },
     963             :   { 1119, 72, 1, 0, 1089, 2 },
     964             :   { 84, 72, 1, 0, 1089, 2 },
     965             :   { 224, 72, 1, 0, 1089, 2 },
     966             :   { 134, 18, 1, 2, 1089, 4 },
     967             :   { 274, 18, 1, 2, 1089, 4 },
     968             :   { 388, 18, 1, 2, 1089, 4 },
     969             :   { 502, 18, 1, 2, 1089, 4 },
     970             :   { 610, 18, 1, 2, 1089, 4 },
     971             :   { 718, 18, 1, 2, 1089, 4 },
     972             :   { 826, 18, 1, 2, 1089, 4 },
     973             :   { 934, 18, 1, 2, 1089, 4 },
     974             :   { 1061, 18, 1, 2, 1089, 4 },
     975             :   { 1168, 18, 1, 2, 1089, 4 },
     976             :   { 24, 18, 1, 2, 1089, 4 },
     977             :   { 164, 18, 1, 2, 1089, 4 },
     978             :   { 304, 18, 1, 2, 1089, 4 },
     979             :   { 418, 18, 1, 2, 1089, 4 },
     980             :   { 532, 18, 1, 2, 1089, 4 },
     981             :   { 640, 18, 1, 2, 1089, 4 },
     982             :   { 748, 18, 1, 2, 1089, 4 },
     983             :   { 856, 18, 1, 2, 1089, 4 },
     984             :   { 964, 18, 1, 2, 1089, 4 },
     985             :   { 1091, 18, 1, 2, 1089, 4 },
     986             :   { 56, 18, 1, 2, 1089, 4 },
     987             :   { 196, 18, 1, 2, 1089, 4 },
     988             :   { 336, 18, 1, 2, 1089, 4 },
     989             :   { 450, 18, 1, 2, 1089, 4 },
     990             :   { 564, 18, 1, 2, 1089, 4 },
     991             :   { 672, 18, 1, 2, 1089, 4 },
     992             :   { 780, 18, 1, 2, 1089, 4 },
     993             :   { 888, 18, 1, 2, 1089, 4 },
     994             :   { 996, 18, 1, 2, 1089, 4 },
     995             :   { 1123, 18, 1, 2, 1089, 4 },
     996             :   { 88, 18, 1, 2, 1089, 4 },
     997             :   { 228, 18, 1, 2, 1089, 4 },
     998             :   { 118, 1, 72, 1, 993, 0 },
     999             :   { 258, 1, 72, 1, 993, 0 },
    1000             :   { 372, 1, 72, 1, 993, 0 },
    1001             :   { 486, 1, 72, 1, 993, 0 },
    1002             :   { 594, 1, 72, 1, 993, 0 },
    1003             :   { 702, 1, 72, 1, 993, 0 },
    1004             :   { 810, 1, 72, 1, 993, 0 },
    1005             :   { 918, 1, 72, 1, 993, 0 },
    1006             :   { 1026, 1, 72, 1, 993, 0 },
    1007             :   { 1153, 1, 72, 1, 993, 0 },
    1008             :   { 5, 1, 72, 1, 993, 0 },
    1009             :   { 145, 1, 72, 1, 993, 0 },
    1010             :   { 285, 1, 72, 1, 993, 0 },
    1011             :   { 399, 1, 72, 1, 993, 0 },
    1012             :   { 513, 1, 72, 1, 993, 0 },
    1013             :   { 621, 1, 72, 1, 993, 0 },
    1014             :   { 729, 1, 72, 1, 993, 0 },
    1015             :   { 837, 1, 72, 1, 993, 0 },
    1016             :   { 945, 1, 72, 1, 993, 0 },
    1017             :   { 1072, 1, 72, 1, 993, 0 },
    1018             :   { 37, 1, 72, 1, 993, 0 },
    1019             :   { 177, 1, 72, 1, 993, 0 },
    1020             :   { 317, 1, 72, 1, 993, 0 },
    1021             :   { 431, 1, 72, 1, 993, 0 },
    1022             :   { 545, 1, 72, 1, 993, 0 },
    1023             :   { 653, 1, 72, 1, 993, 0 },
    1024             :   { 761, 1, 72, 1, 993, 0 },
    1025             :   { 869, 1, 72, 1, 993, 0 },
    1026             :   { 977, 1, 72, 1, 993, 0 },
    1027             :   { 1104, 1, 72, 1, 993, 0 },
    1028             :   { 69, 1, 72, 1, 993, 0 },
    1029             :   { 209, 1, 72, 1, 993, 0 },
    1030             :   { 122, 54, 1, 2, 929, 4 },
    1031             :   { 262, 54, 1, 2, 929, 4 },
    1032             :   { 376, 54, 1, 2, 929, 4 },
    1033             :   { 490, 54, 1, 2, 929, 4 },
    1034             :   { 598, 54, 1, 2, 929, 4 },
    1035             :   { 706, 54, 1, 2, 929, 4 },
    1036             :   { 814, 54, 1, 2, 929, 4 },
    1037             :   { 922, 54, 1, 2, 929, 4 },
    1038             :   { 1030, 54, 1, 2, 929, 4 },
    1039             :   { 1157, 54, 1, 2, 929, 4 },
    1040             :   { 10, 54, 1, 2, 929, 4 },
    1041             :   { 150, 54, 1, 2, 929, 4 },
    1042             :   { 290, 54, 1, 2, 929, 4 },
    1043             :   { 404, 54, 1, 2, 929, 4 },
    1044             :   { 518, 54, 1, 2, 929, 4 },
    1045             :   { 626, 54, 1, 2, 929, 4 },
    1046             :   { 734, 54, 1, 2, 929, 4 },
    1047             :   { 842, 54, 1, 2, 929, 4 },
    1048             :   { 950, 54, 1, 2, 929, 4 },
    1049             :   { 1077, 54, 1, 2, 929, 4 },
    1050             :   { 42, 54, 1, 2, 929, 4 },
    1051             :   { 182, 54, 1, 2, 929, 4 },
    1052             :   { 322, 54, 1, 2, 929, 4 },
    1053             :   { 436, 54, 1, 2, 929, 4 },
    1054             :   { 550, 54, 1, 2, 929, 4 },
    1055             :   { 658, 54, 1, 2, 929, 4 },
    1056             :   { 766, 54, 1, 2, 929, 4 },
    1057             :   { 874, 54, 1, 2, 929, 4 },
    1058             :   { 982, 54, 1, 2, 929, 4 },
    1059             :   { 1109, 54, 1, 2, 929, 4 },
    1060             :   { 74, 54, 1, 2, 929, 4 },
    1061             :   { 214, 54, 1, 2, 929, 4 },
    1062             :   { 344, 1, 1, 1, 961, 0 },
    1063             :   { 458, 1, 1, 1, 961, 0 },
    1064             :   { 572, 1, 1, 1, 961, 0 },
    1065             :   { 680, 1, 1, 1, 961, 0 },
    1066             :   { 788, 1, 1, 1, 961, 0 },
    1067             :   { 896, 1, 1, 1, 961, 0 },
    1068             :   { 1004, 1, 1, 1, 961, 0 },
    1069             :   { 1131, 1, 1, 1, 961, 0 },
    1070             :   { 96, 1, 1, 1, 961, 0 },
    1071             :   { 236, 1, 1, 1, 961, 0 },
    1072             :   { 350, 1, 1, 1, 961, 0 },
    1073             :   { 464, 1, 1, 1, 961, 0 },
    1074             :   { 578, 1, 1, 1, 961, 0 },
    1075             :   { 686, 1, 1, 1, 961, 0 },
    1076             :   { 794, 1, 1, 1, 961, 0 },
    1077             :   { 902, 1, 1, 1, 961, 0 },
    1078             :   { 1010, 1, 1, 1, 961, 0 },
    1079             :   { 1137, 1, 1, 1, 961, 0 },
    1080             :   { 102, 1, 1, 1, 961, 0 },
    1081             :   { 242, 1, 1, 1, 961, 0 },
    1082             :   { 356, 1, 1, 1, 961, 0 },
    1083             :   { 470, 1, 1, 1, 961, 0 },
    1084             :   { 584, 1, 1, 1, 961, 0 },
    1085             :   { 692, 1, 1, 1, 961, 0 },
    1086             :   { 800, 1, 1, 1, 961, 0 },
    1087             :   { 908, 1, 1, 1, 961, 0 },
    1088             :   { 1016, 1, 1, 1, 961, 0 },
    1089             :   { 1143, 1, 1, 1, 961, 0 },
    1090             :   { 108, 1, 1, 1, 961, 0 },
    1091             :   { 248, 1, 1, 1, 961, 0 },
    1092             :   { 362, 1, 1, 1, 961, 0 },
    1093             :   { 476, 1, 1, 1, 961, 0 },
    1094             :   { 137, 56, 1, 0, 833, 2 },
    1095             :   { 277, 56, 1, 0, 833, 2 },
    1096             :   { 391, 56, 1, 0, 833, 2 },
    1097             :   { 505, 56, 1, 0, 833, 2 },
    1098             :   { 613, 56, 1, 0, 833, 2 },
    1099             :   { 721, 56, 1, 0, 833, 2 },
    1100             :   { 829, 56, 1, 0, 833, 2 },
    1101             :   { 937, 56, 1, 0, 833, 2 },
    1102             :   { 1064, 56, 1, 0, 833, 2 },
    1103             :   { 1171, 56, 1, 0, 833, 2 },
    1104             :   { 28, 56, 1, 0, 833, 2 },
    1105             :   { 168, 56, 1, 0, 833, 2 },
    1106             :   { 308, 56, 1, 0, 833, 2 },
    1107             :   { 422, 56, 1, 0, 833, 2 },
    1108             :   { 536, 56, 1, 0, 833, 2 },
    1109             :   { 644, 56, 1, 0, 833, 2 },
    1110             :   { 752, 56, 1, 0, 833, 2 },
    1111             :   { 860, 56, 1, 0, 833, 2 },
    1112             :   { 968, 56, 1, 0, 833, 2 },
    1113             :   { 1095, 56, 1, 0, 833, 2 },
    1114             :   { 60, 56, 1, 0, 833, 2 },
    1115             :   { 200, 56, 1, 0, 833, 2 },
    1116             :   { 340, 56, 1, 0, 833, 2 },
    1117             :   { 454, 56, 1, 0, 833, 2 },
    1118             :   { 568, 56, 1, 0, 833, 2 },
    1119             :   { 676, 56, 1, 0, 833, 2 },
    1120             :   { 784, 56, 1, 0, 833, 2 },
    1121             :   { 892, 56, 1, 0, 833, 2 },
    1122             :   { 1000, 56, 1, 0, 833, 2 },
    1123             :   { 1127, 56, 1, 0, 833, 2 },
    1124             :   { 92, 56, 1, 0, 833, 2 },
    1125             :   { 232, 56, 1, 0, 833, 2 },
    1126             :   { 1035, 48, 1, 0, 643, 2 },
    1127             :   { 1243, 1, 50, 1, 643, 0 },
    1128             :   { 1249, 1, 50, 1, 612, 0 },
    1129             :   { 1255, 1, 50, 1, 612, 0 },
    1130             :   { 1261, 1, 50, 1, 612, 0 },
    1131             :   { 1267, 1, 50, 1, 612, 0 },
    1132             :   { 1273, 1, 50, 1, 612, 0 },
    1133             :   { 1279, 1, 50, 1, 612, 0 },
    1134             :   { 1285, 1, 50, 1, 612, 0 },
    1135             :   { 1310, 1, 46, 1, 580, 0 },
    1136             :   { 1316, 1, 46, 1, 580, 0 },
    1137             :   { 1322, 1, 46, 1, 580, 0 },
    1138             :   { 1328, 1, 46, 1, 580, 0 },
    1139             :   { 1334, 1, 46, 1, 580, 0 },
    1140             :   { 1340, 1, 46, 1, 580, 0 },
    1141             :   { 1346, 1, 46, 1, 580, 0 },
    1142             :   { 1352, 1, 46, 1, 580, 0 },
    1143             :   { 1358, 1, 44, 1, 548, 0 },
    1144             :   { 1364, 1, 44, 1, 548, 0 },
    1145             :   { 1370, 1, 44, 1, 548, 0 },
    1146             :   { 1376, 1, 44, 1, 548, 0 },
    1147             :   { 1382, 1, 44, 1, 548, 0 },
    1148             :   { 1388, 1, 44, 1, 548, 0 },
    1149             :   { 1394, 1, 44, 1, 548, 0 },
    1150             :   { 1400, 1, 44, 1, 548, 0 },
    1151             :   { 1184, 1, 42, 1, 516, 0 },
    1152             :   { 1190, 1, 42, 1, 516, 0 },
    1153             :   { 1196, 1, 42, 1, 516, 0 },
    1154             :   { 1202, 1, 42, 1, 516, 0 },
    1155             :   { 1208, 1, 42, 1, 516, 0 },
    1156             :   { 1214, 1, 42, 1, 516, 0 },
    1157             :   { 1220, 1, 42, 1, 516, 0 },
    1158             :   { 1226, 1, 42, 1, 516, 0 },
    1159             : };
    1160             : 
    1161             : extern const MCPhysReg PPCRegUnitRoots[][2] = {
    1162             :   { PPC::BP },
    1163             :   { PPC::CARRY, PPC::XER },
    1164             :   { PPC::CTR },
    1165             :   { PPC::FP },
    1166             :   { PPC::LR },
    1167             :   { PPC::RM },
    1168             :   { PPC::SPEFSCR },
    1169             :   { PPC::VRSAVE },
    1170             :   { PPC::ZERO },
    1171             :   { PPC::CR0LT },
    1172             :   { PPC::CR0GT },
    1173             :   { PPC::CR0EQ },
    1174             :   { PPC::CR0UN },
    1175             :   { PPC::CR1LT },
    1176             :   { PPC::CR1GT },
    1177             :   { PPC::CR1EQ },
    1178             :   { PPC::CR1UN },
    1179             :   { PPC::CR2LT },
    1180             :   { PPC::CR2GT },
    1181             :   { PPC::CR2EQ },
    1182             :   { PPC::CR2UN },
    1183             :   { PPC::CR3LT },
    1184             :   { PPC::CR3GT },
    1185             :   { PPC::CR3EQ },
    1186             :   { PPC::CR3UN },
    1187             :   { PPC::CR4LT },
    1188             :   { PPC::CR4GT },
    1189             :   { PPC::CR4EQ },
    1190             :   { PPC::CR4UN },
    1191             :   { PPC::CR5LT },
    1192             :   { PPC::CR5GT },
    1193             :   { PPC::CR5EQ },
    1194             :   { PPC::CR5UN },
    1195             :   { PPC::CR6LT },
    1196             :   { PPC::CR6GT },
    1197             :   { PPC::CR6EQ },
    1198             :   { PPC::CR6UN },
    1199             :   { PPC::CR7LT },
    1200             :   { PPC::CR7GT },
    1201             :   { PPC::CR7EQ },
    1202             :   { PPC::CR7UN },
    1203             :   { PPC::CTR8 },
    1204             :   { PPC::F0 },
    1205             :   { PPC::F1 },
    1206             :   { PPC::F2 },
    1207             :   { PPC::F3 },
    1208             :   { PPC::F4 },
    1209             :   { PPC::F5 },
    1210             :   { PPC::F6 },
    1211             :   { PPC::F7 },
    1212             :   { PPC::F8 },
    1213             :   { PPC::F9 },
    1214             :   { PPC::F10 },
    1215             :   { PPC::F11 },
    1216             :   { PPC::F12 },
    1217             :   { PPC::F13 },
    1218             :   { PPC::F14 },
    1219             :   { PPC::F15 },
    1220             :   { PPC::F16 },
    1221             :   { PPC::F17 },
    1222             :   { PPC::F18 },
    1223             :   { PPC::F19 },
    1224             :   { PPC::F20 },
    1225             :   { PPC::F21 },
    1226             :   { PPC::F22 },
    1227             :   { PPC::F23 },
    1228             :   { PPC::F24 },
    1229             :   { PPC::F25 },
    1230             :   { PPC::F26 },
    1231             :   { PPC::F27 },
    1232             :   { PPC::F28 },
    1233             :   { PPC::F29 },
    1234             :   { PPC::F30 },
    1235             :   { PPC::F31 },
    1236             :   { PPC::LR8 },
    1237             :   { PPC::R0 },
    1238             :   { PPC::R1 },
    1239             :   { PPC::R2 },
    1240             :   { PPC::R3 },
    1241             :   { PPC::R4 },
    1242             :   { PPC::R5 },
    1243             :   { PPC::R6 },
    1244             :   { PPC::R7 },
    1245             :   { PPC::R8 },
    1246             :   { PPC::R9 },
    1247             :   { PPC::R10 },
    1248             :   { PPC::R11 },
    1249             :   { PPC::R12 },
    1250             :   { PPC::R13 },
    1251             :   { PPC::R14 },
    1252             :   { PPC::R15 },
    1253             :   { PPC::R16 },
    1254             :   { PPC::R17 },
    1255             :   { PPC::R18 },
    1256             :   { PPC::R19 },
    1257             :   { PPC::R20 },
    1258             :   { PPC::R21 },
    1259             :   { PPC::R22 },
    1260             :   { PPC::R23 },
    1261             :   { PPC::R24 },
    1262             :   { PPC::R25 },
    1263             :   { PPC::R26 },
    1264             :   { PPC::R27 },
    1265             :   { PPC::R28 },
    1266             :   { PPC::R29 },
    1267             :   { PPC::R30 },
    1268             :   { PPC::R31 },
    1269             :   { PPC::VF0 },
    1270             :   { PPC::VF1 },
    1271             :   { PPC::VF2 },
    1272             :   { PPC::VF3 },
    1273             :   { PPC::VF4 },
    1274             :   { PPC::VF5 },
    1275             :   { PPC::VF6 },
    1276             :   { PPC::VF7 },
    1277             :   { PPC::VF8 },
    1278             :   { PPC::VF9 },
    1279             :   { PPC::VF10 },
    1280             :   { PPC::VF11 },
    1281             :   { PPC::VF12 },
    1282             :   { PPC::VF13 },
    1283             :   { PPC::VF14 },
    1284             :   { PPC::VF15 },
    1285             :   { PPC::VF16 },
    1286             :   { PPC::VF17 },
    1287             :   { PPC::VF18 },
    1288             :   { PPC::VF19 },
    1289             :   { PPC::VF20 },
    1290             :   { PPC::VF21 },
    1291             :   { PPC::VF22 },
    1292             :   { PPC::VF23 },
    1293             :   { PPC::VF24 },
    1294             :   { PPC::VF25 },
    1295             :   { PPC::VF26 },
    1296             :   { PPC::VF27 },
    1297             :   { PPC::VF28 },
    1298             :   { PPC::VF29 },
    1299             :   { PPC::VF30 },
    1300             :   { PPC::VF31 },
    1301             :   { PPC::VSX32 },
    1302             :   { PPC::VSX33 },
    1303             :   { PPC::VSX34 },
    1304             :   { PPC::VSX35 },
    1305             :   { PPC::VSX36 },
    1306             :   { PPC::VSX37 },
    1307             :   { PPC::VSX38 },
    1308             :   { PPC::VSX39 },
    1309             :   { PPC::VSX40 },
    1310             :   { PPC::VSX41 },
    1311             :   { PPC::VSX42 },
    1312             :   { PPC::VSX43 },
    1313             :   { PPC::VSX44 },
    1314             :   { PPC::VSX45 },
    1315             :   { PPC::VSX46 },
    1316             :   { PPC::VSX47 },
    1317             :   { PPC::VSX48 },
    1318             :   { PPC::VSX49 },
    1319             :   { PPC::VSX50 },
    1320             :   { PPC::VSX51 },
    1321             :   { PPC::VSX52 },
    1322             :   { PPC::VSX53 },
    1323             :   { PPC::VSX54 },
    1324             :   { PPC::VSX55 },
    1325             :   { PPC::VSX56 },
    1326             :   { PPC::VSX57 },
    1327             :   { PPC::VSX58 },
    1328             :   { PPC::VSX59 },
    1329             :   { PPC::VSX60 },
    1330             :   { PPC::VSX61 },
    1331             :   { PPC::VSX62 },
    1332             :   { PPC::VSX63 },
    1333             : };
    1334             : 
    1335             : namespace {     // Register classes...
    1336             :   // VSSRC Register Class...
    1337             :   const MCPhysReg VSSRC[] = {
    1338             :     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, 
    1339             :   };
    1340             : 
    1341             :   // VSSRC Bit set.
    1342             :   const uint8_t VSSRCBits[] = {
    1343             :     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, 
    1344             :   };
    1345             : 
    1346             :   // GPRC Register Class...
    1347             :   const MCPhysReg GPRC[] = {
    1348             :     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, 
    1349             :   };
    1350             : 
    1351             :   // GPRC Bit set.
    1352             :   const uint8_t GPRCBits[] = {
    1353             :     0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1354             :   };
    1355             : 
    1356             :   // GPRC_NOR0 Register Class...
    1357             :   const MCPhysReg GPRC_NOR0[] = {
    1358             :     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, 
    1359             :   };
    1360             : 
    1361             :   // GPRC_NOR0 Bit set.
    1362             :   const uint8_t GPRC_NOR0Bits[] = {
    1363             :     0x12, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
    1364             :   };
    1365             : 
    1366             :   // SPE4RC Register Class...
    1367             :   const MCPhysReg SPE4RC[] = {
    1368             :     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, 
    1369             :   };
    1370             : 
    1371             :   // SPE4RC Bit set.
    1372             :   const uint8_t SPE4RCBits[] = {
    1373             :     0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1374             :   };
    1375             : 
    1376             :   // GPRC_and_GPRC_NOR0 Register Class...
    1377             :   const MCPhysReg GPRC_and_GPRC_NOR0[] = {
    1378             :     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, 
    1379             :   };
    1380             : 
    1381             :   // GPRC_and_GPRC_NOR0 Bit set.
    1382             :   const uint8_t GPRC_and_GPRC_NOR0Bits[] = {
    1383             :     0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
    1384             :   };
    1385             : 
    1386             :   // CRBITRC Register Class...
    1387             :   const MCPhysReg CRBITRC[] = {
    1388             :     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, 
    1389             :   };
    1390             : 
    1391             :   // CRBITRC Bit set.
    1392             :   const uint8_t CRBITRCBits[] = {
    1393             :     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, 
    1394             :   };
    1395             : 
    1396             :   // F4RC Register Class...
    1397             :   const MCPhysReg F4RC[] = {
    1398             :     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, 
    1399             :   };
    1400             : 
    1401             :   // F4RC Bit set.
    1402             :   const uint8_t F4RCBits[] = {
    1403             :     0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 
    1404             :   };
    1405             : 
    1406             :   // CRRC Register Class...
    1407             :   const MCPhysReg CRRC[] = {
    1408             :     PPC::CR0, PPC::CR1, PPC::CR5, PPC::CR6, PPC::CR7, PPC::CR2, PPC::CR3, PPC::CR4, 
    1409             :   };
    1410             : 
    1411             :   // CRRC Bit set.
    1412             :   const uint8_t CRRCBits[] = {
    1413             :     0x00, 0xf0, 0x0f, 
    1414             :   };
    1415             : 
    1416             :   // CARRYRC Register Class...
    1417             :   const MCPhysReg CARRYRC[] = {
    1418             :     PPC::CARRY, PPC::XER, 
    1419             :   };
    1420             : 
    1421             :   // CARRYRC Bit set.
    1422             :   const uint8_t CARRYRCBits[] = {
    1423             :     0x04, 0x02, 
    1424             :   };
    1425             : 
    1426             :   // CRRC0 Register Class...
    1427             :   const MCPhysReg CRRC0[] = {
    1428             :     PPC::CR0, 
    1429             :   };
    1430             : 
    1431             :   // CRRC0 Bit set.
    1432             :   const uint8_t CRRC0Bits[] = {
    1433             :     0x00, 0x10, 
    1434             :   };
    1435             : 
    1436             :   // CTRRC Register Class...
    1437             :   const MCPhysReg CTRRC[] = {
    1438             :     PPC::CTR, 
    1439             :   };
    1440             : 
    1441             :   // CTRRC Bit set.
    1442             :   const uint8_t CTRRCBits[] = {
    1443             :     0x08, 
    1444             :   };
    1445             : 
    1446             :   // VRSAVERC Register Class...
    1447             :   const MCPhysReg VRSAVERC[] = {
    1448             :     PPC::VRSAVE, 
    1449             :   };
    1450             : 
    1451             :   // VRSAVERC Bit set.
    1452             :   const uint8_t VRSAVERCBits[] = {
    1453             :     0x00, 0x01, 
    1454             :   };
    1455             : 
    1456             :   // SPILLTOVSRRC Register Class...
    1457             :   const MCPhysReg SPILLTOVSRRC[] = {
    1458             :     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, 
    1459             :   };
    1460             : 
    1461             :   // SPILLTOVSRRC Bit set.
    1462             :   const uint8_t SPILLTOVSRRCBits[] = {
    1463             :     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, 
    1464             :   };
    1465             : 
    1466             :   // VSFRC Register Class...
    1467             :   const MCPhysReg VSFRC[] = {
    1468             :     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, 
    1469             :   };
    1470             : 
    1471             :   // VSFRC Bit set.
    1472             :   const uint8_t VSFRCBits[] = {
    1473             :     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, 
    1474             :   };
    1475             : 
    1476             :   // G8RC Register Class...
    1477             :   const MCPhysReg G8RC[] = {
    1478             :     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, 
    1479             :   };
    1480             : 
    1481             :   // G8RC Bit set.
    1482             :   const uint8_t G8RCBits[] = {
    1483             :     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, 
    1484             :   };
    1485             : 
    1486             :   // G8RC_NOX0 Register Class...
    1487             :   const MCPhysReg G8RC_NOX0[] = {
    1488             :     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, 
    1489             :   };
    1490             : 
    1491             :   // G8RC_NOX0 Bit set.
    1492             :   const uint8_t G8RC_NOX0Bits[] = {
    1493             :     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, 
    1494             :   };
    1495             : 
    1496             :   // SPILLTOVSRRC_and_VSFRC Register Class...
    1497             :   const MCPhysReg SPILLTOVSRRC_and_VSFRC[] = {
    1498             :     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, 
    1499             :   };
    1500             : 
    1501             :   // SPILLTOVSRRC_and_VSFRC Bit set.
    1502             :   const uint8_t SPILLTOVSRRC_and_VSFRCBits[] = {
    1503             :     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, 
    1504             :   };
    1505             : 
    1506             :   // G8RC_and_G8RC_NOX0 Register Class...
    1507             :   const MCPhysReg G8RC_and_G8RC_NOX0[] = {
    1508             :     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, 
    1509             :   };
    1510             : 
    1511             :   // G8RC_and_G8RC_NOX0 Bit set.
    1512             :   const uint8_t G8RC_and_G8RC_NOX0Bits[] = {
    1513             :     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, 
    1514             :   };
    1515             : 
    1516             :   // F8RC Register Class...
    1517             :   const MCPhysReg F8RC[] = {
    1518             :     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, 
    1519             :   };
    1520             : 
    1521             :   // F8RC Bit set.
    1522             :   const uint8_t F8RCBits[] = {
    1523             :     0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 
    1524             :   };
    1525             : 
    1526             :   // SPERC Register Class...
    1527             :   const MCPhysReg SPERC[] = {
    1528             :     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, 
    1529             :   };
    1530             : 
    1531             :   // SPERC Bit set.
    1532             :   const uint8_t SPERCBits[] = {
    1533             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1534             :   };
    1535             : 
    1536             :   // VFRC Register Class...
    1537             :   const MCPhysReg VFRC[] = {
    1538             :     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, 
    1539             :   };
    1540             : 
    1541             :   // VFRC Bit set.
    1542             :   const uint8_t VFRCBits[] = {
    1543             :     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, 
    1544             :   };
    1545             : 
    1546             :   // SPERC_with_sub_32_in_GPRC_NOR0 Register Class...
    1547             :   const MCPhysReg SPERC_with_sub_32_in_GPRC_NOR0[] = {
    1548             :     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, 
    1549             :   };
    1550             : 
    1551             :   // SPERC_with_sub_32_in_GPRC_NOR0 Bit set.
    1552             :   const uint8_t SPERC_with_sub_32_in_GPRC_NOR0Bits[] = {
    1553             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
    1554             :   };
    1555             : 
    1556             :   // SPILLTOVSRRC_and_VFRC Register Class...
    1557             :   const MCPhysReg SPILLTOVSRRC_and_VFRC[] = {
    1558             :     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, 
    1559             :   };
    1560             : 
    1561             :   // SPILLTOVSRRC_and_VFRC Bit set.
    1562             :   const uint8_t SPILLTOVSRRC_and_VFRCBits[] = {
    1563             :     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, 
    1564             :   };
    1565             : 
    1566             :   // SPILLTOVSRRC_and_F4RC Register Class...
    1567             :   const MCPhysReg SPILLTOVSRRC_and_F4RC[] = {
    1568             :     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, 
    1569             :   };
    1570             : 
    1571             :   // SPILLTOVSRRC_and_F4RC Bit set.
    1572             :   const uint8_t SPILLTOVSRRC_and_F4RCBits[] = {
    1573             :     0x00, 0x00, 0xe0, 0xff, 0x07, 
    1574             :   };
    1575             : 
    1576             :   // CTRRC8 Register Class...
    1577             :   const MCPhysReg CTRRC8[] = {
    1578             :     PPC::CTR8, 
    1579             :   };
    1580             : 
    1581             :   // CTRRC8 Bit set.
    1582             :   const uint8_t CTRRC8Bits[] = {
    1583             :     0x00, 0x00, 0x10, 
    1584             :   };
    1585             : 
    1586             :   // VSRC Register Class...
    1587             :   const MCPhysReg VSRC[] = {
    1588             :     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, 
    1589             :   };
    1590             : 
    1591             :   // VSRC Bit set.
    1592             :   const uint8_t VSRCBits[] = {
    1593             :     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, 
    1594             :   };
    1595             : 
    1596             :   // VSRC_with_sub_64_in_SPILLTOVSRRC Register Class...
    1597             :   const MCPhysReg VSRC_with_sub_64_in_SPILLTOVSRRC[] = {
    1598             :     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, 
    1599             :   };
    1600             : 
    1601             :   // VSRC_with_sub_64_in_SPILLTOVSRRC Bit set.
    1602             :   const uint8_t VSRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    1603             :     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, 
    1604             :   };
    1605             : 
    1606             :   // QSRC Register Class...
    1607             :   const MCPhysReg QSRC[] = {
    1608             :     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, 
    1609             :   };
    1610             : 
    1611             :   // QSRC Bit set.
    1612             :   const uint8_t QSRCBits[] = {
    1613             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1614             :   };
    1615             : 
    1616             :   // VRRC Register Class...
    1617             :   const MCPhysReg VRRC[] = {
    1618             :     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, 
    1619             :   };
    1620             : 
    1621             :   // VRRC Bit set.
    1622             :   const uint8_t VRRCBits[] = {
    1623             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1624             :   };
    1625             : 
    1626             :   // VSLRC Register Class...
    1627             :   const MCPhysReg VSLRC[] = {
    1628             :     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, 
    1629             :   };
    1630             : 
    1631             :   // VSLRC Bit set.
    1632             :   const uint8_t VSLRCBits[] = {
    1633             :     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, 
    1634             :   };
    1635             : 
    1636             :   // VRRC_with_sub_64_in_SPILLTOVSRRC Register Class...
    1637             :   const MCPhysReg VRRC_with_sub_64_in_SPILLTOVSRRC[] = {
    1638             :     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, 
    1639             :   };
    1640             : 
    1641             :   // VRRC_with_sub_64_in_SPILLTOVSRRC Bit set.
    1642             :   const uint8_t VRRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    1643             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 
    1644             :   };
    1645             : 
    1646             :   // QSRC_with_sub_64_in_SPILLTOVSRRC Register Class...
    1647             :   const MCPhysReg QSRC_with_sub_64_in_SPILLTOVSRRC[] = {
    1648             :     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, 
    1649             :   };
    1650             : 
    1651             :   // QSRC_with_sub_64_in_SPILLTOVSRRC Bit set.
    1652             :   const uint8_t QSRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    1653             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 
    1654             :   };
    1655             : 
    1656             :   // VSLRC_with_sub_64_in_SPILLTOVSRRC Register Class...
    1657             :   const MCPhysReg VSLRC_with_sub_64_in_SPILLTOVSRRC[] = {
    1658             :     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, 
    1659             :   };
    1660             : 
    1661             :   // VSLRC_with_sub_64_in_SPILLTOVSRRC Bit set.
    1662             :   const uint8_t VSLRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    1663             :     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, 
    1664             :   };
    1665             : 
    1666             :   // QBRC Register Class...
    1667             :   const MCPhysReg QBRC[] = {
    1668             :     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, 
    1669             :   };
    1670             : 
    1671             :   // QBRC Bit set.
    1672             :   const uint8_t QBRCBits[] = {
    1673             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1674             :   };
    1675             : 
    1676             :   // QFRC Register Class...
    1677             :   const MCPhysReg QFRC[] = {
    1678             :     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, 
    1679             :   };
    1680             : 
    1681             :   // QFRC Bit set.
    1682             :   const uint8_t QFRCBits[] = {
    1683             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
    1684             :   };
    1685             : 
    1686             :   // QBRC_with_sub_64_in_SPILLTOVSRRC Register Class...
    1687             :   const MCPhysReg QBRC_with_sub_64_in_SPILLTOVSRRC[] = {
    1688             :     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, 
    1689             :   };
    1690             : 
    1691             :   // QBRC_with_sub_64_in_SPILLTOVSRRC Bit set.
    1692             :   const uint8_t QBRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    1693             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 
    1694             :   };
    1695             : 
    1696             : } // end anonymous namespace
    1697             : 
    1698             : extern const char PPCRegClassStrings[] = {
    1699             :   /* 0 */ 'C', 'R', 'R', 'C', '0', 0,
    1700             :   /* 6 */ 'G', 'P', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'C', '_', 'N', 'O', 'R', '0', 0,
    1701             :   /* 25 */ '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,
    1702             :   /* 56 */ 'G', '8', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', '8', 'R', 'C', '_', 'N', 'O', 'X', '0', 0,
    1703             :   /* 75 */ 'C', 'T', 'R', 'R', 'C', '8', 0,
    1704             :   /* 82 */ 'S', 'P', 'E', '4', 'R', 'C', 0,
    1705             :   /* 89 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'F', '4', 'R', 'C', 0,
    1706             :   /* 111 */ 'F', '8', 'R', 'C', 0,
    1707             :   /* 116 */ 'G', '8', 'R', 'C', 0,
    1708             :   /* 121 */ 'Q', 'B', 'R', 'C', 0,
    1709             :   /* 126 */ 'S', 'P', 'E', 'R', 'C', 0,
    1710             :   /* 132 */ 'V', 'R', 'S', 'A', 'V', 'E', 'R', 'C', 0,
    1711             :   /* 141 */ 'Q', 'F', 'R', 'C', 0,
    1712             :   /* 146 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'V', 'S', 'F', 'R', 'C', 0,
    1713             :   /* 169 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'V', 'F', 'R', 'C', 0,
    1714             :   /* 191 */ 'V', 'S', 'L', 'R', 'C', 0,
    1715             :   /* 197 */ 'G', 'P', 'R', 'C', 0,
    1716             :   /* 202 */ 'C', 'R', 'R', 'C', 0,
    1717             :   /* 207 */ '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,
    1718             :   /* 240 */ '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,
    1719             :   /* 274 */ '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,
    1720             :   /* 307 */ '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,
    1721             :   /* 340 */ '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,
    1722             :   /* 373 */ 'C', 'T', 'R', 'R', 'C', 0,
    1723             :   /* 379 */ 'V', 'R', 'R', 'C', 0,
    1724             :   /* 384 */ 'Q', 'S', 'R', 'C', 0,
    1725             :   /* 389 */ 'V', 'S', 'S', 'R', 'C', 0,
    1726             :   /* 395 */ 'V', 'S', 'R', 'C', 0,
    1727             :   /* 400 */ 'C', 'R', 'B', 'I', 'T', 'R', 'C', 0,
    1728             :   /* 408 */ 'C', 'A', 'R', 'R', 'Y', 'R', 'C', 0,
    1729             : };
    1730             : 
    1731             : extern const MCRegisterClass PPCMCRegisterClasses[] = {
    1732             :   { VSSRC, VSSRCBits, 389, 64, sizeof(VSSRCBits), PPC::VSSRCRegClassID, 1, true },
    1733             :   { GPRC, GPRCBits, 197, 34, sizeof(GPRCBits), PPC::GPRCRegClassID, 1, true },
    1734             :   { GPRC_NOR0, GPRC_NOR0Bits, 15, 34, sizeof(GPRC_NOR0Bits), PPC::GPRC_NOR0RegClassID, 1, true },
    1735             :   { SPE4RC, SPE4RCBits, 82, 34, sizeof(SPE4RCBits), PPC::SPE4RCRegClassID, 1, true },
    1736             :   { GPRC_and_GPRC_NOR0, GPRC_and_GPRC_NOR0Bits, 6, 33, sizeof(GPRC_and_GPRC_NOR0Bits), PPC::GPRC_and_GPRC_NOR0RegClassID, 1, true },
    1737             :   { CRBITRC, CRBITRCBits, 400, 32, sizeof(CRBITRCBits), PPC::CRBITRCRegClassID, 1, true },
    1738             :   { F4RC, F4RCBits, 106, 32, sizeof(F4RCBits), PPC::F4RCRegClassID, 1, true },
    1739             :   { CRRC, CRRCBits, 202, 8, sizeof(CRRCBits), PPC::CRRCRegClassID, 1, true },
    1740             :   { CARRYRC, CARRYRCBits, 408, 2, sizeof(CARRYRCBits), PPC::CARRYRCRegClassID, -1, true },
    1741             :   { CRRC0, CRRC0Bits, 0, 1, sizeof(CRRC0Bits), PPC::CRRC0RegClassID, 1, true },
    1742             :   { CTRRC, CTRRCBits, 373, 1, sizeof(CTRRCBits), PPC::CTRRCRegClassID, 1, false },
    1743             :   { VRSAVERC, VRSAVERCBits, 132, 1, sizeof(VRSAVERCBits), PPC::VRSAVERCRegClassID, 1, true },
    1744             :   { SPILLTOVSRRC, SPILLTOVSRRCBits, 227, 68, sizeof(SPILLTOVSRRCBits), PPC::SPILLTOVSRRCRegClassID, 1, true },
    1745             :   { VSFRC, VSFRCBits, 163, 64, sizeof(VSFRCBits), PPC::VSFRCRegClassID, 1, true },
    1746             :   { G8RC, G8RCBits, 116, 34, sizeof(G8RCBits), PPC::G8RCRegClassID, 1, true },
    1747             :   { G8RC_NOX0, G8RC_NOX0Bits, 65, 34, sizeof(G8RC_NOX0Bits), PPC::G8RC_NOX0RegClassID, 1, true },
    1748             :   { SPILLTOVSRRC_and_VSFRC, SPILLTOVSRRC_and_VSFRCBits, 146, 34, sizeof(SPILLTOVSRRC_and_VSFRCBits), PPC::SPILLTOVSRRC_and_VSFRCRegClassID, 1, true },
    1749             :   { G8RC_and_G8RC_NOX0, G8RC_and_G8RC_NOX0Bits, 56, 33, sizeof(G8RC_and_G8RC_NOX0Bits), PPC::G8RC_and_G8RC_NOX0RegClassID, 1, true },
    1750             :   { F8RC, F8RCBits, 111, 32, sizeof(F8RCBits), PPC::F8RCRegClassID, 1, true },
    1751             :   { SPERC, SPERCBits, 126, 32, sizeof(SPERCBits), PPC::SPERCRegClassID, 1, true },
    1752             :   { VFRC, VFRCBits, 186, 32, sizeof(VFRCBits), PPC::VFRCRegClassID, 1, true },
    1753             :   { SPERC_with_sub_32_in_GPRC_NOR0, SPERC_with_sub_32_in_GPRC_NOR0Bits, 25, 31, sizeof(SPERC_with_sub_32_in_GPRC_NOR0Bits), PPC::SPERC_with_sub_32_in_GPRC_NOR0RegClassID, 1, true },
    1754             :   { SPILLTOVSRRC_and_VFRC, SPILLTOVSRRC_and_VFRCBits, 169, 20, sizeof(SPILLTOVSRRC_and_VFRCBits), PPC::SPILLTOVSRRC_and_VFRCRegClassID, 1, true },
    1755             :   { SPILLTOVSRRC_and_F4RC, SPILLTOVSRRC_and_F4RCBits, 89, 14, sizeof(SPILLTOVSRRC_and_F4RCBits), PPC::SPILLTOVSRRC_and_F4RCRegClassID, 1, true },
    1756             :   { CTRRC8, CTRRC8Bits, 75, 1, sizeof(CTRRC8Bits), PPC::CTRRC8RegClassID, 1, false },
    1757             :   { VSRC, VSRCBits, 395, 64, sizeof(VSRCBits), PPC::VSRCRegClassID, 1, true },
    1758             :   { VSRC_with_sub_64_in_SPILLTOVSRRC, VSRC_with_sub_64_in_SPILLTOVSRRCBits, 340, 34, sizeof(VSRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
    1759             :   { QSRC, QSRCBits, 384, 32, sizeof(QSRCBits), PPC::QSRCRegClassID, 1, true },
    1760             :   { VRRC, VRRCBits, 379, 32, sizeof(VRRCBits), PPC::VRRCRegClassID, 1, true },
    1761             :   { VSLRC, VSLRCBits, 191, 32, sizeof(VSLRCBits), PPC::VSLRCRegClassID, 1, true },
    1762             :   { VRRC_with_sub_64_in_SPILLTOVSRRC, VRRC_with_sub_64_in_SPILLTOVSRRCBits, 274, 20, sizeof(VRRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
    1763             :   { QSRC_with_sub_64_in_SPILLTOVSRRC, QSRC_with_sub_64_in_SPILLTOVSRRCBits, 307, 14, sizeof(QSRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
    1764             :   { VSLRC_with_sub_64_in_SPILLTOVSRRC, VSLRC_with_sub_64_in_SPILLTOVSRRCBits, 240, 14, sizeof(VSLRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
    1765             :   { QBRC, QBRCBits, 121, 32, sizeof(QBRCBits), PPC::QBRCRegClassID, 1, true },
    1766             :   { QFRC, QFRCBits, 141, 32, sizeof(QFRCBits), PPC::QFRCRegClassID, 1, true },
    1767             :   { QBRC_with_sub_64_in_SPILLTOVSRRC, QBRC_with_sub_64_in_SPILLTOVSRRCBits, 207, 14, sizeof(QBRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
    1768             : };
    1769             : 
    1770             : // PPC Dwarf<->LLVM register mappings.
    1771             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[] = {
    1772             :   { 0U, PPC::X0 },
    1773             :   { 1U, PPC::X1 },
    1774             :   { 2U, PPC::X2 },
    1775             :   { 3U, PPC::X3 },
    1776             :   { 4U, PPC::X4 },
    1777             :   { 5U, PPC::X5 },
    1778             :   { 6U, PPC::X6 },
    1779             :   { 7U, PPC::X7 },
    1780             :   { 8U, PPC::X8 },
    1781             :   { 9U, PPC::X9 },
    1782             :   { 10U, PPC::X10 },
    1783             :   { 11U, PPC::X11 },
    1784             :   { 12U, PPC::X12 },
    1785             :   { 13U, PPC::X13 },
    1786             :   { 14U, PPC::X14 },
    1787             :   { 15U, PPC::X15 },
    1788             :   { 16U, PPC::X16 },
    1789             :   { 17U, PPC::X17 },
    1790             :   { 18U, PPC::X18 },
    1791             :   { 19U, PPC::X19 },
    1792             :   { 20U, PPC::X20 },
    1793             :   { 21U, PPC::X21 },
    1794             :   { 22U, PPC::X22 },
    1795             :   { 23U, PPC::X23 },
    1796             :   { 24U, PPC::X24 },
    1797             :   { 25U, PPC::X25 },
    1798             :   { 26U, PPC::X26 },
    1799             :   { 27U, PPC::X27 },
    1800             :   { 28U, PPC::X28 },
    1801             :   { 29U, PPC::X29 },
    1802             :   { 30U, PPC::X30 },
    1803             :   { 31U, PPC::X31 },
    1804             :   { 32U, PPC::QF0 },
    1805             :   { 33U, PPC::QF1 },
    1806             :   { 34U, PPC::QF2 },
    1807             :   { 35U, PPC::QF3 },
    1808             :   { 36U, PPC::QF4 },
    1809             :   { 37U, PPC::QF5 },
    1810             :   { 38U, PPC::QF6 },
    1811             :   { 39U, PPC::QF7 },
    1812             :   { 40U, PPC::QF8 },
    1813             :   { 41U, PPC::QF9 },
    1814             :   { 42U, PPC::QF10 },
    1815             :   { 43U, PPC::QF11 },
    1816             :   { 44U, PPC::QF12 },
    1817             :   { 45U, PPC::QF13 },
    1818             :   { 46U, PPC::QF14 },
    1819             :   { 47U, PPC::QF15 },
    1820             :   { 48U, PPC::QF16 },
    1821             :   { 49U, PPC::QF17 },
    1822             :   { 50U, PPC::QF18 },
    1823             :   { 51U, PPC::QF19 },
    1824             :   { 52U, PPC::QF20 },
    1825             :   { 53U, PPC::QF21 },
    1826             :   { 54U, PPC::QF22 },
    1827             :   { 55U, PPC::QF23 },
    1828             :   { 56U, PPC::QF24 },
    1829             :   { 57U, PPC::QF25 },
    1830             :   { 58U, PPC::QF26 },
    1831             :   { 59U, PPC::QF27 },
    1832             :   { 60U, PPC::QF28 },
    1833             :   { 61U, PPC::QF29 },
    1834             :   { 62U, PPC::QF30 },
    1835             :   { 63U, PPC::QF31 },
    1836             :   { 65U, PPC::LR8 },
    1837             :   { 66U, PPC::CTR8 },
    1838             :   { 68U, PPC::CR0 },
    1839             :   { 69U, PPC::CR1 },
    1840             :   { 70U, PPC::CR2 },
    1841             :   { 71U, PPC::CR3 },
    1842             :   { 72U, PPC::CR4 },
    1843             :   { 73U, PPC::CR5 },
    1844             :   { 74U, PPC::CR6 },
    1845             :   { 75U, PPC::CR7 },
    1846             :   { 76U, PPC::XER },
    1847             :   { 77U, PPC::VF0 },
    1848             :   { 78U, PPC::VF1 },
    1849             :   { 79U, PPC::VF2 },
    1850             :   { 80U, PPC::VF3 },
    1851             :   { 81U, PPC::VF4 },
    1852             :   { 82U, PPC::VF5 },
    1853             :   { 83U, PPC::VF6 },
    1854             :   { 84U, PPC::VF7 },
    1855             :   { 85U, PPC::VF8 },
    1856             :   { 86U, PPC::VF9 },
    1857             :   { 87U, PPC::VF10 },
    1858             :   { 88U, PPC::VF11 },
    1859             :   { 89U, PPC::VF12 },
    1860             :   { 90U, PPC::VF13 },
    1861             :   { 91U, PPC::VF14 },
    1862             :   { 92U, PPC::VF15 },
    1863             :   { 93U, PPC::VF16 },
    1864             :   { 94U, PPC::VF17 },
    1865             :   { 95U, PPC::VF18 },
    1866             :   { 96U, PPC::VF19 },
    1867             :   { 97U, PPC::VF20 },
    1868             :   { 98U, PPC::VF21 },
    1869             :   { 99U, PPC::VF22 },
    1870             :   { 100U, PPC::VF23 },
    1871             :   { 101U, PPC::VF24 },
    1872             :   { 102U, PPC::VF25 },
    1873             :   { 103U, PPC::VF26 },
    1874             :   { 104U, PPC::VF27 },
    1875             :   { 105U, PPC::VF28 },
    1876             :   { 106U, PPC::VF29 },
    1877             :   { 107U, PPC::VF30 },
    1878             :   { 108U, PPC::VF31 },
    1879             :   { 109U, PPC::VRSAVE },
    1880             :   { 612U, PPC::SPEFSCR },
    1881             :   { 1200U, PPC::S0 },
    1882             :   { 1201U, PPC::S1 },
    1883             :   { 1202U, PPC::S2 },
    1884             :   { 1203U, PPC::S3 },
    1885             :   { 1204U, PPC::S4 },
    1886             :   { 1205U, PPC::S5 },
    1887             :   { 1206U, PPC::S6 },
    1888             :   { 1207U, PPC::S7 },
    1889             :   { 1208U, PPC::S8 },
    1890             :   { 1209U, PPC::S9 },
    1891             :   { 1210U, PPC::S10 },
    1892             :   { 1211U, PPC::S11 },
    1893             :   { 1212U, PPC::S12 },
    1894             :   { 1213U, PPC::S13 },
    1895             :   { 1214U, PPC::S14 },
    1896             :   { 1215U, PPC::S15 },
    1897             :   { 1216U, PPC::S16 },
    1898             :   { 1217U, PPC::S17 },
    1899             :   { 1218U, PPC::S18 },
    1900             :   { 1219U, PPC::S19 },
    1901             :   { 1220U, PPC::S20 },
    1902             :   { 1221U, PPC::S21 },
    1903             :   { 1222U, PPC::S22 },
    1904             :   { 1223U, PPC::S23 },
    1905             :   { 1224U, PPC::S24 },
    1906             :   { 1225U, PPC::S25 },
    1907             :   { 1226U, PPC::S26 },
    1908             :   { 1227U, PPC::S27 },
    1909             :   { 1228U, PPC::S28 },
    1910             :   { 1229U, PPC::S29 },
    1911             :   { 1230U, PPC::S30 },
    1912             :   { 1231U, PPC::S31 },
    1913             : };
    1914             : extern const unsigned PPCDwarfFlavour0Dwarf2LSize = array_lengthof(PPCDwarfFlavour0Dwarf2L);
    1915             : 
    1916             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[] = {
    1917             :   { 0U, PPC::R0 },
    1918             :   { 1U, PPC::R1 },
    1919             :   { 2U, PPC::R2 },
    1920             :   { 3U, PPC::R3 },
    1921             :   { 4U, PPC::R4 },
    1922             :   { 5U, PPC::R5 },
    1923             :   { 6U, PPC::R6 },
    1924             :   { 7U, PPC::R7 },
    1925             :   { 8U, PPC::R8 },
    1926             :   { 9U, PPC::R9 },
    1927             :   { 10U, PPC::R10 },
    1928             :   { 11U, PPC::R11 },
    1929             :   { 12U, PPC::R12 },
    1930             :   { 13U, PPC::R13 },
    1931             :   { 14U, PPC::R14 },
    1932             :   { 15U, PPC::R15 },
    1933             :   { 16U, PPC::R16 },
    1934             :   { 17U, PPC::R17 },
    1935             :   { 18U, PPC::R18 },
    1936             :   { 19U, PPC::R19 },
    1937             :   { 20U, PPC::R20 },
    1938             :   { 21U, PPC::R21 },
    1939             :   { 22U, PPC::R22 },
    1940             :   { 23U, PPC::R23 },
    1941             :   { 24U, PPC::R24 },
    1942             :   { 25U, PPC::R25 },
    1943             :   { 26U, PPC::R26 },
    1944             :   { 27U, PPC::R27 },
    1945             :   { 28U, PPC::R28 },
    1946             :   { 29U, PPC::R29 },
    1947             :   { 30U, PPC::R30 },
    1948             :   { 31U, PPC::R31 },
    1949             :   { 32U, PPC::QF0 },
    1950             :   { 33U, PPC::QF1 },
    1951             :   { 34U, PPC::QF2 },
    1952             :   { 35U, PPC::QF3 },
    1953             :   { 36U, PPC::QF4 },
    1954             :   { 37U, PPC::QF5 },
    1955             :   { 38U, PPC::QF6 },
    1956             :   { 39U, PPC::QF7 },
    1957             :   { 40U, PPC::QF8 },
    1958             :   { 41U, PPC::QF9 },
    1959             :   { 42U, PPC::QF10 },
    1960             :   { 43U, PPC::QF11 },
    1961             :   { 44U, PPC::QF12 },
    1962             :   { 45U, PPC::QF13 },
    1963             :   { 46U, PPC::QF14 },
    1964             :   { 47U, PPC::QF15 },
    1965             :   { 48U, PPC::QF16 },
    1966             :   { 49U, PPC::QF17 },
    1967             :   { 50U, PPC::QF18 },
    1968             :   { 51U, PPC::QF19 },
    1969             :   { 52U, PPC::QF20 },
    1970             :   { 53U, PPC::QF21 },
    1971             :   { 54U, PPC::QF22 },
    1972             :   { 55U, PPC::QF23 },
    1973             :   { 56U, PPC::QF24 },
    1974             :   { 57U, PPC::QF25 },
    1975             :   { 58U, PPC::QF26 },
    1976             :   { 59U, PPC::QF27 },
    1977             :   { 60U, PPC::QF28 },
    1978             :   { 61U, PPC::QF29 },
    1979             :   { 62U, PPC::QF30 },
    1980             :   { 63U, PPC::QF31 },
    1981             :   { 65U, PPC::LR },
    1982             :   { 66U, PPC::CTR },
    1983             :   { 68U, PPC::CR0 },
    1984             :   { 69U, PPC::CR1 },
    1985             :   { 70U, PPC::CR2 },
    1986             :   { 71U, PPC::CR3 },
    1987             :   { 72U, PPC::CR4 },
    1988             :   { 73U, PPC::CR5 },
    1989             :   { 74U, PPC::CR6 },
    1990             :   { 75U, PPC::CR7 },
    1991             :   { 77U, PPC::VF0 },
    1992             :   { 78U, PPC::VF1 },
    1993             :   { 79U, PPC::VF2 },
    1994             :   { 80U, PPC::VF3 },
    1995             :   { 81U, PPC::VF4 },
    1996             :   { 82U, PPC::VF5 },
    1997             :   { 83U, PPC::VF6 },
    1998             :   { 84U, PPC::VF7 },
    1999             :   { 85U, PPC::VF8 },
    2000             :   { 86U, PPC::VF9 },
    2001             :   { 87U, PPC::VF10 },
    2002             :   { 88U, PPC::VF11 },
    2003             :   { 89U, PPC::VF12 },
    2004             :   { 90U, PPC::VF13 },
    2005             :   { 91U, PPC::VF14 },
    2006             :   { 92U, PPC::VF15 },
    2007             :   { 93U, PPC::VF16 },
    2008             :   { 94U, PPC::VF17 },
    2009             :   { 95U, PPC::VF18 },
    2010             :   { 96U, PPC::VF19 },
    2011             :   { 97U, PPC::VF20 },
    2012             :   { 98U, PPC::VF21 },
    2013             :   { 99U, PPC::VF22 },
    2014             :   { 100U, PPC::VF23 },
    2015             :   { 101U, PPC::VF24 },
    2016             :   { 102U, PPC::VF25 },
    2017             :   { 103U, PPC::VF26 },
    2018             :   { 104U, PPC::VF27 },
    2019             :   { 105U, PPC::VF28 },
    2020             :   { 106U, PPC::VF29 },
    2021             :   { 107U, PPC::VF30 },
    2022             :   { 108U, PPC::VF31 },
    2023             :   { 112U, PPC::SPEFSCR },
    2024             :   { 1200U, PPC::S0 },
    2025             :   { 1201U, PPC::S1 },
    2026             :   { 1202U, PPC::S2 },
    2027             :   { 1203U, PPC::S3 },
    2028             :   { 1204U, PPC::S4 },
    2029             :   { 1205U, PPC::S5 },
    2030             :   { 1206U, PPC::S6 },
    2031             :   { 1207U, PPC::S7 },
    2032             :   { 1208U, PPC::S8 },
    2033             :   { 1209U, PPC::S9 },
    2034             :   { 1210U, PPC::S10 },
    2035             :   { 1211U, PPC::S11 },
    2036             :   { 1212U, PPC::S12 },
    2037             :   { 1213U, PPC::S13 },
    2038             :   { 1214U, PPC::S14 },
    2039             :   { 1215U, PPC::S15 },
    2040             :   { 1216U, PPC::S16 },
    2041             :   { 1217U, PPC::S17 },
    2042             :   { 1218U, PPC::S18 },
    2043             :   { 1219U, PPC::S19 },
    2044             :   { 1220U, PPC::S20 },
    2045             :   { 1221U, PPC::S21 },
    2046             :   { 1222U, PPC::S22 },
    2047             :   { 1223U, PPC::S23 },
    2048             :   { 1224U, PPC::S24 },
    2049             :   { 1225U, PPC::S25 },
    2050             :   { 1226U, PPC::S26 },
    2051             :   { 1227U, PPC::S27 },
    2052             :   { 1228U, PPC::S28 },
    2053             :   { 1229U, PPC::S29 },
    2054             :   { 1230U, PPC::S30 },
    2055             :   { 1231U, PPC::S31 },
    2056             : };
    2057             : extern const unsigned PPCDwarfFlavour1Dwarf2LSize = array_lengthof(PPCDwarfFlavour1Dwarf2L);
    2058             : 
    2059             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[] = {
    2060             :   { 0U, PPC::X0 },
    2061             :   { 1U, PPC::X1 },
    2062             :   { 2U, PPC::X2 },
    2063             :   { 3U, PPC::X3 },
    2064             :   { 4U, PPC::X4 },
    2065             :   { 5U, PPC::X5 },
    2066             :   { 6U, PPC::X6 },
    2067             :   { 7U, PPC::X7 },
    2068             :   { 8U, PPC::X8 },
    2069             :   { 9U, PPC::X9 },
    2070             :   { 10U, PPC::X10 },
    2071             :   { 11U, PPC::X11 },
    2072             :   { 12U, PPC::X12 },
    2073             :   { 13U, PPC::X13 },
    2074             :   { 14U, PPC::X14 },
    2075             :   { 15U, PPC::X15 },
    2076             :   { 16U, PPC::X16 },
    2077             :   { 17U, PPC::X17 },
    2078             :   { 18U, PPC::X18 },
    2079             :   { 19U, PPC::X19 },
    2080             :   { 20U, PPC::X20 },
    2081             :   { 21U, PPC::X21 },
    2082             :   { 22U, PPC::X22 },
    2083             :   { 23U, PPC::X23 },
    2084             :   { 24U, PPC::X24 },
    2085             :   { 25U, PPC::X25 },
    2086             :   { 26U, PPC::X26 },
    2087             :   { 27U, PPC::X27 },
    2088             :   { 28U, PPC::X28 },
    2089             :   { 29U, PPC::X29 },
    2090             :   { 30U, PPC::X30 },
    2091             :   { 31U, PPC::X31 },
    2092             :   { 32U, PPC::QF0 },
    2093             :   { 33U, PPC::QF1 },
    2094             :   { 34U, PPC::QF2 },
    2095             :   { 35U, PPC::QF3 },
    2096             :   { 36U, PPC::QF4 },
    2097             :   { 37U, PPC::QF5 },
    2098             :   { 38U, PPC::QF6 },
    2099             :   { 39U, PPC::QF7 },
    2100             :   { 40U, PPC::QF8 },
    2101             :   { 41U, PPC::QF9 },
    2102             :   { 42U, PPC::QF10 },
    2103             :   { 43U, PPC::QF11 },
    2104             :   { 44U, PPC::QF12 },
    2105             :   { 45U, PPC::QF13 },
    2106             :   { 46U, PPC::QF14 },
    2107             :   { 47U, PPC::QF15 },
    2108             :   { 48U, PPC::QF16 },
    2109             :   { 49U, PPC::QF17 },
    2110             :   { 50U, PPC::QF18 },
    2111             :   { 51U, PPC::QF19 },
    2112             :   { 52U, PPC::QF20 },
    2113             :   { 53U, PPC::QF21 },
    2114             :   { 54U, PPC::QF22 },
    2115             :   { 55U, PPC::QF23 },
    2116             :   { 56U, PPC::QF24 },
    2117             :   { 57U, PPC::QF25 },
    2118             :   { 58U, PPC::QF26 },
    2119             :   { 59U, PPC::QF27 },
    2120             :   { 60U, PPC::QF28 },
    2121             :   { 61U, PPC::QF29 },
    2122             :   { 62U, PPC::QF30 },
    2123             :   { 63U, PPC::QF31 },
    2124             :   { 65U, PPC::LR8 },
    2125             :   { 66U, PPC::CTR8 },
    2126             :   { 68U, PPC::CR0 },
    2127             :   { 69U, PPC::CR1 },
    2128             :   { 70U, PPC::CR2 },
    2129             :   { 71U, PPC::CR3 },
    2130             :   { 72U, PPC::CR4 },
    2131             :   { 73U, PPC::CR5 },
    2132             :   { 74U, PPC::CR6 },
    2133             :   { 75U, PPC::CR7 },
    2134             :   { 76U, PPC::XER },
    2135             :   { 77U, PPC::VF0 },
    2136             :   { 78U, PPC::VF1 },
    2137             :   { 79U, PPC::VF2 },
    2138             :   { 80U, PPC::VF3 },
    2139             :   { 81U, PPC::VF4 },
    2140             :   { 82U, PPC::VF5 },
    2141             :   { 83U, PPC::VF6 },
    2142             :   { 84U, PPC::VF7 },
    2143             :   { 85U, PPC::VF8 },
    2144             :   { 86U, PPC::VF9 },
    2145             :   { 87U, PPC::VF10 },
    2146             :   { 88U, PPC::VF11 },
    2147             :   { 89U, PPC::VF12 },
    2148             :   { 90U, PPC::VF13 },
    2149             :   { 91U, PPC::VF14 },
    2150             :   { 92U, PPC::VF15 },
    2151             :   { 93U, PPC::VF16 },
    2152             :   { 94U, PPC::VF17 },
    2153             :   { 95U, PPC::VF18 },
    2154             :   { 96U, PPC::VF19 },
    2155             :   { 97U, PPC::VF20 },
    2156             :   { 98U, PPC::VF21 },
    2157             :   { 99U, PPC::VF22 },
    2158             :   { 100U, PPC::VF23 },
    2159             :   { 101U, PPC::VF24 },
    2160             :   { 102U, PPC::VF25 },
    2161             :   { 103U, PPC::VF26 },
    2162             :   { 104U, PPC::VF27 },
    2163             :   { 105U, PPC::VF28 },
    2164             :   { 106U, PPC::VF29 },
    2165             :   { 107U, PPC::VF30 },
    2166             :   { 108U, PPC::VF31 },
    2167             :   { 109U, PPC::VRSAVE },
    2168             :   { 612U, PPC::SPEFSCR },
    2169             :   { 1200U, PPC::S0 },
    2170             :   { 1201U, PPC::S1 },
    2171             :   { 1202U, PPC::S2 },
    2172             :   { 1203U, PPC::S3 },
    2173             :   { 1204U, PPC::S4 },
    2174             :   { 1205U, PPC::S5 },
    2175             :   { 1206U, PPC::S6 },
    2176             :   { 1207U, PPC::S7 },
    2177             :   { 1208U, PPC::S8 },
    2178             :   { 1209U, PPC::S9 },
    2179             :   { 1210U, PPC::S10 },
    2180             :   { 1211U, PPC::S11 },
    2181             :   { 1212U, PPC::S12 },
    2182             :   { 1213U, PPC::S13 },
    2183             :   { 1214U, PPC::S14 },
    2184             :   { 1215U, PPC::S15 },
    2185             :   { 1216U, PPC::S16 },
    2186             :   { 1217U, PPC::S17 },
    2187             :   { 1218U, PPC::S18 },
    2188             :   { 1219U, PPC::S19 },
    2189             :   { 1220U, PPC::S20 },
    2190             :   { 1221U, PPC::S21 },
    2191             :   { 1222U, PPC::S22 },
    2192             :   { 1223U, PPC::S23 },
    2193             :   { 1224U, PPC::S24 },
    2194             :   { 1225U, PPC::S25 },
    2195             :   { 1226U, PPC::S26 },
    2196             :   { 1227U, PPC::S27 },
    2197             :   { 1228U, PPC::S28 },
    2198             :   { 1229U, PPC::S29 },
    2199             :   { 1230U, PPC::S30 },
    2200             :   { 1231U, PPC::S31 },
    2201             : };
    2202             : extern const unsigned PPCEHFlavour0Dwarf2LSize = array_lengthof(PPCEHFlavour0Dwarf2L);
    2203             : 
    2204             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[] = {
    2205             :   { 0U, PPC::R0 },
    2206             :   { 1U, PPC::R1 },
    2207             :   { 2U, PPC::R2 },
    2208             :   { 3U, PPC::R3 },
    2209             :   { 4U, PPC::R4 },
    2210             :   { 5U, PPC::R5 },
    2211             :   { 6U, PPC::R6 },
    2212             :   { 7U, PPC::R7 },
    2213             :   { 8U, PPC::R8 },
    2214             :   { 9U, PPC::R9 },
    2215             :   { 10U, PPC::R10 },
    2216             :   { 11U, PPC::R11 },
    2217             :   { 12U, PPC::R12 },
    2218             :   { 13U, PPC::R13 },
    2219             :   { 14U, PPC::R14 },
    2220             :   { 15U, PPC::R15 },
    2221             :   { 16U, PPC::R16 },
    2222             :   { 17U, PPC::R17 },
    2223             :   { 18U, PPC::R18 },
    2224             :   { 19U, PPC::R19 },
    2225             :   { 20U, PPC::R20 },
    2226             :   { 21U, PPC::R21 },
    2227             :   { 22U, PPC::R22 },
    2228             :   { 23U, PPC::R23 },
    2229             :   { 24U, PPC::R24 },
    2230             :   { 25U, PPC::R25 },
    2231             :   { 26U, PPC::R26 },
    2232             :   { 27U, PPC::R27 },
    2233             :   { 28U, PPC::R28 },
    2234             :   { 29U, PPC::R29 },
    2235             :   { 30U, PPC::R30 },
    2236             :   { 31U, PPC::R31 },
    2237             :   { 32U, PPC::QF0 },
    2238             :   { 33U, PPC::QF1 },
    2239             :   { 34U, PPC::QF2 },
    2240             :   { 35U, PPC::QF3 },
    2241             :   { 36U, PPC::QF4 },
    2242             :   { 37U, PPC::QF5 },
    2243             :   { 38U, PPC::QF6 },
    2244             :   { 39U, PPC::QF7 },
    2245             :   { 40U, PPC::QF8 },
    2246             :   { 41U, PPC::QF9 },
    2247             :   { 42U, PPC::QF10 },
    2248             :   { 43U, PPC::QF11 },
    2249             :   { 44U, PPC::QF12 },
    2250             :   { 45U, PPC::QF13 },
    2251             :   { 46U, PPC::QF14 },
    2252             :   { 47U, PPC::QF15 },
    2253             :   { 48U, PPC::QF16 },
    2254             :   { 49U, PPC::QF17 },
    2255             :   { 50U, PPC::QF18 },
    2256             :   { 51U, PPC::QF19 },
    2257             :   { 52U, PPC::QF20 },
    2258             :   { 53U, PPC::QF21 },
    2259             :   { 54U, PPC::QF22 },
    2260             :   { 55U, PPC::QF23 },
    2261             :   { 56U, PPC::QF24 },
    2262             :   { 57U, PPC::QF25 },
    2263             :   { 58U, PPC::QF26 },
    2264             :   { 59U, PPC::QF27 },
    2265             :   { 60U, PPC::QF28 },
    2266             :   { 61U, PPC::QF29 },
    2267             :   { 62U, PPC::QF30 },
    2268             :   { 63U, PPC::QF31 },
    2269             :   { 65U, PPC::LR },
    2270             :   { 66U, PPC::CTR },
    2271             :   { 68U, PPC::CR0 },
    2272             :   { 69U, PPC::CR1 },
    2273             :   { 70U, PPC::CR2 },
    2274             :   { 71U, PPC::CR3 },
    2275             :   { 72U, PPC::CR4 },
    2276             :   { 73U, PPC::CR5 },
    2277             :   { 74U, PPC::CR6 },
    2278             :   { 75U, PPC::CR7 },
    2279             :   { 77U, PPC::VF0 },
    2280             :   { 78U, PPC::VF1 },
    2281             :   { 79U, PPC::VF2 },
    2282             :   { 80U, PPC::VF3 },
    2283             :   { 81U, PPC::VF4 },
    2284             :   { 82U, PPC::VF5 },
    2285             :   { 83U, PPC::VF6 },
    2286             :   { 84U, PPC::VF7 },
    2287             :   { 85U, PPC::VF8 },
    2288             :   { 86U, PPC::VF9 },
    2289             :   { 87U, PPC::VF10 },
    2290             :   { 88U, PPC::VF11 },
    2291             :   { 89U, PPC::VF12 },
    2292             :   { 90U, PPC::VF13 },
    2293             :   { 91U, PPC::VF14 },
    2294             :   { 92U, PPC::VF15 },
    2295             :   { 93U, PPC::VF16 },
    2296             :   { 94U, PPC::VF17 },
    2297             :   { 95U, PPC::VF18 },
    2298             :   { 96U, PPC::VF19 },
    2299             :   { 97U, PPC::VF20 },
    2300             :   { 98U, PPC::VF21 },
    2301             :   { 99U, PPC::VF22 },
    2302             :   { 100U, PPC::VF23 },
    2303             :   { 101U, PPC::VF24 },
    2304             :   { 102U, PPC::VF25 },
    2305             :   { 103U, PPC::VF26 },
    2306             :   { 104U, PPC::VF27 },
    2307             :   { 105U, PPC::VF28 },
    2308             :   { 106U, PPC::VF29 },
    2309             :   { 107U, PPC::VF30 },
    2310             :   { 108U, PPC::VF31 },
    2311             :   { 112U, PPC::SPEFSCR },
    2312             :   { 1200U, PPC::S0 },
    2313             :   { 1201U, PPC::S1 },
    2314             :   { 1202U, PPC::S2 },
    2315             :   { 1203U, PPC::S3 },
    2316             :   { 1204U, PPC::S4 },
    2317             :   { 1205U, PPC::S5 },
    2318             :   { 1206U, PPC::S6 },
    2319             :   { 1207U, PPC::S7 },
    2320             :   { 1208U, PPC::S8 },
    2321             :   { 1209U, PPC::S9 },
    2322             :   { 1210U, PPC::S10 },
    2323             :   { 1211U, PPC::S11 },
    2324             :   { 1212U, PPC::S12 },
    2325             :   { 1213U, PPC::S13 },
    2326             :   { 1214U, PPC::S14 },
    2327             :   { 1215U, PPC::S15 },
    2328             :   { 1216U, PPC::S16 },
    2329             :   { 1217U, PPC::S17 },
    2330             :   { 1218U, PPC::S18 },
    2331             :   { 1219U, PPC::S19 },
    2332             :   { 1220U, PPC::S20 },
    2333             :   { 1221U, PPC::S21 },
    2334             :   { 1222U, PPC::S22 },
    2335             :   { 1223U, PPC::S23 },
    2336             :   { 1224U, PPC::S24 },
    2337             :   { 1225U, PPC::S25 },
    2338             :   { 1226U, PPC::S26 },
    2339             :   { 1227U, PPC::S27 },
    2340             :   { 1228U, PPC::S28 },
    2341             :   { 1229U, PPC::S29 },
    2342             :   { 1230U, PPC::S30 },
    2343             :   { 1231U, PPC::S31 },
    2344             : };
    2345             : extern const unsigned PPCEHFlavour1Dwarf2LSize = array_lengthof(PPCEHFlavour1Dwarf2L);
    2346             : 
    2347             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[] = {
    2348             :   { PPC::CARRY, 76U },
    2349             :   { PPC::CTR, -2U },
    2350             :   { PPC::LR, -2U },
    2351             :   { PPC::SPEFSCR, 612U },
    2352             :   { PPC::VRSAVE, 109U },
    2353             :   { PPC::XER, 76U },
    2354             :   { PPC::ZERO, -2U },
    2355             :   { PPC::CR0, 68U },
    2356             :   { PPC::CR1, 69U },
    2357             :   { PPC::CR2, 70U },
    2358             :   { PPC::CR3, 71U },
    2359             :   { PPC::CR4, 72U },
    2360             :   { PPC::CR5, 73U },
    2361             :   { PPC::CR6, 74U },
    2362             :   { PPC::CR7, 75U },
    2363             :   { PPC::CTR8, 66U },
    2364             :   { PPC::F0, 32U },
    2365             :   { PPC::F1, 33U },
    2366             :   { PPC::F2, 34U },
    2367             :   { PPC::F3, 35U },
    2368             :   { PPC::F4, 36U },
    2369             :   { PPC::F5, 37U },
    2370             :   { PPC::F6, 38U },
    2371             :   { PPC::F7, 39U },
    2372             :   { PPC::F8, 40U },
    2373             :   { PPC::F9, 41U },
    2374             :   { PPC::F10, 42U },
    2375             :   { PPC::F11, 43U },
    2376             :   { PPC::F12, 44U },
    2377             :   { PPC::F13, 45U },
    2378             :   { PPC::F14, 46U },
    2379             :   { PPC::F15, 47U },
    2380             :   { PPC::F16, 48U },
    2381             :   { PPC::F17, 49U },
    2382             :   { PPC::F18, 50U },
    2383             :   { PPC::F19, 51U },
    2384             :   { PPC::F20, 52U },
    2385             :   { PPC::F21, 53U },
    2386             :   { PPC::F22, 54U },
    2387             :   { PPC::F23, 55U },
    2388             :   { PPC::F24, 56U },
    2389             :   { PPC::F25, 57U },
    2390             :   { PPC::F26, 58U },
    2391             :   { PPC::F27, 59U },
    2392             :   { PPC::F28, 60U },
    2393             :   { PPC::F29, 61U },
    2394             :   { PPC::F30, 62U },
    2395             :   { PPC::F31, 63U },
    2396             :   { PPC::LR8, 65U },
    2397             :   { PPC::QF0, 32U },
    2398             :   { PPC::QF1, 33U },
    2399             :   { PPC::QF2, 34U },
    2400             :   { PPC::QF3, 35U },
    2401             :   { PPC::QF4, 36U },
    2402             :   { PPC::QF5, 37U },
    2403             :   { PPC::QF6, 38U },
    2404             :   { PPC::QF7, 39U },
    2405             :   { PPC::QF8, 40U },
    2406             :   { PPC::QF9, 41U },
    2407             :   { PPC::QF10, 42U },
    2408             :   { PPC::QF11, 43U },
    2409             :   { PPC::QF12, 44U },
    2410             :   { PPC::QF13, 45U },
    2411             :   { PPC::QF14, 46U },
    2412             :   { PPC::QF15, 47U },
    2413             :   { PPC::QF16, 48U },
    2414             :   { PPC::QF17, 49U },
    2415             :   { PPC::QF18, 50U },
    2416             :   { PPC::QF19, 51U },
    2417             :   { PPC::QF20, 52U },
    2418             :   { PPC::QF21, 53U },
    2419             :   { PPC::QF22, 54U },
    2420             :   { PPC::QF23, 55U },
    2421             :   { PPC::QF24, 56U },
    2422             :   { PPC::QF25, 57U },
    2423             :   { PPC::QF26, 58U },
    2424             :   { PPC::QF27, 59U },
    2425             :   { PPC::QF28, 60U },
    2426             :   { PPC::QF29, 61U },
    2427             :   { PPC::QF30, 62U },
    2428             :   { PPC::QF31, 63U },
    2429             :   { PPC::R0, -2U },
    2430             :   { PPC::R1, -2U },
    2431             :   { PPC::R2, -2U },
    2432             :   { PPC::R3, -2U },
    2433             :   { PPC::R4, -2U },
    2434             :   { PPC::R5, -2U },
    2435             :   { PPC::R6, -2U },
    2436             :   { PPC::R7, -2U },
    2437             :   { PPC::R8, -2U },
    2438             :   { PPC::R9, -2U },
    2439             :   { PPC::R10, -2U },
    2440             :   { PPC::R11, -2U },
    2441             :   { PPC::R12, -2U },
    2442             :   { PPC::R13, -2U },
    2443             :   { PPC::R14, -2U },
    2444             :   { PPC::R15, -2U },
    2445             :   { PPC::R16, -2U },
    2446             :   { PPC::R17, -2U },
    2447             :   { PPC::R18, -2U },
    2448             :   { PPC::R19, -2U },
    2449             :   { PPC::R20, -2U },
    2450             :   { PPC::R21, -2U },
    2451             :   { PPC::R22, -2U },
    2452             :   { PPC::R23, -2U },
    2453             :   { PPC::R24, -2U },
    2454             :   { PPC::R25, -2U },
    2455             :   { PPC::R26, -2U },
    2456             :   { PPC::R27, -2U },
    2457             :   { PPC::R28, -2U },
    2458             :   { PPC::R29, -2U },
    2459             :   { PPC::R30, -2U },
    2460             :   { PPC::R31, -2U },
    2461             :   { PPC::S0, 1200U },
    2462             :   { PPC::S1, 1201U },
    2463             :   { PPC::S2, 1202U },
    2464             :   { PPC::S3, 1203U },
    2465             :   { PPC::S4, 1204U },
    2466             :   { PPC::S5, 1205U },
    2467             :   { PPC::S6, 1206U },
    2468             :   { PPC::S7, 1207U },
    2469             :   { PPC::S8, 1208U },
    2470             :   { PPC::S9, 1209U },
    2471             :   { PPC::S10, 1210U },
    2472             :   { PPC::S11, 1211U },
    2473             :   { PPC::S12, 1212U },
    2474             :   { PPC::S13, 1213U },
    2475             :   { PPC::S14, 1214U },
    2476             :   { PPC::S15, 1215U },
    2477             :   { PPC::S16, 1216U },
    2478             :   { PPC::S17, 1217U },
    2479             :   { PPC::S18, 1218U },
    2480             :   { PPC::S19, 1219U },
    2481             :   { PPC::S20, 1220U },
    2482             :   { PPC::S21, 1221U },
    2483             :   { PPC::S22, 1222U },
    2484             :   { PPC::S23, 1223U },
    2485             :   { PPC::S24, 1224U },
    2486             :   { PPC::S25, 1225U },
    2487             :   { PPC::S26, 1226U },
    2488             :   { PPC::S27, 1227U },
    2489             :   { PPC::S28, 1228U },
    2490             :   { PPC::S29, 1229U },
    2491             :   { PPC::S30, 1230U },
    2492             :   { PPC::S31, 1231U },
    2493             :   { PPC::V0, 77U },
    2494             :   { PPC::V1, 78U },
    2495             :   { PPC::V2, 79U },
    2496             :   { PPC::V3, 80U },
    2497             :   { PPC::V4, 81U },
    2498             :   { PPC::V5, 82U },
    2499             :   { PPC::V6, 83U },
    2500             :   { PPC::V7, 84U },
    2501             :   { PPC::V8, 85U },
    2502             :   { PPC::V9, 86U },
    2503             :   { PPC::V10, 87U },
    2504             :   { PPC::V11, 88U },
    2505             :   { PPC::V12, 89U },
    2506             :   { PPC::V13, 90U },
    2507             :   { PPC::V14, 91U },
    2508             :   { PPC::V15, 92U },
    2509             :   { PPC::V16, 93U },
    2510             :   { PPC::V17, 94U },
    2511             :   { PPC::V18, 95U },
    2512             :   { PPC::V19, 96U },
    2513             :   { PPC::V20, 97U },
    2514             :   { PPC::V21, 98U },
    2515             :   { PPC::V22, 99U },
    2516             :   { PPC::V23, 100U },
    2517             :   { PPC::V24, 101U },
    2518             :   { PPC::V25, 102U },
    2519             :   { PPC::V26, 103U },
    2520             :   { PPC::V27, 104U },
    2521             :   { PPC::V28, 105U },
    2522             :   { PPC::V29, 106U },
    2523             :   { PPC::V30, 107U },
    2524             :   { PPC::V31, 108U },
    2525             :   { PPC::VF0, 77U },
    2526             :   { PPC::VF1, 78U },
    2527             :   { PPC::VF2, 79U },
    2528             :   { PPC::VF3, 80U },
    2529             :   { PPC::VF4, 81U },
    2530             :   { PPC::VF5, 82U },
    2531             :   { PPC::VF6, 83U },
    2532             :   { PPC::VF7, 84U },
    2533             :   { PPC::VF8, 85U },
    2534             :   { PPC::VF9, 86U },
    2535             :   { PPC::VF10, 87U },
    2536             :   { PPC::VF11, 88U },
    2537             :   { PPC::VF12, 89U },
    2538             :   { PPC::VF13, 90U },
    2539             :   { PPC::VF14, 91U },
    2540             :   { PPC::VF15, 92U },
    2541             :   { PPC::VF16, 93U },
    2542             :   { PPC::VF17, 94U },
    2543             :   { PPC::VF18, 95U },
    2544             :   { PPC::VF19, 96U },
    2545             :   { PPC::VF20, 97U },
    2546             :   { PPC::VF21, 98U },
    2547             :   { PPC::VF22, 99U },
    2548             :   { PPC::VF23, 100U },
    2549             :   { PPC::VF24, 101U },
    2550             :   { PPC::VF25, 102U },
    2551             :   { PPC::VF26, 103U },
    2552             :   { PPC::VF27, 104U },
    2553             :   { PPC::VF28, 105U },
    2554             :   { PPC::VF29, 106U },
    2555             :   { PPC::VF30, 107U },
    2556             :   { PPC::VF31, 108U },
    2557             :   { PPC::VSL0, 32U },
    2558             :   { PPC::VSL1, 33U },
    2559             :   { PPC::VSL2, 34U },
    2560             :   { PPC::VSL3, 35U },
    2561             :   { PPC::VSL4, 36U },
    2562             :   { PPC::VSL5, 37U },
    2563             :   { PPC::VSL6, 38U },
    2564             :   { PPC::VSL7, 39U },
    2565             :   { PPC::VSL8, 40U },
    2566             :   { PPC::VSL9, 41U },
    2567             :   { PPC::VSL10, 42U },
    2568             :   { PPC::VSL11, 43U },
    2569             :   { PPC::VSL12, 44U },
    2570             :   { PPC::VSL13, 45U },
    2571             :   { PPC::VSL14, 46U },
    2572             :   { PPC::VSL15, 47U },
    2573             :   { PPC::VSL16, 48U },
    2574             :   { PPC::VSL17, 49U },
    2575             :   { PPC::VSL18, 50U },
    2576             :   { PPC::VSL19, 51U },
    2577             :   { PPC::VSL20, 52U },
    2578             :   { PPC::VSL21, 53U },
    2579             :   { PPC::VSL22, 54U },
    2580             :   { PPC::VSL23, 55U },
    2581             :   { PPC::VSL24, 56U },
    2582             :   { PPC::VSL25, 57U },
    2583             :   { PPC::VSL26, 58U },
    2584             :   { PPC::VSL27, 59U },
    2585             :   { PPC::VSL28, 60U },
    2586             :   { PPC::VSL29, 61U },
    2587             :   { PPC::VSL30, 62U },
    2588             :   { PPC::VSL31, 63U },
    2589             :   { PPC::X0, 0U },
    2590             :   { PPC::X1, 1U },
    2591             :   { PPC::X2, 2U },
    2592             :   { PPC::X3, 3U },
    2593             :   { PPC::X4, 4U },
    2594             :   { PPC::X5, 5U },
    2595             :   { PPC::X6, 6U },
    2596             :   { PPC::X7, 7U },
    2597             :   { PPC::X8, 8U },
    2598             :   { PPC::X9, 9U },
    2599             :   { PPC::X10, 10U },
    2600             :   { PPC::X11, 11U },
    2601             :   { PPC::X12, 12U },
    2602             :   { PPC::X13, 13U },
    2603             :   { PPC::X14, 14U },
    2604             :   { PPC::X15, 15U },
    2605             :   { PPC::X16, 16U },
    2606             :   { PPC::X17, 17U },
    2607             :   { PPC::X18, 18U },
    2608             :   { PPC::X19, 19U },
    2609             :   { PPC::X20, 20U },
    2610             :   { PPC::X21, 21U },
    2611             :   { PPC::X22, 22U },
    2612             :   { PPC::X23, 23U },
    2613             :   { PPC::X24, 24U },
    2614             :   { PPC::X25, 25U },
    2615             :   { PPC::X26, 26U },
    2616             :   { PPC::X27, 27U },
    2617             :   { PPC::X28, 28U },
    2618             :   { PPC::X29, 29U },
    2619             :   { PPC::X30, 30U },
    2620             :   { PPC::X31, 31U },
    2621             :   { PPC::ZERO8, 0U },
    2622             : };
    2623             : extern const unsigned PPCDwarfFlavour0L2DwarfSize = array_lengthof(PPCDwarfFlavour0L2Dwarf);
    2624             : 
    2625             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[] = {
    2626             :   { PPC::CTR, 66U },
    2627             :   { PPC::LR, 65U },
    2628             :   { PPC::SPEFSCR, 112U },
    2629             :   { PPC::ZERO, 0U },
    2630             :   { PPC::CR0, 68U },
    2631             :   { PPC::CR1, 69U },
    2632             :   { PPC::CR2, 70U },
    2633             :   { PPC::CR3, 71U },
    2634             :   { PPC::CR4, 72U },
    2635             :   { PPC::CR5, 73U },
    2636             :   { PPC::CR6, 74U },
    2637             :   { PPC::CR7, 75U },
    2638             :   { PPC::CTR8, -2U },
    2639             :   { PPC::F0, 32U },
    2640             :   { PPC::F1, 33U },
    2641             :   { PPC::F2, 34U },
    2642             :   { PPC::F3, 35U },
    2643             :   { PPC::F4, 36U },
    2644             :   { PPC::F5, 37U },
    2645             :   { PPC::F6, 38U },
    2646             :   { PPC::F7, 39U },
    2647             :   { PPC::F8, 40U },
    2648             :   { PPC::F9, 41U },
    2649             :   { PPC::F10, 42U },
    2650             :   { PPC::F11, 43U },
    2651             :   { PPC::F12, 44U },
    2652             :   { PPC::F13, 45U },
    2653             :   { PPC::F14, 46U },
    2654             :   { PPC::F15, 47U },
    2655             :   { PPC::F16, 48U },
    2656             :   { PPC::F17, 49U },
    2657             :   { PPC::F18, 50U },
    2658             :   { PPC::F19, 51U },
    2659             :   { PPC::F20, 52U },
    2660             :   { PPC::F21, 53U },
    2661             :   { PPC::F22, 54U },
    2662             :   { PPC::F23, 55U },
    2663             :   { PPC::F24, 56U },
    2664             :   { PPC::F25, 57U },
    2665             :   { PPC::F26, 58U },
    2666             :   { PPC::F27, 59U },
    2667             :   { PPC::F28, 60U },
    2668             :   { PPC::F29, 61U },
    2669             :   { PPC::F30, 62U },
    2670             :   { PPC::F31, 63U },
    2671             :   { PPC::LR8, -2U },
    2672             :   { PPC::QF0, 32U },
    2673             :   { PPC::QF1, 33U },
    2674             :   { PPC::QF2, 34U },
    2675             :   { PPC::QF3, 35U },
    2676             :   { PPC::QF4, 36U },
    2677             :   { PPC::QF5, 37U },
    2678             :   { PPC::QF6, 38U },
    2679             :   { PPC::QF7, 39U },
    2680             :   { PPC::QF8, 40U },
    2681             :   { PPC::QF9, 41U },
    2682             :   { PPC::QF10, 42U },
    2683             :   { PPC::QF11, 43U },
    2684             :   { PPC::QF12, 44U },
    2685             :   { PPC::QF13, 45U },
    2686             :   { PPC::QF14, 46U },
    2687             :   { PPC::QF15, 47U },
    2688             :   { PPC::QF16, 48U },
    2689             :   { PPC::QF17, 49U },
    2690             :   { PPC::QF18, 50U },
    2691             :   { PPC::QF19, 51U },
    2692             :   { PPC::QF20, 52U },
    2693             :   { PPC::QF21, 53U },
    2694             :   { PPC::QF22, 54U },
    2695             :   { PPC::QF23, 55U },
    2696             :   { PPC::QF24, 56U },
    2697             :   { PPC::QF25, 57U },
    2698             :   { PPC::QF26, 58U },
    2699             :   { PPC::QF27, 59U },
    2700             :   { PPC::QF28, 60U },
    2701             :   { PPC::QF29, 61U },
    2702             :   { PPC::QF30, 62U },
    2703             :   { PPC::QF31, 63U },
    2704             :   { PPC::R0, 0U },
    2705             :   { PPC::R1, 1U },
    2706             :   { PPC::R2, 2U },
    2707             :   { PPC::R3, 3U },
    2708             :   { PPC::R4, 4U },
    2709             :   { PPC::R5, 5U },
    2710             :   { PPC::R6, 6U },
    2711             :   { PPC::R7, 7U },
    2712             :   { PPC::R8, 8U },
    2713             :   { PPC::R9, 9U },
    2714             :   { PPC::R10, 10U },
    2715             :   { PPC::R11, 11U },
    2716             :   { PPC::R12, 12U },
    2717             :   { PPC::R13, 13U },
    2718             :   { PPC::R14, 14U },
    2719             :   { PPC::R15, 15U },
    2720             :   { PPC::R16, 16U },
    2721             :   { PPC::R17, 17U },
    2722             :   { PPC::R18, 18U },
    2723             :   { PPC::R19, 19U },
    2724             :   { PPC::R20, 20U },
    2725             :   { PPC::R21, 21U },
    2726             :   { PPC::R22, 22U },
    2727             :   { PPC::R23, 23U },
    2728             :   { PPC::R24, 24U },
    2729             :   { PPC::R25, 25U },
    2730             :   { PPC::R26, 26U },
    2731             :   { PPC::R27, 27U },
    2732             :   { PPC::R28, 28U },
    2733             :   { PPC::R29, 29U },
    2734             :   { PPC::R30, 30U },
    2735             :   { PPC::R31, 31U },
    2736             :   { PPC::S0, 1200U },
    2737             :   { PPC::S1, 1201U },
    2738             :   { PPC::S2, 1202U },
    2739             :   { PPC::S3, 1203U },
    2740             :   { PPC::S4, 1204U },
    2741             :   { PPC::S5, 1205U },
    2742             :   { PPC::S6, 1206U },
    2743             :   { PPC::S7, 1207U },
    2744             :   { PPC::S8, 1208U },
    2745             :   { PPC::S9, 1209U },
    2746             :   { PPC::S10, 1210U },
    2747             :   { PPC::S11, 1211U },
    2748             :   { PPC::S12, 1212U },
    2749             :   { PPC::S13, 1213U },
    2750             :   { PPC::S14, 1214U },
    2751             :   { PPC::S15, 1215U },
    2752             :   { PPC::S16, 1216U },
    2753             :   { PPC::S17, 1217U },
    2754             :   { PPC::S18, 1218U },
    2755             :   { PPC::S19, 1219U },
    2756             :   { PPC::S20, 1220U },
    2757             :   { PPC::S21, 1221U },
    2758             :   { PPC::S22, 1222U },
    2759             :   { PPC::S23, 1223U },
    2760             :   { PPC::S24, 1224U },
    2761             :   { PPC::S25, 1225U },
    2762             :   { PPC::S26, 1226U },
    2763             :   { PPC::S27, 1227U },
    2764             :   { PPC::S28, 1228U },
    2765             :   { PPC::S29, 1229U },
    2766             :   { PPC::S30, 1230U },
    2767             :   { PPC::S31, 1231U },
    2768             :   { PPC::V0, 77U },
    2769             :   { PPC::V1, 78U },
    2770             :   { PPC::V2, 79U },
    2771             :   { PPC::V3, 80U },
    2772             :   { PPC::V4, 81U },
    2773             :   { PPC::V5, 82U },
    2774             :   { PPC::V6, 83U },
    2775             :   { PPC::V7, 84U },
    2776             :   { PPC::V8, 85U },
    2777             :   { PPC::V9, 86U },
    2778             :   { PPC::V10, 87U },
    2779             :   { PPC::V11, 88U },
    2780             :   { PPC::V12, 89U },
    2781             :   { PPC::V13, 90U },
    2782             :   { PPC::V14, 91U },
    2783             :   { PPC::V15, 92U },
    2784             :   { PPC::V16, 93U },
    2785             :   { PPC::V17, 94U },
    2786             :   { PPC::V18, 95U },
    2787             :   { PPC::V19, 96U },
    2788             :   { PPC::V20, 97U },
    2789             :   { PPC::V21, 98U },
    2790             :   { PPC::V22, 99U },
    2791             :   { PPC::V23, 100U },
    2792             :   { PPC::V24, 101U },
    2793             :   { PPC::V25, 102U },
    2794             :   { PPC::V26, 103U },
    2795             :   { PPC::V27, 104U },
    2796             :   { PPC::V28, 105U },
    2797             :   { PPC::V29, 106U },
    2798             :   { PPC::V30, 107U },
    2799             :   { PPC::V31, 108U },
    2800             :   { PPC::VF0, 77U },
    2801             :   { PPC::VF1, 78U },
    2802             :   { PPC::VF2, 79U },
    2803             :   { PPC::VF3, 80U },
    2804             :   { PPC::VF4, 81U },
    2805             :   { PPC::VF5, 82U },
    2806             :   { PPC::VF6, 83U },
    2807             :   { PPC::VF7, 84U },
    2808             :   { PPC::VF8, 85U },
    2809             :   { PPC::VF9, 86U },
    2810             :   { PPC::VF10, 87U },
    2811             :   { PPC::VF11, 88U },
    2812             :   { PPC::VF12, 89U },
    2813             :   { PPC::VF13, 90U },
    2814             :   { PPC::VF14, 91U },
    2815             :   { PPC::VF15, 92U },
    2816             :   { PPC::VF16, 93U },
    2817             :   { PPC::VF17, 94U },
    2818             :   { PPC::VF18, 95U },
    2819             :   { PPC::VF19, 96U },
    2820             :   { PPC::VF20, 97U },
    2821             :   { PPC::VF21, 98U },
    2822             :   { PPC::VF22, 99U },
    2823             :   { PPC::VF23, 100U },
    2824             :   { PPC::VF24, 101U },
    2825             :   { PPC::VF25, 102U },
    2826             :   { PPC::VF26, 103U },
    2827             :   { PPC::VF27, 104U },
    2828             :   { PPC::VF28, 105U },
    2829             :   { PPC::VF29, 106U },
    2830             :   { PPC::VF30, 107U },
    2831             :   { PPC::VF31, 108U },
    2832             :   { PPC::VSL0, 32U },
    2833             :   { PPC::VSL1, 33U },
    2834             :   { PPC::VSL2, 34U },
    2835             :   { PPC::VSL3, 35U },
    2836             :   { PPC::VSL4, 36U },
    2837             :   { PPC::VSL5, 37U },
    2838             :   { PPC::VSL6, 38U },
    2839             :   { PPC::VSL7, 39U },
    2840             :   { PPC::VSL8, 40U },
    2841             :   { PPC::VSL9, 41U },
    2842             :   { PPC::VSL10, 42U },
    2843             :   { PPC::VSL11, 43U },
    2844             :   { PPC::VSL12, 44U },
    2845             :   { PPC::VSL13, 45U },
    2846             :   { PPC::VSL14, 46U },
    2847             :   { PPC::VSL15, 47U },
    2848             :   { PPC::VSL16, 48U },
    2849             :   { PPC::VSL17, 49U },
    2850             :   { PPC::VSL18, 50U },
    2851             :   { PPC::VSL19, 51U },
    2852             :   { PPC::VSL20, 52U },
    2853             :   { PPC::VSL21, 53U },
    2854             :   { PPC::VSL22, 54U },
    2855             :   { PPC::VSL23, 55U },
    2856             :   { PPC::VSL24, 56U },
    2857             :   { PPC::VSL25, 57U },
    2858             :   { PPC::VSL26, 58U },
    2859             :   { PPC::VSL27, 59U },
    2860             :   { PPC::VSL28, 60U },
    2861             :   { PPC::VSL29, 61U },
    2862             :   { PPC::VSL30, 62U },
    2863             :   { PPC::VSL31, 63U },
    2864             :   { PPC::X0, -2U },
    2865             :   { PPC::X1, -2U },
    2866             :   { PPC::X2, -2U },
    2867             :   { PPC::X3, -2U },
    2868             :   { PPC::X4, -2U },
    2869             :   { PPC::X5, -2U },
    2870             :   { PPC::X6, -2U },
    2871             :   { PPC::X7, -2U },
    2872             :   { PPC::X8, -2U },
    2873             :   { PPC::X9, -2U },
    2874             :   { PPC::X10, -2U },
    2875             :   { PPC::X11, -2U },
    2876             :   { PPC::X12, -2U },
    2877             :   { PPC::X13, -2U },
    2878             :   { PPC::X14, -2U },
    2879             :   { PPC::X15, -2U },
    2880             :   { PPC::X16, -2U },
    2881             :   { PPC::X17, -2U },
    2882             :   { PPC::X18, -2U },
    2883             :   { PPC::X19, -2U },
    2884             :   { PPC::X20, -2U },
    2885             :   { PPC::X21, -2U },
    2886             :   { PPC::X22, -2U },
    2887             :   { PPC::X23, -2U },
    2888             :   { PPC::X24, -2U },
    2889             :   { PPC::X25, -2U },
    2890             :   { PPC::X26, -2U },
    2891             :   { PPC::X27, -2U },
    2892             :   { PPC::X28, -2U },
    2893             :   { PPC::X29, -2U },
    2894             :   { PPC::X30, -2U },
    2895             :   { PPC::X31, -2U },
    2896             :   { PPC::ZERO8, -2U },
    2897             : };
    2898             : extern const unsigned PPCDwarfFlavour1L2DwarfSize = array_lengthof(PPCDwarfFlavour1L2Dwarf);
    2899             : 
    2900             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[] = {
    2901             :   { PPC::CARRY, 76U },
    2902             :   { PPC::CTR, -2U },
    2903             :   { PPC::LR, -2U },
    2904             :   { PPC::SPEFSCR, 612U },
    2905             :   { PPC::VRSAVE, 109U },
    2906             :   { PPC::XER, 76U },
    2907             :   { PPC::ZERO, -2U },
    2908             :   { PPC::CR0, 68U },
    2909             :   { PPC::CR1, 69U },
    2910             :   { PPC::CR2, 70U },
    2911             :   { PPC::CR3, 71U },
    2912             :   { PPC::CR4, 72U },
    2913             :   { PPC::CR5, 73U },
    2914             :   { PPC::CR6, 74U },
    2915             :   { PPC::CR7, 75U },
    2916             :   { PPC::CTR8, 66U },
    2917             :   { PPC::F0, 32U },
    2918             :   { PPC::F1, 33U },
    2919             :   { PPC::F2, 34U },
    2920             :   { PPC::F3, 35U },
    2921             :   { PPC::F4, 36U },
    2922             :   { PPC::F5, 37U },
    2923             :   { PPC::F6, 38U },
    2924             :   { PPC::F7, 39U },
    2925             :   { PPC::F8, 40U },
    2926             :   { PPC::F9, 41U },
    2927             :   { PPC::F10, 42U },
    2928             :   { PPC::F11, 43U },
    2929             :   { PPC::F12, 44U },
    2930             :   { PPC::F13, 45U },
    2931             :   { PPC::F14, 46U },
    2932             :   { PPC::F15, 47U },
    2933             :   { PPC::F16, 48U },
    2934             :   { PPC::F17, 49U },
    2935             :   { PPC::F18, 50U },
    2936             :   { PPC::F19, 51U },
    2937             :   { PPC::F20, 52U },
    2938             :   { PPC::F21, 53U },
    2939             :   { PPC::F22, 54U },
    2940             :   { PPC::F23, 55U },
    2941             :   { PPC::F24, 56U },
    2942             :   { PPC::F25, 57U },
    2943             :   { PPC::F26, 58U },
    2944             :   { PPC::F27, 59U },
    2945             :   { PPC::F28, 60U },
    2946             :   { PPC::F29, 61U },
    2947             :   { PPC::F30, 62U },
    2948             :   { PPC::F31, 63U },
    2949             :   { PPC::LR8, 65U },
    2950             :   { PPC::QF0, 32U },
    2951             :   { PPC::QF1, 33U },
    2952             :   { PPC::QF2, 34U },
    2953             :   { PPC::QF3, 35U },
    2954             :   { PPC::QF4, 36U },
    2955             :   { PPC::QF5, 37U },
    2956             :   { PPC::QF6, 38U },
    2957             :   { PPC::QF7, 39U },
    2958             :   { PPC::QF8, 40U },
    2959             :   { PPC::QF9, 41U },
    2960             :   { PPC::QF10, 42U },
    2961             :   { PPC::QF11, 43U },
    2962             :   { PPC::QF12, 44U },
    2963             :   { PPC::QF13, 45U },
    2964             :   { PPC::QF14, 46U },
    2965             :   { PPC::QF15, 47U },
    2966             :   { PPC::QF16, 48U },
    2967             :   { PPC::QF17, 49U },
    2968             :   { PPC::QF18, 50U },
    2969             :   { PPC::QF19, 51U },
    2970             :   { PPC::QF20, 52U },
    2971             :   { PPC::QF21, 53U },
    2972             :   { PPC::QF22, 54U },
    2973             :   { PPC::QF23, 55U },
    2974             :   { PPC::QF24, 56U },
    2975             :   { PPC::QF25, 57U },
    2976             :   { PPC::QF26, 58U },
    2977             :   { PPC::QF27, 59U },
    2978             :   { PPC::QF28, 60U },
    2979             :   { PPC::QF29, 61U },
    2980             :   { PPC::QF30, 62U },
    2981             :   { PPC::QF31, 63U },
    2982             :   { PPC::R0, -2U },
    2983             :   { PPC::R1, -2U },
    2984             :   { PPC::R2, -2U },
    2985             :   { PPC::R3, -2U },
    2986             :   { PPC::R4, -2U },
    2987             :   { PPC::R5, -2U },
    2988             :   { PPC::R6, -2U },
    2989             :   { PPC::R7, -2U },
    2990             :   { PPC::R8, -2U },
    2991             :   { PPC::R9, -2U },
    2992             :   { PPC::R10, -2U },
    2993             :   { PPC::R11, -2U },
    2994             :   { PPC::R12, -2U },
    2995             :   { PPC::R13, -2U },
    2996             :   { PPC::R14, -2U },
    2997             :   { PPC::R15, -2U },
    2998             :   { PPC::R16, -2U },
    2999             :   { PPC::R17, -2U },
    3000             :   { PPC::R18, -2U },
    3001             :   { PPC::R19, -2U },
    3002             :   { PPC::R20, -2U },
    3003             :   { PPC::R21, -2U },
    3004             :   { PPC::R22, -2U },
    3005             :   { PPC::R23, -2U },
    3006             :   { PPC::R24, -2U },
    3007             :   { PPC::R25, -2U },
    3008             :   { PPC::R26, -2U },
    3009             :   { PPC::R27, -2U },
    3010             :   { PPC::R28, -2U },
    3011             :   { PPC::R29, -2U },
    3012             :   { PPC::R30, -2U },
    3013             :   { PPC::R31, -2U },
    3014             :   { PPC::S0, 1200U },
    3015             :   { PPC::S1, 1201U },
    3016             :   { PPC::S2, 1202U },
    3017             :   { PPC::S3, 1203U },
    3018             :   { PPC::S4, 1204U },
    3019             :   { PPC::S5, 1205U },
    3020             :   { PPC::S6, 1206U },
    3021             :   { PPC::S7, 1207U },
    3022             :   { PPC::S8, 1208U },
    3023             :   { PPC::S9, 1209U },
    3024             :   { PPC::S10, 1210U },
    3025             :   { PPC::S11, 1211U },
    3026             :   { PPC::S12, 1212U },
    3027             :   { PPC::S13, 1213U },
    3028             :   { PPC::S14, 1214U },
    3029             :   { PPC::S15, 1215U },
    3030             :   { PPC::S16, 1216U },
    3031             :   { PPC::S17, 1217U },
    3032             :   { PPC::S18, 1218U },
    3033             :   { PPC::S19, 1219U },
    3034             :   { PPC::S20, 1220U },
    3035             :   { PPC::S21, 1221U },
    3036             :   { PPC::S22, 1222U },
    3037             :   { PPC::S23, 1223U },
    3038             :   { PPC::S24, 1224U },
    3039             :   { PPC::S25, 1225U },
    3040             :   { PPC::S26, 1226U },
    3041             :   { PPC::S27, 1227U },
    3042             :   { PPC::S28, 1228U },
    3043             :   { PPC::S29, 1229U },
    3044             :   { PPC::S30, 1230U },
    3045             :   { PPC::S31, 1231U },
    3046             :   { PPC::V0, 77U },
    3047             :   { PPC::V1, 78U },
    3048             :   { PPC::V2, 79U },
    3049             :   { PPC::V3, 80U },
    3050             :   { PPC::V4, 81U },
    3051             :   { PPC::V5, 82U },
    3052             :   { PPC::V6, 83U },
    3053             :   { PPC::V7, 84U },
    3054             :   { PPC::V8, 85U },
    3055             :   { PPC::V9, 86U },
    3056             :   { PPC::V10, 87U },
    3057             :   { PPC::V11, 88U },
    3058             :   { PPC::V12, 89U },
    3059             :   { PPC::V13, 90U },
    3060             :   { PPC::V14, 91U },
    3061             :   { PPC::V15, 92U },
    3062             :   { PPC::V16, 93U },
    3063             :   { PPC::V17, 94U },
    3064             :   { PPC::V18, 95U },
    3065             :   { PPC::V19, 96U },
    3066             :   { PPC::V20, 97U },
    3067             :   { PPC::V21, 98U },
    3068             :   { PPC::V22, 99U },
    3069             :   { PPC::V23, 100U },
    3070             :   { PPC::V24, 101U },
    3071             :   { PPC::V25, 102U },
    3072             :   { PPC::V26, 103U },
    3073             :   { PPC::V27, 104U },
    3074             :   { PPC::V28, 105U },
    3075             :   { PPC::V29, 106U },
    3076             :   { PPC::V30, 107U },
    3077             :   { PPC::V31, 108U },
    3078             :   { PPC::VF0, 77U },
    3079             :   { PPC::VF1, 78U },
    3080             :   { PPC::VF2, 79U },
    3081             :   { PPC::VF3, 80U },
    3082             :   { PPC::VF4, 81U },
    3083             :   { PPC::VF5, 82U },
    3084             :   { PPC::VF6, 83U },
    3085             :   { PPC::VF7, 84U },
    3086             :   { PPC::VF8, 85U },
    3087             :   { PPC::VF9, 86U },
    3088             :   { PPC::VF10, 87U },
    3089             :   { PPC::VF11, 88U },
    3090             :   { PPC::VF12, 89U },
    3091             :   { PPC::VF13, 90U },
    3092             :   { PPC::VF14, 91U },
    3093             :   { PPC::VF15, 92U },
    3094             :   { PPC::VF16, 93U },
    3095             :   { PPC::VF17, 94U },
    3096             :   { PPC::VF18, 95U },
    3097             :   { PPC::VF19, 96U },
    3098             :   { PPC::VF20, 97U },
    3099             :   { PPC::VF21, 98U },
    3100             :   { PPC::VF22, 99U },
    3101             :   { PPC::VF23, 100U },
    3102             :   { PPC::VF24, 101U },
    3103             :   { PPC::VF25, 102U },
    3104             :   { PPC::VF26, 103U },
    3105             :   { PPC::VF27, 104U },
    3106             :   { PPC::VF28, 105U },
    3107             :   { PPC::VF29, 106U },
    3108             :   { PPC::VF30, 107U },
    3109             :   { PPC::VF31, 108U },
    3110             :   { PPC::VSL0, 32U },
    3111             :   { PPC::VSL1, 33U },
    3112             :   { PPC::VSL2, 34U },
    3113             :   { PPC::VSL3, 35U },
    3114             :   { PPC::VSL4, 36U },
    3115             :   { PPC::VSL5, 37U },
    3116             :   { PPC::VSL6, 38U },
    3117             :   { PPC::VSL7, 39U },
    3118             :   { PPC::VSL8, 40U },
    3119             :   { PPC::VSL9, 41U },
    3120             :   { PPC::VSL10, 42U },
    3121             :   { PPC::VSL11, 43U },
    3122             :   { PPC::VSL12, 44U },
    3123             :   { PPC::VSL13, 45U },
    3124             :   { PPC::VSL14, 46U },
    3125             :   { PPC::VSL15, 47U },
    3126             :   { PPC::VSL16, 48U },
    3127             :   { PPC::VSL17, 49U },
    3128             :   { PPC::VSL18, 50U },
    3129             :   { PPC::VSL19, 51U },
    3130             :   { PPC::VSL20, 52U },
    3131             :   { PPC::VSL21, 53U },
    3132             :   { PPC::VSL22, 54U },
    3133             :   { PPC::VSL23, 55U },
    3134             :   { PPC::VSL24, 56U },
    3135             :   { PPC::VSL25, 57U },
    3136             :   { PPC::VSL26, 58U },
    3137             :   { PPC::VSL27, 59U },
    3138             :   { PPC::VSL28, 60U },
    3139             :   { PPC::VSL29, 61U },
    3140             :   { PPC::VSL30, 62U },
    3141             :   { PPC::VSL31, 63U },
    3142             :   { PPC::X0, 0U },
    3143             :   { PPC::X1, 1U },
    3144             :   { PPC::X2, 2U },
    3145             :   { PPC::X3, 3U },
    3146             :   { PPC::X4, 4U },
    3147             :   { PPC::X5, 5U },
    3148             :   { PPC::X6, 6U },
    3149             :   { PPC::X7, 7U },
    3150             :   { PPC::X8, 8U },
    3151             :   { PPC::X9, 9U },
    3152             :   { PPC::X10, 10U },
    3153             :   { PPC::X11, 11U },
    3154             :   { PPC::X12, 12U },
    3155             :   { PPC::X13, 13U },
    3156             :   { PPC::X14, 14U },
    3157             :   { PPC::X15, 15U },
    3158             :   { PPC::X16, 16U },
    3159             :   { PPC::X17, 17U },
    3160             :   { PPC::X18, 18U },
    3161             :   { PPC::X19, 19U },
    3162             :   { PPC::X20, 20U },
    3163             :   { PPC::X21, 21U },
    3164             :   { PPC::X22, 22U },
    3165             :   { PPC::X23, 23U },
    3166             :   { PPC::X24, 24U },
    3167             :   { PPC::X25, 25U },
    3168             :   { PPC::X26, 26U },
    3169             :   { PPC::X27, 27U },
    3170             :   { PPC::X28, 28U },
    3171             :   { PPC::X29, 29U },
    3172             :   { PPC::X30, 30U },
    3173             :   { PPC::X31, 31U },
    3174             :   { PPC::ZERO8, 0U },
    3175             : };
    3176             : extern const unsigned PPCEHFlavour0L2DwarfSize = array_lengthof(PPCEHFlavour0L2Dwarf);
    3177             : 
    3178             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[] = {
    3179             :   { PPC::CTR, 66U },
    3180             :   { PPC::LR, 65U },
    3181             :   { PPC::SPEFSCR, 112U },
    3182             :   { PPC::ZERO, 0U },
    3183             :   { PPC::CR0, 68U },
    3184             :   { PPC::CR1, 69U },
    3185             :   { PPC::CR2, 70U },
    3186             :   { PPC::CR3, 71U },
    3187             :   { PPC::CR4, 72U },
    3188             :   { PPC::CR5, 73U },
    3189             :   { PPC::CR6, 74U },
    3190             :   { PPC::CR7, 75U },
    3191             :   { PPC::CTR8, -2U },
    3192             :   { PPC::F0, 32U },
    3193             :   { PPC::F1, 33U },
    3194             :   { PPC::F2, 34U },
    3195             :   { PPC::F3, 35U },
    3196             :   { PPC::F4, 36U },
    3197             :   { PPC::F5, 37U },
    3198             :   { PPC::F6, 38U },
    3199             :   { PPC::F7, 39U },
    3200             :   { PPC::F8, 40U },
    3201             :   { PPC::F9, 41U },
    3202             :   { PPC::F10, 42U },
    3203             :   { PPC::F11, 43U },
    3204             :   { PPC::F12, 44U },
    3205             :   { PPC::F13, 45U },
    3206             :   { PPC::F14, 46U },
    3207             :   { PPC::F15, 47U },
    3208             :   { PPC::F16, 48U },
    3209             :   { PPC::F17, 49U },
    3210             :   { PPC::F18, 50U },
    3211             :   { PPC::F19, 51U },
    3212             :   { PPC::F20, 52U },
    3213             :   { PPC::F21, 53U },
    3214             :   { PPC::F22, 54U },
    3215             :   { PPC::F23, 55U },
    3216             :   { PPC::F24, 56U },
    3217             :   { PPC::F25, 57U },
    3218             :   { PPC::F26, 58U },
    3219             :   { PPC::F27, 59U },
    3220             :   { PPC::F28, 60U },
    3221             :   { PPC::F29, 61U },
    3222             :   { PPC::F30, 62U },
    3223             :   { PPC::F31, 63U },
    3224             :   { PPC::LR8, -2U },
    3225             :   { PPC::QF0, 32U },
    3226             :   { PPC::QF1, 33U },
    3227             :   { PPC::QF2, 34U },
    3228             :   { PPC::QF3, 35U },
    3229             :   { PPC::QF4, 36U },
    3230             :   { PPC::QF5, 37U },
    3231             :   { PPC::QF6, 38U },
    3232             :   { PPC::QF7, 39U },
    3233             :   { PPC::QF8, 40U },
    3234             :   { PPC::QF9, 41U },
    3235             :   { PPC::QF10, 42U },
    3236             :   { PPC::QF11, 43U },
    3237             :   { PPC::QF12, 44U },
    3238             :   { PPC::QF13, 45U },
    3239             :   { PPC::QF14, 46U },
    3240             :   { PPC::QF15, 47U },
    3241             :   { PPC::QF16, 48U },
    3242             :   { PPC::QF17, 49U },
    3243             :   { PPC::QF18, 50U },
    3244             :   { PPC::QF19, 51U },
    3245             :   { PPC::QF20, 52U },
    3246             :   { PPC::QF21, 53U },
    3247             :   { PPC::QF22, 54U },
    3248             :   { PPC::QF23, 55U },
    3249             :   { PPC::QF24, 56U },
    3250             :   { PPC::QF25, 57U },
    3251             :   { PPC::QF26, 58U },
    3252             :   { PPC::QF27, 59U },
    3253             :   { PPC::QF28, 60U },
    3254             :   { PPC::QF29, 61U },
    3255             :   { PPC::QF30, 62U },
    3256             :   { PPC::QF31, 63U },
    3257             :   { PPC::R0, 0U },
    3258             :   { PPC::R1, 1U },
    3259             :   { PPC::R2, 2U },
    3260             :   { PPC::R3, 3U },
    3261             :   { PPC::R4, 4U },
    3262             :   { PPC::R5, 5U },
    3263             :   { PPC::R6, 6U },
    3264             :   { PPC::R7, 7U },
    3265             :   { PPC::R8, 8U },
    3266             :   { PPC::R9, 9U },
    3267             :   { PPC::R10, 10U },
    3268             :   { PPC::R11, 11U },
    3269             :   { PPC::R12, 12U },
    3270             :   { PPC::R13, 13U },
    3271             :   { PPC::R14, 14U },
    3272             :   { PPC::R15, 15U },
    3273             :   { PPC::R16, 16U },
    3274             :   { PPC::R17, 17U },
    3275             :   { PPC::R18, 18U },
    3276             :   { PPC::R19, 19U },
    3277             :   { PPC::R20, 20U },
    3278             :   { PPC::R21, 21U },
    3279             :   { PPC::R22, 22U },
    3280             :   { PPC::R23, 23U },
    3281             :   { PPC::R24, 24U },
    3282             :   { PPC::R25, 25U },
    3283             :   { PPC::R26, 26U },
    3284             :   { PPC::R27, 27U },
    3285             :   { PPC::R28, 28U },
    3286             :   { PPC::R29, 29U },
    3287             :   { PPC::R30, 30U },
    3288             :   { PPC::R31, 31U },
    3289             :   { PPC::S0, 1200U },
    3290             :   { PPC::S1, 1201U },
    3291             :   { PPC::S2, 1202U },
    3292             :   { PPC::S3, 1203U },
    3293             :   { PPC::S4, 1204U },
    3294             :   { PPC::S5, 1205U },
    3295             :   { PPC::S6, 1206U },
    3296             :   { PPC::S7, 1207U },
    3297             :   { PPC::S8, 1208U },
    3298             :   { PPC::S9, 1209U },
    3299             :   { PPC::S10, 1210U },
    3300             :   { PPC::S11, 1211U },
    3301             :   { PPC::S12, 1212U },
    3302             :   { PPC::S13, 1213U },
    3303             :   { PPC::S14, 1214U },
    3304             :   { PPC::S15, 1215U },
    3305             :   { PPC::S16, 1216U },
    3306             :   { PPC::S17, 1217U },
    3307             :   { PPC::S18, 1218U },
    3308             :   { PPC::S19, 1219U },
    3309             :   { PPC::S20, 1220U },
    3310             :   { PPC::S21, 1221U },
    3311             :   { PPC::S22, 1222U },
    3312             :   { PPC::S23, 1223U },
    3313             :   { PPC::S24, 1224U },
    3314             :   { PPC::S25, 1225U },
    3315             :   { PPC::S26, 1226U },
    3316             :   { PPC::S27, 1227U },
    3317             :   { PPC::S28, 1228U },
    3318             :   { PPC::S29, 1229U },
    3319             :   { PPC::S30, 1230U },
    3320             :   { PPC::S31, 1231U },
    3321             :   { PPC::V0, 77U },
    3322             :   { PPC::V1, 78U },
    3323             :   { PPC::V2, 79U },
    3324             :   { PPC::V3, 80U },
    3325             :   { PPC::V4, 81U },
    3326             :   { PPC::V5, 82U },
    3327             :   { PPC::V6, 83U },
    3328             :   { PPC::V7, 84U },
    3329             :   { PPC::V8, 85U },
    3330             :   { PPC::V9, 86U },
    3331             :   { PPC::V10, 87U },
    3332             :   { PPC::V11, 88U },
    3333             :   { PPC::V12, 89U },
    3334             :   { PPC::V13, 90U },
    3335             :   { PPC::V14, 91U },
    3336             :   { PPC::V15, 92U },
    3337             :   { PPC::V16, 93U },
    3338             :   { PPC::V17, 94U },
    3339             :   { PPC::V18, 95U },
    3340             :   { PPC::V19, 96U },
    3341             :   { PPC::V20, 97U },
    3342             :   { PPC::V21, 98U },
    3343             :   { PPC::V22, 99U },
    3344             :   { PPC::V23, 100U },
    3345             :   { PPC::V24, 101U },
    3346             :   { PPC::V25, 102U },
    3347             :   { PPC::V26, 103U },
    3348             :   { PPC::V27, 104U },
    3349             :   { PPC::V28, 105U },
    3350             :   { PPC::V29, 106U },
    3351             :   { PPC::V30, 107U },
    3352             :   { PPC::V31, 108U },
    3353             :   { PPC::VF0, 77U },
    3354             :   { PPC::VF1, 78U },
    3355             :   { PPC::VF2, 79U },
    3356             :   { PPC::VF3, 80U },
    3357             :   { PPC::VF4, 81U },
    3358             :   { PPC::VF5, 82U },
    3359             :   { PPC::VF6, 83U },
    3360             :   { PPC::VF7, 84U },
    3361             :   { PPC::VF8, 85U },
    3362             :   { PPC::VF9, 86U },
    3363             :   { PPC::VF10, 87U },
    3364             :   { PPC::VF11, 88U },
    3365             :   { PPC::VF12, 89U },
    3366             :   { PPC::VF13, 90U },
    3367             :   { PPC::VF14, 91U },
    3368             :   { PPC::VF15, 92U },
    3369             :   { PPC::VF16, 93U },
    3370             :   { PPC::VF17, 94U },
    3371             :   { PPC::VF18, 95U },
    3372             :   { PPC::VF19, 96U },
    3373             :   { PPC::VF20, 97U },
    3374             :   { PPC::VF21, 98U },
    3375             :   { PPC::VF22, 99U },
    3376             :   { PPC::VF23, 100U },
    3377             :   { PPC::VF24, 101U },
    3378             :   { PPC::VF25, 102U },
    3379             :   { PPC::VF26, 103U },
    3380             :   { PPC::VF27, 104U },
    3381             :   { PPC::VF28, 105U },
    3382             :   { PPC::VF29, 106U },
    3383             :   { PPC::VF30, 107U },
    3384             :   { PPC::VF31, 108U },
    3385             :   { PPC::VSL0, 32U },
    3386             :   { PPC::VSL1, 33U },
    3387             :   { PPC::VSL2, 34U },
    3388             :   { PPC::VSL3, 35U },
    3389             :   { PPC::VSL4, 36U },
    3390             :   { PPC::VSL5, 37U },
    3391             :   { PPC::VSL6, 38U },
    3392             :   { PPC::VSL7, 39U },
    3393             :   { PPC::VSL8, 40U },
    3394             :   { PPC::VSL9, 41U },
    3395             :   { PPC::VSL10, 42U },
    3396             :   { PPC::VSL11, 43U },
    3397             :   { PPC::VSL12, 44U },
    3398             :   { PPC::VSL13, 45U },
    3399             :   { PPC::VSL14, 46U },
    3400             :   { PPC::VSL15, 47U },
    3401             :   { PPC::VSL16, 48U },
    3402             :   { PPC::VSL17, 49U },
    3403             :   { PPC::VSL18, 50U },
    3404             :   { PPC::VSL19, 51U },
    3405             :   { PPC::VSL20, 52U },
    3406             :   { PPC::VSL21, 53U },
    3407             :   { PPC::VSL22, 54U },
    3408             :   { PPC::VSL23, 55U },
    3409             :   { PPC::VSL24, 56U },
    3410             :   { PPC::VSL25, 57U },
    3411             :   { PPC::VSL26, 58U },
    3412             :   { PPC::VSL27, 59U },
    3413             :   { PPC::VSL28, 60U },
    3414             :   { PPC::VSL29, 61U },
    3415             :   { PPC::VSL30, 62U },
    3416             :   { PPC::VSL31, 63U },
    3417             :   { PPC::X0, -2U },
    3418             :   { PPC::X1, -2U },
    3419             :   { PPC::X2, -2U },
    3420             :   { PPC::X3, -2U },
    3421             :   { PPC::X4, -2U },
    3422             :   { PPC::X5, -2U },
    3423             :   { PPC::X6, -2U },
    3424             :   { PPC::X7, -2U },
    3425             :   { PPC::X8, -2U },
    3426             :   { PPC::X9, -2U },
    3427             :   { PPC::X10, -2U },
    3428             :   { PPC::X11, -2U },
    3429             :   { PPC::X12, -2U },
    3430             :   { PPC::X13, -2U },
    3431             :   { PPC::X14, -2U },
    3432             :   { PPC::X15, -2U },
    3433             :   { PPC::X16, -2U },
    3434             :   { PPC::X17, -2U },
    3435             :   { PPC::X18, -2U },
    3436             :   { PPC::X19, -2U },
    3437             :   { PPC::X20, -2U },
    3438             :   { PPC::X21, -2U },
    3439             :   { PPC::X22, -2U },
    3440             :   { PPC::X23, -2U },
    3441             :   { PPC::X24, -2U },
    3442             :   { PPC::X25, -2U },
    3443             :   { PPC::X26, -2U },
    3444             :   { PPC::X27, -2U },
    3445             :   { PPC::X28, -2U },
    3446             :   { PPC::X29, -2U },
    3447             :   { PPC::X30, -2U },
    3448             :   { PPC::X31, -2U },
    3449             :   { PPC::ZERO8, -2U },
    3450             : };
    3451             : extern const unsigned PPCEHFlavour1L2DwarfSize = array_lengthof(PPCEHFlavour1L2Dwarf);
    3452             : 
    3453             : extern const uint16_t PPCRegEncodingTable[] = {
    3454             :   0,
    3455             :   0,
    3456             :   1,
    3457             :   9,
    3458             :   0,
    3459             :   8,
    3460             :   0,
    3461             :   512,
    3462             :   256,
    3463             :   1,
    3464             :   0,
    3465             :   0,
    3466             :   0,
    3467             :   1,
    3468             :   2,
    3469             :   3,
    3470             :   4,
    3471             :   5,
    3472             :   6,
    3473             :   7,
    3474             :   9,
    3475             :   0,
    3476             :   1,
    3477             :   2,
    3478             :   3,
    3479             :   4,
    3480             :   5,
    3481             :   6,
    3482             :   7,
    3483             :   8,
    3484             :   9,
    3485             :   10,
    3486             :   11,
    3487             :   12,
    3488             :   13,
    3489             :   14,
    3490             :   15,
    3491             :   16,
    3492             :   17,
    3493             :   18,
    3494             :   19,
    3495             :   20,
    3496             :   21,
    3497             :   22,
    3498             :   23,
    3499             :   24,
    3500             :   25,
    3501             :   26,
    3502             :   27,
    3503             :   28,
    3504             :   29,
    3505             :   30,
    3506             :   31,
    3507             :   0,
    3508             :   8,
    3509             :   0,
    3510             :   1,
    3511             :   2,
    3512             :   3,
    3513             :   4,
    3514             :   5,
    3515             :   6,
    3516             :   7,
    3517             :   8,
    3518             :   9,
    3519             :   10,
    3520             :   11,
    3521             :   12,
    3522             :   13,
    3523             :   14,
    3524             :   15,
    3525             :   16,
    3526             :   17,
    3527             :   18,
    3528             :   19,
    3529             :   20,
    3530             :   21,
    3531             :   22,
    3532             :   23,
    3533             :   24,
    3534             :   25,
    3535             :   26,
    3536             :   27,
    3537             :   28,
    3538             :   29,
    3539             :   30,
    3540             :   31,
    3541             :   0,
    3542             :   1,
    3543             :   2,
    3544             :   3,
    3545             :   4,
    3546             :   5,
    3547             :   6,
    3548             :   7,
    3549             :   8,
    3550             :   9,
    3551             :   10,
    3552             :   11,
    3553             :   12,
    3554             :   13,
    3555             :   14,
    3556             :   15,
    3557             :   16,
    3558             :   17,
    3559             :   18,
    3560             :   19,
    3561             :   20,
    3562             :   21,
    3563             :   22,
    3564             :   23,
    3565             :   24,
    3566             :   25,
    3567             :   26,
    3568             :   27,
    3569             :   28,
    3570             :   29,
    3571             :   30,
    3572             :   31,
    3573             :   0,
    3574             :   1,
    3575             :   2,
    3576             :   3,
    3577             :   4,
    3578             :   5,
    3579             :   6,
    3580             :   7,
    3581             :   8,
    3582             :   9,
    3583             :   10,
    3584             :   11,
    3585             :   12,
    3586             :   13,
    3587             :   14,
    3588             :   15,
    3589             :   16,
    3590             :   17,
    3591             :   18,
    3592             :   19,
    3593             :   20,
    3594             :   21,
    3595             :   22,
    3596             :   23,
    3597             :   24,
    3598             :   25,
    3599             :   26,
    3600             :   27,
    3601             :   28,
    3602             :   29,
    3603             :   30,
    3604             :   31,
    3605             :   0,
    3606             :   1,
    3607             :   2,
    3608             :   3,
    3609             :   4,
    3610             :   5,
    3611             :   6,
    3612             :   7,
    3613             :   8,
    3614             :   9,
    3615             :   10,
    3616             :   11,
    3617             :   12,
    3618             :   13,
    3619             :   14,
    3620             :   15,
    3621             :   16,
    3622             :   17,
    3623             :   18,
    3624             :   19,
    3625             :   20,
    3626             :   21,
    3627             :   22,
    3628             :   23,
    3629             :   24,
    3630             :   25,
    3631             :   26,
    3632             :   27,
    3633             :   28,
    3634             :   29,
    3635             :   30,
    3636             :   31,
    3637             :   32,
    3638             :   33,
    3639             :   34,
    3640             :   35,
    3641             :   36,
    3642             :   37,
    3643             :   38,
    3644             :   39,
    3645             :   40,
    3646             :   41,
    3647             :   42,
    3648             :   43,
    3649             :   44,
    3650             :   45,
    3651             :   46,
    3652             :   47,
    3653             :   48,
    3654             :   49,
    3655             :   50,
    3656             :   51,
    3657             :   52,
    3658             :   53,
    3659             :   54,
    3660             :   55,
    3661             :   56,
    3662             :   57,
    3663             :   58,
    3664             :   59,
    3665             :   60,
    3666             :   61,
    3667             :   62,
    3668             :   63,
    3669             :   0,
    3670             :   1,
    3671             :   2,
    3672             :   3,
    3673             :   4,
    3674             :   5,
    3675             :   6,
    3676             :   7,
    3677             :   8,
    3678             :   9,
    3679             :   10,
    3680             :   11,
    3681             :   12,
    3682             :   13,
    3683             :   14,
    3684             :   15,
    3685             :   16,
    3686             :   17,
    3687             :   18,
    3688             :   19,
    3689             :   20,
    3690             :   21,
    3691             :   22,
    3692             :   23,
    3693             :   24,
    3694             :   25,
    3695             :   26,
    3696             :   27,
    3697             :   28,
    3698             :   29,
    3699             :   30,
    3700             :   31,
    3701             :   32,
    3702             :   33,
    3703             :   34,
    3704             :   35,
    3705             :   36,
    3706             :   37,
    3707             :   38,
    3708             :   39,
    3709             :   40,
    3710             :   41,
    3711             :   42,
    3712             :   43,
    3713             :   44,
    3714             :   45,
    3715             :   46,
    3716             :   47,
    3717             :   48,
    3718             :   49,
    3719             :   50,
    3720             :   51,
    3721             :   52,
    3722             :   53,
    3723             :   54,
    3724             :   55,
    3725             :   56,
    3726             :   57,
    3727             :   58,
    3728             :   59,
    3729             :   60,
    3730             :   61,
    3731             :   62,
    3732             :   63,
    3733             :   0,
    3734             :   1,
    3735             :   2,
    3736             :   3,
    3737             :   4,
    3738             :   5,
    3739             :   6,
    3740             :   7,
    3741             :   8,
    3742             :   9,
    3743             :   10,
    3744             :   11,
    3745             :   12,
    3746             :   13,
    3747             :   14,
    3748             :   15,
    3749             :   16,
    3750             :   17,
    3751             :   18,
    3752             :   19,
    3753             :   20,
    3754             :   21,
    3755             :   22,
    3756             :   23,
    3757             :   24,
    3758             :   25,
    3759             :   26,
    3760             :   27,
    3761             :   28,
    3762             :   29,
    3763             :   30,
    3764             :   31,
    3765             :   0,
    3766             :   2,
    3767             :   6,
    3768             :   10,
    3769             :   14,
    3770             :   18,
    3771             :   22,
    3772             :   26,
    3773             :   30,
    3774             :   1,
    3775             :   5,
    3776             :   9,
    3777             :   13,
    3778             :   17,
    3779             :   21,
    3780             :   25,
    3781             :   29,
    3782             :   0,
    3783             :   4,
    3784             :   8,
    3785             :   12,
    3786             :   16,
    3787             :   20,
    3788             :   24,
    3789             :   28,
    3790             :   3,
    3791             :   7,
    3792             :   11,
    3793             :   15,
    3794             :   19,
    3795             :   23,
    3796             :   27,
    3797             :   31,
    3798             : };
    3799        3656 : static inline void InitPPCMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
    3800             :   RI->InitMCRegisterInfo(PPCRegDesc, 344, RA, PC, PPCMCRegisterClasses, 36, PPCRegUnitRoots, 171, PPCRegDiffLists, PPCLaneMaskLists, PPCRegStrings, PPCRegClassStrings, PPCSubRegIdxLists, 7,
    3801             : PPCSubRegIdxRanges, PPCRegEncodingTable);
    3802             : 
    3803        3656 :   switch (DwarfFlavour) {
    3804           0 :   default:
    3805           0 :     llvm_unreachable("Unknown DWARF flavour");
    3806             :   case 0:
    3807             :     RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false);
    3808             :     break;
    3809             :   case 1:
    3810             :     RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false);
    3811             :     break;
    3812             :   }
    3813        3656 :   switch (EHFlavour) {
    3814           0 :   default:
    3815           0 :     llvm_unreachable("Unknown DWARF flavour");
    3816             :   case 0:
    3817             :     RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true);
    3818             :     break;
    3819             :   case 1:
    3820             :     RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true);
    3821             :     break;
    3822             :   }
    3823        3656 :   switch (DwarfFlavour) {
    3824           0 :   default:
    3825           0 :     llvm_unreachable("Unknown DWARF flavour");
    3826             :   case 0:
    3827             :     RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false);
    3828             :     break;
    3829             :   case 1:
    3830             :     RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false);
    3831             :     break;
    3832             :   }
    3833        3656 :   switch (EHFlavour) {
    3834           0 :   default:
    3835           0 :     llvm_unreachable("Unknown DWARF flavour");
    3836             :   case 0:
    3837             :     RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true);
    3838             :     break;
    3839             :   case 1:
    3840             :     RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true);
    3841             :     break;
    3842             :   }
    3843        3656 : }
    3844             : 
    3845             : } // end namespace llvm
    3846             : 
    3847             : #endif // GET_REGINFO_MC_DESC
    3848             : 
    3849             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
    3850             : |*                                                                            *|
    3851             : |* Register Information Header Fragment                                       *|
    3852             : |*                                                                            *|
    3853             : |* Automatically generated file, do not edit!                                 *|
    3854             : |*                                                                            *|
    3855             : \*===----------------------------------------------------------------------===*/
    3856             : 
    3857             : 
    3858             : #ifdef GET_REGINFO_HEADER
    3859             : #undef GET_REGINFO_HEADER
    3860             : 
    3861             : #include "llvm/CodeGen/TargetRegisterInfo.h"
    3862             : 
    3863             : namespace llvm {
    3864             : 
    3865             : class PPCFrameLowering;
    3866             : 
    3867             : struct PPCGenRegisterInfo : public TargetRegisterInfo {
    3868             :   explicit PPCGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
    3869             :       unsigned PC = 0, unsigned HwMode = 0);
    3870             :   unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
    3871             :   LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
    3872             :   LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
    3873             :   const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override;
    3874             :   const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
    3875             :   unsigned getRegUnitWeight(unsigned RegUnit) const override;
    3876             :   unsigned getNumRegPressureSets() const override;
    3877             :   const char *getRegPressureSetName(unsigned Idx) const override;
    3878             :   unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
    3879             :   const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
    3880             :   const int *getRegUnitPressureSets(unsigned RegUnit) const override;
    3881             :   ArrayRef<const char *> getRegMaskNames() const override;
    3882             :   ArrayRef<const uint32_t *> getRegMasks() const override;
    3883             :   /// Devirtualized TargetFrameLowering.
    3884             :   static const PPCFrameLowering *getFrameLowering(
    3885             :       const MachineFunction &MF);
    3886             : };
    3887             : 
    3888             : namespace PPC { // Register classes
    3889             :   extern const TargetRegisterClass VSSRCRegClass;
    3890             :   extern const TargetRegisterClass GPRCRegClass;
    3891             :   extern const TargetRegisterClass GPRC_NOR0RegClass;
    3892             :   extern const TargetRegisterClass SPE4RCRegClass;
    3893             :   extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass;
    3894             :   extern const TargetRegisterClass CRBITRCRegClass;
    3895             :   extern const TargetRegisterClass F4RCRegClass;
    3896             :   extern const TargetRegisterClass CRRCRegClass;
    3897             :   extern const TargetRegisterClass CARRYRCRegClass;
    3898             :   extern const TargetRegisterClass CRRC0RegClass;
    3899             :   extern const TargetRegisterClass CTRRCRegClass;
    3900             :   extern const TargetRegisterClass VRSAVERCRegClass;
    3901             :   extern const TargetRegisterClass SPILLTOVSRRCRegClass;
    3902             :   extern const TargetRegisterClass VSFRCRegClass;
    3903             :   extern const TargetRegisterClass G8RCRegClass;
    3904             :   extern const TargetRegisterClass G8RC_NOX0RegClass;
    3905             :   extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass;
    3906             :   extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass;
    3907             :   extern const TargetRegisterClass F8RCRegClass;
    3908             :   extern const TargetRegisterClass SPERCRegClass;
    3909             :   extern const TargetRegisterClass VFRCRegClass;
    3910             :   extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass;
    3911             :   extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass;
    3912             :   extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass;
    3913             :   extern const TargetRegisterClass CTRRC8RegClass;
    3914             :   extern const TargetRegisterClass VSRCRegClass;
    3915             :   extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass;
    3916             :   extern const TargetRegisterClass QSRCRegClass;
    3917             :   extern const TargetRegisterClass VRRCRegClass;
    3918             :   extern const TargetRegisterClass VSLRCRegClass;
    3919             :   extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass;
    3920             :   extern const TargetRegisterClass QSRC_with_sub_64_in_SPILLTOVSRRCRegClass;
    3921             :   extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass;
    3922             :   extern const TargetRegisterClass QBRCRegClass;
    3923             :   extern const TargetRegisterClass QFRCRegClass;
    3924             :   extern const TargetRegisterClass QBRC_with_sub_64_in_SPILLTOVSRRCRegClass;
    3925             : } // end namespace PPC
    3926             : 
    3927             : } // end namespace llvm
    3928             : 
    3929             : #endif // GET_REGINFO_HEADER
    3930             : 
    3931             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
    3932             : |*                                                                            *|
    3933             : |* Target Register and Register Classes Information                           *|
    3934             : |*                                                                            *|
    3935             : |* Automatically generated file, do not edit!                                 *|
    3936             : |*                                                                            *|
    3937             : \*===----------------------------------------------------------------------===*/
    3938             : 
    3939             : 
    3940             : #ifdef GET_REGINFO_TARGET_DESC
    3941             : #undef GET_REGINFO_TARGET_DESC
    3942             : 
    3943             : namespace llvm {
    3944             : 
    3945             : extern const MCRegisterClass PPCMCRegisterClasses[];
    3946             : 
    3947             : static const MVT::SimpleValueType VTLists[] = {
    3948             :   /* 0 */ MVT::i1, MVT::Other,
    3949             :   /* 2 */ MVT::i32, MVT::Other,
    3950             :   /* 4 */ MVT::i64, MVT::Other,
    3951             :   /* 6 */ MVT::f32, MVT::Other,
    3952             :   /* 8 */ MVT::i64, MVT::f64, MVT::Other,
    3953             :   /* 11 */ MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::v1i128, MVT::v4f32, MVT::v2f64, MVT::f128, MVT::Other,
    3954             :   /* 20 */ MVT::v4i1, MVT::Other,
    3955             :   /* 22 */ MVT::v4i32, MVT::v4f32, MVT::v2f64, MVT::v2i64, MVT::Other,
    3956             :   /* 27 */ MVT::v4f32, MVT::Other,
    3957             :   /* 29 */ MVT::v4f64, MVT::Other,
    3958             : };
    3959             : 
    3960             : static const char *const SubRegIndexNameTable[] = { "sub_32", "sub_64", "sub_eq", "sub_gt", "sub_lt", "sub_un", "" };
    3961             : 
    3962             : 
    3963             : static const LaneBitmask SubRegIndexLaneMaskTable[] = {
    3964             :   LaneBitmask::getAll(),
    3965             :   LaneBitmask(0x00000001), // sub_32
    3966             :   LaneBitmask(0x00000002), // sub_64
    3967             :   LaneBitmask(0x00000004), // sub_eq
    3968             :   LaneBitmask(0x00000008), // sub_gt
    3969             :   LaneBitmask(0x00000010), // sub_lt
    3970             :   LaneBitmask(0x00000020), // sub_un
    3971             :  };
    3972             : 
    3973             : 
    3974             : 
    3975             : static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = {
    3976             :   // Mode = 0 (Default)
    3977             :   { 32, 32, 32, VTLists+6 },    // VSSRC
    3978             :   { 32, 32, 32, VTLists+2 },    // GPRC
    3979             :   { 32, 32, 32, VTLists+2 },    // GPRC_NOR0
    3980             :   { 32, 32, 32, VTLists+6 },    // SPE4RC
    3981             :   { 32, 32, 32, VTLists+6 },    // GPRC_and_GPRC_NOR0
    3982             :   { 32, 32, 32, VTLists+0 },    // CRBITRC
    3983             :   { 32, 32, 32, VTLists+6 },    // F4RC
    3984             :   { 32, 32, 32, VTLists+2 },    // CRRC
    3985             :   { 32, 32, 32, VTLists+2 },    // CARRYRC
    3986             :   { 32, 32, 32, VTLists+2 },    // CRRC0
    3987             :   { 32, 32, 32, VTLists+2 },    // CTRRC
    3988             :   { 32, 32, 32, VTLists+2 },    // VRSAVERC
    3989             :   { 64, 64, 64, VTLists+8 },    // SPILLTOVSRRC
    3990             :   { 64, 64, 64, VTLists+9 },    // VSFRC
    3991             :   { 64, 64, 64, VTLists+4 },    // G8RC
    3992             :   { 64, 64, 64, VTLists+4 },    // G8RC_NOX0
    3993             :   { 64, 64, 64, VTLists+9 },    // SPILLTOVSRRC_and_VSFRC
    3994             :   { 64, 64, 64, VTLists+4 },    // G8RC_and_G8RC_NOX0
    3995             :   { 64, 64, 64, VTLists+9 },    // F8RC
    3996             :   { 64, 64, 64, VTLists+9 },    // SPERC
    3997             :   { 64, 64, 64, VTLists+9 },    // VFRC
    3998             :   { 64, 64, 64, VTLists+9 },    // SPERC_with_sub_32_in_GPRC_NOR0
    3999             :   { 64, 64, 64, VTLists+9 },    // SPILLTOVSRRC_and_VFRC
    4000             :   { 64, 64, 64, VTLists+9 },    // SPILLTOVSRRC_and_F4RC
    4001             :   { 64, 64, 64, VTLists+4 },    // CTRRC8
    4002             :   { 128, 128, 128, VTLists+22 },    // VSRC
    4003             :   { 128, 128, 128, VTLists+22 },    // VSRC_with_sub_64_in_SPILLTOVSRRC
    4004             :   { 128, 128, 128, VTLists+27 },    // QSRC
    4005             :   { 128, 128, 128, VTLists+11 },    // VRRC
    4006             :   { 128, 128, 128, VTLists+22 },    // VSLRC
    4007             :   { 128, 128, 128, VTLists+11 },    // VRRC_with_sub_64_in_SPILLTOVSRRC
    4008             :   { 128, 128, 128, VTLists+27 },    // QSRC_with_sub_64_in_SPILLTOVSRRC
    4009             :   { 128, 128, 128, VTLists+22 },    // VSLRC_with_sub_64_in_SPILLTOVSRRC
    4010             :   { 256, 256, 256, VTLists+20 },    // QBRC
    4011             :   { 256, 256, 256, VTLists+29 },    // QFRC
    4012             :   { 256, 256, 256, VTLists+29 },    // QBRC_with_sub_64_in_SPILLTOVSRRC
    4013             : };
    4014             : 
    4015             : static const TargetRegisterClass *const NullRegClasses[] = { nullptr };
    4016             : 
    4017             : static const uint32_t VSSRCSubClassMask[] = {
    4018             :   0x00d52041, 0x00000000, 
    4019             :   0xfe000000, 0x0000000f, // sub_64
    4020             : };
    4021             : 
    4022             : static const uint32_t GPRCSubClassMask[] = {
    4023             :   0x0000001a, 0x00000000, 
    4024             :   0x002a4000, 0x00000000, // sub_32
    4025             : };
    4026             : 
    4027             : static const uint32_t GPRC_NOR0SubClassMask[] = {
    4028             :   0x00000014, 0x00000000, 
    4029             :   0x00228000, 0x00000000, // sub_32
    4030             : };
    4031             : 
    4032             : static const uint32_t SPE4RCSubClassMask[] = {
    4033             :   0x00000018, 0x00000000, 
    4034             :   0x002a4000, 0x00000000, // sub_32
    4035             : };
    4036             : 
    4037             : static const uint32_t GPRC_and_GPRC_NOR0SubClassMask[] = {
    4038             :   0x00000010, 0x00000000, 
    4039             :   0x00220000, 0x00000000, // sub_32
    4040             : };
    4041             : 
    4042             : static const uint32_t CRBITRCSubClassMask[] = {
    4043             :   0x00000020, 0x00000000, 
    4044             :   0x00000280, 0x00000000, // sub_eq
    4045             :   0x00000280, 0x00000000, // sub_gt
    4046             :   0x00000280, 0x00000000, // sub_lt
    4047             :   0x00000280, 0x00000000, // sub_un
    4048             : };
    4049             : 
    4050             : static const uint32_t F4RCSubClassMask[] = {
    4051             :   0x00840040, 0x00000000, 
    4052             :   0xa8000000, 0x0000000f, // sub_64
    4053             : };
    4054             : 
    4055             : static const uint32_t CRRCSubClassMask[] = {
    4056             :   0x00000280, 0x00000000, 
    4057             : };
    4058             : 
    4059             : static const uint32_t CARRYRCSubClassMask[] = {
    4060             :   0x00000100, 0x00000000, 
    4061             : };
    4062             : 
    4063             : static const uint32_t CRRC0SubClassMask[] = {
    4064             :   0x00000200, 0x00000000, 
    4065             : };
    4066             : 
    4067             : static const uint32_t CTRRCSubClassMask[] = {
    4068             :   0x00000400, 0x00000000, 
    4069             : };
    4070             : 
    4071             : static const uint32_t VRSAVERCSubClassMask[] = {
    4072             :   0x00000800, 0x00000000, 
    4073             : };
    4074             : 
    4075             : static const uint32_t SPILLTOVSRRCSubClassMask[] = {
    4076             :   0x00c35000, 0x00000000, 
    4077             :   0xc4000000, 0x00000009, // sub_64
    4078             : };
    4079             : 
    4080             : static const uint32_t VSFRCSubClassMask[] = {
    4081             :   0x00d52000, 0x00000000, 
    4082             :   0xfe000000, 0x0000000f, // sub_64
    4083             : };
    4084             : 
    4085             : static const uint32_t G8RCSubClassMask[] = {
    4086             :   0x00024000, 0x00000000, 
    4087             : };
    4088             : 
    4089             : static const uint32_t G8RC_NOX0SubClassMask[] = {
    4090             :   0x00028000, 0x00000000, 
    4091             : };
    4092             : 
    4093             : static const uint32_t SPILLTOVSRRC_and_VSFRCSubClassMask[] = {
    4094             :   0x00c10000, 0x00000000, 
    4095             :   0xc4000000, 0x00000009, // sub_64
    4096             : };
    4097             : 
    4098             : static const uint32_t G8RC_and_G8RC_NOX0SubClassMask[] = {
    4099             :   0x00020000, 0x00000000, 
    4100             : };
    4101             : 
    4102             : static const uint32_t F8RCSubClassMask[] = {
    4103             :   0x00840000, 0x00000000, 
    4104             :   0xa8000000, 0x0000000f, // sub_64
    4105             : };
    4106             : 
    4107             : static const uint32_t SPERCSubClassMask[] = {
    4108             :   0x00280000, 0x00000000, 
    4109             : };
    4110             : 
    4111             : static const uint32_t VFRCSubClassMask[] = {
    4112             :   0x00500000, 0x00000000, 
    4113             :   0x50000000, 0x00000000, // sub_64
    4114             : };
    4115             : 
    4116             : static const uint32_t SPERC_with_sub_32_in_GPRC_NOR0SubClassMask[] = {
    4117             :   0x00200000, 0x00000000, 
    4118             : };
    4119             : 
    4120             : static const uint32_t SPILLTOVSRRC_and_VFRCSubClassMask[] = {
    4121             :   0x00400000, 0x00000000, 
    4122             :   0x40000000, 0x00000000, // sub_64
    4123             : };
    4124             : 
    4125             : static const uint32_t SPILLTOVSRRC_and_F4RCSubClassMask[] = {
    4126             :   0x00800000, 0x00000000, 
    4127             :   0x80000000, 0x00000009, // sub_64
    4128             : };
    4129             : 
    4130             : static const uint32_t CTRRC8SubClassMask[] = {
    4131             :   0x01000000, 0x00000000, 
    4132             : };
    4133             : 
    4134             : static const uint32_t VSRCSubClassMask[] = {
    4135             :   0x76000000, 0x00000001, 
    4136             : };
    4137             : 
    4138             : static const uint32_t VSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
    4139             :   0x44000000, 0x00000001, 
    4140             : };
    4141             : 
    4142             : static const uint32_t QSRCSubClassMask[] = {
    4143             :   0x88000000, 0x0000000e, 
    4144             : };
    4145             : 
    4146             : static const uint32_t VRRCSubClassMask[] = {
    4147             :   0x50000000, 0x00000000, 
    4148             : };
    4149             : 
    4150             : static const uint32_t VSLRCSubClassMask[] = {
    4151             :   0x20000000, 0x00000001, 
    4152             : };
    4153             : 
    4154             : static const uint32_t VRRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
    4155             :   0x40000000, 0x00000000, 
    4156             : };
    4157             : 
    4158             : static const uint32_t QSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
    4159             :   0x80000000, 0x00000008, 
    4160             : };
    4161             : 
    4162             : static const uint32_t VSLRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
    4163             :   0x00000000, 0x00000001, 
    4164             : };
    4165             : 
    4166             : static const uint32_t QBRCSubClassMask[] = {
    4167             :   0x00000000, 0x0000000e, 
    4168             : };
    4169             : 
    4170             : static const uint32_t QFRCSubClassMask[] = {
    4171             :   0x00000000, 0x0000000e, 
    4172             : };
    4173             : 
    4174             : static const uint32_t QBRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
    4175             :   0x00000000, 0x00000008, 
    4176             : };
    4177             : 
    4178             : static const uint16_t SuperRegIdxSeqs[] = {
    4179             :   /* 0 */ 1, 0,
    4180             :   /* 2 */ 2, 0,
    4181             :   /* 4 */ 3, 4, 5, 6, 0,
    4182             : };
    4183             : 
    4184             : static const TargetRegisterClass *const SPE4RCSuperclasses[] = {
    4185             :   &PPC::GPRCRegClass,
    4186             :   nullptr
    4187             : };
    4188             : 
    4189             : static const TargetRegisterClass *const GPRC_and_GPRC_NOR0Superclasses[] = {
    4190             :   &PPC::GPRCRegClass,
    4191             :   &PPC::GPRC_NOR0RegClass,
    4192             :   &PPC::SPE4RCRegClass,
    4193             :   nullptr
    4194             : };
    4195             : 
    4196             : static const TargetRegisterClass *const F4RCSuperclasses[] = {
    4197             :   &PPC::VSSRCRegClass,
    4198             :   nullptr
    4199             : };
    4200             : 
    4201             : static const TargetRegisterClass *const CRRC0Superclasses[] = {
    4202             :   &PPC::CRRCRegClass,
    4203             :   nullptr
    4204             : };
    4205             : 
    4206             : static const TargetRegisterClass *const VSFRCSuperclasses[] = {
    4207             :   &PPC::VSSRCRegClass,
    4208             :   nullptr
    4209             : };
    4210             : 
    4211             : static const TargetRegisterClass *const G8RCSuperclasses[] = {
    4212             :   &PPC::SPILLTOVSRRCRegClass,
    4213             :   nullptr
    4214             : };
    4215             : 
    4216             : static const TargetRegisterClass *const SPILLTOVSRRC_and_VSFRCSuperclasses[] = {
    4217             :   &PPC::VSSRCRegClass,
    4218             :   &PPC::SPILLTOVSRRCRegClass,
    4219             :   &PPC::VSFRCRegClass,
    4220             :   nullptr
    4221             : };
    4222             : 
    4223             : static const TargetRegisterClass *const G8RC_and_G8RC_NOX0Superclasses[] = {
    4224             :   &PPC::SPILLTOVSRRCRegClass,
    4225             :   &PPC::G8RCRegClass,
    4226             :   &PPC::G8RC_NOX0RegClass,
    4227             :   nullptr
    4228             : };
    4229             : 
    4230             : static const TargetRegisterClass *const F8RCSuperclasses[] = {
    4231             :   &PPC::VSSRCRegClass,
    4232             :   &PPC::F4RCRegClass,
    4233             :   &PPC::VSFRCRegClass,
    4234             :   nullptr
    4235             : };
    4236             : 
    4237             : static const TargetRegisterClass *const VFRCSuperclasses[] = {
    4238             :   &PPC::VSSRCRegClass,
    4239             :   &PPC::VSFRCRegClass,
    4240             :   nullptr
    4241             : };
    4242             : 
    4243             : static const TargetRegisterClass *const SPERC_with_sub_32_in_GPRC_NOR0Superclasses[] = {
    4244             :   &PPC::SPERCRegClass,
    4245             :   nullptr
    4246             : };
    4247             : 
    4248             : static const TargetRegisterClass *const SPILLTOVSRRC_and_VFRCSuperclasses[] = {
    4249             :   &PPC::VSSRCRegClass,
    4250             :   &PPC::SPILLTOVSRRCRegClass,
    4251             :   &PPC::VSFRCRegClass,
    4252             :   &PPC::SPILLTOVSRRC_and_VSFRCRegClass,
    4253             :   &PPC::VFRCRegClass,
    4254             :   nullptr
    4255             : };
    4256             : 
    4257             : static const TargetRegisterClass *const SPILLTOVSRRC_and_F4RCSuperclasses[] = {
    4258             :   &PPC::VSSRCRegClass,
    4259             :   &PPC::F4RCRegClass,
    4260             :   &PPC::SPILLTOVSRRCRegClass,
    4261             :   &PPC::VSFRCRegClass,
    4262             :   &PPC::SPILLTOVSRRC_and_VSFRCRegClass,
    4263             :   &PPC::F8RCRegClass,
    4264             :   nullptr
    4265             : };
    4266             : 
    4267             : static const TargetRegisterClass *const VSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
    4268             :   &PPC::VSRCRegClass,
    4269             :   nullptr
    4270             : };
    4271             : 
    4272             : static const TargetRegisterClass *const VRRCSuperclasses[] = {
    4273             :   &PPC::VSRCRegClass,
    4274             :   nullptr
    4275             : };
    4276             : 
    4277             : static const TargetRegisterClass *const VSLRCSuperclasses[] = {
    4278             :   &PPC::VSRCRegClass,
    4279             :   nullptr
    4280             : };
    4281             : 
    4282             : static const TargetRegisterClass *const VRRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
    4283             :   &PPC::VSRCRegClass,
    4284             :   &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4285             :   &PPC::VRRCRegClass,
    4286             :   nullptr
    4287             : };
    4288             : 
    4289             : static const TargetRegisterClass *const QSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
    4290             :   &PPC::QSRCRegClass,
    4291             :   nullptr
    4292             : };
    4293             : 
    4294             : static const TargetRegisterClass *const VSLRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
    4295             :   &PPC::VSRCRegClass,
    4296             :   &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4297             :   &PPC::VSLRCRegClass,
    4298             :   nullptr
    4299             : };
    4300             : 
    4301             : static const TargetRegisterClass *const QBRCSuperclasses[] = {
    4302             :   &PPC::QSRCRegClass,
    4303             :   &PPC::QFRCRegClass,
    4304             :   nullptr
    4305             : };
    4306             : 
    4307             : static const TargetRegisterClass *const QFRCSuperclasses[] = {
    4308             :   &PPC::QSRCRegClass,
    4309             :   &PPC::QBRCRegClass,
    4310             :   nullptr
    4311             : };
    4312             : 
    4313             : static const TargetRegisterClass *const QBRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
    4314             :   &PPC::QSRCRegClass,
    4315             :   &PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4316             :   &PPC::QBRCRegClass,
    4317             :   &PPC::QFRCRegClass,
    4318             :   nullptr
    4319             : };
    4320             : 
    4321             : 
    4322        5624 : static inline unsigned GPRCAltOrderSelect(const MachineFunction &MF) {
    4323        5624 :     const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
    4324        5624 :     return S.isPPC64() && S.isSVR4ABI();
    4325             :   }
    4326             : 
    4327        5624 : static ArrayRef<MCPhysReg> GPRCGetRawAllocationOrder(const MachineFunction &MF) {
    4328             :   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 };
    4329             :   const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRCRegClassID];
    4330             :   const ArrayRef<MCPhysReg> Order[] = {
    4331        5624 :     makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    4332        5624 :     makeArrayRef(AltOrder1)
    4333             :   };
    4334        5624 :   const unsigned Select = GPRCAltOrderSelect(MF);
    4335             :   assert(Select < 2);
    4336        5624 :   return Order[Select];
    4337             : }
    4338             : 
    4339           1 : static inline unsigned GPRC_NOR0AltOrderSelect(const MachineFunction &MF) {
    4340           1 :     const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
    4341           1 :     return S.isPPC64() && S.isSVR4ABI();
    4342             :   }
    4343             : 
    4344           1 : static ArrayRef<MCPhysReg> GPRC_NOR0GetRawAllocationOrder(const MachineFunction &MF) {
    4345             :   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 };
    4346             :   const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRC_NOR0RegClassID];
    4347             :   const ArrayRef<MCPhysReg> Order[] = {
    4348           1 :     makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    4349           1 :     makeArrayRef(AltOrder1)
    4350             :   };
    4351           1 :   const unsigned Select = GPRC_NOR0AltOrderSelect(MF);
    4352             :   assert(Select < 2);
    4353           1 :   return Order[Select];
    4354             : }
    4355             : 
    4356        2851 : static inline unsigned G8RCAltOrderSelect(const MachineFunction &MF) {
    4357        2851 :     const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
    4358        2851 :     return S.isPPC64() && S.isSVR4ABI();
    4359             :   }
    4360             : 
    4361        2851 : static ArrayRef<MCPhysReg> G8RCGetRawAllocationOrder(const MachineFunction &MF) {
    4362             :   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 };
    4363             :   const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RCRegClassID];
    4364             :   const ArrayRef<MCPhysReg> Order[] = {
    4365        2851 :     makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    4366        2851 :     makeArrayRef(AltOrder1)
    4367             :   };
    4368        2851 :   const unsigned Select = G8RCAltOrderSelect(MF);
    4369             :   assert(Select < 2);
    4370        2851 :   return Order[Select];
    4371             : }
    4372             : 
    4373           4 : static inline unsigned G8RC_NOX0AltOrderSelect(const MachineFunction &MF) {
    4374           4 :     const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
    4375           4 :     return S.isPPC64() && S.isSVR4ABI();
    4376             :   }
    4377             : 
    4378           4 : static ArrayRef<MCPhysReg> G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) {
    4379             :   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 };
    4380             :   const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_NOX0RegClassID];
    4381             :   const ArrayRef<MCPhysReg> Order[] = {
    4382           4 :     makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    4383           4 :     makeArrayRef(AltOrder1)
    4384             :   };
    4385           4 :   const unsigned Select = G8RC_NOX0AltOrderSelect(MF);
    4386             :   assert(Select < 2);
    4387           4 :   return Order[Select];
    4388             : }
    4389             : 
    4390        1405 : static inline unsigned G8RC_and_G8RC_NOX0AltOrderSelect(const MachineFunction &MF) {
    4391        1405 :     const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
    4392        1405 :     return S.isPPC64() && S.isSVR4ABI();
    4393             :   }
    4394             : 
    4395        1405 : static ArrayRef<MCPhysReg> G8RC_and_G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) {
    4396             :   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 };
    4397             :   const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_and_G8RC_NOX0RegClassID];
    4398             :   const ArrayRef<MCPhysReg> Order[] = {
    4399        1405 :     makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    4400        1405 :     makeArrayRef(AltOrder1)
    4401             :   };
    4402        1405 :   const unsigned Select = G8RC_and_G8RC_NOX0AltOrderSelect(MF);
    4403             :   assert(Select < 2);
    4404        1405 :   return Order[Select];
    4405             : }
    4406             : 
    4407             : namespace PPC {   // Register class instances
    4408             :   extern const TargetRegisterClass VSSRCRegClass = {
    4409             :     &PPCMCRegisterClasses[VSSRCRegClassID],
    4410             :     VSSRCSubClassMask,
    4411             :     SuperRegIdxSeqs + 2,
    4412             :     LaneBitmask(0x00000001),
    4413             :     0,
    4414             :     false, /* HasDisjunctSubRegs */
    4415             :     false, /* CoveredBySubRegs */
    4416             :     NullRegClasses,
    4417             :     nullptr
    4418             :   };
    4419             : 
    4420             :   extern const TargetRegisterClass GPRCRegClass = {
    4421             :     &PPCMCRegisterClasses[GPRCRegClassID],
    4422             :     GPRCSubClassMask,
    4423             :     SuperRegIdxSeqs + 0,
    4424             :     LaneBitmask(0x00000001),
    4425             :     0,
    4426             :     false, /* HasDisjunctSubRegs */
    4427             :     false, /* CoveredBySubRegs */
    4428             :     NullRegClasses,
    4429             :     GPRCGetRawAllocationOrder
    4430             :   };
    4431             : 
    4432             :   extern const TargetRegisterClass GPRC_NOR0RegClass = {
    4433             :     &PPCMCRegisterClasses[GPRC_NOR0RegClassID],
    4434             :     GPRC_NOR0SubClassMask,
    4435             :     SuperRegIdxSeqs + 0,
    4436             :     LaneBitmask(0x00000001),
    4437             :     0,
    4438             :     false, /* HasDisjunctSubRegs */
    4439             :     false, /* CoveredBySubRegs */
    4440             :     NullRegClasses,
    4441             :     GPRC_NOR0GetRawAllocationOrder
    4442             :   };
    4443             : 
    4444             :   extern const TargetRegisterClass SPE4RCRegClass = {
    4445             :     &PPCMCRegisterClasses[SPE4RCRegClassID],
    4446             :     SPE4RCSubClassMask,
    4447             :     SuperRegIdxSeqs + 0,
    4448             :     LaneBitmask(0x00000001),
    4449             :     0,
    4450             :     false, /* HasDisjunctSubRegs */
    4451             :     false, /* CoveredBySubRegs */
    4452             :     SPE4RCSuperclasses,
    4453             :     nullptr
    4454             :   };
    4455             : 
    4456             :   extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass = {
    4457             :     &PPCMCRegisterClasses[GPRC_and_GPRC_NOR0RegClassID],
    4458             :     GPRC_and_GPRC_NOR0SubClassMask,
    4459             :     SuperRegIdxSeqs + 0,
    4460             :     LaneBitmask(0x00000001),
    4461             :     0,
    4462             :     false, /* HasDisjunctSubRegs */
    4463             :     false, /* CoveredBySubRegs */
    4464             :     GPRC_and_GPRC_NOR0Superclasses,
    4465             :     nullptr
    4466             :   };
    4467             : 
    4468             :   extern const TargetRegisterClass CRBITRCRegClass = {
    4469             :     &PPCMCRegisterClasses[CRBITRCRegClassID],
    4470             :     CRBITRCSubClassMask,
    4471             :     SuperRegIdxSeqs + 4,
    4472             :     LaneBitmask(0x00000001),
    4473             :     0,
    4474             :     false, /* HasDisjunctSubRegs */
    4475             :     false, /* CoveredBySubRegs */
    4476             :     NullRegClasses,
    4477             :     nullptr
    4478             :   };
    4479             : 
    4480             :   extern const TargetRegisterClass F4RCRegClass = {
    4481             :     &PPCMCRegisterClasses[F4RCRegClassID],
    4482             :     F4RCSubClassMask,
    4483             :     SuperRegIdxSeqs + 2,
    4484             :     LaneBitmask(0x00000001),
    4485             :     0,
    4486             :     false, /* HasDisjunctSubRegs */
    4487             :     false, /* CoveredBySubRegs */
    4488             :     F4RCSuperclasses,
    4489             :     nullptr
    4490             :   };
    4491             : 
    4492             :   extern const TargetRegisterClass CRRCRegClass = {
    4493             :     &PPCMCRegisterClasses[CRRCRegClassID],
    4494             :     CRRCSubClassMask,
    4495             :     SuperRegIdxSeqs + 1,
    4496             :     LaneBitmask(0x0000003C),
    4497             :     0,
    4498             :     true, /* HasDisjunctSubRegs */
    4499             :     false, /* CoveredBySubRegs */
    4500             :     NullRegClasses,
    4501             :     nullptr
    4502             :   };
    4503             : 
    4504             :   extern const TargetRegisterClass CARRYRCRegClass = {
    4505             :     &PPCMCRegisterClasses[CARRYRCRegClassID],
    4506             :     CARRYRCSubClassMask,
    4507             :     SuperRegIdxSeqs + 1,
    4508             :     LaneBitmask(0x00000001),
    4509             :     0,
    4510             :     false, /* HasDisjunctSubRegs */
    4511             :     false, /* CoveredBySubRegs */
    4512             :     NullRegClasses,
    4513             :     nullptr
    4514             :   };
    4515             : 
    4516             :   extern const TargetRegisterClass CRRC0RegClass = {
    4517             :     &PPCMCRegisterClasses[CRRC0RegClassID],
    4518             :     CRRC0SubClassMask,
    4519             :     SuperRegIdxSeqs + 1,
    4520             :     LaneBitmask(0x0000003C),
    4521             :     0,
    4522             :     true, /* HasDisjunctSubRegs */
    4523             :     false, /* CoveredBySubRegs */
    4524             :     CRRC0Superclasses,
    4525             :     nullptr
    4526             :   };
    4527             : 
    4528             :   extern const TargetRegisterClass CTRRCRegClass = {
    4529             :     &PPCMCRegisterClasses[CTRRCRegClassID],
    4530             :     CTRRCSubClassMask,
    4531             :     SuperRegIdxSeqs + 1,
    4532             :     LaneBitmask(0x00000001),
    4533             :     0,
    4534             :     false, /* HasDisjunctSubRegs */
    4535             :     false, /* CoveredBySubRegs */
    4536             :     NullRegClasses,
    4537             :     nullptr
    4538             :   };
    4539             : 
    4540             :   extern const TargetRegisterClass VRSAVERCRegClass = {
    4541             :     &PPCMCRegisterClasses[VRSAVERCRegClassID],
    4542             :     VRSAVERCSubClassMask,
    4543             :     SuperRegIdxSeqs + 1,
    4544             :     LaneBitmask(0x00000001),
    4545             :     0,
    4546             :     false, /* HasDisjunctSubRegs */
    4547             :     false, /* CoveredBySubRegs */
    4548             :     NullRegClasses,
    4549             :     nullptr
    4550             :   };
    4551             : 
    4552             :   extern const TargetRegisterClass SPILLTOVSRRCRegClass = {
    4553             :     &PPCMCRegisterClasses[SPILLTOVSRRCRegClassID],
    4554             :     SPILLTOVSRRCSubClassMask,
    4555             :     SuperRegIdxSeqs + 2,
    4556             :     LaneBitmask(0x00000001),
    4557             :     0,
    4558             :     false, /* HasDisjunctSubRegs */
    4559             :     false, /* CoveredBySubRegs */
    4560             :     NullRegClasses,
    4561             :     nullptr
    4562             :   };
    4563             : 
    4564             :   extern const TargetRegisterClass VSFRCRegClass = {
    4565             :     &PPCMCRegisterClasses[VSFRCRegClassID],
    4566             :     VSFRCSubClassMask,
    4567             :     SuperRegIdxSeqs + 2,
    4568             :     LaneBitmask(0x00000001),
    4569             :     0,
    4570             :     false, /* HasDisjunctSubRegs */
    4571             :     false, /* CoveredBySubRegs */
    4572             :     VSFRCSuperclasses,
    4573             :     nullptr
    4574             :   };
    4575             : 
    4576             :   extern const TargetRegisterClass G8RCRegClass = {
    4577             :     &PPCMCRegisterClasses[G8RCRegClassID],
    4578             :     G8RCSubClassMask,
    4579             :     SuperRegIdxSeqs + 1,
    4580             :     LaneBitmask(0x00000001),
    4581             :     0,
    4582             :     false, /* HasDisjunctSubRegs */
    4583             :     false, /* CoveredBySubRegs */
    4584             :     G8RCSuperclasses,
    4585             :     G8RCGetRawAllocationOrder
    4586             :   };
    4587             : 
    4588             :   extern const TargetRegisterClass G8RC_NOX0RegClass = {
    4589             :     &PPCMCRegisterClasses[G8RC_NOX0RegClassID],
    4590             :     G8RC_NOX0SubClassMask,
    4591             :     SuperRegIdxSeqs + 1,
    4592             :     LaneBitmask(0x00000001),
    4593             :     0,
    4594             :     false, /* HasDisjunctSubRegs */
    4595             :     false, /* CoveredBySubRegs */
    4596             :     NullRegClasses,
    4597             :     G8RC_NOX0GetRawAllocationOrder
    4598             :   };
    4599             : 
    4600             :   extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass = {
    4601             :     &PPCMCRegisterClasses[SPILLTOVSRRC_and_VSFRCRegClassID],
    4602             :     SPILLTOVSRRC_and_VSFRCSubClassMask,
    4603             :     SuperRegIdxSeqs + 2,
    4604             :     LaneBitmask(0x00000001),
    4605             :     0,
    4606             :     false, /* HasDisjunctSubRegs */
    4607             :     false, /* CoveredBySubRegs */
    4608             :     SPILLTOVSRRC_and_VSFRCSuperclasses,
    4609             :     nullptr
    4610             :   };
    4611             : 
    4612             :   extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass = {
    4613             :     &PPCMCRegisterClasses[G8RC_and_G8RC_NOX0RegClassID],
    4614             :     G8RC_and_G8RC_NOX0SubClassMask,
    4615             :     SuperRegIdxSeqs + 1,
    4616             :     LaneBitmask(0x00000001),
    4617             :     0,
    4618             :     false, /* HasDisjunctSubRegs */
    4619             :     false, /* CoveredBySubRegs */
    4620             :     G8RC_and_G8RC_NOX0Superclasses,
    4621             :     G8RC_and_G8RC_NOX0GetRawAllocationOrder
    4622             :   };
    4623             : 
    4624             :   extern const TargetRegisterClass F8RCRegClass = {
    4625             :     &PPCMCRegisterClasses[F8RCRegClassID],
    4626             :     F8RCSubClassMask,
    4627             :     SuperRegIdxSeqs + 2,
    4628             :     LaneBitmask(0x00000001),
    4629             :     0,
    4630             :     false, /* HasDisjunctSubRegs */
    4631             :     false, /* CoveredBySubRegs */
    4632             :     F8RCSuperclasses,
    4633             :     nullptr
    4634             :   };
    4635             : 
    4636             :   extern const TargetRegisterClass SPERCRegClass = {
    4637             :     &PPCMCRegisterClasses[SPERCRegClassID],
    4638             :     SPERCSubClassMask,
    4639             :     SuperRegIdxSeqs + 1,
    4640             :     LaneBitmask(0x00000001),
    4641             :     0,
    4642             :     false, /* HasDisjunctSubRegs */
    4643             :     false, /* CoveredBySubRegs */
    4644             :     NullRegClasses,
    4645             :     nullptr
    4646             :   };
    4647             : 
    4648             :   extern const TargetRegisterClass VFRCRegClass = {
    4649             :     &PPCMCRegisterClasses[VFRCRegClassID],
    4650             :     VFRCSubClassMask,
    4651             :     SuperRegIdxSeqs + 2,
    4652             :     LaneBitmask(0x00000001),
    4653             :     0,
    4654             :     false, /* HasDisjunctSubRegs */
    4655             :     false, /* CoveredBySubRegs */
    4656             :     VFRCSuperclasses,
    4657             :     nullptr
    4658             :   };
    4659             : 
    4660             :   extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass = {
    4661             :     &PPCMCRegisterClasses[SPERC_with_sub_32_in_GPRC_NOR0RegClassID],
    4662             :     SPERC_with_sub_32_in_GPRC_NOR0SubClassMask,
    4663             :     SuperRegIdxSeqs + 1,
    4664             :     LaneBitmask(0x00000001),
    4665             :     0,
    4666             :     false, /* HasDisjunctSubRegs */
    4667             :     false, /* CoveredBySubRegs */
    4668             :     SPERC_with_sub_32_in_GPRC_NOR0Superclasses,
    4669             :     nullptr
    4670             :   };
    4671             : 
    4672             :   extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass = {
    4673             :     &PPCMCRegisterClasses[SPILLTOVSRRC_and_VFRCRegClassID],
    4674             :     SPILLTOVSRRC_and_VFRCSubClassMask,
    4675             :     SuperRegIdxSeqs + 2,
    4676             :     LaneBitmask(0x00000001),
    4677             :     0,
    4678             :     false, /* HasDisjunctSubRegs */
    4679             :     false, /* CoveredBySubRegs */
    4680             :     SPILLTOVSRRC_and_VFRCSuperclasses,
    4681             :     nullptr
    4682             :   };
    4683             : 
    4684             :   extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass = {
    4685             :     &PPCMCRegisterClasses[SPILLTOVSRRC_and_F4RCRegClassID],
    4686             :     SPILLTOVSRRC_and_F4RCSubClassMask,
    4687             :     SuperRegIdxSeqs + 2,
    4688             :     LaneBitmask(0x00000001),
    4689             :     0,
    4690             :     false, /* HasDisjunctSubRegs */
    4691             :     false, /* CoveredBySubRegs */
    4692             :     SPILLTOVSRRC_and_F4RCSuperclasses,
    4693             :     nullptr
    4694             :   };
    4695             : 
    4696             :   extern const TargetRegisterClass CTRRC8RegClass = {
    4697             :     &PPCMCRegisterClasses[CTRRC8RegClassID],
    4698             :     CTRRC8SubClassMask,
    4699             :     SuperRegIdxSeqs + 1,
    4700             :     LaneBitmask(0x00000001),
    4701             :     0,
    4702             :     false, /* HasDisjunctSubRegs */
    4703             :     false, /* CoveredBySubRegs */
    4704             :     NullRegClasses,
    4705             :     nullptr
    4706             :   };
    4707             : 
    4708             :   extern const TargetRegisterClass VSRCRegClass = {
    4709             :     &PPCMCRegisterClasses[VSRCRegClassID],
    4710             :     VSRCSubClassMask,
    4711             :     SuperRegIdxSeqs + 1,
    4712             :     LaneBitmask(0x00000002),
    4713             :     0,
    4714             :     false, /* HasDisjunctSubRegs */
    4715             :     false, /* CoveredBySubRegs */
    4716             :     NullRegClasses,
    4717             :     nullptr
    4718             :   };
    4719             : 
    4720             :   extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    4721             :     &PPCMCRegisterClasses[VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    4722             :     VSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    4723             :     SuperRegIdxSeqs + 1,
    4724             :     LaneBitmask(0x00000002),
    4725             :     0,
    4726             :     false, /* HasDisjunctSubRegs */
    4727             :     false, /* CoveredBySubRegs */
    4728             :     VSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    4729             :     nullptr
    4730             :   };
    4731             : 
    4732             :   extern const TargetRegisterClass QSRCRegClass = {
    4733             :     &PPCMCRegisterClasses[QSRCRegClassID],
    4734             :     QSRCSubClassMask,
    4735             :     SuperRegIdxSeqs + 1,
    4736             :     LaneBitmask(0x00000002),
    4737             :     0,
    4738             :     false, /* HasDisjunctSubRegs */
    4739             :     false, /* CoveredBySubRegs */
    4740             :     NullRegClasses,
    4741             :     nullptr
    4742             :   };
    4743             : 
    4744             :   extern const TargetRegisterClass VRRCRegClass = {
    4745             :     &PPCMCRegisterClasses[VRRCRegClassID],
    4746             :     VRRCSubClassMask,
    4747             :     SuperRegIdxSeqs + 1,
    4748             :     LaneBitmask(0x00000002),
    4749             :     0,
    4750             :     false, /* HasDisjunctSubRegs */
    4751             :     false, /* CoveredBySubRegs */
    4752             :     VRRCSuperclasses,
    4753             :     nullptr
    4754             :   };
    4755             : 
    4756             :   extern const TargetRegisterClass VSLRCRegClass = {
    4757             :     &PPCMCRegisterClasses[VSLRCRegClassID],
    4758             :     VSLRCSubClassMask,
    4759             :     SuperRegIdxSeqs + 1,
    4760             :     LaneBitmask(0x00000002),
    4761             :     0,
    4762             :     false, /* HasDisjunctSubRegs */
    4763             :     false, /* CoveredBySubRegs */
    4764             :     VSLRCSuperclasses,
    4765             :     nullptr
    4766             :   };
    4767             : 
    4768             :   extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    4769             :     &PPCMCRegisterClasses[VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    4770             :     VRRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    4771             :     SuperRegIdxSeqs + 1,
    4772             :     LaneBitmask(0x00000002),
    4773             :     0,
    4774             :     false, /* HasDisjunctSubRegs */
    4775             :     false, /* CoveredBySubRegs */
    4776             :     VRRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    4777             :     nullptr
    4778             :   };
    4779             : 
    4780             :   extern const TargetRegisterClass QSRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    4781             :     &PPCMCRegisterClasses[QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    4782             :     QSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    4783             :     SuperRegIdxSeqs + 1,
    4784             :     LaneBitmask(0x00000002),
    4785             :     0,
    4786             :     false, /* HasDisjunctSubRegs */
    4787             :     false, /* CoveredBySubRegs */
    4788             :     QSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    4789             :     nullptr
    4790             :   };
    4791             : 
    4792             :   extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    4793             :     &PPCMCRegisterClasses[VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    4794             :     VSLRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    4795             :     SuperRegIdxSeqs + 1,
    4796             :     LaneBitmask(0x00000002),
    4797             :     0,
    4798             :     false, /* HasDisjunctSubRegs */
    4799             :     false, /* CoveredBySubRegs */
    4800             :     VSLRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    4801             :     nullptr
    4802             :   };
    4803             : 
    4804             :   extern const TargetRegisterClass QBRCRegClass = {
    4805             :     &PPCMCRegisterClasses[QBRCRegClassID],
    4806             :     QBRCSubClassMask,
    4807             :     SuperRegIdxSeqs + 1,
    4808             :     LaneBitmask(0x00000002),
    4809             :     0,
    4810             :     false, /* HasDisjunctSubRegs */
    4811             :     false, /* CoveredBySubRegs */
    4812             :     QBRCSuperclasses,
    4813             :     nullptr
    4814             :   };
    4815             : 
    4816             :   extern const TargetRegisterClass QFRCRegClass = {
    4817             :     &PPCMCRegisterClasses[QFRCRegClassID],
    4818             :     QFRCSubClassMask,
    4819             :     SuperRegIdxSeqs + 1,
    4820             :     LaneBitmask(0x00000002),
    4821             :     0,
    4822             :     false, /* HasDisjunctSubRegs */
    4823             :     false, /* CoveredBySubRegs */
    4824             :     QFRCSuperclasses,
    4825             :     nullptr
    4826             :   };
    4827             : 
    4828             :   extern const TargetRegisterClass QBRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    4829             :     &PPCMCRegisterClasses[QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    4830             :     QBRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    4831             :     SuperRegIdxSeqs + 1,
    4832             :     LaneBitmask(0x00000002),
    4833             :     0,
    4834             :     false, /* HasDisjunctSubRegs */
    4835             :     false, /* CoveredBySubRegs */
    4836             :     QBRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    4837             :     nullptr
    4838             :   };
    4839             : 
    4840             : } // end namespace PPC
    4841             : 
    4842             : namespace {
    4843             :   const TargetRegisterClass* const RegisterClasses[] = {
    4844             :     &PPC::VSSRCRegClass,
    4845             :     &PPC::GPRCRegClass,
    4846             :     &PPC::GPRC_NOR0RegClass,
    4847             :     &PPC::SPE4RCRegClass,
    4848             :     &PPC::GPRC_and_GPRC_NOR0RegClass,
    4849             :     &PPC::CRBITRCRegClass,
    4850             :     &PPC::F4RCRegClass,
    4851             :     &PPC::CRRCRegClass,
    4852             :     &PPC::CARRYRCRegClass,
    4853             :     &PPC::CRRC0RegClass,
    4854             :     &PPC::CTRRCRegClass,
    4855             :     &PPC::VRSAVERCRegClass,
    4856             :     &PPC::SPILLTOVSRRCRegClass,
    4857             :     &PPC::VSFRCRegClass,
    4858             :     &PPC::G8RCRegClass,
    4859             :     &PPC::G8RC_NOX0RegClass,
    4860             :     &PPC::SPILLTOVSRRC_and_VSFRCRegClass,
    4861             :     &PPC::G8RC_and_G8RC_NOX0RegClass,
    4862             :     &PPC::F8RCRegClass,
    4863             :     &PPC::SPERCRegClass,
    4864             :     &PPC::VFRCRegClass,
    4865             :     &PPC::SPERC_with_sub_32_in_GPRC_NOR0RegClass,
    4866             :     &PPC::SPILLTOVSRRC_and_VFRCRegClass,
    4867             :     &PPC::SPILLTOVSRRC_and_F4RCRegClass,
    4868             :     &PPC::CTRRC8RegClass,
    4869             :     &PPC::VSRCRegClass,
    4870             :     &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4871             :     &PPC::QSRCRegClass,
    4872             :     &PPC::VRRCRegClass,
    4873             :     &PPC::VSLRCRegClass,
    4874             :     &PPC::VRRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4875             :     &PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4876             :     &PPC::VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4877             :     &PPC::QBRCRegClass,
    4878             :     &PPC::QFRCRegClass,
    4879             :     &PPC::QBRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    4880             :   };
    4881             : } // end anonymous namespace
    4882             : 
    4883             : static const TargetRegisterInfoDesc PPCRegInfoDesc[] = { // Extra Descriptors
    4884             :   { 0, false },
    4885             :   { 0, true },
    4886             :   { 0, true },
    4887             :   { 0, false },
    4888             :   { 0, true },
    4889             :   { 0, false },
    4890             :   { 0, false },
    4891             :   { 0, false },
    4892             :   { 0, true },
    4893             :   { 0, true },
    4894             :   { 0, true },
    4895             :   { 0, true },
    4896             :   { 0, true },
    4897             :   { 0, true },
    4898             :   { 0, true },
    4899             :   { 0, true },
    4900             :   { 0, true },
    4901             :   { 0, true },
    4902             :   { 0, true },
    4903             :   { 0, true },
    4904             :   { 0, false },
    4905             :   { 0, true },
    4906             :   { 0, true },
    4907             :   { 0, true },
    4908             :   { 0, true },
    4909             :   { 0, true },
    4910             :   { 0, true },
    4911             :   { 0, true },
    4912             :   { 0, true },
    4913             :   { 0, true },
    4914             :   { 0, true },
    4915             :   { 0, true },
    4916             :   { 0, true },
    4917             :   { 0, true },
    4918             :   { 0, true },
    4919             :   { 0, true },
    4920             :   { 0, true },
    4921             :   { 0, true },
    4922             :   { 0, true },
    4923             :   { 0, true },
    4924             :   { 0, true },
    4925             :   { 0, true },
    4926             :   { 0, true },
    4927             :   { 0, true },
    4928             :   { 0, true },
    4929             :   { 0, true },
    4930             :   { 0, true },
    4931             :   { 0, true },
    4932             :   { 0, true },
    4933             :   { 0, true },
    4934             :   { 0, true },
    4935             :   { 0, true },
    4936             :   { 0, true },
    4937             :   { 0, true },
    4938             :   { 0, false },
    4939             :   { 0, true },
    4940             :   { 0, true },
    4941             :   { 0, true },
    4942             :   { 0, true },
    4943             :   { 0, true },
    4944             :   { 0, true },
    4945             :   { 0, true },
    4946             :   { 0, true },
    4947             :   { 0, true },
    4948             :   { 0, true },
    4949             :   { 0, true },
    4950             :   { 0, true },
    4951             :   { 0, true },
    4952             :   { 0, true },
    4953             :   { 0, true },
    4954             :   { 0, true },
    4955             :   { 0, true },
    4956             :   { 0, true },
    4957             :   { 0, true },
    4958             :   { 0, true },
    4959             :   { 0, true },
    4960             :   { 0, true },
    4961             :   { 0, true },
    4962             :   { 0, true },
    4963             :   { 0, true },
    4964             :   { 0, true },
    4965             :   { 0, true },
    4966             :   { 0, true },
    4967             :   { 0, true },
    4968             :   { 0, true },
    4969             :   { 0, true },
    4970             :   { 0, true },
    4971             :   { 0, true },
    4972             :   { 0, true },
    4973             :   { 0, true },
    4974             :   { 0, true },
    4975             :   { 0, true },
    4976             :   { 0, true },
    4977             :   { 0, true },
    4978             :   { 0, true },
    4979             :   { 0, true },
    4980             :   { 0, true },
    4981             :   { 0, true },
    4982             :   { 0, true },
    4983             :   { 0, true },
    4984             :   { 0, true },
    4985             :   { 0, true },
    4986             :   { 0, true },
    4987             :   { 0, true },
    4988             :   { 0, true },
    4989             :   { 0, true },
    4990             :   { 0, true },
    4991             :   { 0, true },
    4992             :   { 0, true },
    4993             :   { 0, true },
    4994             :   { 0, true },
    4995             :   { 0, true },
    4996             :   { 0, true },
    4997             :   { 0, true },
    4998             :   { 0, true },
    4999             :   { 0, true },
    5000             :   { 0, true },
    5001             :   { 0, true },
    5002             :   { 0, true },
    5003             :   { 0, true },
    5004             :   { 0, true },
    5005             :   { 0, true },
    5006             :   { 0, true },
    5007             :   { 0, true },
    5008             :   { 0, true },
    5009             :   { 0, true },
    5010             :   { 0, true },
    5011             :   { 0, true },
    5012             :   { 0, true },
    5013             :   { 0, true },
    5014             :   { 0, true },
    5015             :   { 0, true },
    5016             :   { 0, true },
    5017             :   { 0, true },
    5018             :   { 0, true },
    5019             :   { 0, true },
    5020             :   { 0, true },
    5021             :   { 0, true },
    5022             :   { 0, true },
    5023             :   { 0, true },
    5024             :   { 0, true },
    5025             :   { 0, true },
    5026             :   { 0, true },
    5027             :   { 0, true },
    5028             :   { 0, true },
    5029             :   { 0, true },
    5030             :   { 0, true },
    5031             :   { 0, true },
    5032             :   { 0, true },
    5033             :   { 0, true },
    5034             :   { 0, true },
    5035             :   { 0, true },
    5036             :   { 0, true },
    5037             :   { 0, true },
    5038             :   { 0, true },
    5039             :   { 0, true },
    5040             :   { 0, true },
    5041             :   { 0, true },
    5042             :   { 0, true },
    5043             :   { 0, true },
    5044             :   { 0, true },
    5045             :   { 0, true },
    5046             :   { 0, true },
    5047             :   { 0, true },
    5048             :   { 0, true },
    5049             :   { 0, true },
    5050             :   { 0, true },
    5051             :   { 0, true },
    5052             :   { 0, true },
    5053             :   { 0, true },
    5054             :   { 0, true },
    5055             :   { 0, true },
    5056             :   { 0, true },
    5057             :   { 0, true },
    5058             :   { 0, true },
    5059             :   { 0, true },
    5060             :   { 0, true },
    5061             :   { 0, true },
    5062             :   { 0, true },
    5063             :   { 0, true },
    5064             :   { 0, true },
    5065             :   { 0, true },
    5066             :   { 0, true },
    5067             :   { 0, true },
    5068             :   { 0, true },
    5069             :   { 0, true },
    5070             :   { 0, true },
    5071             :   { 0, true },
    5072             :   { 0, true },
    5073             :   { 0, true },
    5074             :   { 0, true },
    5075             :   { 0, true },
    5076             :   { 0, true },
    5077             :   { 0, true },
    5078             :   { 0, true },
    5079             :   { 0, true },
    5080             :   { 0, true },
    5081             :   { 0, true },
    5082             :   { 0, true },
    5083             :   { 0, true },
    5084             :   { 0, true },
    5085             :   { 0, true },
    5086             :   { 0, true },
    5087             :   { 0, true },
    5088             :   { 0, true },
    5089             :   { 0, true },
    5090             :   { 0, true },
    5091             :   { 0, true },
    5092             :   { 0, true },
    5093             :   { 0, true },
    5094             :   { 0, true },
    5095             :   { 0, true },
    5096             :   { 0, true },
    5097             :   { 0, true },
    5098             :   { 0, true },
    5099             :   { 0, true },
    5100             :   { 0, true },
    5101             :   { 0, true },
    5102             :   { 0, true },
    5103             :   { 0, true },
    5104             :   { 0, true },
    5105             :   { 0, true },
    5106             :   { 0, true },
    5107             :   { 0, true },
    5108             :   { 0, true },
    5109             :   { 0, true },
    5110             :   { 0, true },
    5111             :   { 0, true },
    5112             :   { 0, true },
    5113             :   { 0, true },
    5114             :   { 0, true },
    5115             :   { 0, true },
    5116             :   { 0, true },
    5117             :   { 0, true },
    5118             :   { 0, true },
    5119             :   { 0, true },
    5120             :   { 0, true },
    5121             :   { 0, true },
    5122             :   { 0, true },
    5123             :   { 0, true },
    5124             :   { 0, true },
    5125             :   { 0, true },
    5126             :   { 0, true },
    5127             :   { 0, true },
    5128             :   { 0, true },
    5129             :   { 0, true },
    5130             :   { 0, true },
    5131             :   { 0, false },
    5132             :   { 0, false },
    5133             :   { 0, false },
    5134             :   { 0, false },
    5135             :   { 0, false },
    5136             :   { 0, false },
    5137             :   { 0, false },
    5138             :   { 0, false },
    5139             :   { 0, false },
    5140             :   { 0, false },
    5141             :   { 0, false },
    5142             :   { 0, false },
    5143             :   { 0, false },
    5144             :   { 0, false },
    5145             :   { 0, false },
    5146             :   { 0, false },
    5147             :   { 0, false },
    5148             :   { 0, false },
    5149             :   { 0, false },
    5150             :   { 0, false },
    5151             :   { 0, false },
    5152             :   { 0, false },
    5153             :   { 0, false },
    5154             :   { 0, false },
    5155             :   { 0, false },
    5156             :   { 0, false },
    5157             :   { 0, false },
    5158             :   { 0, false },
    5159             :   { 0, false },
    5160             :   { 0, false },
    5161             :   { 0, false },
    5162             :   { 0, false },
    5163             :   { 0, true },
    5164             :   { 0, true },
    5165             :   { 0, true },
    5166             :   { 0, true },
    5167             :   { 0, true },
    5168             :   { 0, true },
    5169             :   { 0, true },
    5170             :   { 0, true },
    5171             :   { 0, true },
    5172             :   { 0, true },
    5173             :   { 0, true },
    5174             :   { 0, true },
    5175             :   { 0, true },
    5176             :   { 0, true },
    5177             :   { 0, true },
    5178             :   { 0, true },
    5179             :   { 0, true },
    5180             :   { 0, true },
    5181             :   { 0, true },
    5182             :   { 0, true },
    5183             :   { 0, true },
    5184             :   { 0, true },
    5185             :   { 0, true },
    5186             :   { 0, true },
    5187             :   { 0, true },
    5188             :   { 0, true },
    5189             :   { 0, true },
    5190             :   { 0, true },
    5191             :   { 0, true },
    5192             :   { 0, true },
    5193             :   { 0, true },
    5194             :   { 0, true },
    5195             :   { 0, true },
    5196             :   { 0, true },
    5197             :   { 0, true },
    5198             :   { 0, true },
    5199             :   { 0, true },
    5200             :   { 0, true },
    5201             :   { 0, true },
    5202             :   { 0, true },
    5203             :   { 0, true },
    5204             :   { 0, true },
    5205             :   { 0, true },
    5206             :   { 0, true },
    5207             :   { 0, true },
    5208             :   { 0, true },
    5209             :   { 0, true },
    5210             :   { 0, true },
    5211             :   { 0, true },
    5212             :   { 0, true },
    5213             :   { 0, true },
    5214             :   { 0, true },
    5215             :   { 0, true },
    5216             :   { 0, true },
    5217             :   { 0, true },
    5218             :   { 0, true },
    5219             :   { 0, true },
    5220             :   { 0, true },
    5221             :   { 0, true },
    5222             :   { 0, true },
    5223             :   { 0, true },
    5224             :   { 0, true },
    5225             :   { 0, true },
    5226             :   { 0, true },
    5227             :   { 0, true },
    5228             : };
    5229           0 : unsigned PPCGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
    5230             :   static const uint8_t Rows[1][6] = {
    5231             :     { 0, 0, 0, 0, 0, 0, },
    5232             :   };
    5233             : 
    5234             :   --IdxA; assert(IdxA < 6);
    5235           0 :   --IdxB; assert(IdxB < 6);
    5236           0 :   return Rows[0][IdxB];
    5237             : }
    5238             : 
    5239             :   struct MaskRolOp {
    5240             :     LaneBitmask Mask;
    5241             :     uint8_t  RotateLeft;
    5242             :   };
    5243             :   static const MaskRolOp LaneMaskComposeSequences[] = {
    5244             :     { LaneBitmask(0xFFFFFFFF),  0 }, { LaneBitmask::getNone(), 0 },   // Sequence 0
    5245             :     { LaneBitmask(0xFFFFFFFF),  1 }, { LaneBitmask::getNone(), 0 },   // Sequence 2
    5246             :     { LaneBitmask(0xFFFFFFFF),  2 }, { LaneBitmask::getNone(), 0 },   // Sequence 4
    5247             :     { LaneBitmask(0xFFFFFFFF),  3 }, { LaneBitmask::getNone(), 0 },   // Sequence 6
    5248             :     { LaneBitmask(0xFFFFFFFF),  4 }, { LaneBitmask::getNone(), 0 },   // Sequence 8
    5249             :     { LaneBitmask(0xFFFFFFFF),  5 }, { LaneBitmask::getNone(), 0 }  // Sequence 10
    5250             :   };
    5251             :   static const MaskRolOp *const CompositeSequences[] = {
    5252             :     &LaneMaskComposeSequences[0], // to sub_32
    5253             :     &LaneMaskComposeSequences[2], // to sub_64
    5254             :     &LaneMaskComposeSequences[4], // to sub_eq
    5255             :     &LaneMaskComposeSequences[6], // to sub_gt
    5256             :     &LaneMaskComposeSequences[8], // to sub_lt
    5257             :     &LaneMaskComposeSequences[10] // to sub_un
    5258             :   };
    5259             : 
    5260           0 : LaneBitmask PPCGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
    5261           0 :   --IdxA; assert(IdxA < 6 && "Subregister index out of bounds");
    5262             :   LaneBitmask Result;
    5263           0 :   for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
    5264           0 :     LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
    5265           0 :     if (unsigned S = Ops->RotateLeft)
    5266           0 :       Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
    5267             :     else
    5268             :       Result |= LaneBitmask(M);
    5269             :   }
    5270           0 :   return Result;
    5271             : }
    5272             : 
    5273           0 : LaneBitmask PPCGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA,  LaneBitmask LaneMask) const {
    5274           0 :   LaneMask &= getSubRegIndexLaneMask(IdxA);
    5275           0 :   --IdxA; assert(IdxA < 6 && "Subregister index out of bounds");
    5276             :   LaneBitmask Result;
    5277           0 :   for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
    5278             :     LaneBitmask::Type M = LaneMask.getAsInteger();
    5279           0 :     if (unsigned S = Ops->RotateLeft)
    5280           0 :       Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
    5281             :     else
    5282             :       Result |= LaneBitmask(M);
    5283             :   }
    5284           0 :   return Result;
    5285             : }
    5286             : 
    5287       79630 : const TargetRegisterClass *PPCGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
    5288             :   static const uint8_t Table[36][6] = {
    5289             :     {   // VSSRC
    5290             :       0,        // sub_32
    5291             :       0,        // sub_64
    5292             :       0,        // sub_eq
    5293             :       0,        // sub_gt
    5294             :       0,        // sub_lt
    5295             :       0,        // sub_un
    5296             :     },
    5297             :     {   // GPRC
    5298             :       0,        // sub_32
    5299             :       0,        // sub_64
    5300             :       0,        // sub_eq
    5301             :       0,        // sub_gt
    5302             :       0,        // sub_lt
    5303             :       0,        // sub_un
    5304             :     },
    5305             :     {   // GPRC_NOR0
    5306             :       0,        // sub_32
    5307             :       0,        // sub_64
    5308             :       0,        // sub_eq
    5309             :       0,        // sub_gt
    5310             :       0,        // sub_lt
    5311             :       0,        // sub_un
    5312             :     },
    5313             :     {   // SPE4RC
    5314             :       0,        // sub_32
    5315             :       0,        // sub_64
    5316             :       0,        // sub_eq
    5317             :       0,        // sub_gt
    5318             :       0,        // sub_lt
    5319             :       0,        // sub_un
    5320             :     },
    5321             :     {   // GPRC_and_GPRC_NOR0
    5322             :       0,        // sub_32
    5323             :       0,        // sub_64
    5324             :       0,        // sub_eq
    5325             :       0,        // sub_gt
    5326             :       0,        // sub_lt
    5327             :       0,        // sub_un
    5328             :     },
    5329             :     {   // CRBITRC
    5330             :       0,        // sub_32
    5331             :       0,        // sub_64
    5332             :       0,        // sub_eq
    5333             :       0,        // sub_gt
    5334             :       0,        // sub_lt
    5335             :       0,        // sub_un
    5336             :     },
    5337             :     {   // F4RC
    5338             :       0,        // sub_32
    5339             :       0,        // sub_64
    5340             :       0,        // sub_eq
    5341             :       0,        // sub_gt
    5342             :       0,        // sub_lt
    5343             :       0,        // sub_un
    5344             :     },
    5345             :     {   // CRRC
    5346             :       0,        // sub_32
    5347             :       0,        // sub_64
    5348             :       8,        // sub_eq -> CRRC
    5349             :       8,        // sub_gt -> CRRC
    5350             :       8,        // sub_lt -> CRRC
    5351             :       8,        // sub_un -> CRRC
    5352             :     },
    5353             :     {   // CARRYRC
    5354             :       0,        // sub_32
    5355             :       0,        // sub_64
    5356             :       0,        // sub_eq
    5357             :       0,        // sub_gt
    5358             :       0,        // sub_lt
    5359             :       0,        // sub_un
    5360             :     },
    5361             :     {   // CRRC0
    5362             :       0,        // sub_32
    5363             :       0,        // sub_64
    5364             :       10,       // sub_eq -> CRRC0
    5365             :       10,       // sub_gt -> CRRC0
    5366             :       10,       // sub_lt -> CRRC0
    5367             :       10,       // sub_un -> CRRC0
    5368             :     },
    5369             :     {   // CTRRC
    5370             :       0,        // sub_32
    5371             :       0,        // sub_64
    5372             :       0,        // sub_eq
    5373             :       0,        // sub_gt
    5374             :       0,        // sub_lt
    5375             :       0,        // sub_un
    5376             :     },
    5377             :     {   // VRSAVERC
    5378             :       0,        // sub_32
    5379             :       0,        // sub_64
    5380             :       0,        // sub_eq
    5381             :       0,        // sub_gt
    5382             :       0,        // sub_lt
    5383             :       0,        // sub_un
    5384             :     },
    5385             :     {   // SPILLTOVSRRC
    5386             :       15,       // sub_32 -> G8RC
    5387             :       0,        // sub_64
    5388             :       0,        // sub_eq
    5389             :       0,        // sub_gt
    5390             :       0,        // sub_lt
    5391             :       0,        // sub_un
    5392             :     },
    5393             :     {   // VSFRC
    5394             :       0,        // sub_32
    5395             :       0,        // sub_64
    5396             :       0,        // sub_eq
    5397             :       0,        // sub_gt
    5398             :       0,        // sub_lt
    5399             :       0,        // sub_un
    5400             :     },
    5401             :     {   // G8RC
    5402             :       15,       // sub_32 -> G8RC
    5403             :       0,        // sub_64
    5404             :       0,        // sub_eq
    5405             :       0,        // sub_gt
    5406             :       0,        // sub_lt
    5407             :       0,        // sub_un
    5408             :     },
    5409             :     {   // G8RC_NOX0
    5410             :       16,       // sub_32 -> G8RC_NOX0
    5411             :       0,        // sub_64
    5412             :       0,        // sub_eq
    5413             :       0,        // sub_gt
    5414             :       0,        // sub_lt
    5415             :       0,        // sub_un
    5416             :     },
    5417             :     {   // SPILLTOVSRRC_and_VSFRC
    5418             :       0,        // sub_32
    5419             :       0,        // sub_64
    5420             :       0,        // sub_eq
    5421             :       0,        // sub_gt
    5422             :       0,        // sub_lt
    5423             :       0,        // sub_un
    5424             :     },
    5425             :     {   // G8RC_and_G8RC_NOX0
    5426             :       18,       // sub_32 -> G8RC_and_G8RC_NOX0
    5427             :       0,        // sub_64
    5428             :       0,        // sub_eq
    5429             :       0,        // sub_gt
    5430             :       0,        // sub_lt
    5431             :       0,        // sub_un
    5432             :     },
    5433             :     {   // F8RC
    5434             :       0,        // sub_32
    5435             :       0,        // sub_64
    5436             :       0,        // sub_eq
    5437             :       0,        // sub_gt
    5438             :       0,        // sub_lt
    5439             :       0,        // sub_un
    5440             :     },
    5441             :     {   // SPERC
    5442             :       20,       // sub_32 -> SPERC
    5443             :       0,        // sub_64
    5444             :       0,        // sub_eq
    5445             :       0,        // sub_gt
    5446             :       0,        // sub_lt
    5447             :       0,        // sub_un
    5448             :     },
    5449             :     {   // VFRC
    5450             :       0,        // sub_32
    5451             :       0,        // sub_64
    5452             :       0,        // sub_eq
    5453             :       0,        // sub_gt
    5454             :       0,        // sub_lt
    5455             :       0,        // sub_un
    5456             :     },
    5457             :     {   // SPERC_with_sub_32_in_GPRC_NOR0
    5458             :       22,       // sub_32 -> SPERC_with_sub_32_in_GPRC_NOR0
    5459             :       0,        // sub_64
    5460             :       0,        // sub_eq
    5461             :       0,        // sub_gt
    5462             :       0,        // sub_lt
    5463             :       0,        // sub_un
    5464             :     },
    5465             :     {   // SPILLTOVSRRC_and_VFRC
    5466             :       0,        // sub_32
    5467             :       0,        // sub_64
    5468             :       0,        // sub_eq
    5469             :       0,        // sub_gt
    5470             :       0,        // sub_lt
    5471             :       0,        // sub_un
    5472             :     },
    5473             :     {   // SPILLTOVSRRC_and_F4RC
    5474             :       0,        // sub_32
    5475             :       0,        // sub_64
    5476             :       0,        // sub_eq
    5477             :       0,        // sub_gt
    5478             :       0,        // sub_lt
    5479             :       0,        // sub_un
    5480             :     },
    5481             :     {   // CTRRC8
    5482             :       0,        // sub_32
    5483             :       0,        // sub_64
    5484             :       0,        // sub_eq
    5485             :       0,        // sub_gt
    5486             :       0,        // sub_lt
    5487             :       0,        // sub_un
    5488             :     },
    5489             :     {   // VSRC
    5490             :       0,        // sub_32
    5491             :       26,       // sub_64 -> VSRC
    5492             :       0,        // sub_eq
    5493             :       0,        // sub_gt
    5494             :       0,        // sub_lt
    5495             :       0,        // sub_un
    5496             :     },
    5497             :     {   // VSRC_with_sub_64_in_SPILLTOVSRRC
    5498             :       0,        // sub_32
    5499             :       27,       // sub_64 -> VSRC_with_sub_64_in_SPILLTOVSRRC
    5500             :       0,        // sub_eq
    5501             :       0,        // sub_gt
    5502             :       0,        // sub_lt
    5503             :       0,        // sub_un
    5504             :     },
    5505             :     {   // QSRC
    5506             :       0,        // sub_32
    5507             :       28,       // sub_64 -> QSRC
    5508             :       0,        // sub_eq
    5509             :       0,        // sub_gt
    5510             :       0,        // sub_lt
    5511             :       0,        // sub_un
    5512             :     },
    5513             :     {   // VRRC
    5514             :       0,        // sub_32
    5515             :       29,       // sub_64 -> VRRC
    5516             :       0,        // sub_eq
    5517             :       0,        // sub_gt
    5518             :       0,        // sub_lt
    5519             :       0,        // sub_un
    5520             :     },
    5521             :     {   // VSLRC
    5522             :       0,        // sub_32
    5523             :       30,       // sub_64 -> VSLRC
    5524             :       0,        // sub_eq
    5525             :       0,        // sub_gt
    5526             :       0,        // sub_lt
    5527             :       0,        // sub_un
    5528             :     },
    5529             :     {   // VRRC_with_sub_64_in_SPILLTOVSRRC
    5530             :       0,        // sub_32
    5531             :       31,       // sub_64 -> VRRC_with_sub_64_in_SPILLTOVSRRC
    5532             :       0,        // sub_eq
    5533             :       0,        // sub_gt
    5534             :       0,        // sub_lt
    5535             :       0,        // sub_un
    5536             :     },
    5537             :     {   // QSRC_with_sub_64_in_SPILLTOVSRRC
    5538             :       0,        // sub_32
    5539             :       32,       // sub_64 -> QSRC_with_sub_64_in_SPILLTOVSRRC
    5540             :       0,        // sub_eq
    5541             :       0,        // sub_gt
    5542             :       0,        // sub_lt
    5543             :       0,        // sub_un
    5544             :     },
    5545             :     {   // VSLRC_with_sub_64_in_SPILLTOVSRRC
    5546             :       0,        // sub_32
    5547             :       33,       // sub_64 -> VSLRC_with_sub_64_in_SPILLTOVSRRC
    5548             :       0,        // sub_eq
    5549             :       0,        // sub_gt
    5550             :       0,        // sub_lt
    5551             :       0,        // sub_un
    5552             :     },
    5553             :     {   // QBRC
    5554             :       0,        // sub_32
    5555             :       34,       // sub_64 -> QBRC
    5556             :       0,        // sub_eq
    5557             :       0,        // sub_gt
    5558             :       0,        // sub_lt
    5559             :       0,        // sub_un
    5560             :     },
    5561             :     {   // QFRC
    5562             :       0,        // sub_32
    5563             :       35,       // sub_64 -> QFRC
    5564             :       0,        // sub_eq
    5565             :       0,        // sub_gt
    5566             :       0,        // sub_lt
    5567             :       0,        // sub_un
    5568             :     },
    5569             :     {   // QBRC_with_sub_64_in_SPILLTOVSRRC
    5570             :       0,        // sub_32
    5571             :       36,       // sub_64 -> QBRC_with_sub_64_in_SPILLTOVSRRC
    5572             :       0,        // sub_eq
    5573             :       0,        // sub_gt
    5574             :       0,        // sub_lt
    5575             :       0,        // sub_un
    5576             :     },
    5577             :   };
    5578             :   assert(RC && "Missing regclass");
    5579       79630 :   if (!Idx) return RC;
    5580       79630 :   --Idx;
    5581             :   assert(Idx < 6 && "Bad subreg");
    5582       79630 :   unsigned TV = Table[RC->getID()][Idx];
    5583       79630 :   return TV ? getRegClass(TV - 1) : nullptr;
    5584             : }
    5585             : 
    5586             : /// Get the weight in units of pressure for this register class.
    5587      896645 : const RegClassWeight &PPCGenRegisterInfo::
    5588             : getRegClassWeight(const TargetRegisterClass *RC) const {
    5589             :   static const RegClassWeight RCWeightTable[] = {
    5590             :     {1, 64},    // VSSRC
    5591             :     {1, 34},    // GPRC
    5592             :     {1, 34},    // GPRC_NOR0
    5593             :     {1, 34},    // SPE4RC
    5594             :     {1, 33},    // GPRC_and_GPRC_NOR0
    5595             :     {1, 32},    // CRBITRC
    5596             :     {1, 32},    // F4RC
    5597             :     {4, 32},    // CRRC
    5598             :     {1, 1},     // CARRYRC
    5599             :     {4, 4},     // CRRC0
    5600             :     {0, 0},     // CTRRC
    5601             :     {1, 1},     // VRSAVERC
    5602             :     {1, 68},    // SPILLTOVSRRC
    5603             :     {1, 64},    // VSFRC
    5604             :     {1, 34},    // G8RC
    5605             :     {1, 34},    // G8RC_NOX0
    5606             :     {1, 34},    // SPILLTOVSRRC_and_VSFRC
    5607             :     {1, 33},    // G8RC_and_G8RC_NOX0
    5608             :     {1, 32},    // F8RC
    5609             :     {1, 32},    // SPERC
    5610             :     {1, 32},    // VFRC
    5611             :     {1, 31},    // SPERC_with_sub_32_in_GPRC_NOR0
    5612             :     {1, 20},    // SPILLTOVSRRC_and_VFRC
    5613             :     {1, 14},    // SPILLTOVSRRC_and_F4RC
    5614             :     {0, 0},     // CTRRC8
    5615             :     {1, 64},    // VSRC
    5616             :     {1, 34},    // VSRC_with_sub_64_in_SPILLTOVSRRC
    5617             :     {1, 32},    // QSRC
    5618             :     {1, 32},    // VRRC
    5619             :     {1, 32},    // VSLRC
    5620             :     {1, 20},    // VRRC_with_sub_64_in_SPILLTOVSRRC
    5621             :     {1, 14},    // QSRC_with_sub_64_in_SPILLTOVSRRC
    5622             :     {1, 14},    // VSLRC_with_sub_64_in_SPILLTOVSRRC
    5623             :     {1, 32},    // QBRC
    5624             :     {1, 32},    // QFRC
    5625             :     {1, 14},    // QBRC_with_sub_64_in_SPILLTOVSRRC
    5626             :   };
    5627     1793290 :   return RCWeightTable[RC->getID()];
    5628             : }
    5629             : 
    5630             : /// Get the weight in units of pressure for this register unit.
    5631      174403 : unsigned PPCGenRegisterInfo::
    5632             : getRegUnitWeight(unsigned RegUnit) const {
    5633             :   assert(RegUnit < 171 && "invalid register unit");
    5634             :   // All register units have unit weight.
    5635      174403 :   return 1;
    5636             : }
    5637             : 
    5638             : 
    5639             : // Get the number of dimensions of register pressure.
    5640       66432 : unsigned PPCGenRegisterInfo::getNumRegPressureSets() const {
    5641       66432 :   return 17;
    5642             : }
    5643             : 
    5644             : // Get the name of this register unit pressure set.
    5645           0 : const char *PPCGenRegisterInfo::
    5646             : getRegPressureSetName(unsigned Idx) const {
    5647             :   static const char *const PressureNameTable[] = {
    5648             :     "CARRYRC",
    5649             :     "VRSAVERC",
    5650             :     "CRRC0",
    5651             :     "SPILLTOVSRRC_and_F4RC",
    5652             :     "SPILLTOVSRRC_and_VFRC",
    5653             :     "CRBITRC",
    5654             :     "F4RC",
    5655             :     "VFRC",
    5656             :     "SPILLTOVSRRC_and_VSFRC",
    5657             :     "GPRC",
    5658             :     "SPILLTOVSRRC_and_VSFRC+VFRC",
    5659             :     "F4RC+SPILLTOVSRRC_and_VSFRC",
    5660             :     "VSSRC",
    5661             :     "SPILLTOVSRRC",
    5662             :     "SPILLTOVSRRC+VFRC",
    5663             :     "F4RC+SPILLTOVSRRC",
    5664             :     "VSSRC+SPILLTOVSRRC",
    5665             :   };
    5666           0 :   return PressureNameTable[Idx];
    5667             : }
    5668             : 
    5669             : // Get the register unit pressure limit for this dimension.
    5670             : // This limit must be adjusted dynamically for reserved registers.
    5671      194072 : unsigned PPCGenRegisterInfo::
    5672             : getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
    5673             :   static const uint8_t PressureLimitTable[] = {
    5674             :     1,          // 0: CARRYRC
    5675             :     1,          // 1: VRSAVERC
    5676             :     4,          // 2: CRRC0
    5677             :     14,         // 3: SPILLTOVSRRC_and_F4RC
    5678             :     20,         // 4: SPILLTOVSRRC_and_VFRC
    5679             :     32,         // 5: CRBITRC
    5680             :     32,         // 6: F4RC
    5681             :     32,         // 7: VFRC
    5682             :     34,         // 8: SPILLTOVSRRC_and_VSFRC
    5683             :     35,         // 9: GPRC
    5684             :     46,         // 10: SPILLTOVSRRC_and_VSFRC+VFRC
    5685             :     52,         // 11: F4RC+SPILLTOVSRRC_and_VSFRC
    5686             :     64,         // 12: VSSRC
    5687             :     69,         // 13: SPILLTOVSRRC
    5688             :     80,         // 14: SPILLTOVSRRC+VFRC
    5689             :     86,         // 15: F4RC+SPILLTOVSRRC
    5690             :     98,         // 16: VSSRC+SPILLTOVSRRC
    5691             :   };
    5692      194072 :   return PressureLimitTable[Idx];
    5693             : }
    5694             : 
    5695             : /// Table of pressure sets per register class or unit.
    5696             : static const int RCSetsTable[] = {
    5697             :   /* 0 */ 0, -1,
    5698             :   /* 2 */ 1, -1,
    5699             :   /* 4 */ 2, 5, -1,
    5700             :   /* 7 */ 9, 13, -1,
    5701             :   /* 10 */ 12, 16, -1,
    5702             :   /* 13 */ 7, 10, 12, 14, 16, -1,
    5703             :   /* 19 */ 6, 11, 12, 15, 16, -1,
    5704             :   /* 25 */ 9, 13, 14, 15, 16, -1,
    5705             :   /* 31 */ 3, 6, 8, 10, 11, 12, 13, 14, 15, 16, -1,
    5706             :   /* 42 */ 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, -1,
    5707             : };
    5708             : 
    5709             : /// Get the dimensions of register pressure impacted by this register class.
    5710             : /// Returns a -1 terminated array of pressure set IDs
    5711     2138881 : const int* PPCGenRegisterInfo::
    5712             : getRegClassPressureSets(const TargetRegisterClass *RC) const {
    5713             :   static const uint8_t RCSetStartTable[] = {
    5714             :     10,25,7,25,25,5,19,5,0,4,1,2,26,10,25,7,33,25,19,25,13,25,42,31,1,10,33,19,13,19,42,31,31,19,19,31,};
    5715     4277762 :   return &RCSetsTable[RCSetStartTable[RC->getID()]];
    5716             : }
    5717             : 
    5718             : /// Get the dimensions of register pressure impacted by this register unit.
    5719             : /// Returns a -1 terminated array of pressure set IDs
    5720      174403 : const int* PPCGenRegisterInfo::
    5721             : getRegUnitPressureSets(unsigned RegUnit) const {
    5722             :   assert(RegUnit < 171 && "invalid register unit");
    5723             :   static const uint8_t RUSetStartTable[] = {
    5724             :     25,0,1,25,1,1,1,2,7,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,31,31,31,31,31,31,31,31,31,31,31,31,31,31,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,1,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,13,13,13,13,13,13,13,13,13,13,13,13,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,};
    5725      174403 :   return &RCSetsTable[RUSetStartTable[RegUnit]];
    5726             : }
    5727             : 
    5728             : extern const MCRegisterDesc PPCRegDesc[];
    5729             : extern const MCPhysReg PPCRegDiffLists[];
    5730             : extern const LaneBitmask PPCLaneMaskLists[];
    5731             : extern const char PPCRegStrings[];
    5732             : extern const char PPCRegClassStrings[];
    5733             : extern const MCPhysReg PPCRegUnitRoots[][2];
    5734             : extern const uint16_t PPCSubRegIdxLists[];
    5735             : extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[];
    5736             : extern const uint16_t PPCRegEncodingTable[];
    5737             : // PPC Dwarf<->LLVM register mappings.
    5738             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[];
    5739             : extern const unsigned PPCDwarfFlavour0Dwarf2LSize;
    5740             : 
    5741             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[];
    5742             : extern const unsigned PPCDwarfFlavour1Dwarf2LSize;
    5743             : 
    5744             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[];
    5745             : extern const unsigned PPCEHFlavour0Dwarf2LSize;
    5746             : 
    5747             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[];
    5748             : extern const unsigned PPCEHFlavour1Dwarf2LSize;
    5749             : 
    5750             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[];
    5751             : extern const unsigned PPCDwarfFlavour0L2DwarfSize;
    5752             : 
    5753             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[];
    5754             : extern const unsigned PPCDwarfFlavour1L2DwarfSize;
    5755             : 
    5756             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[];
    5757             : extern const unsigned PPCEHFlavour0L2DwarfSize;
    5758             : 
    5759             : extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[];
    5760             : extern const unsigned PPCEHFlavour1L2DwarfSize;
    5761             : 
    5762        1637 : PPCGenRegisterInfo::
    5763             : PPCGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
    5764        1637 :       unsigned PC, unsigned HwMode)
    5765             :   : TargetRegisterInfo(PPCRegInfoDesc, RegisterClasses, RegisterClasses+36,
    5766             :              SubRegIndexNameTable, SubRegIndexLaneMaskTable,
    5767        3274 :              LaneBitmask(0xFFFFFFC0), RegClassInfos, HwMode) {
    5768             :   InitMCRegisterInfo(PPCRegDesc, 344, RA, PC,
    5769             :                      PPCMCRegisterClasses, 36,
    5770             :                      PPCRegUnitRoots,
    5771             :                      171,
    5772             :                      PPCRegDiffLists,
    5773             :                      PPCLaneMaskLists,
    5774             :                      PPCRegStrings,
    5775             :                      PPCRegClassStrings,
    5776             :                      PPCSubRegIdxLists,
    5777             :                      7,
    5778             :                      PPCSubRegIdxRanges,
    5779             :                      PPCRegEncodingTable);
    5780             : 
    5781        1637 :   switch (DwarfFlavour) {
    5782           0 :   default:
    5783           0 :     llvm_unreachable("Unknown DWARF flavour");
    5784        1269 :   case 0:
    5785        1269 :     mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false);
    5786             :     break;
    5787         368 :   case 1:
    5788         368 :     mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false);
    5789             :     break;
    5790             :   }
    5791        1637 :   switch (EHFlavour) {
    5792           0 :   default:
    5793           0 :     llvm_unreachable("Unknown DWARF flavour");
    5794        1269 :   case 0:
    5795        1269 :     mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true);
    5796             :     break;
    5797         368 :   case 1:
    5798         368 :     mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true);
    5799             :     break;
    5800             :   }
    5801        1637 :   switch (DwarfFlavour) {
    5802           0 :   default:
    5803           0 :     llvm_unreachable("Unknown DWARF flavour");
    5804        1269 :   case 0:
    5805        1269 :     mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false);
    5806             :     break;
    5807         368 :   case 1:
    5808         368 :     mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false);
    5809             :     break;
    5810             :   }
    5811        1637 :   switch (EHFlavour) {
    5812           0 :   default:
    5813           0 :     llvm_unreachable("Unknown DWARF flavour");
    5814        1269 :   case 0:
    5815        1269 :     mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true);
    5816             :     break;
    5817         368 :   case 1:
    5818         368 :     mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true);
    5819             :     break;
    5820             :   }
    5821        1637 : }
    5822             : 
    5823             : 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 };
    5824             : static const uint32_t CSR_64_AllRegs_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfc800000, 0xff7fffe3, 0x00ffffff, };
    5825             : 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 };
    5826             : static const uint32_t CSR_64_AllRegs_Altivec_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0xff800000, 0xffffffff, 0x007fffff, 0x00000000, 0xfc800000, 0xff7fffe3, 0x00ffffff, };
    5827             : 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 };
    5828             : static const uint32_t CSR_64_AllRegs_VSX_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0xff800000, 0xffffffff, 0xffffffff, 0x007fffff, 0xfc800000, 0xff7fffe3, 0x00ffffff, };
    5829             : 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 };
    5830             : static const uint32_t CSR_Altivec_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    5831             : 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 };
    5832             : static const uint32_t CSR_Darwin32_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
    5833             : 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 };
    5834             : static const uint32_t CSR_Darwin32_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
    5835             : 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 };
    5836             : static const uint32_t CSR_Darwin64_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7ffff0, 0x001c1c1c, };
    5837             : 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 };
    5838             : static const uint32_t CSR_Darwin64_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7ffff0, 0x001c1c1c, };
    5839             : static const MCPhysReg CSR_NoRegs_SaveList[] = { 0 };
    5840             : static const uint32_t CSR_NoRegs_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    5841             : 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 };
    5842             : static const uint32_t CSR_SPE_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x007fffe0, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    5843             : static const MCPhysReg CSR_SRV464_TLS_PE_SaveList[] = { 0 };
    5844             : static const uint32_t CSR_SRV464_TLS_PE_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    5845             : 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::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 };
    5846             : static const uint32_t CSR_SVR32_ColdCC_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, };
    5847             : 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::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 };
    5848             : static const uint32_t CSR_SVR32_ColdCC_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, };
    5849             : 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 };
    5850             : static const uint32_t CSR_SVR432_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
    5851             : 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 };
    5852             : static const uint32_t CSR_SVR432_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
    5853             : 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 };
    5854             : static const uint32_t CSR_SVR432_COMM_RegMask[] = { 0x0001c000, 0x00000000, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
    5855             : 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 };
    5856             : static const uint32_t CSR_SVR432_SPE_RegMask[] = { 0x0001c000, 0x00000000, 0x00000000, 0x007fffe0, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
    5857             : 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 };
    5858             : static const uint32_t CSR_SVR464_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
    5859             : 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 };
    5860             : static const uint32_t CSR_SVR464_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
    5861             : 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 };
    5862             : static const uint32_t CSR_SVR464_Altivec_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
    5863             : 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 };
    5864             : static const uint32_t CSR_SVR464_R2_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
    5865             : 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 };
    5866             : static const uint32_t CSR_SVR464_R2_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
    5867             : 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 };
    5868             : static const uint32_t CSR_SVR464_R2_Altivec_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
    5869             : 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 };
    5870             : static const uint32_t CSR_SVR464_R2_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
    5871             : 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 };
    5872             : static const uint32_t CSR_SVR464_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
    5873             : 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 };
    5874             : static const uint32_t CSR_SVR64_ColdCC_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xf8000000, 0xff7fffe3, 0x00ffffff, };
    5875             : 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 };
    5876             : static const uint32_t CSR_SVR64_ColdCC_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0xf8000000, 0xff7fffe3, 0x00ffffff, };
    5877             : 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 };
    5878             : static const uint32_t CSR_SVR64_ColdCC_R2_RegMask[] = { 0xffaff000, 0x001fffff, 0xfa000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfa000000, 0xff7fffe3, 0x00ffffff, };
    5879             : 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 };
    5880             : static const uint32_t CSR_SVR64_ColdCC_R2_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xfa000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0xfa000000, 0xff7fffe3, 0x00ffffff, };
    5881             : 
    5882             : 
    5883         159 : ArrayRef<const uint32_t *> PPCGenRegisterInfo::getRegMasks() const {
    5884             :   static const uint32_t *const Masks[] = {
    5885             :     CSR_64_AllRegs_RegMask,
    5886             :     CSR_64_AllRegs_Altivec_RegMask,
    5887             :     CSR_64_AllRegs_VSX_RegMask,
    5888             :     CSR_Altivec_RegMask,
    5889             :     CSR_Darwin32_RegMask,
    5890             :     CSR_Darwin32_Altivec_RegMask,
    5891             :     CSR_Darwin64_RegMask,
    5892             :     CSR_Darwin64_Altivec_RegMask,
    5893             :     CSR_NoRegs_RegMask,
    5894             :     CSR_SPE_RegMask,
    5895             :     CSR_SRV464_TLS_PE_RegMask,
    5896             :     CSR_SVR32_ColdCC_RegMask,
    5897             :     CSR_SVR32_ColdCC_Altivec_RegMask,
    5898             :     CSR_SVR432_RegMask,
    5899             :     CSR_SVR432_Altivec_RegMask,
    5900             :     CSR_SVR432_COMM_RegMask,
    5901             :     CSR_SVR432_SPE_RegMask,
    5902             :     CSR_SVR464_RegMask,
    5903             :     CSR_SVR464_Altivec_RegMask,
    5904             :     CSR_SVR464_Altivec_ViaCopy_RegMask,
    5905             :     CSR_SVR464_R2_RegMask,
    5906             :     CSR_SVR464_R2_Altivec_RegMask,
    5907             :     CSR_SVR464_R2_Altivec_ViaCopy_RegMask,
    5908             :     CSR_SVR464_R2_ViaCopy_RegMask,
    5909             :     CSR_SVR464_ViaCopy_RegMask,
    5910             :     CSR_SVR64_ColdCC_RegMask,
    5911             :     CSR_SVR64_ColdCC_Altivec_RegMask,
    5912             :     CSR_SVR64_ColdCC_R2_RegMask,
    5913             :     CSR_SVR64_ColdCC_R2_Altivec_RegMask,
    5914             :   };
    5915         159 :   return makeArrayRef(Masks);
    5916             : }
    5917             : 
    5918           6 : ArrayRef<const char *> PPCGenRegisterInfo::getRegMaskNames() const {
    5919             :   static const char *const Names[] = {
    5920             :     "CSR_64_AllRegs",
    5921             :     "CSR_64_AllRegs_Altivec",
    5922             :     "CSR_64_AllRegs_VSX",
    5923             :     "CSR_Altivec",
    5924             :     "CSR_Darwin32",
    5925             :     "CSR_Darwin32_Altivec",
    5926             :     "CSR_Darwin64",
    5927             :     "CSR_Darwin64_Altivec",
    5928             :     "CSR_NoRegs",
    5929             :     "CSR_SPE",
    5930             :     "CSR_SRV464_TLS_PE",
    5931             :     "CSR_SVR32_ColdCC",
    5932             :     "CSR_SVR32_ColdCC_Altivec",
    5933             :     "CSR_SVR432",
    5934             :     "CSR_SVR432_Altivec",
    5935             :     "CSR_SVR432_COMM",
    5936             :     "CSR_SVR432_SPE",
    5937             :     "CSR_SVR464",
    5938             :     "CSR_SVR464_Altivec",
    5939             :     "CSR_SVR464_Altivec_ViaCopy",
    5940             :     "CSR_SVR464_R2",
    5941             :     "CSR_SVR464_R2_Altivec",
    5942             :     "CSR_SVR464_R2_Altivec_ViaCopy",
    5943             :     "CSR_SVR464_R2_ViaCopy",
    5944             :     "CSR_SVR464_ViaCopy",
    5945             :     "CSR_SVR64_ColdCC",
    5946             :     "CSR_SVR64_ColdCC_Altivec",
    5947             :     "CSR_SVR64_ColdCC_R2",
    5948             :     "CSR_SVR64_ColdCC_R2_Altivec",
    5949             :   };
    5950           6 :   return makeArrayRef(Names);
    5951             : }
    5952             : 
    5953             : const PPCFrameLowering *
    5954       53468 : PPCGenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
    5955             :   return static_cast<const PPCFrameLowering *>(
    5956       53468 :       MF.getSubtarget().getFrameLowering());
    5957             : }
    5958             : 
    5959             : } // end namespace llvm
    5960             : 
    5961             : #endif // GET_REGINFO_TARGET_DESC
    5962             : 

Generated by: LCOV version 1.13