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