Coverage Report

Created: 2018-09-19 20:53

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