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