Coverage Report

Created: 2018-11-16 02:38

/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
  32,
3702
  33,
3703
  34,
3704
  35,
3705
  36,
3706
  37,
3707
  38,
3708
  39,
3709
  40,
3710
  41,
3711
  42,
3712
  43,
3713
  44,
3714
  45,
3715
  46,
3716
  47,
3717
  48,
3718
  49,
3719
  50,
3720
  51,
3721
  52,
3722
  53,
3723
  54,
3724
  55,
3725
  56,
3726
  57,
3727
  58,
3728
  59,
3729
  60,
3730
  61,
3731
  62,
3732
  63,
3733
  0,
3734
  1,
3735
  2,
3736
  3,
3737
  4,
3738
  5,
3739
  6,
3740
  7,
3741
  8,
3742
  9,
3743
  10,
3744
  11,
3745
  12,
3746
  13,
3747
  14,
3748
  15,
3749
  16,
3750
  17,
3751
  18,
3752
  19,
3753
  20,
3754
  21,
3755
  22,
3756
  23,
3757
  24,
3758
  25,
3759
  26,
3760
  27,
3761
  28,
3762
  29,
3763
  30,
3764
  31,
3765
  0,
3766
  2,
3767
  6,
3768
  10,
3769
  14,
3770
  18,
3771
  22,
3772
  26,
3773
  30,
3774
  1,
3775
  5,
3776
  9,
3777
  13,
3778
  17,
3779
  21,
3780
  25,
3781
  29,
3782
  0,
3783
  4,
3784
  8,
3785
  12,
3786
  16,
3787
  20,
3788
  24,
3789
  28,
3790
  3,
3791
  7,
3792
  11,
3793
  15,
3794
  19,
3795
  23,
3796
  27,
3797
  31,
3798
};
3799
3.68k
static inline void InitPPCMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
3800
3.68k
  RI->InitMCRegisterInfo(PPCRegDesc, 344, RA, PC, PPCMCRegisterClasses, 36, PPCRegUnitRoots, 171, PPCRegDiffLists, PPCLaneMaskLists, PPCRegStrings, PPCRegClassStrings, PPCSubRegIdxLists, 7,
3801
3.68k
PPCSubRegIdxRanges, PPCRegEncodingTable);
3802
3.68k
3803
3.68k
  switch (DwarfFlavour) {
3804
3.68k
  default:
3805
0
    llvm_unreachable("Unknown DWARF flavour");
3806
3.68k
  case 0:
3807
3.25k
    RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour0Dwarf2L, PPCDwarfFlavour0Dwarf2LSize, false);
3808
3.25k
    break;
3809
3.68k
  case 1:
3810
431
    RI->mapDwarfRegsToLLVMRegs(PPCDwarfFlavour1Dwarf2L, PPCDwarfFlavour1Dwarf2LSize, false);
3811
431
    break;
3812
3.68k
  }
3813
3.68k
  switch (EHFlavour) {
3814
3.68k
  default:
3815
0
    llvm_unreachable("Unknown DWARF flavour");
3816
3.68k
  case 0:
3817
3.25k
    RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour0Dwarf2L, PPCEHFlavour0Dwarf2LSize, true);
3818
3.25k
    break;
3819
3.68k
  case 1:
3820
431
    RI->mapDwarfRegsToLLVMRegs(PPCEHFlavour1Dwarf2L, PPCEHFlavour1Dwarf2LSize, true);
3821
431
    break;
3822
3.68k
  }
3823
3.68k
  switch (DwarfFlavour) {
3824
3.68k
  default:
3825
0
    llvm_unreachable("Unknown DWARF flavour");
3826
3.68k
  case 0:
3827
3.25k
    RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour0L2Dwarf, PPCDwarfFlavour0L2DwarfSize, false);
3828
3.25k
    break;
3829
3.68k
  case 1:
3830
431
    RI->mapLLVMRegsToDwarfRegs(PPCDwarfFlavour1L2Dwarf, PPCDwarfFlavour1L2DwarfSize, false);
3831
431
    break;
3832
3.68k
  }
3833
3.68k
  switch (EHFlavour) {
3834
3.68k
  default:
3835
0
    llvm_unreachable("Unknown DWARF flavour");
3836
3.68k
  case 0:
3837
3.25k
    RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour0L2Dwarf, PPCEHFlavour0L2DwarfSize, true);
3838
3.25k
    break;
3839
3.68k
  case 1:
3840
431
    RI->mapLLVMRegsToDwarfRegs(PPCEHFlavour1L2Dwarf, PPCEHFlavour1L2DwarfSize, true);
3841
431
    break;
3842
3.68k
  }
3843
3.68k
}
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
5.65k
static inline unsigned GPRCAltOrderSelect(const MachineFunction &MF) {
4323
5.65k
    const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
4324
5.65k
    return S.isPPC64() && 
S.isSVR4ABI()4.63k
;
4325
5.65k
  }
4326
4327
5.65k
static ArrayRef<MCPhysReg> GPRCGetRawAllocationOrder(const MachineFunction &MF) {
4328
5.65k
  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
5.65k
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRCRegClassID];
4330
5.65k
  const ArrayRef<MCPhysReg> Order[] = {
4331
5.65k
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
4332
5.65k
    makeArrayRef(AltOrder1)
4333
5.65k
  };
4334
5.65k
  const unsigned Select = GPRCAltOrderSelect(MF);
4335
5.65k
  assert(Select < 2);
4336
5.65k
  return Order[Select];
4337
5.65k
}
4338
4339
3
static inline unsigned GPRC_NOR0AltOrderSelect(const MachineFunction &MF) {
4340
3
    const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
4341
3
    return S.isPPC64() && S.isSVR4ABI();
4342
3
  }
4343
4344
3
static ArrayRef<MCPhysReg> GPRC_NOR0GetRawAllocationOrder(const MachineFunction &MF) {
4345
3
  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
3
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::GPRC_NOR0RegClassID];
4347
3
  const ArrayRef<MCPhysReg> Order[] = {
4348
3
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
4349
3
    makeArrayRef(AltOrder1)
4350
3
  };
4351
3
  const unsigned Select = GPRC_NOR0AltOrderSelect(MF);
4352
3
  assert(Select < 2);
4353
3
  return Order[Select];
4354
3
}
4355
4356
2.86k
static inline unsigned G8RCAltOrderSelect(const MachineFunction &MF) {
4357
2.86k
    const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
4358
2.86k
    return S.isPPC64() && S.isSVR4ABI();
4359
2.86k
  }
4360
4361
2.86k
static ArrayRef<MCPhysReg> G8RCGetRawAllocationOrder(const MachineFunction &MF) {
4362
2.86k
  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
2.86k
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RCRegClassID];
4364
2.86k
  const ArrayRef<MCPhysReg> Order[] = {
4365
2.86k
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
4366
2.86k
    makeArrayRef(AltOrder1)
4367
2.86k
  };
4368
2.86k
  const unsigned Select = G8RCAltOrderSelect(MF);
4369
2.86k
  assert(Select < 2);
4370
2.86k
  return Order[Select];
4371
2.86k
}
4372
4373
6
static inline unsigned G8RC_NOX0AltOrderSelect(const MachineFunction &MF) {
4374
6
    const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
4375
6
    return S.isPPC64() && S.isSVR4ABI();
4376
6
  }
4377
4378
6
static ArrayRef<MCPhysReg> G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) {
4379
6
  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
6
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_NOX0RegClassID];
4381
6
  const ArrayRef<MCPhysReg> Order[] = {
4382
6
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
4383
6
    makeArrayRef(AltOrder1)
4384
6
  };
4385
6
  const unsigned Select = G8RC_NOX0AltOrderSelect(MF);
4386
6
  assert(Select < 2);
4387
6
  return Order[Select];
4388
6
}
4389
4390
1.41k
static inline unsigned G8RC_and_G8RC_NOX0AltOrderSelect(const MachineFunction &MF) {
4391
1.41k
    const PPCSubtarget &S = MF.getSubtarget<PPCSubtarget>();
4392
1.41k
    return S.isPPC64() && S.isSVR4ABI();
4393
1.41k
  }
4394
4395
1.41k
static ArrayRef<MCPhysReg> G8RC_and_G8RC_NOX0GetRawAllocationOrder(const MachineFunction &MF) {
4396
1.41k
  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
1.41k
  const MCRegisterClass &MCR = PPCMCRegisterClasses[PPC::G8RC_and_G8RC_NOX0RegClassID];
4398
1.41k
  const ArrayRef<MCPhysReg> Order[] = {
4399
1.41k
    makeArrayRef(MCR.begin(), MCR.getNumRegs()),
4400
1.41k
    makeArrayRef(AltOrder1)
4401
1.41k
  };
4402
1.41k
  const unsigned Select = G8RC_and_G8RC_NOX0AltOrderSelect(MF);
4403
1.41k
  assert(Select < 2);
4404
1.41k
  return Order[Select];
4405
1.41k
}
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
82.3k
const TargetRegisterClass *PPCGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
5288
82.3k
  static const uint8_t Table[36][6] = {
5289
82.3k
    { // VSSRC
5290
82.3k
      0,  // sub_32
5291
82.3k
      0,  // sub_64
5292
82.3k
      0,  // sub_eq
5293
82.3k
      0,  // sub_gt
5294
82.3k
      0,  // sub_lt
5295
82.3k
      0,  // sub_un
5296
82.3k
    },
5297
82.3k
    { // GPRC
5298
82.3k
      0,  // sub_32
5299
82.3k
      0,  // sub_64
5300
82.3k
      0,  // sub_eq
5301
82.3k
      0,  // sub_gt
5302
82.3k
      0,  // sub_lt
5303
82.3k
      0,  // sub_un
5304
82.3k
    },
5305
82.3k
    { // GPRC_NOR0
5306
82.3k
      0,  // sub_32
5307
82.3k
      0,  // sub_64
5308
82.3k
      0,  // sub_eq
5309
82.3k
      0,  // sub_gt
5310
82.3k
      0,  // sub_lt
5311
82.3k
      0,  // sub_un
5312
82.3k
    },
5313
82.3k
    { // SPE4RC
5314
82.3k
      0,  // sub_32
5315
82.3k
      0,  // sub_64
5316
82.3k
      0,  // sub_eq
5317
82.3k
      0,  // sub_gt
5318
82.3k
      0,  // sub_lt
5319
82.3k
      0,  // sub_un
5320
82.3k
    },
5321
82.3k
    { // GPRC_and_GPRC_NOR0
5322
82.3k
      0,  // sub_32
5323
82.3k
      0,  // sub_64
5324
82.3k
      0,  // sub_eq
5325
82.3k
      0,  // sub_gt
5326
82.3k
      0,  // sub_lt
5327
82.3k
      0,  // sub_un
5328
82.3k
    },
5329
82.3k
    { // CRBITRC
5330
82.3k
      0,  // sub_32
5331
82.3k
      0,  // sub_64
5332
82.3k
      0,  // sub_eq
5333
82.3k
      0,  // sub_gt
5334
82.3k
      0,  // sub_lt
5335
82.3k
      0,  // sub_un
5336
82.3k
    },
5337
82.3k
    { // F4RC
5338
82.3k
      0,  // sub_32
5339
82.3k
      0,  // sub_64
5340
82.3k
      0,  // sub_eq
5341
82.3k
      0,  // sub_gt
5342
82.3k
      0,  // sub_lt
5343
82.3k
      0,  // sub_un
5344
82.3k
    },
5345
82.3k
    { // CRRC
5346
82.3k
      0,  // sub_32
5347
82.3k
      0,  // sub_64
5348
82.3k
      8,  // sub_eq -> CRRC
5349
82.3k
      8,  // sub_gt -> CRRC
5350
82.3k
      8,  // sub_lt -> CRRC
5351
82.3k
      8,  // sub_un -> CRRC
5352
82.3k
    },
5353
82.3k
    { // CARRYRC
5354
82.3k
      0,  // sub_32
5355
82.3k
      0,  // sub_64
5356
82.3k
      0,  // sub_eq
5357
82.3k
      0,  // sub_gt
5358
82.3k
      0,  // sub_lt
5359
82.3k
      0,  // sub_un
5360
82.3k
    },
5361
82.3k
    { // CRRC0
5362
82.3k
      0,  // sub_32
5363
82.3k
      0,  // sub_64
5364
82.3k
      10, // sub_eq -> CRRC0
5365
82.3k
      10, // sub_gt -> CRRC0
5366
82.3k
      10, // sub_lt -> CRRC0
5367
82.3k
      10, // sub_un -> CRRC0
5368
82.3k
    },
5369
82.3k
    { // CTRRC
5370
82.3k
      0,  // sub_32
5371
82.3k
      0,  // sub_64
5372
82.3k
      0,  // sub_eq
5373
82.3k
      0,  // sub_gt
5374
82.3k
      0,  // sub_lt
5375
82.3k
      0,  // sub_un
5376
82.3k
    },
5377
82.3k
    { // VRSAVERC
5378
82.3k
      0,  // sub_32
5379
82.3k
      0,  // sub_64
5380
82.3k
      0,  // sub_eq
5381
82.3k
      0,  // sub_gt
5382
82.3k
      0,  // sub_lt
5383
82.3k
      0,  // sub_un
5384
82.3k
    },
5385
82.3k
    { // SPILLTOVSRRC
5386
82.3k
      15, // sub_32 -> G8RC
5387
82.3k
      0,  // sub_64
5388
82.3k
      0,  // sub_eq
5389
82.3k
      0,  // sub_gt
5390
82.3k
      0,  // sub_lt
5391
82.3k
      0,  // sub_un
5392
82.3k
    },
5393
82.3k
    { // VSFRC
5394
82.3k
      0,  // sub_32
5395
82.3k
      0,  // sub_64
5396
82.3k
      0,  // sub_eq
5397
82.3k
      0,  // sub_gt
5398
82.3k
      0,  // sub_lt
5399
82.3k
      0,  // sub_un
5400
82.3k
    },
5401
82.3k
    { // G8RC
5402
82.3k
      15, // sub_32 -> G8RC
5403
82.3k
      0,  // sub_64
5404
82.3k
      0,  // sub_eq
5405
82.3k
      0,  // sub_gt
5406
82.3k
      0,  // sub_lt
5407
82.3k
      0,  // sub_un
5408
82.3k
    },
5409
82.3k
    { // G8RC_NOX0
5410
82.3k
      16, // sub_32 -> G8RC_NOX0
5411
82.3k
      0,  // sub_64
5412
82.3k
      0,  // sub_eq
5413
82.3k
      0,  // sub_gt
5414
82.3k
      0,  // sub_lt
5415
82.3k
      0,  // sub_un
5416
82.3k
    },
5417
82.3k
    { // SPILLTOVSRRC_and_VSFRC
5418
82.3k
      0,  // sub_32
5419
82.3k
      0,  // sub_64
5420
82.3k
      0,  // sub_eq
5421
82.3k
      0,  // sub_gt
5422
82.3k
      0,  // sub_lt
5423
82.3k
      0,  // sub_un
5424
82.3k
    },
5425
82.3k
    { // G8RC_and_G8RC_NOX0
5426
82.3k
      18, // sub_32 -> G8RC_and_G8RC_NOX0
5427
82.3k
      0,  // sub_64
5428
82.3k
      0,  // sub_eq
5429
82.3k
      0,  // sub_gt
5430
82.3k
      0,  // sub_lt
5431
82.3k
      0,  // sub_un
5432
82.3k
    },
5433
82.3k
    { // F8RC
5434
82.3k
      0,  // sub_32
5435
82.3k
      0,  // sub_64
5436
82.3k
      0,  // sub_eq
5437
82.3k
      0,  // sub_gt
5438
82.3k
      0,  // sub_lt
5439
82.3k
      0,  // sub_un
5440
82.3k
    },
5441
82.3k
    { // SPERC
5442
82.3k
      20, // sub_32 -> SPERC
5443
82.3k
      0,  // sub_64
5444
82.3k
      0,  // sub_eq
5445
82.3k
      0,  // sub_gt
5446
82.3k
      0,  // sub_lt
5447
82.3k
      0,  // sub_un
5448
82.3k
    },
5449
82.3k
    { // VFRC
5450
82.3k
      0,  // sub_32
5451
82.3k
      0,  // sub_64
5452
82.3k
      0,  // sub_eq
5453
82.3k
      0,  // sub_gt
5454
82.3k
      0,  // sub_lt
5455
82.3k
      0,  // sub_un
5456
82.3k
    },
5457
82.3k
    { // SPERC_with_sub_32_in_GPRC_NOR0
5458
82.3k
      22, // sub_32 -> SPERC_with_sub_32_in_GPRC_NOR0
5459
82.3k
      0,  // sub_64
5460
82.3k
      0,  // sub_eq
5461
82.3k
      0,  // sub_gt
5462
82.3k
      0,  // sub_lt
5463
82.3k
      0,  // sub_un
5464
82.3k
    },
5465
82.3k
    { // SPILLTOVSRRC_and_VFRC
5466
82.3k
      0,  // sub_32
5467
82.3k
      0,  // sub_64
5468
82.3k
      0,  // sub_eq
5469
82.3k
      0,  // sub_gt
5470
82.3k
      0,  // sub_lt
5471
82.3k
      0,  // sub_un
5472
82.3k
    },
5473
82.3k
    { // SPILLTOVSRRC_and_F4RC
5474
82.3k
      0,  // sub_32
5475
82.3k
      0,  // sub_64
5476
82.3k
      0,  // sub_eq
5477
82.3k
      0,  // sub_gt
5478
82.3k
      0,  // sub_lt
5479
82.3k
      0,  // sub_un
5480
82.3k
    },
5481
82.3k
    { // CTRRC8
5482
82.3k
      0,  // sub_32
5483
82.3k
      0,  // sub_64
5484
82.3k
      0,  // sub_eq
5485
82.3k
      0,  // sub_gt
5486
82.3k
      0,  // sub_lt
5487
82.3k
      0,  // sub_un
5488
82.3k
    },
5489
82.3k
    { // VSRC
5490
82.3k
      0,  // sub_32
5491
82.3k
      26, // sub_64 -> VSRC
5492
82.3k
      0,  // sub_eq
5493
82.3k
      0,  // sub_gt
5494
82.3k
      0,  // sub_lt
5495
82.3k
      0,  // sub_un
5496
82.3k
    },
5497
82.3k
    { // VSRC_with_sub_64_in_SPILLTOVSRRC
5498
82.3k
      0,  // sub_32
5499
82.3k
      27, // sub_64 -> VSRC_with_sub_64_in_SPILLTOVSRRC
5500
82.3k
      0,  // sub_eq
5501
82.3k
      0,  // sub_gt
5502
82.3k
      0,  // sub_lt
5503
82.3k
      0,  // sub_un
5504
82.3k
    },
5505
82.3k
    { // QSRC
5506
82.3k
      0,  // sub_32
5507
82.3k
      28, // sub_64 -> QSRC
5508
82.3k
      0,  // sub_eq
5509
82.3k
      0,  // sub_gt
5510
82.3k
      0,  // sub_lt
5511
82.3k
      0,  // sub_un
5512
82.3k
    },
5513
82.3k
    { // VRRC
5514
82.3k
      0,  // sub_32
5515
82.3k
      29, // sub_64 -> VRRC
5516
82.3k
      0,  // sub_eq
5517
82.3k
      0,  // sub_gt
5518
82.3k
      0,  // sub_lt
5519
82.3k
      0,  // sub_un
5520
82.3k
    },
5521
82.3k
    { // VSLRC
5522
82.3k
      0,  // sub_32
5523
82.3k
      30, // sub_64 -> VSLRC
5524
82.3k
      0,  // sub_eq
5525
82.3k
      0,  // sub_gt
5526
82.3k
      0,  // sub_lt
5527
82.3k
      0,  // sub_un
5528
82.3k
    },
5529
82.3k
    { // VRRC_with_sub_64_in_SPILLTOVSRRC
5530
82.3k
      0,  // sub_32
5531
82.3k
      31, // sub_64 -> VRRC_with_sub_64_in_SPILLTOVSRRC
5532
82.3k
      0,  // sub_eq
5533
82.3k
      0,  // sub_gt
5534
82.3k
      0,  // sub_lt
5535
82.3k
      0,  // sub_un
5536
82.3k
    },
5537
82.3k
    { // QSRC_with_sub_64_in_SPILLTOVSRRC
5538
82.3k
      0,  // sub_32
5539
82.3k
      32, // sub_64 -> QSRC_with_sub_64_in_SPILLTOVSRRC
5540
82.3k
      0,  // sub_eq
5541
82.3k
      0,  // sub_gt
5542
82.3k
      0,  // sub_lt
5543
82.3k
      0,  // sub_un
5544
82.3k
    },
5545
82.3k
    { // VSLRC_with_sub_64_in_SPILLTOVSRRC
5546
82.3k
      0,  // sub_32
5547
82.3k
      33, // sub_64 -> VSLRC_with_sub_64_in_SPILLTOVSRRC
5548
82.3k
      0,  // sub_eq
5549
82.3k
      0,  // sub_gt
5550
82.3k
      0,  // sub_lt
5551
82.3k
      0,  // sub_un
5552
82.3k
    },
5553
82.3k
    { // QBRC
5554
82.3k
      0,  // sub_32
5555
82.3k
      34, // sub_64 -> QBRC
5556
82.3k
      0,  // sub_eq
5557
82.3k
      0,  // sub_gt
5558
82.3k
      0,  // sub_lt
5559
82.3k
      0,  // sub_un
5560
82.3k
    },
5561
82.3k
    { // QFRC
5562
82.3k
      0,  // sub_32
5563
82.3k
      35, // sub_64 -> QFRC
5564
82.3k
      0,  // sub_eq
5565
82.3k
      0,  // sub_gt
5566
82.3k
      0,  // sub_lt
5567
82.3k
      0,  // sub_un
5568
82.3k
    },
5569
82.3k
    { // QBRC_with_sub_64_in_SPILLTOVSRRC
5570
82.3k
      0,  // sub_32
5571
82.3k
      36, // sub_64 -> QBRC_with_sub_64_in_SPILLTOVSRRC
5572
82.3k
      0,  // sub_eq
5573
82.3k
      0,  // sub_gt
5574
82.3k
      0,  // sub_lt
5575
82.3k
      0,  // sub_un
5576
82.3k
    },
5577
82.3k
  };
5578
82.3k
  assert(RC && "Missing regclass");
5579
82.3k
  if (!Idx) 
return RC0
;
5580
82.3k
  --Idx;
5581
82.3k
  assert(Idx < 6 && "Bad subreg");
5582
82.3k
  unsigned TV = Table[RC->getID()][Idx];
5583
82.3k
  return TV ? 
getRegClass(TV - 1)82.2k
:
nullptr82
;
5584
82.3k
}
5585
5586
/// Get the weight in units of pressure for this register class.
5587
const RegClassWeight &PPCGenRegisterInfo::
5588
905k
getRegClassWeight(const TargetRegisterClass *RC) const {
5589
905k
  static const RegClassWeight RCWeightTable[] = {
5590
905k
    {1, 64},    // VSSRC
5591
905k
    {1, 34},    // GPRC
5592
905k
    {1, 34},    // GPRC_NOR0
5593
905k
    {1, 34},    // SPE4RC
5594
905k
    {1, 33},    // GPRC_and_GPRC_NOR0
5595
905k
    {1, 32},    // CRBITRC
5596
905k
    {1, 32},    // F4RC
5597
905k
    {4, 32},    // CRRC
5598
905k
    {1, 1},   // CARRYRC
5599
905k
    {4, 4},   // CRRC0
5600
905k
    {0, 0},   // CTRRC
5601
905k
    {1, 1},   // VRSAVERC
5602
905k
    {1, 68},    // SPILLTOVSRRC
5603
905k
    {1, 64},    // VSFRC
5604
905k
    {1, 34},    // G8RC
5605
905k
    {1, 34},    // G8RC_NOX0
5606
905k
    {1, 34},    // SPILLTOVSRRC_and_VSFRC
5607
905k
    {1, 33},    // G8RC_and_G8RC_NOX0
5608
905k
    {1, 32},    // F8RC
5609
905k
    {1, 32},    // SPERC
5610
905k
    {1, 32},    // VFRC
5611
905k
    {1, 31},    // SPERC_with_sub_32_in_GPRC_NOR0
5612
905k
    {1, 20},    // SPILLTOVSRRC_and_VFRC
5613
905k
    {1, 14},    // SPILLTOVSRRC_and_F4RC
5614
905k
    {0, 0},   // CTRRC8
5615
905k
    {1, 64},    // VSRC
5616
905k
    {1, 34},    // VSRC_with_sub_64_in_SPILLTOVSRRC
5617
905k
    {1, 32},    // QSRC
5618
905k
    {1, 32},    // VRRC
5619
905k
    {1, 32},    // VSLRC
5620
905k
    {1, 20},    // VRRC_with_sub_64_in_SPILLTOVSRRC
5621
905k
    {1, 14},    // QSRC_with_sub_64_in_SPILLTOVSRRC
5622
905k
    {1, 14},    // VSLRC_with_sub_64_in_SPILLTOVSRRC
5623
905k
    {1, 32},    // QBRC
5624
905k
    {1, 32},    // QFRC
5625
905k
    {1, 14},    // QBRC_with_sub_64_in_SPILLTOVSRRC
5626
905k
  };
5627
905k
  return RCWeightTable[RC->getID()];
5628
905k
}
5629
5630
/// Get the weight in units of pressure for this register unit.
5631
unsigned PPCGenRegisterInfo::
5632
176k
getRegUnitWeight(unsigned RegUnit) const {
5633
176k
  assert(RegUnit < 171 && "invalid register unit");
5634
176k
  // All register units have unit weight.
5635
176k
  return 1;
5636
176k
}
5637
5638
5639
// Get the number of dimensions of register pressure.
5640
66.9k
unsigned PPCGenRegisterInfo::getNumRegPressureSets() const {
5641
66.9k
  return 17;
5642
66.9k
}
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
196k
getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
5673
196k
  static const uint8_t PressureLimitTable[] = {
5674
196k
    1,    // 0: CARRYRC
5675
196k
    1,    // 1: VRSAVERC
5676
196k
    4,    // 2: CRRC0
5677
196k
    14,   // 3: SPILLTOVSRRC_and_F4RC
5678
196k
    20,   // 4: SPILLTOVSRRC_and_VFRC
5679
196k
    32,   // 5: CRBITRC
5680
196k
    32,   // 6: F4RC
5681
196k
    32,   // 7: VFRC
5682
196k
    34,   // 8: SPILLTOVSRRC_and_VSFRC
5683
196k
    35,   // 9: GPRC
5684
196k
    46,   // 10: SPILLTOVSRRC_and_VSFRC+VFRC
5685
196k
    52,   // 11: F4RC+SPILLTOVSRRC_and_VSFRC
5686
196k
    64,   // 12: VSSRC
5687
196k
    69,   // 13: SPILLTOVSRRC
5688
196k
    80,   // 14: SPILLTOVSRRC+VFRC
5689
196k
    86,   // 15: F4RC+SPILLTOVSRRC
5690
196k
    98,   // 16: VSSRC+SPILLTOVSRRC
5691
196k
  };
5692
196k
  return PressureLimitTable[Idx];
5693
196k
}
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
2.15M
getRegClassPressureSets(const TargetRegisterClass *RC) const {
5713
2.15M
  static const uint8_t RCSetStartTable[] = {
5714
2.15M
    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
2.15M
  return &RCSetsTable[RCSetStartTable[RC->getID()]];
5716
2.15M
}
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
176k
getRegUnitPressureSets(unsigned RegUnit) const {
5722
176k
  assert(RegUnit < 171 && "invalid register unit");
5723
176k
  static const uint8_t RUSetStartTable[] = {
5724
176k
    25,0,1,25,1,1,1,2,7,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,31,31,31,31,31,31,31,31,31,31,31,31,31,31,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,1,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,13,13,13,13,13,13,13,13,13,13,13,13,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,};
5725
176k
  return &RCSetsTable[RUSetStartTable[RegUnit]];
5726
176k
}
5727
5728
extern const MCRegisterDesc PPCRegDesc[];
5729
extern const MCPhysReg PPCRegDiffLists[];
5730
extern const LaneBitmask PPCLaneMaskLists[];
5731
extern const char PPCRegStrings[];
5732
extern const char PPCRegClassStrings[];
5733
extern const MCPhysReg PPCRegUnitRoots[][2];
5734
extern const uint16_t PPCSubRegIdxLists[];
5735
extern const MCRegisterInfo::SubRegCoveredBits PPCSubRegIdxRanges[];
5736
extern const uint16_t PPCRegEncodingTable[];
5737
// PPC Dwarf<->LLVM register mappings.
5738
extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0Dwarf2L[];
5739
extern const unsigned PPCDwarfFlavour0Dwarf2LSize;
5740
5741
extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1Dwarf2L[];
5742
extern const unsigned PPCDwarfFlavour1Dwarf2LSize;
5743
5744
extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0Dwarf2L[];
5745
extern const unsigned PPCEHFlavour0Dwarf2LSize;
5746
5747
extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1Dwarf2L[];
5748
extern const unsigned PPCEHFlavour1Dwarf2LSize;
5749
5750
extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour0L2Dwarf[];
5751
extern const unsigned PPCDwarfFlavour0L2DwarfSize;
5752
5753
extern const MCRegisterInfo::DwarfLLVMRegPair PPCDwarfFlavour1L2Dwarf[];
5754
extern const unsigned PPCDwarfFlavour1L2DwarfSize;
5755
5756
extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour0L2Dwarf[];
5757
extern const unsigned PPCEHFlavour0L2DwarfSize;
5758
5759
extern const MCRegisterInfo::DwarfLLVMRegPair PPCEHFlavour1L2Dwarf[];
5760
extern const unsigned PPCEHFlavour1L2DwarfSize;
5761
5762
PPCGenRegisterInfo::
5763
PPCGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
5764
      unsigned PC, unsigned HwMode)
5765
  : TargetRegisterInfo(PPCRegInfoDesc, RegisterClasses, RegisterClasses+36,
5766
             SubRegIndexNameTable, SubRegIndexLaneMaskTable,
5767
1.64k
             LaneBitmask(0xFFFFFFC0), RegClassInfos, HwMode) {
5768
1.64k
  InitMCRegisterInfo(PPCRegDesc, 344, RA, PC,
5769
1.64k
                     PPCMCRegisterClasses, 36,
5770
1.64k
                     PPCRegUnitRoots,
5771
1.64k
                     171,
5772
1.64k
                     PPCRegDiffLists,
5773
1.64k
                     PPCLaneMaskLists,
5774
1.64k
                     PPCRegStrings,
5775
1.64k
                     PPCRegClassStrings,
5776
1.64k
                     PPCSubRegIdxLists,
5777