/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Target Register Enum Values                                                *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/


#ifdef GET_REGINFO_ENUM
#undef GET_REGINFO_ENUM

namespace llvm {

class MCRegisterClass;
extern const MCRegisterClass PPCMCRegisterClasses[];

namespace PPC {
enum {
  NoRegister,
  BP = 1,
  CARRY = 2,
  CTR = 3,
  FP = 4,
  LR = 5,
  RM = 6,
  SPEFSCR = 7,
  VRSAVE = 8,
  XER = 9,
  ZERO = 10,
  BP8 = 11,
  CR0 = 12,
  CR1 = 13,
  CR2 = 14,
  CR3 = 15,
  CR4 = 16,
  CR5 = 17,
  CR6 = 18,
  CR7 = 19,
  CTR8 = 20,
  F0 = 21,
  F1 = 22,
  F2 = 23,
  F3 = 24,
  F4 = 25,
  F5 = 26,
  F6 = 27,
  F7 = 28,
  F8 = 29,
  F9 = 30,
  F10 = 31,
  F11 = 32,
  F12 = 33,
  F13 = 34,
  F14 = 35,
  F15 = 36,
  F16 = 37,
  F17 = 38,
  F18 = 39,
  F19 = 40,
  F20 = 41,
  F21 = 42,
  F22 = 43,
  F23 = 44,
  F24 = 45,
  F25 = 46,
  F26 = 47,
  F27 = 48,
  F28 = 49,
  F29 = 50,
  F30 = 51,
  F31 = 52,
  FP8 = 53,
  LR8 = 54,
  QF0 = 55,
  QF1 = 56,
  QF2 = 57,
  QF3 = 58,
  QF4 = 59,
  QF5 = 60,
  QF6 = 61,
  QF7 = 62,
  QF8 = 63,
  QF9 = 64,
  QF10 = 65,
  QF11 = 66,
  QF12 = 67,
  QF13 = 68,
  QF14 = 69,
  QF15 = 70,
  QF16 = 71,
  QF17 = 72,
  QF18 = 73,
  QF19 = 74,
  QF20 = 75,
  QF21 = 76,
  QF22 = 77,
  QF23 = 78,
  QF24 = 79,
  QF25 = 80,
  QF26 = 81,
  QF27 = 82,
  QF28 = 83,
  QF29 = 84,
  QF30 = 85,
  QF31 = 86,
  R0 = 87,
  R1 = 88,
  R2 = 89,
  R3 = 90,
  R4 = 91,
  R5 = 92,
  R6 = 93,
  R7 = 94,
  R8 = 95,
  R9 = 96,
  R10 = 97,
  R11 = 98,
  R12 = 99,
  R13 = 100,
  R14 = 101,
  R15 = 102,
  R16 = 103,
  R17 = 104,
  R18 = 105,
  R19 = 106,
  R20 = 107,
  R21 = 108,
  R22 = 109,
  R23 = 110,
  R24 = 111,
  R25 = 112,
  R26 = 113,
  R27 = 114,
  R28 = 115,
  R29 = 116,
  R30 = 117,
  R31 = 118,
  S0 = 119,
  S1 = 120,
  S2 = 121,
  S3 = 122,
  S4 = 123,
  S5 = 124,
  S6 = 125,
  S7 = 126,
  S8 = 127,
  S9 = 128,
  S10 = 129,
  S11 = 130,
  S12 = 131,
  S13 = 132,
  S14 = 133,
  S15 = 134,
  S16 = 135,
  S17 = 136,
  S18 = 137,
  S19 = 138,
  S20 = 139,
  S21 = 140,
  S22 = 141,
  S23 = 142,
  S24 = 143,
  S25 = 144,
  S26 = 145,
  S27 = 146,
  S28 = 147,
  S29 = 148,
  S30 = 149,
  S31 = 150,
  V0 = 151,
  V1 = 152,
  V2 = 153,
  V3 = 154,
  V4 = 155,
  V5 = 156,
  V6 = 157,
  V7 = 158,
  V8 = 159,
  V9 = 160,
  V10 = 161,
  V11 = 162,
  V12 = 163,
  V13 = 164,
  V14 = 165,
  V15 = 166,
  V16 = 167,
  V17 = 168,
  V18 = 169,
  V19 = 170,
  V20 = 171,
  V21 = 172,
  V22 = 173,
  V23 = 174,
  V24 = 175,
  V25 = 176,
  V26 = 177,
  V27 = 178,
  V28 = 179,
  V29 = 180,
  V30 = 181,
  V31 = 182,
  VF0 = 183,
  VF1 = 184,
  VF2 = 185,
  VF3 = 186,
  VF4 = 187,
  VF5 = 188,
  VF6 = 189,
  VF7 = 190,
  VF8 = 191,
  VF9 = 192,
  VF10 = 193,
  VF11 = 194,
  VF12 = 195,
  VF13 = 196,
  VF14 = 197,
  VF15 = 198,
  VF16 = 199,
  VF17 = 200,
  VF18 = 201,
  VF19 = 202,
  VF20 = 203,
  VF21 = 204,
  VF22 = 205,
  VF23 = 206,
  VF24 = 207,
  VF25 = 208,
  VF26 = 209,
  VF27 = 210,
  VF28 = 211,
  VF29 = 212,
  VF30 = 213,
  VF31 = 214,
  VSL0 = 215,
  VSL1 = 216,
  VSL2 = 217,
  VSL3 = 218,
  VSL4 = 219,
  VSL5 = 220,
  VSL6 = 221,
  VSL7 = 222,
  VSL8 = 223,
  VSL9 = 224,
  VSL10 = 225,
  VSL11 = 226,
  VSL12 = 227,
  VSL13 = 228,
  VSL14 = 229,
  VSL15 = 230,
  VSL16 = 231,
  VSL17 = 232,
  VSL18 = 233,
  VSL19 = 234,
  VSL20 = 235,
  VSL21 = 236,
  VSL22 = 237,
  VSL23 = 238,
  VSL24 = 239,
  VSL25 = 240,
  VSL26 = 241,
  VSL27 = 242,
  VSL28 = 243,
  VSL29 = 244,
  VSL30 = 245,
  VSL31 = 246,
  VSX32 = 247,
  VSX33 = 248,
  VSX34 = 249,
  VSX35 = 250,
  VSX36 = 251,
  VSX37 = 252,
  VSX38 = 253,
  VSX39 = 254,
  VSX40 = 255,
  VSX41 = 256,
  VSX42 = 257,
  VSX43 = 258,
  VSX44 = 259,
  VSX45 = 260,
  VSX46 = 261,
  VSX47 = 262,
  VSX48 = 263,
  VSX49 = 264,
  VSX50 = 265,
  VSX51 = 266,
  VSX52 = 267,
  VSX53 = 268,
  VSX54 = 269,
  VSX55 = 270,
  VSX56 = 271,
  VSX57 = 272,
  VSX58 = 273,
  VSX59 = 274,
  VSX60 = 275,
  VSX61 = 276,
  VSX62 = 277,
  VSX63 = 278,
  X0 = 279,
  X1 = 280,
  X2 = 281,
  X3 = 282,
  X4 = 283,
  X5 = 284,
  X6 = 285,
  X7 = 286,
  X8 = 287,
  X9 = 288,
  X10 = 289,
  X11 = 290,
  X12 = 291,
  X13 = 292,
  X14 = 293,
  X15 = 294,
  X16 = 295,
  X17 = 296,
  X18 = 297,
  X19 = 298,
  X20 = 299,
  X21 = 300,
  X22 = 301,
  X23 = 302,
  X24 = 303,
  X25 = 304,
  X26 = 305,
  X27 = 306,
  X28 = 307,
  X29 = 308,
  X30 = 309,
  X31 = 310,
  ZERO8 = 311,
  CR0EQ = 312,
  CR1EQ = 313,
  CR2EQ = 314,
  CR3EQ = 315,
  CR4EQ = 316,
  CR5EQ = 317,
  CR6EQ = 318,
  CR7EQ = 319,
  CR0GT = 320,
  CR1GT = 321,
  CR2GT = 322,
  CR3GT = 323,
  CR4GT = 324,
  CR5GT = 325,
  CR6GT = 326,
  CR7GT = 327,
  CR0LT = 328,
  CR1LT = 329,
  CR2LT = 330,
  CR3LT = 331,
  CR4LT = 332,
  CR5LT = 333,
  CR6LT = 334,
  CR7LT = 335,
  CR0UN = 336,
  CR1UN = 337,
  CR2UN = 338,
  CR3UN = 339,
  CR4UN = 340,
  CR5UN = 341,
  CR6UN = 342,
  CR7UN = 343,
  NUM_TARGET_REGS 	// 344
};
} // end namespace PPC

// Register classes

namespace PPC {
enum {
  VSSRCRegClassID = 0,
  GPRCRegClassID = 1,
  GPRC_NOR0RegClassID = 2,
  GPRC_and_GPRC_NOR0RegClassID = 3,
  CRBITRCRegClassID = 4,
  F4RCRegClassID = 5,
  CRRCRegClassID = 6,
  CARRYRCRegClassID = 7,
  CTRRCRegClassID = 8,
  VRSAVERCRegClassID = 9,
  SPILLTOVSRRCRegClassID = 10,
  VSFRCRegClassID = 11,
  G8RCRegClassID = 12,
  G8RC_NOX0RegClassID = 13,
  SPILLTOVSRRC_and_VSFRCRegClassID = 14,
  G8RC_and_G8RC_NOX0RegClassID = 15,
  F8RCRegClassID = 16,
  SPERCRegClassID = 17,
  VFRCRegClassID = 18,
  SPERC_with_sub_32_in_GPRC_NOR0RegClassID = 19,
  SPILLTOVSRRC_and_VFRCRegClassID = 20,
  SPILLTOVSRRC_and_F4RCRegClassID = 21,
  CTRRC8RegClassID = 22,
  VSRCRegClassID = 23,
  VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 24,
  QSRCRegClassID = 25,
  VRRCRegClassID = 26,
  VSLRCRegClassID = 27,
  VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 28,
  QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 29,
  VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 30,
  QBRCRegClassID = 31,
  QFRCRegClassID = 32,
  QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID = 33,

  };
} // end namespace PPC


// Subregister indices

namespace PPC {
enum {
  NoSubRegister,
  sub_32,	// 1
  sub_64,	// 2
  sub_eq,	// 3
  sub_gt,	// 4
  sub_lt,	// 5
  sub_un,	// 6
  NUM_TARGET_SUBREGS
};
} // end namespace PPC

} // end namespace llvm

#endif // GET_REGINFO_ENUM

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* MC Register Information                                                    *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/


#ifdef GET_REGINFO_MC_DESC
#undef GET_REGINFO_MC_DESC

namespace llvm {

extern const MCPhysReg PPCRegDiffLists[] = {
  /* 0 */ 0, 0,
  /* 2 */ 65497, 1, 1, 1, 0,
  /* 7 */ 3, 0,
  /* 9 */ 10, 0,
  /* 11 */ 21, 0,
  /* 13 */ 316, 65528, 65528, 24, 0,
  /* 18 */ 32, 0,
  /* 20 */ 49, 0,
  /* 22 */ 74, 0,
  /* 24 */ 32, 160, 0,
  /* 27 */ 34, 160, 0,
  /* 30 */ 301, 0,
  /* 32 */ 64204, 0,
  /* 34 */ 64233, 0,
  /* 36 */ 64266, 0,
  /* 38 */ 64299, 0,
  /* 40 */ 64611, 0,
  /* 42 */ 65212, 0,
  /* 44 */ 65220, 0,
  /* 46 */ 65228, 0,
  /* 48 */ 65235, 0,
  /* 50 */ 65236, 0,
  /* 52 */ 65332, 0,
  /* 54 */ 65342, 0,
  /* 56 */ 65344, 0,
  /* 58 */ 65363, 0,
  /* 60 */ 65428, 0,
  /* 62 */ 65460, 0,
  /* 64 */ 65474, 0,
  /* 66 */ 65487, 0,
  /* 68 */ 65492, 0,
  /* 70 */ 65502, 0,
  /* 72 */ 65504, 0,
  /* 74 */ 65523, 0,
  /* 76 */ 65524, 0,
  /* 78 */ 65526, 0,
  /* 80 */ 65535, 0,
};

extern const LaneBitmask PPCLaneMaskLists[] = {
  /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(),
  /* 2 */ LaneBitmask(0x00000001), LaneBitmask::getAll(),
  /* 4 */ LaneBitmask(0x00000002), LaneBitmask::getAll(),
  /* 6 */ LaneBitmask(0x00000010), LaneBitmask(0x00000008), LaneBitmask(0x00000004), LaneBitmask(0x00000020), LaneBitmask::getAll(),
};

extern const uint16_t PPCSubRegIdxLists[] = {
  /* 0 */ 1, 0,
  /* 2 */ 2, 0,
  /* 4 */ 5, 4, 3, 6, 0,
};

extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[] = {
  { 65535, 65535 },
  { 0, 32 },	// sub_32
  { 0, 64 },	// sub_64
  { 2, 1 },	// sub_eq
  { 1, 1 },	// sub_gt
  { 0, 1 },	// sub_lt
  { 3, 1 },	// sub_un
};

extern const char PPCRegStrings[] = {
  /* 0 */ 'Q', 'F', '1', '0', 0,
  /* 5 */ 'V', 'F', '1', '0', 0,
  /* 10 */ 'V', 'S', 'L', '1', '0', 0,
  /* 16 */ 'R', '1', '0', 0,
  /* 20 */ 'S', '1', '0', 0,
  /* 24 */ 'V', '1', '0', 0,
  /* 28 */ 'X', '1', '0', 0,
  /* 32 */ 'Q', 'F', '2', '0', 0,
  /* 37 */ 'V', 'F', '2', '0', 0,
  /* 42 */ 'V', 'S', 'L', '2', '0', 0,
  /* 48 */ 'R', '2', '0', 0,
  /* 52 */ 'S', '2', '0', 0,
  /* 56 */ 'V', '2', '0', 0,
  /* 60 */ 'X', '2', '0', 0,
  /* 64 */ 'Q', 'F', '3', '0', 0,
  /* 69 */ 'V', 'F', '3', '0', 0,
  /* 74 */ 'V', 'S', 'L', '3', '0', 0,
  /* 80 */ 'R', '3', '0', 0,
  /* 84 */ 'S', '3', '0', 0,
  /* 88 */ 'V', '3', '0', 0,
  /* 92 */ 'X', '3', '0', 0,
  /* 96 */ 'V', 'S', 'X', '4', '0', 0,
  /* 102 */ 'V', 'S', 'X', '5', '0', 0,
  /* 108 */ 'V', 'S', 'X', '6', '0', 0,
  /* 114 */ 'Q', 'F', '0', 0,
  /* 118 */ 'V', 'F', '0', 0,
  /* 122 */ 'V', 'S', 'L', '0', 0,
  /* 127 */ 'C', 'R', '0', 0,
  /* 131 */ 'S', '0', 0,
  /* 134 */ 'V', '0', 0,
  /* 137 */ 'X', '0', 0,
  /* 140 */ 'Q', 'F', '1', '1', 0,
  /* 145 */ 'V', 'F', '1', '1', 0,
  /* 150 */ 'V', 'S', 'L', '1', '1', 0,
  /* 156 */ 'R', '1', '1', 0,
  /* 160 */ 'S', '1', '1', 0,
  /* 164 */ 'V', '1', '1', 0,
  /* 168 */ 'X', '1', '1', 0,
  /* 172 */ 'Q', 'F', '2', '1', 0,
  /* 177 */ 'V', 'F', '2', '1', 0,
  /* 182 */ 'V', 'S', 'L', '2', '1', 0,
  /* 188 */ 'R', '2', '1', 0,
  /* 192 */ 'S', '2', '1', 0,
  /* 196 */ 'V', '2', '1', 0,
  /* 200 */ 'X', '2', '1', 0,
  /* 204 */ 'Q', 'F', '3', '1', 0,
  /* 209 */ 'V', 'F', '3', '1', 0,
  /* 214 */ 'V', 'S', 'L', '3', '1', 0,
  /* 220 */ 'R', '3', '1', 0,
  /* 224 */ 'S', '3', '1', 0,
  /* 228 */ 'V', '3', '1', 0,
  /* 232 */ 'X', '3', '1', 0,
  /* 236 */ 'V', 'S', 'X', '4', '1', 0,
  /* 242 */ 'V', 'S', 'X', '5', '1', 0,
  /* 248 */ 'V', 'S', 'X', '6', '1', 0,
  /* 254 */ 'Q', 'F', '1', 0,
  /* 258 */ 'V', 'F', '1', 0,
  /* 262 */ 'V', 'S', 'L', '1', 0,
  /* 267 */ 'C', 'R', '1', 0,
  /* 271 */ 'S', '1', 0,
  /* 274 */ 'V', '1', 0,
  /* 277 */ 'X', '1', 0,
  /* 280 */ 'Q', 'F', '1', '2', 0,
  /* 285 */ 'V', 'F', '1', '2', 0,
  /* 290 */ 'V', 'S', 'L', '1', '2', 0,
  /* 296 */ 'R', '1', '2', 0,
  /* 300 */ 'S', '1', '2', 0,
  /* 304 */ 'V', '1', '2', 0,
  /* 308 */ 'X', '1', '2', 0,
  /* 312 */ 'Q', 'F', '2', '2', 0,
  /* 317 */ 'V', 'F', '2', '2', 0,
  /* 322 */ 'V', 'S', 'L', '2', '2', 0,
  /* 328 */ 'R', '2', '2', 0,
  /* 332 */ 'S', '2', '2', 0,
  /* 336 */ 'V', '2', '2', 0,
  /* 340 */ 'X', '2', '2', 0,
  /* 344 */ 'V', 'S', 'X', '3', '2', 0,
  /* 350 */ 'V', 'S', 'X', '4', '2', 0,
  /* 356 */ 'V', 'S', 'X', '5', '2', 0,
  /* 362 */ 'V', 'S', 'X', '6', '2', 0,
  /* 368 */ 'Q', 'F', '2', 0,
  /* 372 */ 'V', 'F', '2', 0,
  /* 376 */ 'V', 'S', 'L', '2', 0,
  /* 381 */ 'C', 'R', '2', 0,
  /* 385 */ 'S', '2', 0,
  /* 388 */ 'V', '2', 0,
  /* 391 */ 'X', '2', 0,
  /* 394 */ 'Q', 'F', '1', '3', 0,
  /* 399 */ 'V', 'F', '1', '3', 0,
  /* 404 */ 'V', 'S', 'L', '1', '3', 0,
  /* 410 */ 'R', '1', '3', 0,
  /* 414 */ 'S', '1', '3', 0,
  /* 418 */ 'V', '1', '3', 0,
  /* 422 */ 'X', '1', '3', 0,
  /* 426 */ 'Q', 'F', '2', '3', 0,
  /* 431 */ 'V', 'F', '2', '3', 0,
  /* 436 */ 'V', 'S', 'L', '2', '3', 0,
  /* 442 */ 'R', '2', '3', 0,
  /* 446 */ 'S', '2', '3', 0,
  /* 450 */ 'V', '2', '3', 0,
  /* 454 */ 'X', '2', '3', 0,
  /* 458 */ 'V', 'S', 'X', '3', '3', 0,
  /* 464 */ 'V', 'S', 'X', '4', '3', 0,
  /* 470 */ 'V', 'S', 'X', '5', '3', 0,
  /* 476 */ 'V', 'S', 'X', '6', '3', 0,
  /* 482 */ 'Q', 'F', '3', 0,
  /* 486 */ 'V', 'F', '3', 0,
  /* 490 */ 'V', 'S', 'L', '3', 0,
  /* 495 */ 'C', 'R', '3', 0,
  /* 499 */ 'S', '3', 0,
  /* 502 */ 'V', '3', 0,
  /* 505 */ 'X', '3', 0,
  /* 508 */ 'Q', 'F', '1', '4', 0,
  /* 513 */ 'V', 'F', '1', '4', 0,
  /* 518 */ 'V', 'S', 'L', '1', '4', 0,
  /* 524 */ 'R', '1', '4', 0,
  /* 528 */ 'S', '1', '4', 0,
  /* 532 */ 'V', '1', '4', 0,
  /* 536 */ 'X', '1', '4', 0,
  /* 540 */ 'Q', 'F', '2', '4', 0,
  /* 545 */ 'V', 'F', '2', '4', 0,
  /* 550 */ 'V', 'S', 'L', '2', '4', 0,
  /* 556 */ 'R', '2', '4', 0,
  /* 560 */ 'S', '2', '4', 0,
  /* 564 */ 'V', '2', '4', 0,
  /* 568 */ 'X', '2', '4', 0,
  /* 572 */ 'V', 'S', 'X', '3', '4', 0,
  /* 578 */ 'V', 'S', 'X', '4', '4', 0,
  /* 584 */ 'V', 'S', 'X', '5', '4', 0,
  /* 590 */ 'Q', 'F', '4', 0,
  /* 594 */ 'V', 'F', '4', 0,
  /* 598 */ 'V', 'S', 'L', '4', 0,
  /* 603 */ 'C', 'R', '4', 0,
  /* 607 */ 'S', '4', 0,
  /* 610 */ 'V', '4', 0,
  /* 613 */ 'X', '4', 0,
  /* 616 */ 'Q', 'F', '1', '5', 0,
  /* 621 */ 'V', 'F', '1', '5', 0,
  /* 626 */ 'V', 'S', 'L', '1', '5', 0,
  /* 632 */ 'R', '1', '5', 0,
  /* 636 */ 'S', '1', '5', 0,
  /* 640 */ 'V', '1', '5', 0,
  /* 644 */ 'X', '1', '5', 0,
  /* 648 */ 'Q', 'F', '2', '5', 0,
  /* 653 */ 'V', 'F', '2', '5', 0,
  /* 658 */ 'V', 'S', 'L', '2', '5', 0,
  /* 664 */ 'R', '2', '5', 0,
  /* 668 */ 'S', '2', '5', 0,
  /* 672 */ 'V', '2', '5', 0,
  /* 676 */ 'X', '2', '5', 0,
  /* 680 */ 'V', 'S', 'X', '3', '5', 0,
  /* 686 */ 'V', 'S', 'X', '4', '5', 0,
  /* 692 */ 'V', 'S', 'X', '5', '5', 0,
  /* 698 */ 'Q', 'F', '5', 0,
  /* 702 */ 'V', 'F', '5', 0,
  /* 706 */ 'V', 'S', 'L', '5', 0,
  /* 711 */ 'C', 'R', '5', 0,
  /* 715 */ 'S', '5', 0,
  /* 718 */ 'V', '5', 0,
  /* 721 */ 'X', '5', 0,
  /* 724 */ 'Q', 'F', '1', '6', 0,
  /* 729 */ 'V', 'F', '1', '6', 0,
  /* 734 */ 'V', 'S', 'L', '1', '6', 0,
  /* 740 */ 'R', '1', '6', 0,
  /* 744 */ 'S', '1', '6', 0,
  /* 748 */ 'V', '1', '6', 0,
  /* 752 */ 'X', '1', '6', 0,
  /* 756 */ 'Q', 'F', '2', '6', 0,
  /* 761 */ 'V', 'F', '2', '6', 0,
  /* 766 */ 'V', 'S', 'L', '2', '6', 0,
  /* 772 */ 'R', '2', '6', 0,
  /* 776 */ 'S', '2', '6', 0,
  /* 780 */ 'V', '2', '6', 0,
  /* 784 */ 'X', '2', '6', 0,
  /* 788 */ 'V', 'S', 'X', '3', '6', 0,
  /* 794 */ 'V', 'S', 'X', '4', '6', 0,
  /* 800 */ 'V', 'S', 'X', '5', '6', 0,
  /* 806 */ 'Q', 'F', '6', 0,
  /* 810 */ 'V', 'F', '6', 0,
  /* 814 */ 'V', 'S', 'L', '6', 0,
  /* 819 */ 'C', 'R', '6', 0,
  /* 823 */ 'S', '6', 0,
  /* 826 */ 'V', '6', 0,
  /* 829 */ 'X', '6', 0,
  /* 832 */ 'Q', 'F', '1', '7', 0,
  /* 837 */ 'V', 'F', '1', '7', 0,
  /* 842 */ 'V', 'S', 'L', '1', '7', 0,
  /* 848 */ 'R', '1', '7', 0,
  /* 852 */ 'S', '1', '7', 0,
  /* 856 */ 'V', '1', '7', 0,
  /* 860 */ 'X', '1', '7', 0,
  /* 864 */ 'Q', 'F', '2', '7', 0,
  /* 869 */ 'V', 'F', '2', '7', 0,
  /* 874 */ 'V', 'S', 'L', '2', '7', 0,
  /* 880 */ 'R', '2', '7', 0,
  /* 884 */ 'S', '2', '7', 0,
  /* 888 */ 'V', '2', '7', 0,
  /* 892 */ 'X', '2', '7', 0,
  /* 896 */ 'V', 'S', 'X', '3', '7', 0,
  /* 902 */ 'V', 'S', 'X', '4', '7', 0,
  /* 908 */ 'V', 'S', 'X', '5', '7', 0,
  /* 914 */ 'Q', 'F', '7', 0,
  /* 918 */ 'V', 'F', '7', 0,
  /* 922 */ 'V', 'S', 'L', '7', 0,
  /* 927 */ 'C', 'R', '7', 0,
  /* 931 */ 'S', '7', 0,
  /* 934 */ 'V', '7', 0,
  /* 937 */ 'X', '7', 0,
  /* 940 */ 'Q', 'F', '1', '8', 0,
  /* 945 */ 'V', 'F', '1', '8', 0,
  /* 950 */ 'V', 'S', 'L', '1', '8', 0,
  /* 956 */ 'R', '1', '8', 0,
  /* 960 */ 'S', '1', '8', 0,
  /* 964 */ 'V', '1', '8', 0,
  /* 968 */ 'X', '1', '8', 0,
  /* 972 */ 'Q', 'F', '2', '8', 0,
  /* 977 */ 'V', 'F', '2', '8', 0,
  /* 982 */ 'V', 'S', 'L', '2', '8', 0,
  /* 988 */ 'R', '2', '8', 0,
  /* 992 */ 'S', '2', '8', 0,
  /* 996 */ 'V', '2', '8', 0,
  /* 1000 */ 'X', '2', '8', 0,
  /* 1004 */ 'V', 'S', 'X', '3', '8', 0,
  /* 1010 */ 'V', 'S', 'X', '4', '8', 0,
  /* 1016 */ 'V', 'S', 'X', '5', '8', 0,
  /* 1022 */ 'Q', 'F', '8', 0,
  /* 1026 */ 'V', 'F', '8', 0,
  /* 1030 */ 'V', 'S', 'L', '8', 0,
  /* 1035 */ 'Z', 'E', 'R', 'O', '8', 0,
  /* 1041 */ 'B', 'P', '8', 0,
  /* 1045 */ 'F', 'P', '8', 0,
  /* 1049 */ 'L', 'R', '8', 0,
  /* 1053 */ 'C', 'T', 'R', '8', 0,
  /* 1058 */ 'S', '8', 0,
  /* 1061 */ 'V', '8', 0,
  /* 1064 */ 'X', '8', 0,
  /* 1067 */ 'Q', 'F', '1', '9', 0,
  /* 1072 */ 'V', 'F', '1', '9', 0,
  /* 1077 */ 'V', 'S', 'L', '1', '9', 0,
  /* 1083 */ 'R', '1', '9', 0,
  /* 1087 */ 'S', '1', '9', 0,
  /* 1091 */ 'V', '1', '9', 0,
  /* 1095 */ 'X', '1', '9', 0,
  /* 1099 */ 'Q', 'F', '2', '9', 0,
  /* 1104 */ 'V', 'F', '2', '9', 0,
  /* 1109 */ 'V', 'S', 'L', '2', '9', 0,
  /* 1115 */ 'R', '2', '9', 0,
  /* 1119 */ 'S', '2', '9', 0,
  /* 1123 */ 'V', '2', '9', 0,
  /* 1127 */ 'X', '2', '9', 0,
  /* 1131 */ 'V', 'S', 'X', '3', '9', 0,
  /* 1137 */ 'V', 'S', 'X', '4', '9', 0,
  /* 1143 */ 'V', 'S', 'X', '5', '9', 0,
  /* 1149 */ 'Q', 'F', '9', 0,
  /* 1153 */ 'V', 'F', '9', 0,
  /* 1157 */ 'V', 'S', 'L', '9', 0,
  /* 1162 */ 'R', '9', 0,
  /* 1165 */ 'S', '9', 0,
  /* 1168 */ 'V', '9', 0,
  /* 1171 */ 'X', '9', 0,
  /* 1174 */ 'V', 'R', 'S', 'A', 'V', 'E', 0,
  /* 1181 */ 'R', 'M', 0,
  /* 1184 */ 'C', 'R', '0', 'U', 'N', 0,
  /* 1190 */ 'C', 'R', '1', 'U', 'N', 0,
  /* 1196 */ 'C', 'R', '2', 'U', 'N', 0,
  /* 1202 */ 'C', 'R', '3', 'U', 'N', 0,
  /* 1208 */ 'C', 'R', '4', 'U', 'N', 0,
  /* 1214 */ 'C', 'R', '5', 'U', 'N', 0,
  /* 1220 */ 'C', 'R', '6', 'U', 'N', 0,
  /* 1226 */ 'C', 'R', '7', 'U', 'N', 0,
  /* 1232 */ 'Z', 'E', 'R', 'O', 0,
  /* 1237 */ 'B', 'P', 0,
  /* 1240 */ 'F', 'P', 0,
  /* 1243 */ 'C', 'R', '0', 'E', 'Q', 0,
  /* 1249 */ 'C', 'R', '1', 'E', 'Q', 0,
  /* 1255 */ 'C', 'R', '2', 'E', 'Q', 0,
  /* 1261 */ 'C', 'R', '3', 'E', 'Q', 0,
  /* 1267 */ 'C', 'R', '4', 'E', 'Q', 0,
  /* 1273 */ 'C', 'R', '5', 'E', 'Q', 0,
  /* 1279 */ 'C', 'R', '6', 'E', 'Q', 0,
  /* 1285 */ 'C', 'R', '7', 'E', 'Q', 0,
  /* 1291 */ 'S', 'P', 'E', 'F', 'S', 'C', 'R', 0,
  /* 1299 */ 'X', 'E', 'R', 0,
  /* 1303 */ 'L', 'R', 0,
  /* 1306 */ 'C', 'T', 'R', 0,
  /* 1310 */ 'C', 'R', '0', 'G', 'T', 0,
  /* 1316 */ 'C', 'R', '1', 'G', 'T', 0,
  /* 1322 */ 'C', 'R', '2', 'G', 'T', 0,
  /* 1328 */ 'C', 'R', '3', 'G', 'T', 0,
  /* 1334 */ 'C', 'R', '4', 'G', 'T', 0,
  /* 1340 */ 'C', 'R', '5', 'G', 'T', 0,
  /* 1346 */ 'C', 'R', '6', 'G', 'T', 0,
  /* 1352 */ 'C', 'R', '7', 'G', 'T', 0,
  /* 1358 */ 'C', 'R', '0', 'L', 'T', 0,
  /* 1364 */ 'C', 'R', '1', 'L', 'T', 0,
  /* 1370 */ 'C', 'R', '2', 'L', 'T', 0,
  /* 1376 */ 'C', 'R', '3', 'L', 'T', 0,
  /* 1382 */ 'C', 'R', '4', 'L', 'T', 0,
  /* 1388 */ 'C', 'R', '5', 'L', 'T', 0,
  /* 1394 */ 'C', 'R', '6', 'L', 'T', 0,
  /* 1400 */ 'C', 'R', '7', 'L', 'T', 0,
  /* 1406 */ 'C', 'A', 'R', 'R', 'Y', 0,
};

extern const MCRegisterDesc PPCRegDesc[] = { // Descriptors
  { 4, 0, 0, 0, 0, 0 },
  { 1237, 1, 9, 1, 1281, 0 },
  { 1406, 1, 1, 1, 1281, 0 },
  { 1306, 1, 1, 1, 1281, 0 },
  { 1240, 1, 20, 1, 1281, 0 },
  { 1303, 1, 1, 1, 1281, 0 },
  { 1181, 1, 1, 1, 1281, 0 },
  { 1291, 1, 1, 1, 1281, 0 },
  { 1174, 1, 1, 1, 1281, 0 },
  { 1299, 1, 1, 1, 1031, 0 },
  { 1232, 1, 30, 1, 1031, 0 },
  { 1041, 78, 1, 0, 0, 2 },
  { 127, 13, 1, 4, 36, 6 },
  { 267, 13, 1, 4, 36, 6 },
  { 381, 13, 1, 4, 36, 6 },
  { 495, 13, 1, 4, 36, 6 },
  { 603, 13, 1, 4, 36, 6 },
  { 711, 13, 1, 4, 36, 6 },
  { 819, 13, 1, 4, 36, 6 },
  { 927, 13, 1, 4, 36, 6 },
  { 1053, 1, 1, 1, 177, 0 },
  { 115, 1, 27, 1, 177, 0 },
  { 255, 1, 27, 1, 177, 0 },
  { 369, 1, 27, 1, 177, 0 },
  { 483, 1, 27, 1, 177, 0 },
  { 591, 1, 27, 1, 177, 0 },
  { 699, 1, 27, 1, 177, 0 },
  { 807, 1, 27, 1, 177, 0 },
  { 915, 1, 27, 1, 177, 0 },
  { 1023, 1, 27, 1, 177, 0 },
  { 1150, 1, 27, 1, 177, 0 },
  { 1, 1, 27, 1, 177, 0 },
  { 141, 1, 27, 1, 177, 0 },
  { 281, 1, 27, 1, 177, 0 },
  { 395, 1, 27, 1, 177, 0 },
  { 509, 1, 27, 1, 177, 0 },
  { 617, 1, 27, 1, 177, 0 },
  { 725, 1, 27, 1, 177, 0 },
  { 833, 1, 27, 1, 177, 0 },
  { 941, 1, 27, 1, 177, 0 },
  { 1068, 1, 27, 1, 177, 0 },
  { 33, 1, 27, 1, 177, 0 },
  { 173, 1, 27, 1, 177, 0 },
  { 313, 1, 27, 1, 177, 0 },
  { 427, 1, 27, 1, 177, 0 },
  { 541, 1, 27, 1, 177, 0 },
  { 649, 1, 27, 1, 177, 0 },
  { 757, 1, 27, 1, 177, 0 },
  { 865, 1, 27, 1, 177, 0 },
  { 973, 1, 27, 1, 177, 0 },
  { 1100, 1, 27, 1, 177, 0 },
  { 65, 1, 27, 1, 177, 0 },
  { 205, 1, 27, 1, 177, 0 },
  { 1045, 66, 1, 0, 112, 2 },
  { 1049, 1, 1, 1, 352, 0 },
  { 114, 70, 1, 2, 1185, 4 },
  { 254, 70, 1, 2, 1185, 4 },
  { 368, 70, 1, 2, 1185, 4 },
  { 482, 70, 1, 2, 1185, 4 },
  { 590, 70, 1, 2, 1185, 4 },
  { 698, 70, 1, 2, 1185, 4 },
  { 806, 70, 1, 2, 1185, 4 },
  { 914, 70, 1, 2, 1185, 4 },
  { 1022, 70, 1, 2, 1185, 4 },
  { 1149, 70, 1, 2, 1185, 4 },
  { 0, 70, 1, 2, 1185, 4 },
  { 140, 70, 1, 2, 1185, 4 },
  { 280, 70, 1, 2, 1185, 4 },
  { 394, 70, 1, 2, 1185, 4 },
  { 508, 70, 1, 2, 1185, 4 },
  { 616, 70, 1, 2, 1185, 4 },
  { 724, 70, 1, 2, 1185, 4 },
  { 832, 70, 1, 2, 1185, 4 },
  { 940, 70, 1, 2, 1185, 4 },
  { 1067, 70, 1, 2, 1185, 4 },
  { 32, 70, 1, 2, 1185, 4 },
  { 172, 70, 1, 2, 1185, 4 },
  { 312, 70, 1, 2, 1185, 4 },
  { 426, 70, 1, 2, 1185, 4 },
  { 540, 70, 1, 2, 1185, 4 },
  { 648, 70, 1, 2, 1185, 4 },
  { 756, 70, 1, 2, 1185, 4 },
  { 864, 70, 1, 2, 1185, 4 },
  { 972, 70, 1, 2, 1185, 4 },
  { 1099, 70, 1, 2, 1185, 4 },
  { 64, 70, 1, 2, 1185, 4 },
  { 204, 70, 1, 2, 1185, 4 },
  { 128, 1, 24, 1, 1217, 0 },
  { 268, 1, 24, 1, 1217, 0 },
  { 382, 1, 24, 1, 1217, 0 },
  { 496, 1, 24, 1, 1217, 0 },
  { 604, 1, 24, 1, 1217, 0 },
  { 712, 1, 24, 1, 1217, 0 },
  { 820, 1, 24, 1, 1217, 0 },
  { 928, 1, 24, 1, 1217, 0 },
  { 1050, 1, 24, 1, 1217, 0 },
  { 1162, 1, 24, 1, 1217, 0 },
  { 16, 1, 24, 1, 1217, 0 },
  { 156, 1, 24, 1, 1217, 0 },
  { 296, 1, 24, 1, 1217, 0 },
  { 410, 1, 24, 1, 1217, 0 },
  { 524, 1, 24, 1, 1217, 0 },
  { 632, 1, 24, 1, 1217, 0 },
  { 740, 1, 24, 1, 1217, 0 },
  { 848, 1, 24, 1, 1217, 0 },
  { 956, 1, 24, 1, 1217, 0 },
  { 1083, 1, 24, 1, 1217, 0 },
  { 48, 1, 24, 1, 1217, 0 },
  { 188, 1, 24, 1, 1217, 0 },
  { 328, 1, 24, 1, 1217, 0 },
  { 442, 1, 24, 1, 1217, 0 },
  { 556, 1, 24, 1, 1217, 0 },
  { 664, 1, 24, 1, 1217, 0 },
  { 772, 1, 24, 1, 1217, 0 },
  { 880, 1, 24, 1, 1217, 0 },
  { 988, 1, 24, 1, 1217, 0 },
  { 1115, 1, 24, 1, 1217, 0 },
  { 80, 1, 24, 1, 1217, 0 },
  { 220, 1, 24, 1, 1217, 0 },
  { 131, 72, 1, 0, 1089, 2 },
  { 271, 72, 1, 0, 1089, 2 },
  { 385, 72, 1, 0, 1089, 2 },
  { 499, 72, 1, 0, 1089, 2 },
  { 607, 72, 1, 0, 1089, 2 },
  { 715, 72, 1, 0, 1089, 2 },
  { 823, 72, 1, 0, 1089, 2 },
  { 931, 72, 1, 0, 1089, 2 },
  { 1058, 72, 1, 0, 1089, 2 },
  { 1165, 72, 1, 0, 1089, 2 },
  { 20, 72, 1, 0, 1089, 2 },
  { 160, 72, 1, 0, 1089, 2 },
  { 300, 72, 1, 0, 1089, 2 },
  { 414, 72, 1, 0, 1089, 2 },
  { 528, 72, 1, 0, 1089, 2 },
  { 636, 72, 1, 0, 1089, 2 },
  { 744, 72, 1, 0, 1089, 2 },
  { 852, 72, 1, 0, 1089, 2 },
  { 960, 72, 1, 0, 1089, 2 },
  { 1087, 72, 1, 0, 1089, 2 },
  { 52, 72, 1, 0, 1089, 2 },
  { 192, 72, 1, 0, 1089, 2 },
  { 332, 72, 1, 0, 1089, 2 },
  { 446, 72, 1, 0, 1089, 2 },
  { 560, 72, 1, 0, 1089, 2 },
  { 668, 72, 1, 0, 1089, 2 },
  { 776, 72, 1, 0, 1089, 2 },
  { 884, 72, 1, 0, 1089, 2 },
  { 992, 72, 1, 0, 1089, 2 },
  { 1119, 72, 1, 0, 1089, 2 },
  { 84, 72, 1, 0, 1089, 2 },
  { 224, 72, 1, 0, 1089, 2 },
  { 134, 18, 1, 2, 1089, 4 },
  { 274, 18, 1, 2, 1089, 4 },
  { 388, 18, 1, 2, 1089, 4 },
  { 502, 18, 1, 2, 1089, 4 },
  { 610, 18, 1, 2, 1089, 4 },
  { 718, 18, 1, 2, 1089, 4 },
  { 826, 18, 1, 2, 1089, 4 },
  { 934, 18, 1, 2, 1089, 4 },
  { 1061, 18, 1, 2, 1089, 4 },
  { 1168, 18, 1, 2, 1089, 4 },
  { 24, 18, 1, 2, 1089, 4 },
  { 164, 18, 1, 2, 1089, 4 },
  { 304, 18, 1, 2, 1089, 4 },
  { 418, 18, 1, 2, 1089, 4 },
  { 532, 18, 1, 2, 1089, 4 },
  { 640, 18, 1, 2, 1089, 4 },
  { 748, 18, 1, 2, 1089, 4 },
  { 856, 18, 1, 2, 1089, 4 },
  { 964, 18, 1, 2, 1089, 4 },
  { 1091, 18, 1, 2, 1089, 4 },
  { 56, 18, 1, 2, 1089, 4 },
  { 196, 18, 1, 2, 1089, 4 },
  { 336, 18, 1, 2, 1089, 4 },
  { 450, 18, 1, 2, 1089, 4 },
  { 564, 18, 1, 2, 1089, 4 },
  { 672, 18, 1, 2, 1089, 4 },
  { 780, 18, 1, 2, 1089, 4 },
  { 888, 18, 1, 2, 1089, 4 },
  { 996, 18, 1, 2, 1089, 4 },
  { 1123, 18, 1, 2, 1089, 4 },
  { 88, 18, 1, 2, 1089, 4 },
  { 228, 18, 1, 2, 1089, 4 },
  { 118, 1, 72, 1, 993, 0 },
  { 258, 1, 72, 1, 993, 0 },
  { 372, 1, 72, 1, 993, 0 },
  { 486, 1, 72, 1, 993, 0 },
  { 594, 1, 72, 1, 993, 0 },
  { 702, 1, 72, 1, 993, 0 },
  { 810, 1, 72, 1, 993, 0 },
  { 918, 1, 72, 1, 993, 0 },
  { 1026, 1, 72, 1, 993, 0 },
  { 1153, 1, 72, 1, 993, 0 },
  { 5, 1, 72, 1, 993, 0 },
  { 145, 1, 72, 1, 993, 0 },
  { 285, 1, 72, 1, 993, 0 },
  { 399, 1, 72, 1, 993, 0 },
  { 513, 1, 72, 1, 993, 0 },
  { 621, 1, 72, 1, 993, 0 },
  { 729, 1, 72, 1, 993, 0 },
  { 837, 1, 72, 1, 993, 0 },
  { 945, 1, 72, 1, 993, 0 },
  { 1072, 1, 72, 1, 993, 0 },
  { 37, 1, 72, 1, 993, 0 },
  { 177, 1, 72, 1, 993, 0 },
  { 317, 1, 72, 1, 993, 0 },
  { 431, 1, 72, 1, 993, 0 },
  { 545, 1, 72, 1, 993, 0 },
  { 653, 1, 72, 1, 993, 0 },
  { 761, 1, 72, 1, 993, 0 },
  { 869, 1, 72, 1, 993, 0 },
  { 977, 1, 72, 1, 993, 0 },
  { 1104, 1, 72, 1, 993, 0 },
  { 69, 1, 72, 1, 993, 0 },
  { 209, 1, 72, 1, 993, 0 },
  { 122, 54, 1, 2, 929, 4 },
  { 262, 54, 1, 2, 929, 4 },
  { 376, 54, 1, 2, 929, 4 },
  { 490, 54, 1, 2, 929, 4 },
  { 598, 54, 1, 2, 929, 4 },
  { 706, 54, 1, 2, 929, 4 },
  { 814, 54, 1, 2, 929, 4 },
  { 922, 54, 1, 2, 929, 4 },
  { 1030, 54, 1, 2, 929, 4 },
  { 1157, 54, 1, 2, 929, 4 },
  { 10, 54, 1, 2, 929, 4 },
  { 150, 54, 1, 2, 929, 4 },
  { 290, 54, 1, 2, 929, 4 },
  { 404, 54, 1, 2, 929, 4 },
  { 518, 54, 1, 2, 929, 4 },
  { 626, 54, 1, 2, 929, 4 },
  { 734, 54, 1, 2, 929, 4 },
  { 842, 54, 1, 2, 929, 4 },
  { 950, 54, 1, 2, 929, 4 },
  { 1077, 54, 1, 2, 929, 4 },
  { 42, 54, 1, 2, 929, 4 },
  { 182, 54, 1, 2, 929, 4 },
  { 322, 54, 1, 2, 929, 4 },
  { 436, 54, 1, 2, 929, 4 },
  { 550, 54, 1, 2, 929, 4 },
  { 658, 54, 1, 2, 929, 4 },
  { 766, 54, 1, 2, 929, 4 },
  { 874, 54, 1, 2, 929, 4 },
  { 982, 54, 1, 2, 929, 4 },
  { 1109, 54, 1, 2, 929, 4 },
  { 74, 54, 1, 2, 929, 4 },
  { 214, 54, 1, 2, 929, 4 },
  { 344, 1, 1, 1, 961, 0 },
  { 458, 1, 1, 1, 961, 0 },
  { 572, 1, 1, 1, 961, 0 },
  { 680, 1, 1, 1, 961, 0 },
  { 788, 1, 1, 1, 961, 0 },
  { 896, 1, 1, 1, 961, 0 },
  { 1004, 1, 1, 1, 961, 0 },
  { 1131, 1, 1, 1, 961, 0 },
  { 96, 1, 1, 1, 961, 0 },
  { 236, 1, 1, 1, 961, 0 },
  { 350, 1, 1, 1, 961, 0 },
  { 464, 1, 1, 1, 961, 0 },
  { 578, 1, 1, 1, 961, 0 },
  { 686, 1, 1, 1, 961, 0 },
  { 794, 1, 1, 1, 961, 0 },
  { 902, 1, 1, 1, 961, 0 },
  { 1010, 1, 1, 1, 961, 0 },
  { 1137, 1, 1, 1, 961, 0 },
  { 102, 1, 1, 1, 961, 0 },
  { 242, 1, 1, 1, 961, 0 },
  { 356, 1, 1, 1, 961, 0 },
  { 470, 1, 1, 1, 961, 0 },
  { 584, 1, 1, 1, 961, 0 },
  { 692, 1, 1, 1, 961, 0 },
  { 800, 1, 1, 1, 961, 0 },
  { 908, 1, 1, 1, 961, 0 },
  { 1016, 1, 1, 1, 961, 0 },
  { 1143, 1, 1, 1, 961, 0 },
  { 108, 1, 1, 1, 961, 0 },
  { 248, 1, 1, 1, 961, 0 },
  { 362, 1, 1, 1, 961, 0 },
  { 476, 1, 1, 1, 961, 0 },
  { 137, 56, 1, 0, 833, 2 },
  { 277, 56, 1, 0, 833, 2 },
  { 391, 56, 1, 0, 833, 2 },
  { 505, 56, 1, 0, 833, 2 },
  { 613, 56, 1, 0, 833, 2 },
  { 721, 56, 1, 0, 833, 2 },
  { 829, 56, 1, 0, 833, 2 },
  { 937, 56, 1, 0, 833, 2 },
  { 1064, 56, 1, 0, 833, 2 },
  { 1171, 56, 1, 0, 833, 2 },
  { 28, 56, 1, 0, 833, 2 },
  { 168, 56, 1, 0, 833, 2 },
  { 308, 56, 1, 0, 833, 2 },
  { 422, 56, 1, 0, 833, 2 },
  { 536, 56, 1, 0, 833, 2 },
  { 644, 56, 1, 0, 833, 2 },
  { 752, 56, 1, 0, 833, 2 },
  { 860, 56, 1, 0, 833, 2 },
  { 968, 56, 1, 0, 833, 2 },
  { 1095, 56, 1, 0, 833, 2 },
  { 60, 56, 1, 0, 833, 2 },
  { 200, 56, 1, 0, 833, 2 },
  { 340, 56, 1, 0, 833, 2 },
  { 454, 56, 1, 0, 833, 2 },
  { 568, 56, 1, 0, 833, 2 },
  { 676, 56, 1, 0, 833, 2 },
  { 784, 56, 1, 0, 833, 2 },
  { 892, 56, 1, 0, 833, 2 },
  { 1000, 56, 1, 0, 833, 2 },
  { 1127, 56, 1, 0, 833, 2 },
  { 92, 56, 1, 0, 833, 2 },
  { 232, 56, 1, 0, 833, 2 },
  { 1035, 48, 1, 0, 643, 2 },
  { 1243, 1, 50, 1, 643, 0 },
  { 1249, 1, 50, 1, 612, 0 },
  { 1255, 1, 50, 1, 612, 0 },
  { 1261, 1, 50, 1, 612, 0 },
  { 1267, 1, 50, 1, 612, 0 },
  { 1273, 1, 50, 1, 612, 0 },
  { 1279, 1, 50, 1, 612, 0 },
  { 1285, 1, 50, 1, 612, 0 },
  { 1310, 1, 46, 1, 580, 0 },
  { 1316, 1, 46, 1, 580, 0 },
  { 1322, 1, 46, 1, 580, 0 },
  { 1328, 1, 46, 1, 580, 0 },
  { 1334, 1, 46, 1, 580, 0 },
  { 1340, 1, 46, 1, 580, 0 },
  { 1346, 1, 46, 1, 580, 0 },
  { 1352, 1, 46, 1, 580, 0 },
  { 1358, 1, 44, 1, 548, 0 },
  { 1364, 1, 44, 1, 548, 0 },
  { 1370, 1, 44, 1, 548, 0 },
  { 1376, 1, 44, 1, 548, 0 },
  { 1382, 1, 44, 1, 548, 0 },
  { 1388, 1, 44, 1, 548, 0 },
  { 1394, 1, 44, 1, 548, 0 },
  { 1400, 1, 44, 1, 548, 0 },
  { 1184, 1, 42, 1, 516, 0 },
  { 1190, 1, 42, 1, 516, 0 },
  { 1196, 1, 42, 1, 516, 0 },
  { 1202, 1, 42, 1, 516, 0 },
  { 1208, 1, 42, 1, 516, 0 },
  { 1214, 1, 42, 1, 516, 0 },
  { 1220, 1, 42, 1, 516, 0 },
  { 1226, 1, 42, 1, 516, 0 },
};

extern const MCPhysReg PPCRegUnitRoots[][2] = {
  { PPC::BP },
  { PPC::CARRY, PPC::XER },
  { PPC::CTR },
  { PPC::FP },
  { PPC::LR },
  { PPC::RM },
  { PPC::SPEFSCR },
  { PPC::VRSAVE },
  { PPC::ZERO },
  { PPC::CR0LT },
  { PPC::CR0GT },
  { PPC::CR0EQ },
  { PPC::CR0UN },
  { PPC::CR1LT },
  { PPC::CR1GT },
  { PPC::CR1EQ },
  { PPC::CR1UN },
  { PPC::CR2LT },
  { PPC::CR2GT },
  { PPC::CR2EQ },
  { PPC::CR2UN },
  { PPC::CR3LT },
  { PPC::CR3GT },
  { PPC::CR3EQ },
  { PPC::CR3UN },
  { PPC::CR4LT },
  { PPC::CR4GT },
  { PPC::CR4EQ },
  { PPC::CR4UN },
  { PPC::CR5LT },
  { PPC::CR5GT },
  { PPC::CR5EQ },
  { PPC::CR5UN },
  { PPC::CR6LT },
  { PPC::CR6GT },
  { PPC::CR6EQ },
  { PPC::CR6UN },
  { PPC::CR7LT },
  { PPC::CR7GT },
  { PPC::CR7EQ },
  { PPC::CR7UN },
  { PPC::CTR8 },
  { PPC::F0 },
  { PPC::F1 },
  { PPC::F2 },
  { PPC::F3 },
  { PPC::F4 },
  { PPC::F5 },
  { PPC::F6 },
  { PPC::F7 },
  { PPC::F8 },
  { PPC::F9 },
  { PPC::F10 },
  { PPC::F11 },
  { PPC::F12 },
  { PPC::F13 },
  { PPC::F14 },
  { PPC::F15 },
  { PPC::F16 },
  { PPC::F17 },
  { PPC::F18 },
  { PPC::F19 },
  { PPC::F20 },
  { PPC::F21 },
  { PPC::F22 },
  { PPC::F23 },
  { PPC::F24 },
  { PPC::F25 },
  { PPC::F26 },
  { PPC::F27 },
  { PPC::F28 },
  { PPC::F29 },
  { PPC::F30 },
  { PPC::F31 },
  { PPC::LR8 },
  { PPC::R0 },
  { PPC::R1 },
  { PPC::R2 },
  { PPC::R3 },
  { PPC::R4 },
  { PPC::R5 },
  { PPC::R6 },
  { PPC::R7 },
  { PPC::R8 },
  { PPC::R9 },
  { PPC::R10 },
  { PPC::R11 },
  { PPC::R12 },
  { PPC::R13 },
  { PPC::R14 },
  { PPC::R15 },
  { PPC::R16 },
  { PPC::R17 },
  { PPC::R18 },
  { PPC::R19 },
  { PPC::R20 },
  { PPC::R21 },
  { PPC::R22 },
  { PPC::R23 },
  { PPC::R24 },
  { PPC::R25 },
  { PPC::R26 },
  { PPC::R27 },
  { PPC::R28 },
  { PPC::R29 },
  { PPC::R30 },
  { PPC::R31 },
  { PPC::VF0 },
  { PPC::VF1 },
  { PPC::VF2 },
  { PPC::VF3 },
  { PPC::VF4 },
  { PPC::VF5 },
  { PPC::VF6 },
  { PPC::VF7 },
  { PPC::VF8 },
  { PPC::VF9 },
  { PPC::VF10 },
  { PPC::VF11 },
  { PPC::VF12 },
  { PPC::VF13 },
  { PPC::VF14 },
  { PPC::VF15 },
  { PPC::VF16 },
  { PPC::VF17 },
  { PPC::VF18 },
  { PPC::VF19 },
  { PPC::VF20 },
  { PPC::VF21 },
  { PPC::VF22 },
  { PPC::VF23 },
  { PPC::VF24 },
  { PPC::VF25 },
  { PPC::VF26 },
  { PPC::VF27 },
  { PPC::VF28 },
  { PPC::VF29 },
  { PPC::VF30 },
  { PPC::VF31 },
  { PPC::VSX32 },
  { PPC::VSX33 },
  { PPC::VSX34 },
  { PPC::VSX35 },
  { PPC::VSX36 },
  { PPC::VSX37 },
  { PPC::VSX38 },
  { PPC::VSX39 },
  { PPC::VSX40 },
  { PPC::VSX41 },
  { PPC::VSX42 },
  { PPC::VSX43 },
  { PPC::VSX44 },
  { PPC::VSX45 },
  { PPC::VSX46 },
  { PPC::VSX47 },
  { PPC::VSX48 },
  { PPC::VSX49 },
  { PPC::VSX50 },
  { PPC::VSX51 },
  { PPC::VSX52 },
  { PPC::VSX53 },
  { PPC::VSX54 },
  { PPC::VSX55 },
  { PPC::VSX56 },
  { PPC::VSX57 },
  { PPC::VSX58 },
  { PPC::VSX59 },
  { PPC::VSX60 },
  { PPC::VSX61 },
  { PPC::VSX62 },
  { PPC::VSX63 },
};

namespace {     // Register classes...
  // VSSRC Register Class...
  const MCPhysReg VSSRC[] = {
    PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, PPC::VF31, PPC::VF30, PPC::VF29, PPC::VF28, PPC::VF27, PPC::VF26, PPC::VF25, PPC::VF24, PPC::VF23, PPC::VF22, PPC::VF21, PPC::VF20, 
  };

  // VSSRC Bit set.
  const uint8_t VSSRCBits[] = {
    0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // GPRC Register Class...
  const MCPhysReg GPRC[] = {
    PPC::R2, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R0, PPC::R1, PPC::FP, PPC::BP, 
  };

  // GPRC Bit set.
  const uint8_t GPRCBits[] = {
    0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // GPRC_NOR0 Register Class...
  const MCPhysReg GPRC_NOR0[] = {
    PPC::R2, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, PPC::ZERO, 
  };

  // GPRC_NOR0 Bit set.
  const uint8_t GPRC_NOR0Bits[] = {
    0x12, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
  };

  // GPRC_and_GPRC_NOR0 Register Class...
  const MCPhysReg GPRC_and_GPRC_NOR0[] = {
    PPC::R2, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, 
  };

  // GPRC_and_GPRC_NOR0 Bit set.
  const uint8_t GPRC_and_GPRC_NOR0Bits[] = {
    0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
  };

  // CRBITRC Register Class...
  const MCPhysReg CRBITRC[] = {
    PPC::CR2LT, PPC::CR2GT, PPC::CR2EQ, PPC::CR2UN, PPC::CR3LT, PPC::CR3GT, PPC::CR3EQ, PPC::CR3UN, PPC::CR4LT, PPC::CR4GT, PPC::CR4EQ, PPC::CR4UN, PPC::CR5LT, PPC::CR5GT, PPC::CR5EQ, PPC::CR5UN, PPC::CR6LT, PPC::CR6GT, PPC::CR6EQ, PPC::CR6UN, PPC::CR7LT, PPC::CR7GT, PPC::CR7EQ, PPC::CR7UN, PPC::CR1LT, PPC::CR1GT, PPC::CR1EQ, PPC::CR1UN, PPC::CR0LT, PPC::CR0GT, PPC::CR0EQ, PPC::CR0UN, 
  };

  // CRBITRC Bit set.
  const uint8_t CRBITRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
  };

  // F4RC Register Class...
  const MCPhysReg F4RC[] = {
    PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, 
  };

  // F4RC Bit set.
  const uint8_t F4RCBits[] = {
    0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 
  };

  // CRRC Register Class...
  const MCPhysReg CRRC[] = {
    PPC::CR0, PPC::CR1, PPC::CR5, PPC::CR6, PPC::CR7, PPC::CR2, PPC::CR3, PPC::CR4, 
  };

  // CRRC Bit set.
  const uint8_t CRRCBits[] = {
    0x00, 0xf0, 0x0f, 
  };

  // CARRYRC Register Class...
  const MCPhysReg CARRYRC[] = {
    PPC::CARRY, PPC::XER, 
  };

  // CARRYRC Bit set.
  const uint8_t CARRYRCBits[] = {
    0x04, 0x02, 
  };

  // CTRRC Register Class...
  const MCPhysReg CTRRC[] = {
    PPC::CTR, 
  };

  // CTRRC Bit set.
  const uint8_t CTRRCBits[] = {
    0x08, 
  };

  // VRSAVERC Register Class...
  const MCPhysReg VRSAVERC[] = {
    PPC::VRSAVE, 
  };

  // VRSAVERC Bit set.
  const uint8_t VRSAVERCBits[] = {
    0x00, 0x01, 
  };

  // SPILLTOVSRRC Register Class...
  const MCPhysReg SPILLTOVSRRC[] = {
    PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X0, PPC::X1, PPC::FP8, PPC::BP8, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, 
  };

  // SPILLTOVSRRC Bit set.
  const uint8_t SPILLTOVSRRCBits[] = {
    0x00, 0x08, 0xe0, 0xff, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // VSFRC Register Class...
  const MCPhysReg VSFRC[] = {
    PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, PPC::VF31, PPC::VF30, PPC::VF29, PPC::VF28, PPC::VF27, PPC::VF26, PPC::VF25, PPC::VF24, PPC::VF23, PPC::VF22, PPC::VF21, PPC::VF20, 
  };

  // VSFRC Bit set.
  const uint8_t VSFRCBits[] = {
    0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // G8RC Register Class...
  const MCPhysReg G8RC[] = {
    PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X0, PPC::X1, PPC::FP8, PPC::BP8, 
  };

  // G8RC Bit set.
  const uint8_t G8RCBits[] = {
    0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // G8RC_NOX0 Register Class...
  const MCPhysReg G8RC_NOX0[] = {
    PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, PPC::ZERO8, 
  };

  // G8RC_NOX0 Bit set.
  const uint8_t G8RC_NOX0Bits[] = {
    0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
  };

  // SPILLTOVSRRC_and_VSFRC Register Class...
  const MCPhysReg SPILLTOVSRRC_and_VSFRC[] = {
    PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, 
  };

  // SPILLTOVSRRC_and_VSFRC Bit set.
  const uint8_t SPILLTOVSRRC_and_VSFRCBits[] = {
    0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 
  };

  // G8RC_and_G8RC_NOX0 Register Class...
  const MCPhysReg G8RC_and_G8RC_NOX0[] = {
    PPC::X2, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, 
  };

  // G8RC_and_G8RC_NOX0 Bit set.
  const uint8_t G8RC_and_G8RC_NOX0Bits[] = {
    0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
  };

  // F8RC Register Class...
  const MCPhysReg F8RC[] = {
    PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F31, PPC::F30, PPC::F29, PPC::F28, PPC::F27, PPC::F26, PPC::F25, PPC::F24, PPC::F23, PPC::F22, PPC::F21, PPC::F20, PPC::F19, PPC::F18, PPC::F17, PPC::F16, PPC::F15, PPC::F14, 
  };

  // F8RC Bit set.
  const uint8_t F8RCBits[] = {
    0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 
  };

  // SPERC Register Class...
  const MCPhysReg SPERC[] = {
    PPC::S2, PPC::S3, PPC::S4, PPC::S5, PPC::S6, PPC::S7, PPC::S8, PPC::S9, PPC::S10, PPC::S11, PPC::S12, PPC::S30, PPC::S29, PPC::S28, PPC::S27, PPC::S26, PPC::S25, PPC::S24, PPC::S23, PPC::S22, PPC::S21, PPC::S20, PPC::S19, PPC::S18, PPC::S17, PPC::S16, PPC::S15, PPC::S14, PPC::S13, PPC::S31, PPC::S0, PPC::S1, 
  };

  // SPERC Bit set.
  const uint8_t SPERCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // VFRC Register Class...
  const MCPhysReg VFRC[] = {
    PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, PPC::VF31, PPC::VF30, PPC::VF29, PPC::VF28, PPC::VF27, PPC::VF26, PPC::VF25, PPC::VF24, PPC::VF23, PPC::VF22, PPC::VF21, PPC::VF20, 
  };

  // VFRC Bit set.
  const uint8_t VFRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // SPERC_with_sub_32_in_GPRC_NOR0 Register Class...
  const MCPhysReg SPERC_with_sub_32_in_GPRC_NOR0[] = {
    PPC::S2, PPC::S3, PPC::S4, PPC::S5, PPC::S6, PPC::S7, PPC::S8, PPC::S9, PPC::S10, PPC::S11, PPC::S12, PPC::S30, PPC::S29, PPC::S28, PPC::S27, PPC::S26, PPC::S25, PPC::S24, PPC::S23, PPC::S22, PPC::S21, PPC::S20, PPC::S19, PPC::S18, PPC::S17, PPC::S16, PPC::S15, PPC::S14, PPC::S13, PPC::S31, PPC::S1, 
  };

  // SPERC_with_sub_32_in_GPRC_NOR0 Bit set.
  const uint8_t SPERC_with_sub_32_in_GPRC_NOR0Bits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
  };

  // SPILLTOVSRRC_and_VFRC Register Class...
  const MCPhysReg SPILLTOVSRRC_and_VFRC[] = {
    PPC::VF2, PPC::VF3, PPC::VF4, PPC::VF5, PPC::VF0, PPC::VF1, PPC::VF6, PPC::VF7, PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, 
  };

  // SPILLTOVSRRC_and_VFRC Bit set.
  const uint8_t SPILLTOVSRRC_and_VFRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 
  };

  // SPILLTOVSRRC_and_F4RC Register Class...
  const MCPhysReg SPILLTOVSRRC_and_F4RC[] = {
    PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, 
  };

  // SPILLTOVSRRC_and_F4RC Bit set.
  const uint8_t SPILLTOVSRRC_and_F4RCBits[] = {
    0x00, 0x00, 0xe0, 0xff, 0x07, 
  };

  // CTRRC8 Register Class...
  const MCPhysReg CTRRC8[] = {
    PPC::CTR8, 
  };

  // CTRRC8 Bit set.
  const uint8_t CTRRC8Bits[] = {
    0x00, 0x00, 0x10, 
  };

  // VSRC Register Class...
  const MCPhysReg VSRC[] = {
    PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::VSL31, PPC::VSL30, PPC::VSL29, PPC::VSL28, PPC::VSL27, PPC::VSL26, PPC::VSL25, PPC::VSL24, PPC::VSL23, PPC::VSL22, PPC::VSL21, PPC::VSL20, PPC::VSL19, PPC::VSL18, PPC::VSL17, PPC::VSL16, PPC::VSL15, PPC::VSL14, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V31, PPC::V30, PPC::V29, PPC::V28, PPC::V27, PPC::V26, PPC::V25, PPC::V24, PPC::V23, PPC::V22, PPC::V21, PPC::V20, 
  };

  // VSRC Bit set.
  const uint8_t VSRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // VSRC_with_sub_64_in_SPILLTOVSRRC Register Class...
  const MCPhysReg VSRC_with_sub_64_in_SPILLTOVSRRC[] = {
    PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, 
  };

  // VSRC_with_sub_64_in_SPILLTOVSRRC Bit set.
  const uint8_t VSRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 
  };

  // QSRC Register Class...
  const MCPhysReg QSRC[] = {
    PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, PPC::QF31, PPC::QF30, PPC::QF29, PPC::QF28, PPC::QF27, PPC::QF26, PPC::QF25, PPC::QF24, PPC::QF23, PPC::QF22, PPC::QF21, PPC::QF20, PPC::QF19, PPC::QF18, PPC::QF17, PPC::QF16, PPC::QF15, PPC::QF14, 
  };

  // QSRC Bit set.
  const uint8_t QSRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // VRRC Register Class...
  const MCPhysReg VRRC[] = {
    PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V31, PPC::V30, PPC::V29, PPC::V28, PPC::V27, PPC::V26, PPC::V25, PPC::V24, PPC::V23, PPC::V22, PPC::V21, PPC::V20, 
  };

  // VRRC Bit set.
  const uint8_t VRRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // VSLRC Register Class...
  const MCPhysReg VSLRC[] = {
    PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::VSL31, PPC::VSL30, PPC::VSL29, PPC::VSL28, PPC::VSL27, PPC::VSL26, PPC::VSL25, PPC::VSL24, PPC::VSL23, PPC::VSL22, PPC::VSL21, PPC::VSL20, PPC::VSL19, PPC::VSL18, PPC::VSL17, PPC::VSL16, PPC::VSL15, PPC::VSL14, 
  };

  // VSLRC Bit set.
  const uint8_t VSLRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // VRRC_with_sub_64_in_SPILLTOVSRRC Register Class...
  const MCPhysReg VRRC_with_sub_64_in_SPILLTOVSRRC[] = {
    PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V0, PPC::V1, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, 
  };

  // VRRC_with_sub_64_in_SPILLTOVSRRC Bit set.
  const uint8_t VRRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 
  };

  // QSRC_with_sub_64_in_SPILLTOVSRRC Register Class...
  const MCPhysReg QSRC_with_sub_64_in_SPILLTOVSRRC[] = {
    PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, 
  };

  // QSRC_with_sub_64_in_SPILLTOVSRRC Bit set.
  const uint8_t QSRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 
  };

  // VSLRC_with_sub_64_in_SPILLTOVSRRC Register Class...
  const MCPhysReg VSLRC_with_sub_64_in_SPILLTOVSRRC[] = {
    PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, 
  };

  // VSLRC_with_sub_64_in_SPILLTOVSRRC Bit set.
  const uint8_t VSLRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 
  };

  // QBRC Register Class...
  const MCPhysReg QBRC[] = {
    PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, PPC::QF31, PPC::QF30, PPC::QF29, PPC::QF28, PPC::QF27, PPC::QF26, PPC::QF25, PPC::QF24, PPC::QF23, PPC::QF22, PPC::QF21, PPC::QF20, PPC::QF19, PPC::QF18, PPC::QF17, PPC::QF16, PPC::QF15, PPC::QF14, 
  };

  // QBRC Bit set.
  const uint8_t QBRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // QFRC Register Class...
  const MCPhysReg QFRC[] = {
    PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, PPC::QF31, PPC::QF30, PPC::QF29, PPC::QF28, PPC::QF27, PPC::QF26, PPC::QF25, PPC::QF24, PPC::QF23, PPC::QF22, PPC::QF21, PPC::QF20, PPC::QF19, PPC::QF18, PPC::QF17, PPC::QF16, PPC::QF15, PPC::QF14, 
  };

  // QFRC Bit set.
  const uint8_t QFRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // QBRC_with_sub_64_in_SPILLTOVSRRC Register Class...
  const MCPhysReg QBRC_with_sub_64_in_SPILLTOVSRRC[] = {
    PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13, 
  };

  // QBRC_with_sub_64_in_SPILLTOVSRRC Bit set.
  const uint8_t QBRC_with_sub_64_in_SPILLTOVSRRCBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 
  };

} // end anonymous namespace

extern const char PPCRegClassStrings[] = {
  /* 0 */ 'G', 'P', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'C', '_', 'N', 'O', 'R', '0', 0,
  /* 19 */ 'S', 'P', 'E', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'C', '_', 'N', 'O', 'R', '0', 0,
  /* 50 */ 'G', '8', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', '8', 'R', 'C', '_', 'N', 'O', 'X', '0', 0,
  /* 69 */ 'C', 'T', 'R', 'R', 'C', '8', 0,
  /* 76 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'F', '4', 'R', 'C', 0,
  /* 98 */ 'F', '8', 'R', 'C', 0,
  /* 103 */ 'G', '8', 'R', 'C', 0,
  /* 108 */ 'Q', 'B', 'R', 'C', 0,
  /* 113 */ 'S', 'P', 'E', 'R', 'C', 0,
  /* 119 */ 'V', 'R', 'S', 'A', 'V', 'E', 'R', 'C', 0,
  /* 128 */ 'Q', 'F', 'R', 'C', 0,
  /* 133 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'V', 'S', 'F', 'R', 'C', 0,
  /* 156 */ 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', '_', 'a', 'n', 'd', '_', 'V', 'F', 'R', 'C', 0,
  /* 178 */ 'V', 'S', 'L', 'R', 'C', 0,
  /* 184 */ 'G', 'P', 'R', 'C', 0,
  /* 189 */ 'C', 'R', 'R', 'C', 0,
  /* 194 */ 'Q', 'B', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0,
  /* 227 */ 'V', 'S', 'L', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0,
  /* 261 */ 'V', 'R', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0,
  /* 294 */ 'Q', 'S', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0,
  /* 327 */ 'V', 'S', 'R', 'C', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'S', 'P', 'I', 'L', 'L', 'T', 'O', 'V', 'S', 'R', 'R', 'C', 0,
  /* 360 */ 'C', 'T', 'R', 'R', 'C', 0,
  /* 366 */ 'V', 'R', 'R', 'C', 0,
  /* 371 */ 'Q', 'S', 'R', 'C', 0,
  /* 376 */ 'V', 'S', 'S', 'R', 'C', 0,
  /* 382 */ 'V', 'S', 'R', 'C', 0,
  /* 387 */ 'C', 'R', 'B', 'I', 'T', 'R', 'C', 0,
  /* 395 */ 'C', 'A', 'R', 'R', 'Y', 'R', 'C', 0,
};

extern const MCRegisterClass PPCMCRegisterClasses[] = {
  { VSSRC, VSSRCBits, 376, 64, sizeof(VSSRCBits), PPC::VSSRCRegClassID, 1, true },
  { GPRC, GPRCBits, 184, 34, sizeof(GPRCBits), PPC::GPRCRegClassID, 1, true },
  { GPRC_NOR0, GPRC_NOR0Bits, 9, 34, sizeof(GPRC_NOR0Bits), PPC::GPRC_NOR0RegClassID, 1, true },
  { GPRC_and_GPRC_NOR0, GPRC_and_GPRC_NOR0Bits, 0, 33, sizeof(GPRC_and_GPRC_NOR0Bits), PPC::GPRC_and_GPRC_NOR0RegClassID, 1, true },
  { CRBITRC, CRBITRCBits, 387, 32, sizeof(CRBITRCBits), PPC::CRBITRCRegClassID, 1, true },
  { F4RC, F4RCBits, 93, 32, sizeof(F4RCBits), PPC::F4RCRegClassID, 1, true },
  { CRRC, CRRCBits, 189, 8, sizeof(CRRCBits), PPC::CRRCRegClassID, 1, true },
  { CARRYRC, CARRYRCBits, 395, 2, sizeof(CARRYRCBits), PPC::CARRYRCRegClassID, -1, true },
  { CTRRC, CTRRCBits, 360, 1, sizeof(CTRRCBits), PPC::CTRRCRegClassID, 1, false },
  { VRSAVERC, VRSAVERCBits, 119, 1, sizeof(VRSAVERCBits), PPC::VRSAVERCRegClassID, 1, true },
  { SPILLTOVSRRC, SPILLTOVSRRCBits, 214, 68, sizeof(SPILLTOVSRRCBits), PPC::SPILLTOVSRRCRegClassID, 1, true },
  { VSFRC, VSFRCBits, 150, 64, sizeof(VSFRCBits), PPC::VSFRCRegClassID, 1, true },
  { G8RC, G8RCBits, 103, 34, sizeof(G8RCBits), PPC::G8RCRegClassID, 1, true },
  { G8RC_NOX0, G8RC_NOX0Bits, 59, 34, sizeof(G8RC_NOX0Bits), PPC::G8RC_NOX0RegClassID, 1, true },
  { SPILLTOVSRRC_and_VSFRC, SPILLTOVSRRC_and_VSFRCBits, 133, 34, sizeof(SPILLTOVSRRC_and_VSFRCBits), PPC::SPILLTOVSRRC_and_VSFRCRegClassID, 1, true },
  { G8RC_and_G8RC_NOX0, G8RC_and_G8RC_NOX0Bits, 50, 33, sizeof(G8RC_and_G8RC_NOX0Bits), PPC::G8RC_and_G8RC_NOX0RegClassID, 1, true },
  { F8RC, F8RCBits, 98, 32, sizeof(F8RCBits), PPC::F8RCRegClassID, 1, true },
  { SPERC, SPERCBits, 113, 32, sizeof(SPERCBits), PPC::SPERCRegClassID, 1, true },
  { VFRC, VFRCBits, 173, 32, sizeof(VFRCBits), PPC::VFRCRegClassID, 1, true },
  { SPERC_with_sub_32_in_GPRC_NOR0, SPERC_with_sub_32_in_GPRC_NOR0Bits, 19, 31, sizeof(SPERC_with_sub_32_in_GPRC_NOR0Bits), PPC::SPERC_with_sub_32_in_GPRC_NOR0RegClassID, 1, true },
  { SPILLTOVSRRC_and_VFRC, SPILLTOVSRRC_and_VFRCBits, 156, 20, sizeof(SPILLTOVSRRC_and_VFRCBits), PPC::SPILLTOVSRRC_and_VFRCRegClassID, 1, true },
  { SPILLTOVSRRC_and_F4RC, SPILLTOVSRRC_and_F4RCBits, 76, 14, sizeof(SPILLTOVSRRC_and_F4RCBits), PPC::SPILLTOVSRRC_and_F4RCRegClassID, 1, true },
  { CTRRC8, CTRRC8Bits, 69, 1, sizeof(CTRRC8Bits), PPC::CTRRC8RegClassID, 1, false },
  { VSRC, VSRCBits, 382, 64, sizeof(VSRCBits), PPC::VSRCRegClassID, 1, true },
  { VSRC_with_sub_64_in_SPILLTOVSRRC, VSRC_with_sub_64_in_SPILLTOVSRRCBits, 327, 34, sizeof(VSRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
  { QSRC, QSRCBits, 371, 32, sizeof(QSRCBits), PPC::QSRCRegClassID, 1, true },
  { VRRC, VRRCBits, 366, 32, sizeof(VRRCBits), PPC::VRRCRegClassID, 1, true },
  { VSLRC, VSLRCBits, 178, 32, sizeof(VSLRCBits), PPC::VSLRCRegClassID, 1, true },
  { VRRC_with_sub_64_in_SPILLTOVSRRC, VRRC_with_sub_64_in_SPILLTOVSRRCBits, 261, 20, sizeof(VRRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
  { QSRC_with_sub_64_in_SPILLTOVSRRC, QSRC_with_sub_64_in_SPILLTOVSRRCBits, 294, 14, sizeof(QSRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
  { VSLRC_with_sub_64_in_SPILLTOVSRRC, VSLRC_with_sub_64_in_SPILLTOVSRRCBits, 227, 14, sizeof(VSLRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
  { QBRC, QBRCBits, 108, 32, sizeof(QBRCBits), PPC::QBRCRegClassID, 1, true },
  { QFRC, QFRCBits, 128, 32, sizeof(QFRCBits), PPC::QFRCRegClassID, 1, true },
  { QBRC_with_sub_64_in_SPILLTOVSRRC, QBRC_with_sub_64_in_SPILLTOVSRRCBits, 194, 14, sizeof(QBRC_with_sub_64_in_SPILLTOVSRRCBits), PPC::QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID, 1, true },
};

// PPC Dwarf<->LLVM register mappings.
extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[] = {
  { 0U, PPC::X0 },
  { 1U, PPC::X1 },
  { 2U, PPC::X2 },
  { 3U, PPC::X3 },
  { 4U, PPC::X4 },
  { 5U, PPC::X5 },
  { 6U, PPC::X6 },
  { 7U, PPC::X7 },
  { 8U, PPC::X8 },
  { 9U, PPC::X9 },
  { 10U, PPC::X10 },
  { 11U, PPC::X11 },
  { 12U, PPC::X12 },
  { 13U, PPC::X13 },
  { 14U, PPC::X14 },
  { 15U, PPC::X15 },
  { 16U, PPC::X16 },
  { 17U, PPC::X17 },
  { 18U, PPC::X18 },
  { 19U, PPC::X19 },
  { 20U, PPC::X20 },
  { 21U, PPC::X21 },
  { 22U, PPC::X22 },
  { 23U, PPC::X23 },
  { 24U, PPC::X24 },
  { 25U, PPC::X25 },
  { 26U, PPC::X26 },
  { 27U, PPC::X27 },
  { 28U, PPC::X28 },
  { 29U, PPC::X29 },
  { 30U, PPC::X30 },
  { 31U, PPC::X31 },
  { 32U, PPC::QF0 },
  { 33U, PPC::QF1 },
  { 34U, PPC::QF2 },
  { 35U, PPC::QF3 },
  { 36U, PPC::QF4 },
  { 37U, PPC::QF5 },
  { 38U, PPC::QF6 },
  { 39U, PPC::QF7 },
  { 40U, PPC::QF8 },
  { 41U, PPC::QF9 },
  { 42U, PPC::QF10 },
  { 43U, PPC::QF11 },
  { 44U, PPC::QF12 },
  { 45U, PPC::QF13 },
  { 46U, PPC::QF14 },
  { 47U, PPC::QF15 },
  { 48U, PPC::QF16 },
  { 49U, PPC::QF17 },
  { 50U, PPC::QF18 },
  { 51U, PPC::QF19 },
  { 52U, PPC::QF20 },
  { 53U, PPC::QF21 },
  { 54U, PPC::QF22 },
  { 55U, PPC::QF23 },
  { 56U, PPC::QF24 },
  { 57U, PPC::QF25 },
  { 58U, PPC::QF26 },
  { 59U, PPC::QF27 },
  { 60U, PPC::QF28 },
  { 61U, PPC::QF29 },
  { 62U, PPC::QF30 },
  { 63U, PPC::QF31 },
  { 65U, PPC::LR8 },
  { 66U, PPC::CTR8 },
  { 68U, PPC::CR0 },
  { 69U, PPC::CR1 },
  { 70U, PPC::CR2 },
  { 71U, PPC::CR3 },
  { 72U, PPC::CR4 },
  { 73U, PPC::CR5 },
  { 74U, PPC::CR6 },
  { 75U, PPC::CR7 },
  { 76U, PPC::XER },
  { 77U, PPC::VF0 },
  { 78U, PPC::VF1 },
  { 79U, PPC::VF2 },
  { 80U, PPC::VF3 },
  { 81U, PPC::VF4 },
  { 82U, PPC::VF5 },
  { 83U, PPC::VF6 },
  { 84U, PPC::VF7 },
  { 85U, PPC::VF8 },
  { 86U, PPC::VF9 },
  { 87U, PPC::VF10 },
  { 88U, PPC::VF11 },
  { 89U, PPC::VF12 },
  { 90U, PPC::VF13 },
  { 91U, PPC::VF14 },
  { 92U, PPC::VF15 },
  { 93U, PPC::VF16 },
  { 94U, PPC::VF17 },
  { 95U, PPC::VF18 },
  { 96U, PPC::VF19 },
  { 97U, PPC::VF20 },
  { 98U, PPC::VF21 },
  { 99U, PPC::VF22 },
  { 100U, PPC::VF23 },
  { 101U, PPC::VF24 },
  { 102U, PPC::VF25 },
  { 103U, PPC::VF26 },
  { 104U, PPC::VF27 },
  { 105U, PPC::VF28 },
  { 106U, PPC::VF29 },
  { 107U, PPC::VF30 },
  { 108U, PPC::VF31 },
  { 109U, PPC::VRSAVE },
  { 612U, PPC::SPEFSCR },
  { 1200U, PPC::S0 },
  { 1201U, PPC::S1 },
  { 1202U, PPC::S2 },
  { 1203U, PPC::S3 },
  { 1204U, PPC::S4 },
  { 1205U, PPC::S5 },
  { 1206U, PPC::S6 },
  { 1207U, PPC::S7 },
  { 1208U, PPC::S8 },
  { 1209U, PPC::S9 },
  { 1210U, PPC::S10 },
  { 1211U, PPC::S11 },
  { 1212U, PPC::S12 },
  { 1213U, PPC::S13 },
  { 1214U, PPC::S14 },
  { 1215U, PPC::S15 },
  { 1216U, PPC::S16 },
  { 1217U, PPC::S17 },
  { 1218U, PPC::S18 },
  { 1219U, PPC::S19 },
  { 1220U, PPC::S20 },
  { 1221U, PPC::S21 },
  { 1222U, PPC::S22 },
  { 1223U, PPC::S23 },
  { 1224U, PPC::S24 },
  { 1225U, PPC::S25 },
  { 1226U, PPC::S26 },
  { 1227U, PPC::S27 },
  { 1228U, PPC::S28 },
  { 1229U, PPC::S29 },
  { 1230U, PPC::S30 },
  { 1231U, PPC::S31 },
};
extern const unsigned PPCDwarfFlavour0Dwarf2LSize = array_lengthof(PPCDwarfFlavour0Dwarf2L);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[] = {
  { 0U, PPC::R0 },
  { 1U, PPC::R1 },
  { 2U, PPC::R2 },
  { 3U, PPC::R3 },
  { 4U, PPC::R4 },
  { 5U, PPC::R5 },
  { 6U, PPC::R6 },
  { 7U, PPC::R7 },
  { 8U, PPC::R8 },
  { 9U, PPC::R9 },
  { 10U, PPC::R10 },
  { 11U, PPC::R11 },
  { 12U, PPC::R12 },
  { 13U, PPC::R13 },
  { 14U, PPC::R14 },
  { 15U, PPC::R15 },
  { 16U, PPC::R16 },
  { 17U, PPC::R17 },
  { 18U, PPC::R18 },
  { 19U, PPC::R19 },
  { 20U, PPC::R20 },
  { 21U, PPC::R21 },
  { 22U, PPC::R22 },
  { 23U, PPC::R23 },
  { 24U, PPC::R24 },
  { 25U, PPC::R25 },
  { 26U, PPC::R26 },
  { 27U, PPC::R27 },
  { 28U, PPC::R28 },
  { 29U, PPC::R29 },
  { 30U, PPC::R30 },
  { 31U, PPC::R31 },
  { 32U, PPC::QF0 },
  { 33U, PPC::QF1 },
  { 34U, PPC::QF2 },
  { 35U, PPC::QF3 },
  { 36U, PPC::QF4 },
  { 37U, PPC::QF5 },
  { 38U, PPC::QF6 },
  { 39U, PPC::QF7 },
  { 40U, PPC::QF8 },
  { 41U, PPC::QF9 },
  { 42U, PPC::QF10 },
  { 43U, PPC::QF11 },
  { 44U, PPC::QF12 },
  { 45U, PPC::QF13 },
  { 46U, PPC::QF14 },
  { 47U, PPC::QF15 },
  { 48U, PPC::QF16 },
  { 49U, PPC::QF17 },
  { 50U, PPC::QF18 },
  { 51U, PPC::QF19 },
  { 52U, PPC::QF20 },
  { 53U, PPC::QF21 },
  { 54U, PPC::QF22 },
  { 55U, PPC::QF23 },
  { 56U, PPC::QF24 },
  { 57U, PPC::QF25 },
  { 58U, PPC::QF26 },
  { 59U, PPC::QF27 },
  { 60U, PPC::QF28 },
  { 61U, PPC::QF29 },
  { 62U, PPC::QF30 },
  { 63U, PPC::QF31 },
  { 65U, PPC::LR },
  { 66U, PPC::CTR },
  { 68U, PPC::CR0 },
  { 69U, PPC::CR1 },
  { 70U, PPC::CR2 },
  { 71U, PPC::CR3 },
  { 72U, PPC::CR4 },
  { 73U, PPC::CR5 },
  { 74U, PPC::CR6 },
  { 75U, PPC::CR7 },
  { 77U, PPC::VF0 },
  { 78U, PPC::VF1 },
  { 79U, PPC::VF2 },
  { 80U, PPC::VF3 },
  { 81U, PPC::VF4 },
  { 82U, PPC::VF5 },
  { 83U, PPC::VF6 },
  { 84U, PPC::VF7 },
  { 85U, PPC::VF8 },
  { 86U, PPC::VF9 },
  { 87U, PPC::VF10 },
  { 88U, PPC::VF11 },
  { 89U, PPC::VF12 },
  { 90U, PPC::VF13 },
  { 91U, PPC::VF14 },
  { 92U, PPC::VF15 },
  { 93U, PPC::VF16 },
  { 94U, PPC::VF17 },
  { 95U, PPC::VF18 },
  { 96U, PPC::VF19 },
  { 97U, PPC::VF20 },
  { 98U, PPC::VF21 },
  { 99U, PPC::VF22 },
  { 100U, PPC::VF23 },
  { 101U, PPC::VF24 },
  { 102U, PPC::VF25 },
  { 103U, PPC::VF26 },
  { 104U, PPC::VF27 },
  { 105U, PPC::VF28 },
  { 106U, PPC::VF29 },
  { 107U, PPC::VF30 },
  { 108U, PPC::VF31 },
  { 112U, PPC::SPEFSCR },
  { 1200U, PPC::S0 },
  { 1201U, PPC::S1 },
  { 1202U, PPC::S2 },
  { 1203U, PPC::S3 },
  { 1204U, PPC::S4 },
  { 1205U, PPC::S5 },
  { 1206U, PPC::S6 },
  { 1207U, PPC::S7 },
  { 1208U, PPC::S8 },
  { 1209U, PPC::S9 },
  { 1210U, PPC::S10 },
  { 1211U, PPC::S11 },
  { 1212U, PPC::S12 },
  { 1213U, PPC::S13 },
  { 1214U, PPC::S14 },
  { 1215U, PPC::S15 },
  { 1216U, PPC::S16 },
  { 1217U, PPC::S17 },
  { 1218U, PPC::S18 },
  { 1219U, PPC::S19 },
  { 1220U, PPC::S20 },
  { 1221U, PPC::S21 },
  { 1222U, PPC::S22 },
  { 1223U, PPC::S23 },
  { 1224U, PPC::S24 },
  { 1225U, PPC::S25 },
  { 1226U, PPC::S26 },
  { 1227U, PPC::S27 },
  { 1228U, PPC::S28 },
  { 1229U, PPC::S29 },
  { 1230U, PPC::S30 },
  { 1231U, PPC::S31 },
};
extern const unsigned PPCDwarfFlavour1Dwarf2LSize = array_lengthof(PPCDwarfFlavour1Dwarf2L);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[] = {
  { 0U, PPC::X0 },
  { 1U, PPC::X1 },
  { 2U, PPC::X2 },
  { 3U, PPC::X3 },
  { 4U, PPC::X4 },
  { 5U, PPC::X5 },
  { 6U, PPC::X6 },
  { 7U, PPC::X7 },
  { 8U, PPC::X8 },
  { 9U, PPC::X9 },
  { 10U, PPC::X10 },
  { 11U, PPC::X11 },
  { 12U, PPC::X12 },
  { 13U, PPC::X13 },
  { 14U, PPC::X14 },
  { 15U, PPC::X15 },
  { 16U, PPC::X16 },
  { 17U, PPC::X17 },
  { 18U, PPC::X18 },
  { 19U, PPC::X19 },
  { 20U, PPC::X20 },
  { 21U, PPC::X21 },
  { 22U, PPC::X22 },
  { 23U, PPC::X23 },
  { 24U, PPC::X24 },
  { 25U, PPC::X25 },
  { 26U, PPC::X26 },
  { 27U, PPC::X27 },
  { 28U, PPC::X28 },
  { 29U, PPC::X29 },
  { 30U, PPC::X30 },
  { 31U, PPC::X31 },
  { 32U, PPC::QF0 },
  { 33U, PPC::QF1 },
  { 34U, PPC::QF2 },
  { 35U, PPC::QF3 },
  { 36U, PPC::QF4 },
  { 37U, PPC::QF5 },
  { 38U, PPC::QF6 },
  { 39U, PPC::QF7 },
  { 40U, PPC::QF8 },
  { 41U, PPC::QF9 },
  { 42U, PPC::QF10 },
  { 43U, PPC::QF11 },
  { 44U, PPC::QF12 },
  { 45U, PPC::QF13 },
  { 46U, PPC::QF14 },
  { 47U, PPC::QF15 },
  { 48U, PPC::QF16 },
  { 49U, PPC::QF17 },
  { 50U, PPC::QF18 },
  { 51U, PPC::QF19 },
  { 52U, PPC::QF20 },
  { 53U, PPC::QF21 },
  { 54U, PPC::QF22 },
  { 55U, PPC::QF23 },
  { 56U, PPC::QF24 },
  { 57U, PPC::QF25 },
  { 58U, PPC::QF26 },
  { 59U, PPC::QF27 },
  { 60U, PPC::QF28 },
  { 61U, PPC::QF29 },
  { 62U, PPC::QF30 },
  { 63U, PPC::QF31 },
  { 65U, PPC::LR8 },
  { 66U, PPC::CTR8 },
  { 68U, PPC::CR0 },
  { 69U, PPC::CR1 },
  { 70U, PPC::CR2 },
  { 71U, PPC::CR3 },
  { 72U, PPC::CR4 },
  { 73U, PPC::CR5 },
  { 74U, PPC::CR6 },
  { 75U, PPC::CR7 },
  { 76U, PPC::XER },
  { 77U, PPC::VF0 },
  { 78U, PPC::VF1 },
  { 79U, PPC::VF2 },
  { 80U, PPC::VF3 },
  { 81U, PPC::VF4 },
  { 82U, PPC::VF5 },
  { 83U, PPC::VF6 },
  { 84U, PPC::VF7 },
  { 85U, PPC::VF8 },
  { 86U, PPC::VF9 },
  { 87U, PPC::VF10 },
  { 88U, PPC::VF11 },
  { 89U, PPC::VF12 },
  { 90U, PPC::VF13 },
  { 91U, PPC::VF14 },
  { 92U, PPC::VF15 },
  { 93U, PPC::VF16 },
  { 94U, PPC::VF17 },
  { 95U, PPC::VF18 },
  { 96U, PPC::VF19 },
  { 97U, PPC::VF20 },
  { 98U, PPC::VF21 },
  { 99U, PPC::VF22 },
  { 100U, PPC::VF23 },
  { 101U, PPC::VF24 },
  { 102U, PPC::VF25 },
  { 103U, PPC::VF26 },
  { 104U, PPC::VF27 },
  { 105U, PPC::VF28 },
  { 106U, PPC::VF29 },
  { 107U, PPC::VF30 },
  { 108U, PPC::VF31 },
  { 109U, PPC::VRSAVE },
  { 612U, PPC::SPEFSCR },
  { 1200U, PPC::S0 },
  { 1201U, PPC::S1 },
  { 1202U, PPC::S2 },
  { 1203U, PPC::S3 },
  { 1204U, PPC::S4 },
  { 1205U, PPC::S5 },
  { 1206U, PPC::S6 },
  { 1207U, PPC::S7 },
  { 1208U, PPC::S8 },
  { 1209U, PPC::S9 },
  { 1210U, PPC::S10 },
  { 1211U, PPC::S11 },
  { 1212U, PPC::S12 },
  { 1213U, PPC::S13 },
  { 1214U, PPC::S14 },
  { 1215U, PPC::S15 },
  { 1216U, PPC::S16 },
  { 1217U, PPC::S17 },
  { 1218U, PPC::S18 },
  { 1219U, PPC::S19 },
  { 1220U, PPC::S20 },
  { 1221U, PPC::S21 },
  { 1222U, PPC::S22 },
  { 1223U, PPC::S23 },
  { 1224U, PPC::S24 },
  { 1225U, PPC::S25 },
  { 1226U, PPC::S26 },
  { 1227U, PPC::S27 },
  { 1228U, PPC::S28 },
  { 1229U, PPC::S29 },
  { 1230U, PPC::S30 },
  { 1231U, PPC::S31 },
};
extern const unsigned PPCEHFlavour0Dwarf2LSize = array_lengthof(PPCEHFlavour0Dwarf2L);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[] = {
  { 0U, PPC::R0 },
  { 1U, PPC::R1 },
  { 2U, PPC::R2 },
  { 3U, PPC::R3 },
  { 4U, PPC::R4 },
  { 5U, PPC::R5 },
  { 6U, PPC::R6 },
  { 7U, PPC::R7 },
  { 8U, PPC::R8 },
  { 9U, PPC::R9 },
  { 10U, PPC::R10 },
  { 11U, PPC::R11 },
  { 12U, PPC::R12 },
  { 13U, PPC::R13 },
  { 14U, PPC::R14 },
  { 15U, PPC::R15 },
  { 16U, PPC::R16 },
  { 17U, PPC::R17 },
  { 18U, PPC::R18 },
  { 19U, PPC::R19 },
  { 20U, PPC::R20 },
  { 21U, PPC::R21 },
  { 22U, PPC::R22 },
  { 23U, PPC::R23 },
  { 24U, PPC::R24 },
  { 25U, PPC::R25 },
  { 26U, PPC::R26 },
  { 27U, PPC::R27 },
  { 28U, PPC::R28 },
  { 29U, PPC::R29 },
  { 30U, PPC::R30 },
  { 31U, PPC::R31 },
  { 32U, PPC::QF0 },
  { 33U, PPC::QF1 },
  { 34U, PPC::QF2 },
  { 35U, PPC::QF3 },
  { 36U, PPC::QF4 },
  { 37U, PPC::QF5 },
  { 38U, PPC::QF6 },
  { 39U, PPC::QF7 },
  { 40U, PPC::QF8 },
  { 41U, PPC::QF9 },
  { 42U, PPC::QF10 },
  { 43U, PPC::QF11 },
  { 44U, PPC::QF12 },
  { 45U, PPC::QF13 },
  { 46U, PPC::QF14 },
  { 47U, PPC::QF15 },
  { 48U, PPC::QF16 },
  { 49U, PPC::QF17 },
  { 50U, PPC::QF18 },
  { 51U, PPC::QF19 },
  { 52U, PPC::QF20 },
  { 53U, PPC::QF21 },
  { 54U, PPC::QF22 },
  { 55U, PPC::QF23 },
  { 56U, PPC::QF24 },
  { 57U, PPC::QF25 },
  { 58U, PPC::QF26 },
  { 59U, PPC::QF27 },
  { 60U, PPC::QF28 },
  { 61U, PPC::QF29 },
  { 62U, PPC::QF30 },
  { 63U, PPC::QF31 },
  { 65U, PPC::LR },
  { 66U, PPC::CTR },
  { 68U, PPC::CR0 },
  { 69U, PPC::CR1 },
  { 70U, PPC::CR2 },
  { 71U, PPC::CR3 },
  { 72U, PPC::CR4 },
  { 73U, PPC::CR5 },
  { 74U, PPC::CR6 },
  { 75U, PPC::CR7 },
  { 77U, PPC::VF0 },
  { 78U, PPC::VF1 },
  { 79U, PPC::VF2 },
  { 80U, PPC::VF3 },
  { 81U, PPC::VF4 },
  { 82U, PPC::VF5 },
  { 83U, PPC::VF6 },
  { 84U, PPC::VF7 },
  { 85U, PPC::VF8 },
  { 86U, PPC::VF9 },
  { 87U, PPC::VF10 },
  { 88U, PPC::VF11 },
  { 89U, PPC::VF12 },
  { 90U, PPC::VF13 },
  { 91U, PPC::VF14 },
  { 92U, PPC::VF15 },
  { 93U, PPC::VF16 },
  { 94U, PPC::VF17 },
  { 95U, PPC::VF18 },
  { 96U, PPC::VF19 },
  { 97U, PPC::VF20 },
  { 98U, PPC::VF21 },
  { 99U, PPC::VF22 },
  { 100U, PPC::VF23 },
  { 101U, PPC::VF24 },
  { 102U, PPC::VF25 },
  { 103U, PPC::VF26 },
  { 104U, PPC::VF27 },
  { 105U, PPC::VF28 },
  { 106U, PPC::VF29 },
  { 107U, PPC::VF30 },
  { 108U, PPC::VF31 },
  { 112U, PPC::SPEFSCR },
  { 1200U, PPC::S0 },
  { 1201U, PPC::S1 },
  { 1202U, PPC::S2 },
  { 1203U, PPC::S3 },
  { 1204U, PPC::S4 },
  { 1205U, PPC::S5 },
  { 1206U, PPC::S6 },
  { 1207U, PPC::S7 },
  { 1208U, PPC::S8 },
  { 1209U, PPC::S9 },
  { 1210U, PPC::S10 },
  { 1211U, PPC::S11 },
  { 1212U, PPC::S12 },
  { 1213U, PPC::S13 },
  { 1214U, PPC::S14 },
  { 1215U, PPC::S15 },
  { 1216U, PPC::S16 },
  { 1217U, PPC::S17 },
  { 1218U, PPC::S18 },
  { 1219U, PPC::S19 },
  { 1220U, PPC::S20 },
  { 1221U, PPC::S21 },
  { 1222U, PPC::S22 },
  { 1223U, PPC::S23 },
  { 1224U, PPC::S24 },
  { 1225U, PPC::S25 },
  { 1226U, PPC::S26 },
  { 1227U, PPC::S27 },
  { 1228U, PPC::S28 },
  { 1229U, PPC::S29 },
  { 1230U, PPC::S30 },
  { 1231U, PPC::S31 },
};
extern const unsigned PPCEHFlavour1Dwarf2LSize = array_lengthof(PPCEHFlavour1Dwarf2L);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[] = {
  { PPC::CARRY, 76U },
  { PPC::CTR, -2U },
  { PPC::LR, -2U },
  { PPC::SPEFSCR, 612U },
  { PPC::VRSAVE, 109U },
  { PPC::XER, 76U },
  { PPC::ZERO, -2U },
  { PPC::CR0, 68U },
  { PPC::CR1, 69U },
  { PPC::CR2, 70U },
  { PPC::CR3, 71U },
  { PPC::CR4, 72U },
  { PPC::CR5, 73U },
  { PPC::CR6, 74U },
  { PPC::CR7, 75U },
  { PPC::CTR8, 66U },
  { PPC::F0, 32U },
  { PPC::F1, 33U },
  { PPC::F2, 34U },
  { PPC::F3, 35U },
  { PPC::F4, 36U },
  { PPC::F5, 37U },
  { PPC::F6, 38U },
  { PPC::F7, 39U },
  { PPC::F8, 40U },
  { PPC::F9, 41U },
  { PPC::F10, 42U },
  { PPC::F11, 43U },
  { PPC::F12, 44U },
  { PPC::F13, 45U },
  { PPC::F14, 46U },
  { PPC::F15, 47U },
  { PPC::F16, 48U },
  { PPC::F17, 49U },
  { PPC::F18, 50U },
  { PPC::F19, 51U },
  { PPC::F20, 52U },
  { PPC::F21, 53U },
  { PPC::F22, 54U },
  { PPC::F23, 55U },
  { PPC::F24, 56U },
  { PPC::F25, 57U },
  { PPC::F26, 58U },
  { PPC::F27, 59U },
  { PPC::F28, 60U },
  { PPC::F29, 61U },
  { PPC::F30, 62U },
  { PPC::F31, 63U },
  { PPC::LR8, 65U },
  { PPC::QF0, 32U },
  { PPC::QF1, 33U },
  { PPC::QF2, 34U },
  { PPC::QF3, 35U },
  { PPC::QF4, 36U },
  { PPC::QF5, 37U },
  { PPC::QF6, 38U },
  { PPC::QF7, 39U },
  { PPC::QF8, 40U },
  { PPC::QF9, 41U },
  { PPC::QF10, 42U },
  { PPC::QF11, 43U },
  { PPC::QF12, 44U },
  { PPC::QF13, 45U },
  { PPC::QF14, 46U },
  { PPC::QF15, 47U },
  { PPC::QF16, 48U },
  { PPC::QF17, 49U },
  { PPC::QF18, 50U },
  { PPC::QF19, 51U },
  { PPC::QF20, 52U },
  { PPC::QF21, 53U },
  { PPC::QF22, 54U },
  { PPC::QF23, 55U },
  { PPC::QF24, 56U },
  { PPC::QF25, 57U },
  { PPC::QF26, 58U },
  { PPC::QF27, 59U },
  { PPC::QF28, 60U },
  { PPC::QF29, 61U },
  { PPC::QF30, 62U },
  { PPC::QF31, 63U },
  { PPC::R0, -2U },
  { PPC::R1, -2U },
  { PPC::R2, -2U },
  { PPC::R3, -2U },
  { PPC::R4, -2U },
  { PPC::R5, -2U },
  { PPC::R6, -2U },
  { PPC::R7, -2U },
  { PPC::R8, -2U },
  { PPC::R9, -2U },
  { PPC::R10, -2U },
  { PPC::R11, -2U },
  { PPC::R12, -2U },
  { PPC::R13, -2U },
  { PPC::R14, -2U },
  { PPC::R15, -2U },
  { PPC::R16, -2U },
  { PPC::R17, -2U },
  { PPC::R18, -2U },
  { PPC::R19, -2U },
  { PPC::R20, -2U },
  { PPC::R21, -2U },
  { PPC::R22, -2U },
  { PPC::R23, -2U },
  { PPC::R24, -2U },
  { PPC::R25, -2U },
  { PPC::R26, -2U },
  { PPC::R27, -2U },
  { PPC::R28, -2U },
  { PPC::R29, -2U },
  { PPC::R30, -2U },
  { PPC::R31, -2U },
  { PPC::S0, 1200U },
  { PPC::S1, 1201U },
  { PPC::S2, 1202U },
  { PPC::S3, 1203U },
  { PPC::S4, 1204U },
  { PPC::S5, 1205U },
  { PPC::S6, 1206U },
  { PPC::S7, 1207U },
  { PPC::S8, 1208U },
  { PPC::S9, 1209U },
  { PPC::S10, 1210U },
  { PPC::S11, 1211U },
  { PPC::S12, 1212U },
  { PPC::S13, 1213U },
  { PPC::S14, 1214U },
  { PPC::S15, 1215U },
  { PPC::S16, 1216U },
  { PPC::S17, 1217U },
  { PPC::S18, 1218U },
  { PPC::S19, 1219U },
  { PPC::S20, 1220U },
  { PPC::S21, 1221U },
  { PPC::S22, 1222U },
  { PPC::S23, 1223U },
  { PPC::S24, 1224U },
  { PPC::S25, 1225U },
  { PPC::S26, 1226U },
  { PPC::S27, 1227U },
  { PPC::S28, 1228U },
  { PPC::S29, 1229U },
  { PPC::S30, 1230U },
  { PPC::S31, 1231U },
  { PPC::V0, 77U },
  { PPC::V1, 78U },
  { PPC::V2, 79U },
  { PPC::V3, 80U },
  { PPC::V4, 81U },
  { PPC::V5, 82U },
  { PPC::V6, 83U },
  { PPC::V7, 84U },
  { PPC::V8, 85U },
  { PPC::V9, 86U },
  { PPC::V10, 87U },
  { PPC::V11, 88U },
  { PPC::V12, 89U },
  { PPC::V13, 90U },
  { PPC::V14, 91U },
  { PPC::V15, 92U },
  { PPC::V16, 93U },
  { PPC::V17, 94U },
  { PPC::V18, 95U },
  { PPC::V19, 96U },
  { PPC::V20, 97U },
  { PPC::V21, 98U },
  { PPC::V22, 99U },
  { PPC::V23, 100U },
  { PPC::V24, 101U },
  { PPC::V25, 102U },
  { PPC::V26, 103U },
  { PPC::V27, 104U },
  { PPC::V28, 105U },
  { PPC::V29, 106U },
  { PPC::V30, 107U },
  { PPC::V31, 108U },
  { PPC::VF0, 77U },
  { PPC::VF1, 78U },
  { PPC::VF2, 79U },
  { PPC::VF3, 80U },
  { PPC::VF4, 81U },
  { PPC::VF5, 82U },
  { PPC::VF6, 83U },
  { PPC::VF7, 84U },
  { PPC::VF8, 85U },
  { PPC::VF9, 86U },
  { PPC::VF10, 87U },
  { PPC::VF11, 88U },
  { PPC::VF12, 89U },
  { PPC::VF13, 90U },
  { PPC::VF14, 91U },
  { PPC::VF15, 92U },
  { PPC::VF16, 93U },
  { PPC::VF17, 94U },
  { PPC::VF18, 95U },
  { PPC::VF19, 96U },
  { PPC::VF20, 97U },
  { PPC::VF21, 98U },
  { PPC::VF22, 99U },
  { PPC::VF23, 100U },
  { PPC::VF24, 101U },
  { PPC::VF25, 102U },
  { PPC::VF26, 103U },
  { PPC::VF27, 104U },
  { PPC::VF28, 105U },
  { PPC::VF29, 106U },
  { PPC::VF30, 107U },
  { PPC::VF31, 108U },
  { PPC::VSL0, 32U },
  { PPC::VSL1, 33U },
  { PPC::VSL2, 34U },
  { PPC::VSL3, 35U },
  { PPC::VSL4, 36U },
  { PPC::VSL5, 37U },
  { PPC::VSL6, 38U },
  { PPC::VSL7, 39U },
  { PPC::VSL8, 40U },
  { PPC::VSL9, 41U },
  { PPC::VSL10, 42U },
  { PPC::VSL11, 43U },
  { PPC::VSL12, 44U },
  { PPC::VSL13, 45U },
  { PPC::VSL14, 46U },
  { PPC::VSL15, 47U },
  { PPC::VSL16, 48U },
  { PPC::VSL17, 49U },
  { PPC::VSL18, 50U },
  { PPC::VSL19, 51U },
  { PPC::VSL20, 52U },
  { PPC::VSL21, 53U },
  { PPC::VSL22, 54U },
  { PPC::VSL23, 55U },
  { PPC::VSL24, 56U },
  { PPC::VSL25, 57U },
  { PPC::VSL26, 58U },
  { PPC::VSL27, 59U },
  { PPC::VSL28, 60U },
  { PPC::VSL29, 61U },
  { PPC::VSL30, 62U },
  { PPC::VSL31, 63U },
  { PPC::X0, 0U },
  { PPC::X1, 1U },
  { PPC::X2, 2U },
  { PPC::X3, 3U },
  { PPC::X4, 4U },
  { PPC::X5, 5U },
  { PPC::X6, 6U },
  { PPC::X7, 7U },
  { PPC::X8, 8U },
  { PPC::X9, 9U },
  { PPC::X10, 10U },
  { PPC::X11, 11U },
  { PPC::X12, 12U },
  { PPC::X13, 13U },
  { PPC::X14, 14U },
  { PPC::X15, 15U },
  { PPC::X16, 16U },
  { PPC::X17, 17U },
  { PPC::X18, 18U },
  { PPC::X19, 19U },
  { PPC::X20, 20U },
  { PPC::X21, 21U },
  { PPC::X22, 22U },
  { PPC::X23, 23U },
  { PPC::X24, 24U },
  { PPC::X25, 25U },
  { PPC::X26, 26U },
  { PPC::X27, 27U },
  { PPC::X28, 28U },
  { PPC::X29, 29U },
  { PPC::X30, 30U },
  { PPC::X31, 31U },
  { PPC::ZERO8, 0U },
};
extern const unsigned PPCDwarfFlavour0L2DwarfSize = array_lengthof(PPCDwarfFlavour0L2Dwarf);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[] = {
  { PPC::CTR, 66U },
  { PPC::LR, 65U },
  { PPC::SPEFSCR, 112U },
  { PPC::ZERO, 0U },
  { PPC::CR0, 68U },
  { PPC::CR1, 69U },
  { PPC::CR2, 70U },
  { PPC::CR3, 71U },
  { PPC::CR4, 72U },
  { PPC::CR5, 73U },
  { PPC::CR6, 74U },
  { PPC::CR7, 75U },
  { PPC::CTR8, -2U },
  { PPC::F0, 32U },
  { PPC::F1, 33U },
  { PPC::F2, 34U },
  { PPC::F3, 35U },
  { PPC::F4, 36U },
  { PPC::F5, 37U },
  { PPC::F6, 38U },
  { PPC::F7, 39U },
  { PPC::F8, 40U },
  { PPC::F9, 41U },
  { PPC::F10, 42U },
  { PPC::F11, 43U },
  { PPC::F12, 44U },
  { PPC::F13, 45U },
  { PPC::F14, 46U },
  { PPC::F15, 47U },
  { PPC::F16, 48U },
  { PPC::F17, 49U },
  { PPC::F18, 50U },
  { PPC::F19, 51U },
  { PPC::F20, 52U },
  { PPC::F21, 53U },
  { PPC::F22, 54U },
  { PPC::F23, 55U },
  { PPC::F24, 56U },
  { PPC::F25, 57U },
  { PPC::F26, 58U },
  { PPC::F27, 59U },
  { PPC::F28, 60U },
  { PPC::F29, 61U },
  { PPC::F30, 62U },
  { PPC::F31, 63U },
  { PPC::LR8, -2U },
  { PPC::QF0, 32U },
  { PPC::QF1, 33U },
  { PPC::QF2, 34U },
  { PPC::QF3, 35U },
  { PPC::QF4, 36U },
  { PPC::QF5, 37U },
  { PPC::QF6, 38U },
  { PPC::QF7, 39U },
  { PPC::QF8, 40U },
  { PPC::QF9, 41U },
  { PPC::QF10, 42U },
  { PPC::QF11, 43U },
  { PPC::QF12, 44U },
  { PPC::QF13, 45U },
  { PPC::QF14, 46U },
  { PPC::QF15, 47U },
  { PPC::QF16, 48U },
  { PPC::QF17, 49U },
  { PPC::QF18, 50U },
  { PPC::QF19, 51U },
  { PPC::QF20, 52U },
  { PPC::QF21, 53U },
  { PPC::QF22, 54U },
  { PPC::QF23, 55U },
  { PPC::QF24, 56U },
  { PPC::QF25, 57U },
  { PPC::QF26, 58U },
  { PPC::QF27, 59U },
  { PPC::QF28, 60U },
  { PPC::QF29, 61U },
  { PPC::QF30, 62U },
  { PPC::QF31, 63U },
  { PPC::R0, 0U },
  { PPC::R1, 1U },
  { PPC::R2, 2U },
  { PPC::R3, 3U },
  { PPC::R4, 4U },
  { PPC::R5, 5U },
  { PPC::R6, 6U },
  { PPC::R7, 7U },
  { PPC::R8, 8U },
  { PPC::R9, 9U },
  { PPC::R10, 10U },
  { PPC::R11, 11U },
  { PPC::R12, 12U },
  { PPC::R13, 13U },
  { PPC::R14, 14U },
  { PPC::R15, 15U },
  { PPC::R16, 16U },
  { PPC::R17, 17U },
  { PPC::R18, 18U },
  { PPC::R19, 19U },
  { PPC::R20, 20U },
  { PPC::R21, 21U },
  { PPC::R22, 22U },
  { PPC::R23, 23U },
  { PPC::R24, 24U },
  { PPC::R25, 25U },
  { PPC::R26, 26U },
  { PPC::R27, 27U },
  { PPC::R28, 28U },
  { PPC::R29, 29U },
  { PPC::R30, 30U },
  { PPC::R31, 31U },
  { PPC::S0, 1200U },
  { PPC::S1, 1201U },
  { PPC::S2, 1202U },
  { PPC::S3, 1203U },
  { PPC::S4, 1204U },
  { PPC::S5, 1205U },
  { PPC::S6, 1206U },
  { PPC::S7, 1207U },
  { PPC::S8, 1208U },
  { PPC::S9, 1209U },
  { PPC::S10, 1210U },
  { PPC::S11, 1211U },
  { PPC::S12, 1212U },
  { PPC::S13, 1213U },
  { PPC::S14, 1214U },
  { PPC::S15, 1215U },
  { PPC::S16, 1216U },
  { PPC::S17, 1217U },
  { PPC::S18, 1218U },
  { PPC::S19, 1219U },
  { PPC::S20, 1220U },
  { PPC::S21, 1221U },
  { PPC::S22, 1222U },
  { PPC::S23, 1223U },
  { PPC::S24, 1224U },
  { PPC::S25, 1225U },
  { PPC::S26, 1226U },
  { PPC::S27, 1227U },
  { PPC::S28, 1228U },
  { PPC::S29, 1229U },
  { PPC::S30, 1230U },
  { PPC::S31, 1231U },
  { PPC::V0, 77U },
  { PPC::V1, 78U },
  { PPC::V2, 79U },
  { PPC::V3, 80U },
  { PPC::V4, 81U },
  { PPC::V5, 82U },
  { PPC::V6, 83U },
  { PPC::V7, 84U },
  { PPC::V8, 85U },
  { PPC::V9, 86U },
  { PPC::V10, 87U },
  { PPC::V11, 88U },
  { PPC::V12, 89U },
  { PPC::V13, 90U },
  { PPC::V14, 91U },
  { PPC::V15, 92U },
  { PPC::V16, 93U },
  { PPC::V17, 94U },
  { PPC::V18, 95U },
  { PPC::V19, 96U },
  { PPC::V20, 97U },
  { PPC::V21, 98U },
  { PPC::V22, 99U },
  { PPC::V23, 100U },
  { PPC::V24, 101U },
  { PPC::V25, 102U },
  { PPC::V26, 103U },
  { PPC::V27, 104U },
  { PPC::V28, 105U },
  { PPC::V29, 106U },
  { PPC::V30, 107U },
  { PPC::V31, 108U },
  { PPC::VF0, 77U },
  { PPC::VF1, 78U },
  { PPC::VF2, 79U },
  { PPC::VF3, 80U },
  { PPC::VF4, 81U },
  { PPC::VF5, 82U },
  { PPC::VF6, 83U },
  { PPC::VF7, 84U },
  { PPC::VF8, 85U },
  { PPC::VF9, 86U },
  { PPC::VF10, 87U },
  { PPC::VF11, 88U },
  { PPC::VF12, 89U },
  { PPC::VF13, 90U },
  { PPC::VF14, 91U },
  { PPC::VF15, 92U },
  { PPC::VF16, 93U },
  { PPC::VF17, 94U },
  { PPC::VF18, 95U },
  { PPC::VF19, 96U },
  { PPC::VF20, 97U },
  { PPC::VF21, 98U },
  { PPC::VF22, 99U },
  { PPC::VF23, 100U },
  { PPC::VF24, 101U },
  { PPC::VF25, 102U },
  { PPC::VF26, 103U },
  { PPC::VF27, 104U },
  { PPC::VF28, 105U },
  { PPC::VF29, 106U },
  { PPC::VF30, 107U },
  { PPC::VF31, 108U },
  { PPC::VSL0, 32U },
  { PPC::VSL1, 33U },
  { PPC::VSL2, 34U },
  { PPC::VSL3, 35U },
  { PPC::VSL4, 36U },
  { PPC::VSL5, 37U },
  { PPC::VSL6, 38U },
  { PPC::VSL7, 39U },
  { PPC::VSL8, 40U },
  { PPC::VSL9, 41U },
  { PPC::VSL10, 42U },
  { PPC::VSL11, 43U },
  { PPC::VSL12, 44U },
  { PPC::VSL13, 45U },
  { PPC::VSL14, 46U },
  { PPC::VSL15, 47U },
  { PPC::VSL16, 48U },
  { PPC::VSL17, 49U },
  { PPC::VSL18, 50U },
  { PPC::VSL19, 51U },
  { PPC::VSL20, 52U },
  { PPC::VSL21, 53U },
  { PPC::VSL22, 54U },
  { PPC::VSL23, 55U },
  { PPC::VSL24, 56U },
  { PPC::VSL25, 57U },
  { PPC::VSL26, 58U },
  { PPC::VSL27, 59U },
  { PPC::VSL28, 60U },
  { PPC::VSL29, 61U },
  { PPC::VSL30, 62U },
  { PPC::VSL31, 63U },
  { PPC::X0, -2U },
  { PPC::X1, -2U },
  { PPC::X2, -2U },
  { PPC::X3, -2U },
  { PPC::X4, -2U },
  { PPC::X5, -2U },
  { PPC::X6, -2U },
  { PPC::X7, -2U },
  { PPC::X8, -2U },
  { PPC::X9, -2U },
  { PPC::X10, -2U },
  { PPC::X11, -2U },
  { PPC::X12, -2U },
  { PPC::X13, -2U },
  { PPC::X14, -2U },
  { PPC::X15, -2U },
  { PPC::X16, -2U },
  { PPC::X17, -2U },
  { PPC::X18, -2U },
  { PPC::X19, -2U },
  { PPC::X20, -2U },
  { PPC::X21, -2U },
  { PPC::X22, -2U },
  { PPC::X23, -2U },
  { PPC::X24, -2U },
  { PPC::X25, -2U },
  { PPC::X26, -2U },
  { PPC::X27, -2U },
  { PPC::X28, -2U },
  { PPC::X29, -2U },
  { PPC::X30, -2U },
  { PPC::X31, -2U },
  { PPC::ZERO8, -2U },
};
extern const unsigned PPCDwarfFlavour1L2DwarfSize = array_lengthof(PPCDwarfFlavour1L2Dwarf);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[] = {
  { PPC::CARRY, 76U },
  { PPC::CTR, -2U },
  { PPC::LR, -2U },
  { PPC::SPEFSCR, 612U },
  { PPC::VRSAVE, 109U },
  { PPC::XER, 76U },
  { PPC::ZERO, -2U },
  { PPC::CR0, 68U },
  { PPC::CR1, 69U },
  { PPC::CR2, 70U },
  { PPC::CR3, 71U },
  { PPC::CR4, 72U },
  { PPC::CR5, 73U },
  { PPC::CR6, 74U },
  { PPC::CR7, 75U },
  { PPC::CTR8, 66U },
  { PPC::F0, 32U },
  { PPC::F1, 33U },
  { PPC::F2, 34U },
  { PPC::F3, 35U },
  { PPC::F4, 36U },
  { PPC::F5, 37U },
  { PPC::F6, 38U },
  { PPC::F7, 39U },
  { PPC::F8, 40U },
  { PPC::F9, 41U },
  { PPC::F10, 42U },
  { PPC::F11, 43U },
  { PPC::F12, 44U },
  { PPC::F13, 45U },
  { PPC::F14, 46U },
  { PPC::F15, 47U },
  { PPC::F16, 48U },
  { PPC::F17, 49U },
  { PPC::F18, 50U },
  { PPC::F19, 51U },
  { PPC::F20, 52U },
  { PPC::F21, 53U },
  { PPC::F22, 54U },
  { PPC::F23, 55U },
  { PPC::F24, 56U },
  { PPC::F25, 57U },
  { PPC::F26, 58U },
  { PPC::F27, 59U },
  { PPC::F28, 60U },
  { PPC::F29, 61U },
  { PPC::F30, 62U },
  { PPC::F31, 63U },
  { PPC::LR8, 65U },
  { PPC::QF0, 32U },
  { PPC::QF1, 33U },
  { PPC::QF2, 34U },
  { PPC::QF3, 35U },
  { PPC::QF4, 36U },
  { PPC::QF5, 37U },
  { PPC::QF6, 38U },
  { PPC::QF7, 39U },
  { PPC::QF8, 40U },
  { PPC::QF9, 41U },
  { PPC::QF10, 42U },
  { PPC::QF11, 43U },
  { PPC::QF12, 44U },
  { PPC::QF13, 45U },
  { PPC::QF14, 46U },
  { PPC::QF15, 47U },
  { PPC::QF16, 48U },
  { PPC::QF17, 49U },
  { PPC::QF18, 50U },
  { PPC::QF19, 51U },
  { PPC::QF20, 52U },
  { PPC::QF21, 53U },
  { PPC::QF22, 54U },
  { PPC::QF23, 55U },
  { PPC::QF24, 56U },
  { PPC::QF25, 57U },
  { PPC::QF26, 58U },
  { PPC::QF27, 59U },
  { PPC::QF28, 60U },
  { PPC::QF29, 61U },
  { PPC::QF30, 62U },
  { PPC::QF31, 63U },
  { PPC::R0, -2U },
  { PPC::R1, -2U },
  { PPC::R2, -2U },
  { PPC::R3, -2U },
  { PPC::R4, -2U },
  { PPC::R5, -2U },
  { PPC::R6, -2U },
  { PPC::R7, -2U },
  { PPC::R8, -2U },
  { PPC::R9, -2U },
  { PPC::R10, -2U },
  { PPC::R11, -2U },
  { PPC::R12, -2U },
  { PPC::R13, -2U },
  { PPC::R14, -2U },
  { PPC::R15, -2U },
  { PPC::R16, -2U },
  { PPC::R17, -2U },
  { PPC::R18, -2U },
  { PPC::R19, -2U },
  { PPC::R20, -2U },
  { PPC::R21, -2U },
  { PPC::R22, -2U },
  { PPC::R23, -2U },
  { PPC::R24, -2U },
  { PPC::R25, -2U },
  { PPC::R26, -2U },
  { PPC::R27, -2U },
  { PPC::R28, -2U },
  { PPC::R29, -2U },
  { PPC::R30, -2U },
  { PPC::R31, -2U },
  { PPC::S0, 1200U },
  { PPC::S1, 1201U },
  { PPC::S2, 1202U },
  { PPC::S3, 1203U },
  { PPC::S4, 1204U },
  { PPC::S5, 1205U },
  { PPC::S6, 1206U },
  { PPC::S7, 1207U },
  { PPC::S8, 1208U },
  { PPC::S9, 1209U },
  { PPC::S10, 1210U },
  { PPC::S11, 1211U },
  { PPC::S12, 1212U },
  { PPC::S13, 1213U },
  { PPC::S14, 1214U },
  { PPC::S15, 1215U },
  { PPC::S16, 1216U },
  { PPC::S17, 1217U },
  { PPC::S18, 1218U },
  { PPC::S19, 1219U },
  { PPC::S20, 1220U },
  { PPC::S21, 1221U },
  { PPC::S22, 1222U },
  { PPC::S23, 1223U },
  { PPC::S24, 1224U },
  { PPC::S25, 1225U },
  { PPC::S26, 1226U },
  { PPC::S27, 1227U },
  { PPC::S28, 1228U },
  { PPC::S29, 1229U },
  { PPC::S30, 1230U },
  { PPC::S31, 1231U },
  { PPC::V0, 77U },
  { PPC::V1, 78U },
  { PPC::V2, 79U },
  { PPC::V3, 80U },
  { PPC::V4, 81U },
  { PPC::V5, 82U },
  { PPC::V6, 83U },
  { PPC::V7, 84U },
  { PPC::V8, 85U },
  { PPC::V9, 86U },
  { PPC::V10, 87U },
  { PPC::V11, 88U },
  { PPC::V12, 89U },
  { PPC::V13, 90U },
  { PPC::V14, 91U },
  { PPC::V15, 92U },
  { PPC::V16, 93U },
  { PPC::V17, 94U },
  { PPC::V18, 95U },
  { PPC::V19, 96U },
  { PPC::V20, 97U },
  { PPC::V21, 98U },
  { PPC::V22, 99U },
  { PPC::V23, 100U },
  { PPC::V24, 101U },
  { PPC::V25, 102U },
  { PPC::V26, 103U },
  { PPC::V27, 104U },
  { PPC::V28, 105U },
  { PPC::V29, 106U },
  { PPC::V30, 107U },
  { PPC::V31, 108U },
  { PPC::VF0, 77U },
  { PPC::VF1, 78U },
  { PPC::VF2, 79U },
  { PPC::VF3, 80U },
  { PPC::VF4, 81U },
  { PPC::VF5, 82U },
  { PPC::VF6, 83U },
  { PPC::VF7, 84U },
  { PPC::VF8, 85U },
  { PPC::VF9, 86U },
  { PPC::VF10, 87U },
  { PPC::VF11, 88U },
  { PPC::VF12, 89U },
  { PPC::VF13, 90U },
  { PPC::VF14, 91U },
  { PPC::VF15, 92U },
  { PPC::VF16, 93U },
  { PPC::VF17, 94U },
  { PPC::VF18, 95U },
  { PPC::VF19, 96U },
  { PPC::VF20, 97U },
  { PPC::VF21, 98U },
  { PPC::VF22, 99U },
  { PPC::VF23, 100U },
  { PPC::VF24, 101U },
  { PPC::VF25, 102U },
  { PPC::VF26, 103U },
  { PPC::VF27, 104U },
  { PPC::VF28, 105U },
  { PPC::VF29, 106U },
  { PPC::VF30, 107U },
  { PPC::VF31, 108U },
  { PPC::VSL0, 32U },
  { PPC::VSL1, 33U },
  { PPC::VSL2, 34U },
  { PPC::VSL3, 35U },
  { PPC::VSL4, 36U },
  { PPC::VSL5, 37U },
  { PPC::VSL6, 38U },
  { PPC::VSL7, 39U },
  { PPC::VSL8, 40U },
  { PPC::VSL9, 41U },
  { PPC::VSL10, 42U },
  { PPC::VSL11, 43U },
  { PPC::VSL12, 44U },
  { PPC::VSL13, 45U },
  { PPC::VSL14, 46U },
  { PPC::VSL15, 47U },
  { PPC::VSL16, 48U },
  { PPC::VSL17, 49U },
  { PPC::VSL18, 50U },
  { PPC::VSL19, 51U },
  { PPC::VSL20, 52U },
  { PPC::VSL21, 53U },
  { PPC::VSL22, 54U },
  { PPC::VSL23, 55U },
  { PPC::VSL24, 56U },
  { PPC::VSL25, 57U },
  { PPC::VSL26, 58U },
  { PPC::VSL27, 59U },
  { PPC::VSL28, 60U },
  { PPC::VSL29, 61U },
  { PPC::VSL30, 62U },
  { PPC::VSL31, 63U },
  { PPC::X0, 0U },
  { PPC::X1, 1U },
  { PPC::X2, 2U },
  { PPC::X3, 3U },
  { PPC::X4, 4U },
  { PPC::X5, 5U },
  { PPC::X6, 6U },
  { PPC::X7, 7U },
  { PPC::X8, 8U },
  { PPC::X9, 9U },
  { PPC::X10, 10U },
  { PPC::X11, 11U },
  { PPC::X12, 12U },
  { PPC::X13, 13U },
  { PPC::X14, 14U },
  { PPC::X15, 15U },
  { PPC::X16, 16U },
  { PPC::X17, 17U },
  { PPC::X18, 18U },
  { PPC::X19, 19U },
  { PPC::X20, 20U },
  { PPC::X21, 21U },
  { PPC::X22, 22U },
  { PPC::X23, 23U },
  { PPC::X24, 24U },
  { PPC::X25, 25U },
  { PPC::X26, 26U },
  { PPC::X27, 27U },
  { PPC::X28, 28U },
  { PPC::X29, 29U },
  { PPC::X30, 30U },
  { PPC::X31, 31U },
  { PPC::ZERO8, 0U },
};
extern const unsigned PPCEHFlavour0L2DwarfSize = array_lengthof(PPCEHFlavour0L2Dwarf);

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[] = {
  { PPC::CTR, 66U },
  { PPC::LR, 65U },
  { PPC::SPEFSCR, 112U },
  { PPC::ZERO, 0U },
  { PPC::CR0, 68U },
  { PPC::CR1, 69U },
  { PPC::CR2, 70U },
  { PPC::CR3, 71U },
  { PPC::CR4, 72U },
  { PPC::CR5, 73U },
  { PPC::CR6, 74U },
  { PPC::CR7, 75U },
  { PPC::CTR8, -2U },
  { PPC::F0, 32U },
  { PPC::F1, 33U },
  { PPC::F2, 34U },
  { PPC::F3, 35U },
  { PPC::F4, 36U },
  { PPC::F5, 37U },
  { PPC::F6, 38U },
  { PPC::F7, 39U },
  { PPC::F8, 40U },
  { PPC::F9, 41U },
  { PPC::F10, 42U },
  { PPC::F11, 43U },
  { PPC::F12, 44U },
  { PPC::F13, 45U },
  { PPC::F14, 46U },
  { PPC::F15, 47U },
  { PPC::F16, 48U },
  { PPC::F17, 49U },
  { PPC::F18, 50U },
  { PPC::F19, 51U },
  { PPC::F20, 52U },
  { PPC::F21, 53U },
  { PPC::F22, 54U },
  { PPC::F23, 55U },
  { PPC::F24, 56U },
  { PPC::F25, 57U },
  { PPC::F26, 58U },
  { PPC::F27, 59U },
  { PPC::F28, 60U },
  { PPC::F29, 61U },
  { PPC::F30, 62U },
  { PPC::F31, 63U },
  { PPC::LR8, -2U },
  { PPC::QF0, 32U },
  { PPC::QF1, 33U },
  { PPC::QF2, 34U },
  { PPC::QF3, 35U },
  { PPC::QF4, 36U },
  { PPC::QF5, 37U },
  { PPC::QF6, 38U },
  { PPC::QF7, 39U },
  { PPC::QF8, 40U },
  { PPC::QF9, 41U },
  { PPC::QF10, 42U },
  { PPC::QF11, 43U },
  { PPC::QF12, 44U },
  { PPC::QF13, 45U },
  { PPC::QF14, 46U },
  { PPC::QF15, 47U },
  { PPC::QF16, 48U },
  { PPC::QF17, 49U },
  { PPC::QF18, 50U },
  { PPC::QF19, 51U },
  { PPC::QF20, 52U },
  { PPC::QF21, 53U },
  { PPC::QF22, 54U },
  { PPC::QF23, 55U },
  { PPC::QF24, 56U },
  { PPC::QF25, 57U },
  { PPC::QF26, 58U },
  { PPC::QF27, 59U },
  { PPC::QF28, 60U },
  { PPC::QF29, 61U },
  { PPC::QF30, 62U },
  { PPC::QF31, 63U },
  { PPC::R0, 0U },
  { PPC::R1, 1U },
  { PPC::R2, 2U },
  { PPC::R3, 3U },
  { PPC::R4, 4U },
  { PPC::R5, 5U },
  { PPC::R6, 6U },
  { PPC::R7, 7U },
  { PPC::R8, 8U },
  { PPC::R9, 9U },
  { PPC::R10, 10U },
  { PPC::R11, 11U },
  { PPC::R12, 12U },
  { PPC::R13, 13U },
  { PPC::R14, 14U },
  { PPC::R15, 15U },
  { PPC::R16, 16U },
  { PPC::R17, 17U },
  { PPC::R18, 18U },
  { PPC::R19, 19U },
  { PPC::R20, 20U },
  { PPC::R21, 21U },
  { PPC::R22, 22U },
  { PPC::R23, 23U },
  { PPC::R24, 24U },
  { PPC::R25, 25U },
  { PPC::R26, 26U },
  { PPC::R27, 27U },
  { PPC::R28, 28U },
  { PPC::R29, 29U },
  { PPC::R30, 30U },
  { PPC::R31, 31U },
  { PPC::S0, 1200U },
  { PPC::S1, 1201U },
  { PPC::S2, 1202U },
  { PPC::S3, 1203U },
  { PPC::S4, 1204U },
  { PPC::S5, 1205U },
  { PPC::S6, 1206U },
  { PPC::S7, 1207U },
  { PPC::S8, 1208U },
  { PPC::S9, 1209U },
  { PPC::S10, 1210U },
  { PPC::S11, 1211U },
  { PPC::S12, 1212U },
  { PPC::S13, 1213U },
  { PPC::S14, 1214U },
  { PPC::S15, 1215U },
  { PPC::S16, 1216U },
  { PPC::S17, 1217U },
  { PPC::S18, 1218U },
  { PPC::S19, 1219U },
  { PPC::S20, 1220U },
  { PPC::S21, 1221U },
  { PPC::S22, 1222U },
  { PPC::S23, 1223U },
  { PPC::S24, 1224U },
  { PPC::S25, 1225U },
  { PPC::S26, 1226U },
  { PPC::S27, 1227U },
  { PPC::S28, 1228U },
  { PPC::S29, 1229U },
  { PPC::S30, 1230U },
  { PPC::S31, 1231U },
  { PPC::V0, 77U },
  { PPC::V1, 78U },
  { PPC::V2, 79U },
  { PPC::V3, 80U },
  { PPC::V4, 81U },
  { PPC::V5, 82U },
  { PPC::V6, 83U },
  { PPC::V7, 84U },
  { PPC::V8, 85U },
  { PPC::V9, 86U },
  { PPC::V10, 87U },
  { PPC::V11, 88U },
  { PPC::V12, 89U },
  { PPC::V13, 90U },
  { PPC::V14, 91U },
  { PPC::V15, 92U },
  { PPC::V16, 93U },
  { PPC::V17, 94U },
  { PPC::V18, 95U },
  { PPC::V19, 96U },
  { PPC::V20, 97U },
  { PPC::V21, 98U },
  { PPC::V22, 99U },
  { PPC::V23, 100U },
  { PPC::V24, 101U },
  { PPC::V25, 102U },
  { PPC::V26, 103U },
  { PPC::V27, 104U },
  { PPC::V28, 105U },
  { PPC::V29, 106U },
  { PPC::V30, 107U },
  { PPC::V31, 108U },
  { PPC::VF0, 77U },
  { PPC::VF1, 78U },
  { PPC::VF2, 79U },
  { PPC::VF3, 80U },
  { PPC::VF4, 81U },
  { PPC::VF5, 82U },
  { PPC::VF6, 83U },
  { PPC::VF7, 84U },
  { PPC::VF8, 85U },
  { PPC::VF9, 86U },
  { PPC::VF10, 87U },
  { PPC::VF11, 88U },
  { PPC::VF12, 89U },
  { PPC::VF13, 90U },
  { PPC::VF14, 91U },
  { PPC::VF15, 92U },
  { PPC::VF16, 93U },
  { PPC::VF17, 94U },
  { PPC::VF18, 95U },
  { PPC::VF19, 96U },
  { PPC::VF20, 97U },
  { PPC::VF21, 98U },
  { PPC::VF22, 99U },
  { PPC::VF23, 100U },
  { PPC::VF24, 101U },
  { PPC::VF25, 102U },
  { PPC::VF26, 103U },
  { PPC::VF27, 104U },
  { PPC::VF28, 105U },
  { PPC::VF29, 106U },
  { PPC::VF30, 107U },
  { PPC::VF31, 108U },
  { PPC::VSL0, 32U },
  { PPC::VSL1, 33U },
  { PPC::VSL2, 34U },
  { PPC::VSL3, 35U },
  { PPC::VSL4, 36U },
  { PPC::VSL5, 37U },
  { PPC::VSL6, 38U },
  { PPC::VSL7, 39U },
  { PPC::VSL8, 40U },
  { PPC::VSL9, 41U },
  { PPC::VSL10, 42U },
  { PPC::VSL11, 43U },
  { PPC::VSL12, 44U },
  { PPC::VSL13, 45U },
  { PPC::VSL14, 46U },
  { PPC::VSL15, 47U },
  { PPC::VSL16, 48U },
  { PPC::VSL17, 49U },
  { PPC::VSL18, 50U },
  { PPC::VSL19, 51U },
  { PPC::VSL20, 52U },
  { PPC::VSL21, 53U },
  { PPC::VSL22, 54U },
  { PPC::VSL23, 55U },
  { PPC::VSL24, 56U },
  { PPC::VSL25, 57U },
  { PPC::VSL26, 58U },
  { PPC::VSL27, 59U },
  { PPC::VSL28, 60U },
  { PPC::VSL29, 61U },
  { PPC::VSL30, 62U },
  { PPC::VSL31, 63U },
  { PPC::X0, -2U },
  { PPC::X1, -2U },
  { PPC::X2, -2U },
  { PPC::X3, -2U },
  { PPC::X4, -2U },
  { PPC::X5, -2U },
  { PPC::X6, -2U },
  { PPC::X7, -2U },
  { PPC::X8, -2U },
  { PPC::X9, -2U },
  { PPC::X10, -2U },
  { PPC::X11, -2U },
  { PPC::X12, -2U },
  { PPC::X13, -2U },
  { PPC::X14, -2U },
  { PPC::X15, -2U },
  { PPC::X16, -2U },
  { PPC::X17, -2U },
  { PPC::X18, -2U },
  { PPC::X19, -2U },
  { PPC::X20, -2U },
  { PPC::X21, -2U },
  { PPC::X22, -2U },
  { PPC::X23, -2U },
  { PPC::X24, -2U },
  { PPC::X25, -2U },
  { PPC::X26, -2U },
  { PPC::X27, -2U },
  { PPC::X28, -2U },
  { PPC::X29, -2U },
  { PPC::X30, -2U },
  { PPC::X31, -2U },
  { PPC::ZERO8, -2U },
};
extern const unsigned PPCEHFlavour1L2DwarfSize = array_lengthof(PPCEHFlavour1L2Dwarf);

extern const uint16_t PPCRegEncodingTable[] = {
  0,
  0,
  1,
  9,
  0,
  8,
  0,
  512,
  256,
  1,
  0,
  0,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  9,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  0,
  8,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  32,
  33,
  34,
  35,
  36,
  37,
  38,
  39,
  40,
  41,
  42,
  43,
  44,
  45,
  46,
  47,
  48,
  49,
  50,
  51,
  52,
  53,
  54,
  55,
  56,
  57,
  58,
  59,
  60,
  61,
  62,
  63,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  32,
  33,
  34,
  35,
  36,
  37,
  38,
  39,
  40,
  41,
  42,
  43,
  44,
  45,
  46,
  47,
  48,
  49,
  50,
  51,
  52,
  53,
  54,
  55,
  56,
  57,
  58,
  59,
  60,
  61,
  62,
  63,
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  0,
  2,
  6,
  10,
  14,
  18,
  22,
  26,
  30,
  1,
  5,
  9,
  13,
  17,
  21,
  25,
  29,
  0,
  4,
  8,
  12,
  16,
  20,
  24,
  28,
  3,
  7,
  11,
  15,
  19,
  23,
  27,
  31,
};
static inline void InitPPCMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
  RI->InitMCRegisterInfo(PPCRegDesc, 344, RA, PC, PPCMCRegisterClasses, 34, PPCRegUnitRoots, 171, PPCRegDiffLists, PPCLaneMaskLists, PPCRegStrings, PPCRegClassStrings, PPCSubRegIdxLists, 7,
PPCSubRegIdxRanges, PPCRegEncodingTable);

  switch (DwarfFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false);
    break;
  case 1:
    RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false);
    break;
  }
  switch (EHFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true);
    break;
  case 1:
    RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true);
    break;
  }
  switch (DwarfFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false);
    break;
  case 1:
    RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false);
    break;
  }
  switch (EHFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true);
    break;
  case 1:
    RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true);
    break;
  }
}

} // end namespace llvm

#endif // GET_REGINFO_MC_DESC

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Register Information Header Fragment                                       *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/


#ifdef GET_REGINFO_HEADER
#undef GET_REGINFO_HEADER

#include "llvm/CodeGen/TargetRegisterInfo.h"

namespace llvm {

class PPCFrameLowering;

struct PPCGenRegisterInfo : public TargetRegisterInfo {
  explicit PPCGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
      unsigned PC = 0, unsigned HwMode = 0);
  unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
  LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
  LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
  const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override;
  const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
  unsigned getRegUnitWeight(unsigned RegUnit) const override;
  unsigned getNumRegPressureSets() const override;
  const char *getRegPressureSetName(unsigned Idx) const override;
  unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
  const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
  const int *getRegUnitPressureSets(unsigned RegUnit) const override;
  ArrayRef<const char *> getRegMaskNames() const override;
  ArrayRef<const uint32_t *> getRegMasks() const override;
  /// Devirtualized TargetFrameLowering.
  static const PPCFrameLowering *getFrameLowering(
      const MachineFunction &MF);
};

namespace PPC { // Register classes
  extern const TargetRegisterClass VSSRCRegClass;
  extern const TargetRegisterClass GPRCRegClass;
  extern const TargetRegisterClass GPRC_NOR0RegClass;
  extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass;
  extern const TargetRegisterClass CRBITRCRegClass;
  extern const TargetRegisterClass F4RCRegClass;
  extern const TargetRegisterClass CRRCRegClass;
  extern const TargetRegisterClass CARRYRCRegClass;
  extern const TargetRegisterClass CTRRCRegClass;
  extern const TargetRegisterClass VRSAVERCRegClass;
  extern const TargetRegisterClass SPILLTOVSRRCRegClass;
  extern const TargetRegisterClass VSFRCRegClass;
  extern const TargetRegisterClass G8RCRegClass;
  extern const TargetRegisterClass G8RC_NOX0RegClass;
  extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass;
  extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass;
  extern const TargetRegisterClass F8RCRegClass;
  extern const TargetRegisterClass SPERCRegClass;
  extern const TargetRegisterClass VFRCRegClass;
  extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass;
  extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass;
  extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass;
  extern const TargetRegisterClass CTRRC8RegClass;
  extern const TargetRegisterClass VSRCRegClass;
  extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass;
  extern const TargetRegisterClass QSRCRegClass;
  extern const TargetRegisterClass VRRCRegClass;
  extern const TargetRegisterClass VSLRCRegClass;
  extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass;
  extern const TargetRegisterClass QSRC_with_sub_64_in_SPILLTOVSRRCRegClass;
  extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass;
  extern const TargetRegisterClass QBRCRegClass;
  extern const TargetRegisterClass QFRCRegClass;
  extern const TargetRegisterClass QBRC_with_sub_64_in_SPILLTOVSRRCRegClass;
} // end namespace PPC

} // end namespace llvm

#endif // GET_REGINFO_HEADER

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Target Register and Register Classes Information                           *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/


#ifdef GET_REGINFO_TARGET_DESC
#undef GET_REGINFO_TARGET_DESC

namespace llvm {

extern const MCRegisterClass PPCMCRegisterClasses[];

static const MVT::SimpleValueType VTLists[] = {
  /* 0 */ MVT::i1, MVT::Other,
  /* 2 */ MVT::i32, MVT::Other,
  /* 4 */ MVT::i64, MVT::Other,
  /* 6 */ MVT::i32, MVT::f32, MVT::Other,
  /* 9 */ MVT::i64, MVT::f64, MVT::Other,
  /* 12 */ MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::v1i128, MVT::v4f32, MVT::v2f64, MVT::f128, MVT::Other,
  /* 21 */ MVT::v4i1, MVT::Other,
  /* 23 */ MVT::v4i32, MVT::v4f32, MVT::v2f64, MVT::v2i64, MVT::Other,
  /* 28 */ MVT::v4f32, MVT::Other,
  /* 30 */ MVT::v4f64, MVT::Other,
};

static const char *const SubRegIndexNameTable[] = { "sub_32", "sub_64", "sub_eq", "sub_gt", "sub_lt", "sub_un", "" };


static const LaneBitmask SubRegIndexLaneMaskTable[] = {
  LaneBitmask::getAll(),
  LaneBitmask(0x00000001), // sub_32
  LaneBitmask(0x00000002), // sub_64
  LaneBitmask(0x00000004), // sub_eq
  LaneBitmask(0x00000008), // sub_gt
  LaneBitmask(0x00000010), // sub_lt
  LaneBitmask(0x00000020), // sub_un
 };



static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = {
  // Mode = 0 (Default)
  { 32, 32, 32, VTLists+7 },    // VSSRC
  { 32, 32, 32, VTLists+6 },    // GPRC
  { 32, 32, 32, VTLists+6 },    // GPRC_NOR0
  { 32, 32, 32, VTLists+6 },    // GPRC_and_GPRC_NOR0
  { 32, 32, 32, VTLists+0 },    // CRBITRC
  { 32, 32, 32, VTLists+7 },    // F4RC
  { 32, 32, 32, VTLists+2 },    // CRRC
  { 32, 32, 32, VTLists+2 },    // CARRYRC
  { 32, 32, 32, VTLists+2 },    // CTRRC
  { 32, 32, 32, VTLists+2 },    // VRSAVERC
  { 64, 64, 64, VTLists+9 },    // SPILLTOVSRRC
  { 64, 64, 64, VTLists+10 },    // VSFRC
  { 64, 64, 64, VTLists+4 },    // G8RC
  { 64, 64, 64, VTLists+4 },    // G8RC_NOX0
  { 64, 64, 64, VTLists+10 },    // SPILLTOVSRRC_and_VSFRC
  { 64, 64, 64, VTLists+4 },    // G8RC_and_G8RC_NOX0
  { 64, 64, 64, VTLists+10 },    // F8RC
  { 64, 64, 64, VTLists+10 },    // SPERC
  { 64, 64, 64, VTLists+10 },    // VFRC
  { 64, 64, 64, VTLists+10 },    // SPERC_with_sub_32_in_GPRC_NOR0
  { 64, 64, 64, VTLists+10 },    // SPILLTOVSRRC_and_VFRC
  { 64, 64, 64, VTLists+10 },    // SPILLTOVSRRC_and_F4RC
  { 64, 64, 64, VTLists+4 },    // CTRRC8
  { 128, 128, 128, VTLists+23 },    // VSRC
  { 128, 128, 128, VTLists+23 },    // VSRC_with_sub_64_in_SPILLTOVSRRC
  { 128, 128, 128, VTLists+28 },    // QSRC
  { 128, 128, 128, VTLists+12 },    // VRRC
  { 128, 128, 128, VTLists+23 },    // VSLRC
  { 128, 128, 128, VTLists+12 },    // VRRC_with_sub_64_in_SPILLTOVSRRC
  { 128, 128, 128, VTLists+28 },    // QSRC_with_sub_64_in_SPILLTOVSRRC
  { 128, 128, 128, VTLists+23 },    // VSLRC_with_sub_64_in_SPILLTOVSRRC
  { 256, 256, 256, VTLists+21 },    // QBRC
  { 256, 256, 256, VTLists+30 },    // QFRC
  { 256, 256, 256, VTLists+30 },    // QBRC_with_sub_64_in_SPILLTOVSRRC
};

static const TargetRegisterClass *const NullRegClasses[] = { nullptr };

static const uint32_t VSSRCSubClassMask[] = {
  0x00354821, 0x00000000, 
  0xff800000, 0x00000003, // sub_64
};

static const uint32_t GPRCSubClassMask[] = {
  0x0000000a, 0x00000000, 
  0x000a9000, 0x00000000, // sub_32
};

static const uint32_t GPRC_NOR0SubClassMask[] = {
  0x0000000c, 0x00000000, 
  0x0008a000, 0x00000000, // sub_32
};

static const uint32_t GPRC_and_GPRC_NOR0SubClassMask[] = {
  0x00000008, 0x00000000, 
  0x00088000, 0x00000000, // sub_32
};

static const uint32_t CRBITRCSubClassMask[] = {
  0x00000010, 0x00000000, 
  0x00000040, 0x00000000, // sub_eq
  0x00000040, 0x00000000, // sub_gt
  0x00000040, 0x00000000, // sub_lt
  0x00000040, 0x00000000, // sub_un
};

static const uint32_t F4RCSubClassMask[] = {
  0x00210020, 0x00000000, 
  0xea000000, 0x00000003, // sub_64
};

static const uint32_t CRRCSubClassMask[] = {
  0x00000040, 0x00000000, 
};

static const uint32_t CARRYRCSubClassMask[] = {
  0x00000080, 0x00000000, 
};

static const uint32_t CTRRCSubClassMask[] = {
  0x00000100, 0x00000000, 
};

static const uint32_t VRSAVERCSubClassMask[] = {
  0x00000200, 0x00000000, 
};

static const uint32_t SPILLTOVSRRCSubClassMask[] = {
  0x0030d400, 0x00000000, 
  0x71000000, 0x00000002, // sub_64
};

static const uint32_t VSFRCSubClassMask[] = {
  0x00354800, 0x00000000, 
  0xff800000, 0x00000003, // sub_64
};

static const uint32_t G8RCSubClassMask[] = {
  0x00009000, 0x00000000, 
};

static const uint32_t G8RC_NOX0SubClassMask[] = {
  0x0000a000, 0x00000000, 
};

static const uint32_t SPILLTOVSRRC_and_VSFRCSubClassMask[] = {
  0x00304000, 0x00000000, 
  0x71000000, 0x00000002, // sub_64
};

static const uint32_t G8RC_and_G8RC_NOX0SubClassMask[] = {
  0x00008000, 0x00000000, 
};

static const uint32_t F8RCSubClassMask[] = {
  0x00210000, 0x00000000, 
  0xea000000, 0x00000003, // sub_64
};

static const uint32_t SPERCSubClassMask[] = {
  0x000a0000, 0x00000000, 
};

static const uint32_t VFRCSubClassMask[] = {
  0x00140000, 0x00000000, 
  0x14000000, 0x00000000, // sub_64
};

static const uint32_t SPERC_with_sub_32_in_GPRC_NOR0SubClassMask[] = {
  0x00080000, 0x00000000, 
};

static const uint32_t SPILLTOVSRRC_and_VFRCSubClassMask[] = {
  0x00100000, 0x00000000, 
  0x10000000, 0x00000000, // sub_64
};

static const uint32_t SPILLTOVSRRC_and_F4RCSubClassMask[] = {
  0x00200000, 0x00000000, 
  0x60000000, 0x00000002, // sub_64
};

static const uint32_t CTRRC8SubClassMask[] = {
  0x00400000, 0x00000000, 
};

static const uint32_t VSRCSubClassMask[] = {
  0x5d800000, 0x00000000, 
};

static const uint32_t VSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
  0x51000000, 0x00000000, 
};

static const uint32_t QSRCSubClassMask[] = {
  0xa2000000, 0x00000003, 
};

static const uint32_t VRRCSubClassMask[] = {
  0x14000000, 0x00000000, 
};

static const uint32_t VSLRCSubClassMask[] = {
  0x48000000, 0x00000000, 
};

static const uint32_t VRRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
  0x10000000, 0x00000000, 
};

static const uint32_t QSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
  0x20000000, 0x00000002, 
};

static const uint32_t VSLRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
  0x40000000, 0x00000000, 
};

static const uint32_t QBRCSubClassMask[] = {
  0x80000000, 0x00000003, 
};

static const uint32_t QFRCSubClassMask[] = {
  0x80000000, 0x00000003, 
};

static const uint32_t QBRC_with_sub_64_in_SPILLTOVSRRCSubClassMask[] = {
  0x00000000, 0x00000002, 
};

static const uint16_t SuperRegIdxSeqs[] = {
  /* 0 */ 1, 0,
  /* 2 */ 2, 0,
  /* 4 */ 3, 4, 5, 6, 0,
};

static const TargetRegisterClass *const GPRC_and_GPRC_NOR0Superclasses[] = {
  &PPC::GPRCRegClass,
  &PPC::GPRC_NOR0RegClass,
  nullptr
};

static const TargetRegisterClass *const F4RCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  nullptr
};

static const TargetRegisterClass *const VSFRCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  nullptr
};

static const TargetRegisterClass *const G8RCSuperclasses[] = {
  &PPC::SPILLTOVSRRCRegClass,
  nullptr
};

static const TargetRegisterClass *const SPILLTOVSRRC_and_VSFRCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  &PPC::SPILLTOVSRRCRegClass,
  &PPC::VSFRCRegClass,
  nullptr
};

static const TargetRegisterClass *const G8RC_and_G8RC_NOX0Superclasses[] = {
  &PPC::SPILLTOVSRRCRegClass,
  &PPC::G8RCRegClass,
  &PPC::G8RC_NOX0RegClass,
  nullptr
};

static const TargetRegisterClass *const F8RCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  &PPC::F4RCRegClass,
  &PPC::VSFRCRegClass,
  nullptr
};

static const TargetRegisterClass *const VFRCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  &PPC::VSFRCRegClass,
  nullptr
};

static const TargetRegisterClass *const SPERC_with_sub_32_in_GPRC_NOR0Superclasses[] = {
  &PPC::SPERCRegClass,
  nullptr
};

static const TargetRegisterClass *const SPILLTOVSRRC_and_VFRCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  &PPC::SPILLTOVSRRCRegClass,
  &PPC::VSFRCRegClass,
  &PPC::SPILLTOVSRRC_and_VSFRCRegClass,
  &PPC::VFRCRegClass,
  nullptr
};

static const TargetRegisterClass *const SPILLTOVSRRC_and_F4RCSuperclasses[] = {
  &PPC::VSSRCRegClass,
  &PPC::F4RCRegClass,
  &PPC::SPILLTOVSRRCRegClass,
  &PPC::VSFRCRegClass,
  &PPC::SPILLTOVSRRC_and_VSFRCRegClass,
  &PPC::F8RCRegClass,
  nullptr
};

static const TargetRegisterClass *const VSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
  &PPC::VSRCRegClass,
  nullptr
};

static const TargetRegisterClass *const VRRCSuperclasses[] = {
  &PPC::VSRCRegClass,
  nullptr
};

static const TargetRegisterClass *const VSLRCSuperclasses[] = {
  &PPC::VSRCRegClass,
  nullptr
};

static const TargetRegisterClass *const VRRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
  &PPC::VSRCRegClass,
  &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
  &PPC::VRRCRegClass,
  nullptr
};

static const TargetRegisterClass *const QSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
  &PPC::QSRCRegClass,
  nullptr
};

static const TargetRegisterClass *const VSLRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
  &PPC::VSRCRegClass,
  &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
  &PPC::VSLRCRegClass,
  nullptr
};

static const TargetRegisterClass *const QBRCSuperclasses[] = {
  &PPC::QSRCRegClass,
  &PPC::QFRCRegClass,
  nullptr
};

static const TargetRegisterClass *const QFRCSuperclasses[] = {
  &PPC::QSRCRegClass,
  &PPC::QBRCRegClass,
  nullptr
};

static const TargetRegisterClass *const QBRC_with_sub_64_in_SPILLTOVSRRCSuperclasses[] = {
  &PPC::QSRCRegClass,
  &PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
  &PPC::QBRCRegClass,
  &PPC::QFRCRegClass,
  nullptr
};


static inline unsigned GPRCAltOrderSelect(const MachineFunction &MF) {
    return MF.getSubtarget<PPCSubtarget>().is64BitELFABI();
  }

static ArrayRef<MCPhysReg> GPRCGetRawAllocationOrder(const MachineFunction &MF) {
  static const MCPhysReg AltOrder1[] = { PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R0, PPC::R1, PPC::FP, PPC::BP, PPC::R2 };
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRCRegClassID];
  const ArrayRef<MCPhysReg> Order[] = {
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    makeArrayRef(AltOrder1)
  };
  const unsigned Select = GPRCAltOrderSelect(MF);
  assert(Select < 2);
  return Order[Select];
}

static inline unsigned GPRC_NOR0AltOrderSelect(const MachineFunction &MF) {
    return MF.getSubtarget<PPCSubtarget>().is64BitELFABI();
  }

static ArrayRef<MCPhysReg> GPRC_NOR0GetRawAllocationOrder(const MachineFunction &MF) {
  static const MCPhysReg AltOrder1[] = { PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, PPC::ZERO, PPC::R2 };
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRC_NOR0RegClassID];
  const ArrayRef<MCPhysReg> Order[] = {
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    makeArrayRef(AltOrder1)
  };
  const unsigned Select = GPRC_NOR0AltOrderSelect(MF);
  assert(Select < 2);
  return Order[Select];
}

static inline unsigned GPRC_and_GPRC_NOR0AltOrderSelect(const MachineFunction &MF) {
    return MF.getSubtarget<PPCSubtarget>().is64BitELFABI();
  }

static ArrayRef<MCPhysReg> GPRC_and_GPRC_NOR0GetRawAllocationOrder(const MachineFunction &MF) {
  static const MCPhysReg AltOrder1[] = { PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R11, PPC::R12, PPC::R30, PPC::R29, PPC::R28, PPC::R27, PPC::R26, PPC::R25, PPC::R24, PPC::R23, PPC::R22, PPC::R21, PPC::R20, PPC::R19, PPC::R18, PPC::R17, PPC::R16, PPC::R15, PPC::R14, PPC::R13, PPC::R31, PPC::R1, PPC::FP, PPC::BP, PPC::R2 };
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRC_and_GPRC_NOR0RegClassID];
  const ArrayRef<MCPhysReg> Order[] = {
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    makeArrayRef(AltOrder1)
  };
  const unsigned Select = GPRC_and_GPRC_NOR0AltOrderSelect(MF);
  assert(Select < 2);
  return Order[Select];
}

static inline unsigned G8RCAltOrderSelect(const MachineFunction &MF) {
    return MF.getSubtarget<PPCSubtarget>().is64BitELFABI();
  }

static ArrayRef<MCPhysReg> G8RCGetRawAllocationOrder(const MachineFunction &MF) {
  static const MCPhysReg AltOrder1[] = { PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X0, PPC::X1, PPC::FP8, PPC::BP8, PPC::X2 };
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RCRegClassID];
  const ArrayRef<MCPhysReg> Order[] = {
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    makeArrayRef(AltOrder1)
  };
  const unsigned Select = G8RCAltOrderSelect(MF);
  assert(Select < 2);
  return Order[Select];
}

static inline unsigned G8RC_NOX0AltOrderSelect(const MachineFunction &MF) {
    return MF.getSubtarget<PPCSubtarget>().is64BitELFABI();
  }

static ArrayRef<MCPhysReg> G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) {
  static const MCPhysReg AltOrder1[] = { PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, PPC::ZERO8, PPC::X2 };
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_NOX0RegClassID];
  const ArrayRef<MCPhysReg> Order[] = {
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    makeArrayRef(AltOrder1)
  };
  const unsigned Select = G8RC_NOX0AltOrderSelect(MF);
  assert(Select < 2);
  return Order[Select];
}

static inline unsigned G8RC_and_G8RC_NOX0AltOrderSelect(const MachineFunction &MF) {
    return MF.getSubtarget<PPCSubtarget>().is64BitELFABI();
  }

static ArrayRef<MCPhysReg> G8RC_and_G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) {
  static const MCPhysReg AltOrder1[] = { PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X11, PPC::X12, PPC::X30, PPC::X29, PPC::X28, PPC::X27, PPC::X26, PPC::X25, PPC::X24, PPC::X23, PPC::X22, PPC::X21, PPC::X20, PPC::X19, PPC::X18, PPC::X17, PPC::X16, PPC::X15, PPC::X14, PPC::X31, PPC::X13, PPC::X1, PPC::FP8, PPC::BP8, PPC::X2 };
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_and_G8RC_NOX0RegClassID];
  const ArrayRef<MCPhysReg> Order[] = {
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
    makeArrayRef(AltOrder1)
  };
  const unsigned Select = G8RC_and_G8RC_NOX0AltOrderSelect(MF);
  assert(Select < 2);
  return Order[Select];
}

namespace PPC {   // Register class instances
  extern const TargetRegisterClass VSSRCRegClass = {
    &PPCMCRegisterClasses[VSSRCRegClassID],
    VSSRCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass GPRCRegClass = {
    &PPCMCRegisterClasses[GPRCRegClassID],
    GPRCSubClassMask,
    SuperRegIdxSeqs + 0,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    GPRCGetRawAllocationOrder
  };

  extern const TargetRegisterClass GPRC_NOR0RegClass = {
    &PPCMCRegisterClasses[GPRC_NOR0RegClassID],
    GPRC_NOR0SubClassMask,
    SuperRegIdxSeqs + 0,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    GPRC_NOR0GetRawAllocationOrder
  };

  extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass = {
    &PPCMCRegisterClasses[GPRC_and_GPRC_NOR0RegClassID],
    GPRC_and_GPRC_NOR0SubClassMask,
    SuperRegIdxSeqs + 0,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    GPRC_and_GPRC_NOR0Superclasses,
    GPRC_and_GPRC_NOR0GetRawAllocationOrder
  };

  extern const TargetRegisterClass CRBITRCRegClass = {
    &PPCMCRegisterClasses[CRBITRCRegClassID],
    CRBITRCSubClassMask,
    SuperRegIdxSeqs + 4,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass F4RCRegClass = {
    &PPCMCRegisterClasses[F4RCRegClassID],
    F4RCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    F4RCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass CRRCRegClass = {
    &PPCMCRegisterClasses[CRRCRegClassID],
    CRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x0000003C),
    0,
    true, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass CARRYRCRegClass = {
    &PPCMCRegisterClasses[CARRYRCRegClassID],
    CARRYRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass CTRRCRegClass = {
    &PPCMCRegisterClasses[CTRRCRegClassID],
    CTRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass VRSAVERCRegClass = {
    &PPCMCRegisterClasses[VRSAVERCRegClassID],
    VRSAVERCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass SPILLTOVSRRCRegClass = {
    &PPCMCRegisterClasses[SPILLTOVSRRCRegClassID],
    SPILLTOVSRRCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass VSFRCRegClass = {
    &PPCMCRegisterClasses[VSFRCRegClassID],
    VSFRCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VSFRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass G8RCRegClass = {
    &PPCMCRegisterClasses[G8RCRegClassID],
    G8RCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    G8RCSuperclasses,
    G8RCGetRawAllocationOrder
  };

  extern const TargetRegisterClass G8RC_NOX0RegClass = {
    &PPCMCRegisterClasses[G8RC_NOX0RegClassID],
    G8RC_NOX0SubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    G8RC_NOX0GetRawAllocationOrder
  };

  extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass = {
    &PPCMCRegisterClasses[SPILLTOVSRRC_and_VSFRCRegClassID],
    SPILLTOVSRRC_and_VSFRCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    SPILLTOVSRRC_and_VSFRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass = {
    &PPCMCRegisterClasses[G8RC_and_G8RC_NOX0RegClassID],
    G8RC_and_G8RC_NOX0SubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    G8RC_and_G8RC_NOX0Superclasses,
    G8RC_and_G8RC_NOX0GetRawAllocationOrder
  };

  extern const TargetRegisterClass F8RCRegClass = {
    &PPCMCRegisterClasses[F8RCRegClassID],
    F8RCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    F8RCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass SPERCRegClass = {
    &PPCMCRegisterClasses[SPERCRegClassID],
    SPERCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass VFRCRegClass = {
    &PPCMCRegisterClasses[VFRCRegClassID],
    VFRCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VFRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass = {
    &PPCMCRegisterClasses[SPERC_with_sub_32_in_GPRC_NOR0RegClassID],
    SPERC_with_sub_32_in_GPRC_NOR0SubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    SPERC_with_sub_32_in_GPRC_NOR0Superclasses,
    nullptr
  };

  extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass = {
    &PPCMCRegisterClasses[SPILLTOVSRRC_and_VFRCRegClassID],
    SPILLTOVSRRC_and_VFRCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    SPILLTOVSRRC_and_VFRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass = {
    &PPCMCRegisterClasses[SPILLTOVSRRC_and_F4RCRegClassID],
    SPILLTOVSRRC_and_F4RCSubClassMask,
    SuperRegIdxSeqs + 2,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    SPILLTOVSRRC_and_F4RCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass CTRRC8RegClass = {
    &PPCMCRegisterClasses[CTRRC8RegClassID],
    CTRRC8SubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000001),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass VSRCRegClass = {
    &PPCMCRegisterClasses[VSRCRegClassID],
    VSRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    &PPCMCRegisterClasses[VSRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    VSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass QSRCRegClass = {
    &PPCMCRegisterClasses[QSRCRegClassID],
    QSRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    NullRegClasses,
    nullptr
  };

  extern const TargetRegisterClass VRRCRegClass = {
    &PPCMCRegisterClasses[VRRCRegClassID],
    VRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VRRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass VSLRCRegClass = {
    &PPCMCRegisterClasses[VSLRCRegClassID],
    VSLRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VSLRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    &PPCMCRegisterClasses[VRRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    VRRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VRRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass QSRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    &PPCMCRegisterClasses[QSRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    QSRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    QSRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    &PPCMCRegisterClasses[VSLRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    VSLRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    VSLRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass QBRCRegClass = {
    &PPCMCRegisterClasses[QBRCRegClassID],
    QBRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    QBRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass QFRCRegClass = {
    &PPCMCRegisterClasses[QFRCRegClassID],
    QFRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    QFRCSuperclasses,
    nullptr
  };

  extern const TargetRegisterClass QBRC_with_sub_64_in_SPILLTOVSRRCRegClass = {
    &PPCMCRegisterClasses[QBRC_with_sub_64_in_SPILLTOVSRRCRegClassID],
    QBRC_with_sub_64_in_SPILLTOVSRRCSubClassMask,
    SuperRegIdxSeqs + 1,
    LaneBitmask(0x00000002),
    0,
    false, /* HasDisjunctSubRegs */
    false, /* CoveredBySubRegs */
    QBRC_with_sub_64_in_SPILLTOVSRRCSuperclasses,
    nullptr
  };

} // end namespace PPC

namespace {
  const TargetRegisterClass* const RegisterClasses[] = {
    &PPC::VSSRCRegClass,
    &PPC::GPRCRegClass,
    &PPC::GPRC_NOR0RegClass,
    &PPC::GPRC_and_GPRC_NOR0RegClass,
    &PPC::CRBITRCRegClass,
    &PPC::F4RCRegClass,
    &PPC::CRRCRegClass,
    &PPC::CARRYRCRegClass,
    &PPC::CTRRCRegClass,
    &PPC::VRSAVERCRegClass,
    &PPC::SPILLTOVSRRCRegClass,
    &PPC::VSFRCRegClass,
    &PPC::G8RCRegClass,
    &PPC::G8RC_NOX0RegClass,
    &PPC::SPILLTOVSRRC_and_VSFRCRegClass,
    &PPC::G8RC_and_G8RC_NOX0RegClass,
    &PPC::F8RCRegClass,
    &PPC::SPERCRegClass,
    &PPC::VFRCRegClass,
    &PPC::SPERC_with_sub_32_in_GPRC_NOR0RegClass,
    &PPC::SPILLTOVSRRC_and_VFRCRegClass,
    &PPC::SPILLTOVSRRC_and_F4RCRegClass,
    &PPC::CTRRC8RegClass,
    &PPC::VSRCRegClass,
    &PPC::VSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    &PPC::QSRCRegClass,
    &PPC::VRRCRegClass,
    &PPC::VSLRCRegClass,
    &PPC::VRRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    &PPC::QSRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    &PPC::VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass,
    &PPC::QBRCRegClass,
    &PPC::QFRCRegClass,
    &PPC::QBRC_with_sub_64_in_SPILLTOVSRRCRegClass,
  };
} // end anonymous namespace

static const TargetRegisterInfoDesc PPCRegInfoDesc[] = { // Extra Descriptors
  { 0, false },
  { 0, true },
  { 0, true },
  { 0, false },
  { 0, true },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, false },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, false },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, false },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
  { 0, true },
};
unsigned PPCGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
  static const uint8_t Rows[1][6] = {
    { 0, 0, 0, 0, 0, 0, },
  };

  --IdxA; assert(IdxA < 6);
  --IdxB; assert(IdxB < 6);
  return Rows[0][IdxB];
}

  struct MaskRolOp {
    LaneBitmask Mask;
    uint8_t  RotateLeft;
  };
  static const MaskRolOp LaneMaskComposeSequences[] = {
    { LaneBitmask(0xFFFFFFFF),  0 }, { LaneBitmask::getNone(), 0 },   // Sequence 0
    { LaneBitmask(0xFFFFFFFF),  1 }, { LaneBitmask::getNone(), 0 },   // Sequence 2
    { LaneBitmask(0xFFFFFFFF),  2 }, { LaneBitmask::getNone(), 0 },   // Sequence 4
    { LaneBitmask(0xFFFFFFFF),  3 }, { LaneBitmask::getNone(), 0 },   // Sequence 6
    { LaneBitmask(0xFFFFFFFF),  4 }, { LaneBitmask::getNone(), 0 },   // Sequence 8
    { LaneBitmask(0xFFFFFFFF),  5 }, { LaneBitmask::getNone(), 0 }  // Sequence 10
  };
  static const MaskRolOp *const CompositeSequences[] = {
    &LaneMaskComposeSequences[0], // to sub_32
    &LaneMaskComposeSequences[2], // to sub_64
    &LaneMaskComposeSequences[4], // to sub_eq
    &LaneMaskComposeSequences[6], // to sub_gt
    &LaneMaskComposeSequences[8], // to sub_lt
    &LaneMaskComposeSequences[10] // to sub_un
  };

LaneBitmask PPCGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
  --IdxA; assert(IdxA < 6 && "Subregister index out of bounds");
  LaneBitmask Result;
  for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
    LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
    if (unsigned S = Ops->RotateLeft)
      Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
    else
      Result |= LaneBitmask(M);
  }
  return Result;
}

LaneBitmask PPCGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA,  LaneBitmask LaneMask) const {
  LaneMask &= getSubRegIndexLaneMask(IdxA);
  --IdxA; assert(IdxA < 6 && "Subregister index out of bounds");
  LaneBitmask Result;
  for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
    LaneBitmask::Type M = LaneMask.getAsInteger();
    if (unsigned S = Ops->RotateLeft)
      Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
    else
      Result |= LaneBitmask(M);
  }
  return Result;
}

const TargetRegisterClass *PPCGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
  static const uint8_t Table[34][6] = {
    {	// VSSRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// GPRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// GPRC_NOR0
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// GPRC_and_GPRC_NOR0
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// CRBITRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// F4RC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// CRRC
      0,	// sub_32
      0,	// sub_64
      7,	// sub_eq -> CRRC
      7,	// sub_gt -> CRRC
      7,	// sub_lt -> CRRC
      7,	// sub_un -> CRRC
    },
    {	// CARRYRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// CTRRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VRSAVERC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// SPILLTOVSRRC
      13,	// sub_32 -> G8RC
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VSFRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// G8RC
      13,	// sub_32 -> G8RC
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// G8RC_NOX0
      14,	// sub_32 -> G8RC_NOX0
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// SPILLTOVSRRC_and_VSFRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// G8RC_and_G8RC_NOX0
      16,	// sub_32 -> G8RC_and_G8RC_NOX0
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// F8RC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// SPERC
      18,	// sub_32 -> SPERC
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VFRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// SPERC_with_sub_32_in_GPRC_NOR0
      20,	// sub_32 -> SPERC_with_sub_32_in_GPRC_NOR0
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// SPILLTOVSRRC_and_VFRC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// SPILLTOVSRRC_and_F4RC
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// CTRRC8
      0,	// sub_32
      0,	// sub_64
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VSRC
      0,	// sub_32
      24,	// sub_64 -> VSRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VSRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_32
      25,	// sub_64 -> VSRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// QSRC
      0,	// sub_32
      26,	// sub_64 -> QSRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VRRC
      0,	// sub_32
      27,	// sub_64 -> VRRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VSLRC
      0,	// sub_32
      28,	// sub_64 -> VSLRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VRRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_32
      29,	// sub_64 -> VRRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// QSRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_32
      30,	// sub_64 -> QSRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// VSLRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_32
      31,	// sub_64 -> VSLRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// QBRC
      0,	// sub_32
      32,	// sub_64 -> QBRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// QFRC
      0,	// sub_32
      33,	// sub_64 -> QFRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
    {	// QBRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_32
      34,	// sub_64 -> QBRC_with_sub_64_in_SPILLTOVSRRC
      0,	// sub_eq
      0,	// sub_gt
      0,	// sub_lt
      0,	// sub_un
    },
  };
  assert(RC && "Missing regclass");
  if (!Idx) return RC;
  --Idx;
  assert(Idx < 6 && "Bad subreg");
  unsigned TV = Table[RC->getID()][Idx];
  return TV ? getRegClass(TV - 1) : nullptr;
}

/// Get the weight in units of pressure for this register class.
const RegClassWeight &PPCGenRegisterInfo::
getRegClassWeight(const TargetRegisterClass *RC) const {
  static const RegClassWeight RCWeightTable[] = {
    {1, 64},  	// VSSRC
    {1, 34},  	// GPRC
    {1, 34},  	// GPRC_NOR0
    {1, 33},  	// GPRC_and_GPRC_NOR0
    {1, 32},  	// CRBITRC
    {1, 32},  	// F4RC
    {4, 32},  	// CRRC
    {1, 1},  	// CARRYRC
    {0, 0},  	// CTRRC
    {1, 1},  	// VRSAVERC
    {1, 68},  	// SPILLTOVSRRC
    {1, 64},  	// VSFRC
    {1, 34},  	// G8RC
    {1, 34},  	// G8RC_NOX0
    {1, 34},  	// SPILLTOVSRRC_and_VSFRC
    {1, 33},  	// G8RC_and_G8RC_NOX0
    {1, 32},  	// F8RC
    {1, 32},  	// SPERC
    {1, 32},  	// VFRC
    {1, 31},  	// SPERC_with_sub_32_in_GPRC_NOR0
    {1, 20},  	// SPILLTOVSRRC_and_VFRC
    {1, 14},  	// SPILLTOVSRRC_and_F4RC
    {0, 0},  	// CTRRC8
    {1, 64},  	// VSRC
    {1, 34},  	// VSRC_with_sub_64_in_SPILLTOVSRRC
    {1, 32},  	// QSRC
    {1, 32},  	// VRRC
    {1, 32},  	// VSLRC
    {1, 20},  	// VRRC_with_sub_64_in_SPILLTOVSRRC
    {1, 14},  	// QSRC_with_sub_64_in_SPILLTOVSRRC
    {1, 14},  	// VSLRC_with_sub_64_in_SPILLTOVSRRC
    {1, 32},  	// QBRC
    {1, 32},  	// QFRC
    {1, 14},  	// QBRC_with_sub_64_in_SPILLTOVSRRC
  };
  return RCWeightTable[RC->getID()];
}

/// Get the weight in units of pressure for this register unit.
unsigned PPCGenRegisterInfo::
getRegUnitWeight(unsigned RegUnit) const {
  assert(RegUnit < 171 && "invalid register unit");
  // All register units have unit weight.
  return 1;
}


// Get the number of dimensions of register pressure.
unsigned PPCGenRegisterInfo::getNumRegPressureSets() const {
  return 16;
}

// Get the name of this register unit pressure set.
const char *PPCGenRegisterInfo::
getRegPressureSetName(unsigned Idx) const {
  static const char *const PressureNameTable[] = {
    "CARRYRC",
    "VRSAVERC",
    "SPILLTOVSRRC_and_F4RC",
    "SPILLTOVSRRC_and_VFRC",
    "CRBITRC",
    "F4RC",
    "VFRC",
    "SPILLTOVSRRC_and_VSFRC",
    "GPRC",
    "SPILLTOVSRRC_and_VSFRC+VFRC",
    "F4RC+SPILLTOVSRRC_and_VSFRC",
    "VSSRC",
    "SPILLTOVSRRC",
    "SPILLTOVSRRC+VFRC",
    "F4RC+SPILLTOVSRRC",
    "VSSRC+SPILLTOVSRRC",
  };
  return PressureNameTable[Idx];
}

// Get the register unit pressure limit for this dimension.
// This limit must be adjusted dynamically for reserved registers.
unsigned PPCGenRegisterInfo::
getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
  static const uint8_t PressureLimitTable[] = {
    1,  	// 0: CARRYRC
    1,  	// 1: VRSAVERC
    14,  	// 2: SPILLTOVSRRC_and_F4RC
    20,  	// 3: SPILLTOVSRRC_and_VFRC
    32,  	// 4: CRBITRC
    32,  	// 5: F4RC
    32,  	// 6: VFRC
    34,  	// 7: SPILLTOVSRRC_and_VSFRC
    35,  	// 8: GPRC
    46,  	// 9: SPILLTOVSRRC_and_VSFRC+VFRC
    52,  	// 10: F4RC+SPILLTOVSRRC_and_VSFRC
    64,  	// 11: VSSRC
    69,  	// 12: SPILLTOVSRRC
    80,  	// 13: SPILLTOVSRRC+VFRC
    86,  	// 14: F4RC+SPILLTOVSRRC
    98,  	// 15: VSSRC+SPILLTOVSRRC
  };
  return PressureLimitTable[Idx];
}

/// Table of pressure sets per register class or unit.
static const int RCSetsTable[] = {
  /* 0 */ 0, -1,
  /* 2 */ 1, -1,
  /* 4 */ 4, -1,
  /* 6 */ 8, 12, -1,
  /* 9 */ 11, 15, -1,
  /* 12 */ 6, 9, 11, 13, 15, -1,
  /* 18 */ 5, 10, 11, 14, 15, -1,
  /* 24 */ 8, 12, 13, 14, 15, -1,
  /* 30 */ 2, 5, 7, 9, 10, 11, 12, 13, 14, 15, -1,
  /* 41 */ 3, 6, 7, 9, 10, 11, 12, 13, 14, 15, -1,
};

/// Get the dimensions of register pressure impacted by this register class.
/// Returns a -1 terminated array of pressure set IDs
const int* PPCGenRegisterInfo::
getRegClassPressureSets(const TargetRegisterClass *RC) const {
  static const uint8_t RCSetStartTable[] = {
    9,24,6,24,4,18,4,0,1,2,25,9,24,6,32,24,18,24,12,24,41,30,1,9,32,18,12,18,41,30,30,18,18,30,};
  return &RCSetsTable[RCSetStartTable[RC->getID()]];
}

/// Get the dimensions of register pressure impacted by this register unit.
/// Returns a -1 terminated array of pressure set IDs
const int* PPCGenRegisterInfo::
getRegUnitPressureSets(unsigned RegUnit) const {
  assert(RegUnit < 171 && "invalid register unit");
  static const uint8_t RUSetStartTable[] = {
    24,0,1,24,1,1,1,2,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,30,30,30,30,30,30,30,30,30,30,30,30,30,30,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,1,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,12,12,12,12,12,12,12,12,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,};
  return &RCSetsTable[RUSetStartTable[RegUnit]];
}

extern const MCRegisterDesc PPCRegDesc[];
extern const MCPhysReg PPCRegDiffLists[];
extern const LaneBitmask PPCLaneMaskLists[];
extern const char PPCRegStrings[];
extern const char PPCRegClassStrings[];
extern const MCPhysReg PPCRegUnitRoots[][2];
extern const uint16_t PPCSubRegIdxLists[];
extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[];
extern const uint16_t PPCRegEncodingTable[];
// PPC Dwarf<->LLVM register mappings.
extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[];
extern const unsigned PPCDwarfFlavour0Dwarf2LSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[];
extern const unsigned PPCDwarfFlavour1Dwarf2LSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[];
extern const unsigned PPCEHFlavour0Dwarf2LSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[];
extern const unsigned PPCEHFlavour1Dwarf2LSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[];
extern const unsigned PPCDwarfFlavour0L2DwarfSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[];
extern const unsigned PPCDwarfFlavour1L2DwarfSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[];
extern const unsigned PPCEHFlavour0L2DwarfSize;

extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[];
extern const unsigned PPCEHFlavour1L2DwarfSize;

PPCGenRegisterInfo::
PPCGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
      unsigned PC, unsigned HwMode)
  : TargetRegisterInfo(PPCRegInfoDesc, RegisterClasses, RegisterClasses+34,
             SubRegIndexNameTable, SubRegIndexLaneMaskTable,
             LaneBitmask(0xFFFFFFC0), RegClassInfos, HwMode) {
  InitMCRegisterInfo(PPCRegDesc, 344, RA, PC,
                     PPCMCRegisterClasses, 34,
                     PPCRegUnitRoots,
                     171,
                     PPCRegDiffLists,
                     PPCLaneMaskLists,
                     PPCRegStrings,
                     PPCRegClassStrings,
                     PPCSubRegIdxLists,
                     7,
                     PPCSubRegIdxRanges,
                     PPCRegEncodingTable);

  switch (DwarfFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false);
    break;
  case 1:
    mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false);
    break;
  }
  switch (EHFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true);
    break;
  case 1:
    mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true);
    break;
  }
  switch (DwarfFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false);
    break;
  case 1:
    mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false);
    break;
  }
  switch (EHFlavour) {
  default:
    llvm_unreachable("Unknown DWARF flavour");
  case 0:
    mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true);
    break;
  case 1:
    mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true);
    break;
  }
}

static const MCPhysReg CSR_64_AllRegs_SaveList[] = { PPC::X0, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, 0 };
static const uint32_t CSR_64_AllRegs_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfc800000, 0xff7fffe3, 0x00ffffff, };
static const MCPhysReg CSR_64_AllRegs_Altivec_SaveList[] = { PPC::X0, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_64_AllRegs_Altivec_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0xff800000, 0xffffffff, 0x007fffff, 0x00000000, 0xfc800000, 0xff7fffe3, 0x00ffffff, };
static const MCPhysReg CSR_64_AllRegs_VSX_SaveList[] = { PPC::X0, PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, PPC::VSL12, PPC::VSL13, PPC::VSL14, PPC::VSL15, PPC::VSL16, PPC::VSL17, PPC::VSL18, PPC::VSL19, PPC::VSL20, PPC::VSL21, PPC::VSL22, PPC::VSL23, PPC::VSL24, PPC::VSL25, PPC::VSL26, PPC::VSL27, PPC::VSL28, PPC::VSL29, PPC::VSL30, PPC::VSL31, 0 };
static const uint32_t CSR_64_AllRegs_VSX_RegMask[] = { 0xffeff000, 0x001fffff, 0xfc800000, 0x007fffe3, 0xff800000, 0xffffffff, 0xffffffff, 0x007fffff, 0xfc800000, 0xff7fffe3, 0x00ffffff, };
static const MCPhysReg CSR_AIX32_SaveList[] = { PPC::R13, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_AIX32_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_AIX64_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_AIX64_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_Altivec_SaveList[] = { PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_Altivec_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
static const MCPhysReg CSR_Darwin32_SaveList[] = { PPC::R13, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_Darwin32_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_Darwin32_Altivec_SaveList[] = { PPC::R13, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_Darwin32_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_Darwin64_SaveList[] = { PPC::X13, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_Darwin64_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7ffff0, 0x001c1c1c, };
static const MCPhysReg CSR_Darwin64_Altivec_SaveList[] = { PPC::X13, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_Darwin64_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007ffff0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7ffff0, 0x001c1c1c, };
static const MCPhysReg CSR_NoRegs_SaveList[] = { 0 };
static const uint32_t CSR_NoRegs_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
static const MCPhysReg CSR_SPE_SaveList[] = { PPC::S14, PPC::S15, PPC::S16, PPC::S17, PPC::S18, PPC::S19, PPC::S20, PPC::S21, PPC::S22, PPC::S23, PPC::S24, PPC::S25, PPC::S26, PPC::S27, PPC::S28, PPC::S29, PPC::S30, PPC::S31, 0 };
static const uint32_t CSR_SPE_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x007fffe0, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
static const MCPhysReg CSR_SRV464_TLS_PE_SaveList[] = { 0 };
static const uint32_t CSR_SRV464_TLS_PE_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
static const MCPhysReg CSR_SVR32_ColdCC_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, 0 };
static const uint32_t CSR_SVR32_ColdCC_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, };
static const MCPhysReg CSR_SVR32_ColdCC_Altivec_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::V0, PPC::V1, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_SVR32_ColdCC_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, };
static const MCPhysReg CSR_SVR32_ColdCC_Common_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, 0 };
static const uint32_t CSR_SVR32_ColdCC_Common_RegMask[] = { 0x000ff000, 0x00000000, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, };
static const MCPhysReg CSR_SVR32_ColdCC_SPE_SaveList[] = { PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::S4, PPC::S5, PPC::S6, PPC::S7, PPC::S8, PPC::S9, PPC::S10, PPC::S14, PPC::S15, PPC::S16, PPC::S17, PPC::S18, PPC::S19, PPC::S20, PPC::S21, PPC::S22, PPC::S23, PPC::S24, PPC::S25, PPC::S26, PPC::S27, PPC::S28, PPC::S29, PPC::S30, PPC::S31, 0 };
static const uint32_t CSR_SVR32_ColdCC_SPE_RegMask[] = { 0x000ff000, 0x00000000, 0xf8000000, 0xf87fffe3, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00ffffff, };
static const MCPhysReg CSR_SVR432_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, 0 };
static const uint32_t CSR_SVR432_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_SVR432_Altivec_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_SVR432_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_SVR432_COMM_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_SVR432_COMM_RegMask[] = { 0x0001c000, 0x00000000, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_SVR432_SPE_SaveList[] = { PPC::R14, PPC::R15, PPC::R16, PPC::R17, PPC::R18, PPC::R19, PPC::R20, PPC::R21, PPC::R22, PPC::R23, PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::S14, PPC::S15, PPC::S16, PPC::S17, PPC::S18, PPC::S19, PPC::S20, PPC::S21, PPC::S22, PPC::S23, PPC::S24, PPC::S25, PPC::S26, PPC::S27, PPC::S28, PPC::S29, PPC::S30, PPC::S31, 0 };
static const uint32_t CSR_SVR432_SPE_RegMask[] = { 0x0001c000, 0x00000000, 0x00000000, 0x007fffe0, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c000000, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_SVR464_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_Altivec_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_SVR464_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_Altivec_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_SVR464_Altivec_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_R2_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::X2, 0 };
static const uint32_t CSR_SVR464_R2_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_R2_Altivec_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::X2, 0 };
static const uint32_t CSR_SVR464_R2_Altivec_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_R2_Altivec_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::X2, 0 };
static const uint32_t CSR_SVR464_R2_Altivec_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x007ff800, 0x007ff800, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_R2_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, PPC::X2, 0 };
static const uint32_t CSR_SVR464_R2_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x02000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR464_ViaCopy_SaveList[] = { PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR2, PPC::CR3, PPC::CR4, 0 };
static const uint32_t CSR_SVR464_ViaCopy_RegMask[] = { 0x0001c000, 0x001ffff8, 0x00000000, 0x007fffe0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1c7fffe0, 0x001c1c1c, };
static const MCPhysReg CSR_SVR64_ColdCC_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, 0 };
static const uint32_t CSR_SVR64_ColdCC_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xf8000000, 0xff7fffe3, 0x00ffffff, };
static const MCPhysReg CSR_SVR64_ColdCC_Altivec_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, 0 };
static const uint32_t CSR_SVR64_ColdCC_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xf8000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0xf8000000, 0xff7fffe3, 0x00ffffff, };
static const MCPhysReg CSR_SVR64_ColdCC_R2_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::X2, 0 };
static const uint32_t CSR_SVR64_ColdCC_R2_RegMask[] = { 0xffaff000, 0x001fffff, 0xfa000000, 0x007fffe3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfa000000, 0xff7fffe3, 0x00ffffff, };
static const MCPhysReg CSR_SVR64_ColdCC_R2_Altivec_SaveList[] = { PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10, PPC::X14, PPC::X15, PPC::X16, PPC::X17, PPC::X18, PPC::X19, PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, PPC::F0, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, PPC::F26, PPC::F27, PPC::F28, PPC::F29, PPC::F30, PPC::F31, PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3, PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7, PPC::V0, PPC::V1, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13, PPC::V14, PPC::V15, PPC::V16, PPC::V17, PPC::V18, PPC::V19, PPC::V20, PPC::V21, PPC::V22, PPC::V23, PPC::V24, PPC::V25, PPC::V26, PPC::V27, PPC::V28, PPC::V29, PPC::V30, PPC::V31, PPC::X2, 0 };
static const uint32_t CSR_SVR64_ColdCC_R2_Altivec_RegMask[] = { 0xffaff000, 0x001fffff, 0xfa000000, 0x007fffe3, 0xfd800000, 0xfdffffff, 0x007fffff, 0x00000000, 0xfa000000, 0xff7fffe3, 0x00ffffff, };


ArrayRef<const uint32_t *> PPCGenRegisterInfo::getRegMasks() const {
  static const uint32_t *const Masks[] = {
    CSR_64_AllRegs_RegMask,
    CSR_64_AllRegs_Altivec_RegMask,
    CSR_64_AllRegs_VSX_RegMask,
    CSR_AIX32_RegMask,
    CSR_AIX64_RegMask,
    CSR_Altivec_RegMask,
    CSR_Darwin32_RegMask,
    CSR_Darwin32_Altivec_RegMask,
    CSR_Darwin64_RegMask,
    CSR_Darwin64_Altivec_RegMask,
    CSR_NoRegs_RegMask,
    CSR_SPE_RegMask,
    CSR_SRV464_TLS_PE_RegMask,
    CSR_SVR32_ColdCC_RegMask,
    CSR_SVR32_ColdCC_Altivec_RegMask,
    CSR_SVR32_ColdCC_Common_RegMask,
    CSR_SVR32_ColdCC_SPE_RegMask,
    CSR_SVR432_RegMask,
    CSR_SVR432_Altivec_RegMask,
    CSR_SVR432_COMM_RegMask,
    CSR_SVR432_SPE_RegMask,
    CSR_SVR464_RegMask,
    CSR_SVR464_Altivec_RegMask,
    CSR_SVR464_Altivec_ViaCopy_RegMask,
    CSR_SVR464_R2_RegMask,
    CSR_SVR464_R2_Altivec_RegMask,
    CSR_SVR464_R2_Altivec_ViaCopy_RegMask,
    CSR_SVR464_R2_ViaCopy_RegMask,
    CSR_SVR464_ViaCopy_RegMask,
    CSR_SVR64_ColdCC_RegMask,
    CSR_SVR64_ColdCC_Altivec_RegMask,
    CSR_SVR64_ColdCC_R2_RegMask,
    CSR_SVR64_ColdCC_R2_Altivec_RegMask,
  };
  return makeArrayRef(Masks);
}

ArrayRef<const char *> PPCGenRegisterInfo::getRegMaskNames() const {
  static const char *const Names[] = {
    "CSR_64_AllRegs",
    "CSR_64_AllRegs_Altivec",
    "CSR_64_AllRegs_VSX",
    "CSR_AIX32",
    "CSR_AIX64",
    "CSR_Altivec",
    "CSR_Darwin32",
    "CSR_Darwin32_Altivec",
    "CSR_Darwin64",
    "CSR_Darwin64_Altivec",
    "CSR_NoRegs",
    "CSR_SPE",
    "CSR_SRV464_TLS_PE",
    "CSR_SVR32_ColdCC",
    "CSR_SVR32_ColdCC_Altivec",
    "CSR_SVR32_ColdCC_Common",
    "CSR_SVR32_ColdCC_SPE",
    "CSR_SVR432",
    "CSR_SVR432_Altivec",
    "CSR_SVR432_COMM",
    "CSR_SVR432_SPE",
    "CSR_SVR464",
    "CSR_SVR464_Altivec",
    "CSR_SVR464_Altivec_ViaCopy",
    "CSR_SVR464_R2",
    "CSR_SVR464_R2_Altivec",
    "CSR_SVR464_R2_Altivec_ViaCopy",
    "CSR_SVR464_R2_ViaCopy",
    "CSR_SVR464_ViaCopy",
    "CSR_SVR64_ColdCC",
    "CSR_SVR64_ColdCC_Altivec",
    "CSR_SVR64_ColdCC_R2",
    "CSR_SVR64_ColdCC_R2_Altivec",
  };
  return makeArrayRef(Names);
}

const PPCFrameLowering *
PPCGenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
  return static_cast<const PPCFrameLowering *>(
      MF.getSubtarget().getFrameLowering());
}

} // end namespace llvm

#endif // GET_REGINFO_TARGET_DESC

