ppc: add some new .inc files

This commit is contained in:
Nguyen Anh Quynh 2019-04-30 13:52:23 +08:00
parent 11206deb78
commit dbefe3a6d5
4 changed files with 2282 additions and 0 deletions

View File

@ -237,6 +237,7 @@ if (CAPSTONE_PPC_SUPPORT)
arch/PowerPC/PPCGenSubtargetInfo.inc
arch/PowerPC/PPCGenRegisterInfo.inc
arch/PowerPC/PPCGenInstrInfo.inc
arch/PowerPC/PPCRegisterMapping.inc
)
set(TEST_SOURCES ${TEST_SOURCES} test_ppc.c)
endif ()

View File

@ -0,0 +1,246 @@
/* Capstone Disassembly Engine, http://www.capstone-engine.org */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
/// getRegisterName - This method is automatically generated by tblgen
/// from the register set description. This returns the assembler name
/// for the specified register.
static const char *getRegisterName(unsigned RegNo)
{
#ifndef CAPSTONE_DIET
static const char AsmStrs[] = {
/* 0 */ '*', '*', 'R', 'O', 'U', 'N', 'D', 'I', 'N', 'G', 32, 'M', 'O', 'D', 'E', '*', '*', 0,
/* 18 */ '*', '*', 'F', 'R', 'A', 'M', 'E', 32, 'P', 'O', 'I', 'N', 'T', 'E', 'R', '*', '*', 0,
/* 36 */ '*', '*', 'B', 'A', 'S', 'E', 32, 'P', 'O', 'I', 'N', 'T', 'E', 'R', '*', '*', 0,
/* 53 */ 'f', '1', '0', 0,
/* 57 */ 'q', '1', '0', 0,
/* 61 */ 'r', '1', '0', 0,
/* 65 */ 'v', 's', '1', '0', 0,
/* 70 */ 'v', '1', '0', 0,
/* 74 */ 'f', '2', '0', 0,
/* 78 */ 'q', '2', '0', 0,
/* 82 */ 'r', '2', '0', 0,
/* 86 */ 'v', 's', '2', '0', 0,
/* 91 */ 'v', '2', '0', 0,
/* 95 */ 'f', '3', '0', 0,
/* 99 */ 'q', '3', '0', 0,
/* 103 */ 'r', '3', '0', 0,
/* 107 */ 'v', 's', '3', '0', 0,
/* 112 */ 'v', '3', '0', 0,
/* 116 */ 'v', 's', '4', '0', 0,
/* 121 */ 'v', 's', '5', '0', 0,
/* 126 */ 'v', 's', '6', '0', 0,
/* 131 */ 'f', '0', 0,
/* 134 */ 'q', '0', 0,
/* 137 */ 'c', 'r', '0', 0,
/* 141 */ 'v', 's', '0', 0,
/* 145 */ 'v', '0', 0,
/* 148 */ 'f', '1', '1', 0,
/* 152 */ 'q', '1', '1', 0,
/* 156 */ 'r', '1', '1', 0,
/* 160 */ 'v', 's', '1', '1', 0,
/* 165 */ 'v', '1', '1', 0,
/* 169 */ 'f', '2', '1', 0,
/* 173 */ 'q', '2', '1', 0,
/* 177 */ 'r', '2', '1', 0,
/* 181 */ 'v', 's', '2', '1', 0,
/* 186 */ 'v', '2', '1', 0,
/* 190 */ 'f', '3', '1', 0,
/* 194 */ 'q', '3', '1', 0,
/* 198 */ 'r', '3', '1', 0,
/* 202 */ 'v', 's', '3', '1', 0,
/* 207 */ 'v', '3', '1', 0,
/* 211 */ 'v', 's', '4', '1', 0,
/* 216 */ 'v', 's', '5', '1', 0,
/* 221 */ 'v', 's', '6', '1', 0,
/* 226 */ 'f', '1', 0,
/* 229 */ 'q', '1', 0,
/* 232 */ 'c', 'r', '1', 0,
/* 236 */ 'v', 's', '1', 0,
/* 240 */ 'v', '1', 0,
/* 243 */ 'f', '1', '2', 0,
/* 247 */ 'q', '1', '2', 0,
/* 251 */ 'r', '1', '2', 0,
/* 255 */ 'v', 's', '1', '2', 0,
/* 260 */ 'v', '1', '2', 0,
/* 264 */ 'f', '2', '2', 0,
/* 268 */ 'q', '2', '2', 0,
/* 272 */ 'r', '2', '2', 0,
/* 276 */ 'v', 's', '2', '2', 0,
/* 281 */ 'v', '2', '2', 0,
/* 285 */ 'v', 's', '3', '2', 0,
/* 290 */ 'v', 's', '4', '2', 0,
/* 295 */ 'v', 's', '5', '2', 0,
/* 300 */ 'v', 's', '6', '2', 0,
/* 305 */ 'f', '2', 0,
/* 308 */ 'q', '2', 0,
/* 311 */ 'c', 'r', '2', 0,
/* 315 */ 'v', 's', '2', 0,
/* 319 */ 'v', '2', 0,
/* 322 */ 'f', '1', '3', 0,
/* 326 */ 'q', '1', '3', 0,
/* 330 */ 'r', '1', '3', 0,
/* 334 */ 'v', 's', '1', '3', 0,
/* 339 */ 'v', '1', '3', 0,
/* 343 */ 'f', '2', '3', 0,
/* 347 */ 'q', '2', '3', 0,
/* 351 */ 'r', '2', '3', 0,
/* 355 */ 'v', 's', '2', '3', 0,
/* 360 */ 'v', '2', '3', 0,
/* 364 */ 'v', 's', '3', '3', 0,
/* 369 */ 'v', 's', '4', '3', 0,
/* 374 */ 'v', 's', '5', '3', 0,
/* 379 */ 'v', 's', '6', '3', 0,
/* 384 */ 'f', '3', 0,
/* 387 */ 'q', '3', 0,
/* 390 */ 'c', 'r', '3', 0,
/* 394 */ 'v', 's', '3', 0,
/* 398 */ 'v', '3', 0,
/* 401 */ 'f', '1', '4', 0,
/* 405 */ 'q', '1', '4', 0,
/* 409 */ 'r', '1', '4', 0,
/* 413 */ 'v', 's', '1', '4', 0,
/* 418 */ 'v', '1', '4', 0,
/* 422 */ 'f', '2', '4', 0,
/* 426 */ 'q', '2', '4', 0,
/* 430 */ 'r', '2', '4', 0,
/* 434 */ 'v', 's', '2', '4', 0,
/* 439 */ 'v', '2', '4', 0,
/* 443 */ 'v', 's', '3', '4', 0,
/* 448 */ 'v', 's', '4', '4', 0,
/* 453 */ 'v', 's', '5', '4', 0,
/* 458 */ 'f', '4', 0,
/* 461 */ 'q', '4', 0,
/* 464 */ 'c', 'r', '4', 0,
/* 468 */ 'v', 's', '4', 0,
/* 472 */ 'v', '4', 0,
/* 475 */ 'f', '1', '5', 0,
/* 479 */ 'q', '1', '5', 0,
/* 483 */ 'r', '1', '5', 0,
/* 487 */ 'v', 's', '1', '5', 0,
/* 492 */ 'v', '1', '5', 0,
/* 496 */ 'f', '2', '5', 0,
/* 500 */ 'q', '2', '5', 0,
/* 504 */ 'r', '2', '5', 0,
/* 508 */ 'v', 's', '2', '5', 0,
/* 513 */ 'v', '2', '5', 0,
/* 517 */ 'v', 's', '3', '5', 0,
/* 522 */ 'v', 's', '4', '5', 0,
/* 527 */ 'v', 's', '5', '5', 0,
/* 532 */ 'f', '5', 0,
/* 535 */ 'q', '5', 0,
/* 538 */ 'c', 'r', '5', 0,
/* 542 */ 'v', 's', '5', 0,
/* 546 */ 'v', '5', 0,
/* 549 */ 'f', '1', '6', 0,
/* 553 */ 'q', '1', '6', 0,
/* 557 */ 'r', '1', '6', 0,
/* 561 */ 'v', 's', '1', '6', 0,
/* 566 */ 'v', '1', '6', 0,
/* 570 */ 'f', '2', '6', 0,
/* 574 */ 'q', '2', '6', 0,
/* 578 */ 'r', '2', '6', 0,
/* 582 */ 'v', 's', '2', '6', 0,
/* 587 */ 'v', '2', '6', 0,
/* 591 */ 'v', 's', '3', '6', 0,
/* 596 */ 'v', 's', '4', '6', 0,
/* 601 */ 'v', 's', '5', '6', 0,
/* 606 */ 'f', '6', 0,
/* 609 */ 'q', '6', 0,
/* 612 */ 'c', 'r', '6', 0,
/* 616 */ 'v', 's', '6', 0,
/* 620 */ 'v', '6', 0,
/* 623 */ 'f', '1', '7', 0,
/* 627 */ 'q', '1', '7', 0,
/* 631 */ 'r', '1', '7', 0,
/* 635 */ 'v', 's', '1', '7', 0,
/* 640 */ 'v', '1', '7', 0,
/* 644 */ 'f', '2', '7', 0,
/* 648 */ 'q', '2', '7', 0,
/* 652 */ 'r', '2', '7', 0,
/* 656 */ 'v', 's', '2', '7', 0,
/* 661 */ 'v', '2', '7', 0,
/* 665 */ 'v', 's', '3', '7', 0,
/* 670 */ 'v', 's', '4', '7', 0,
/* 675 */ 'v', 's', '5', '7', 0,
/* 680 */ 'f', '7', 0,
/* 683 */ 'q', '7', 0,
/* 686 */ 'c', 'r', '7', 0,
/* 690 */ 'v', 's', '7', 0,
/* 694 */ 'v', '7', 0,
/* 697 */ 'f', '1', '8', 0,
/* 701 */ 'q', '1', '8', 0,
/* 705 */ 'r', '1', '8', 0,
/* 709 */ 'v', 's', '1', '8', 0,
/* 714 */ 'v', '1', '8', 0,
/* 718 */ 'f', '2', '8', 0,
/* 722 */ 'q', '2', '8', 0,
/* 726 */ 'r', '2', '8', 0,
/* 730 */ 'v', 's', '2', '8', 0,
/* 735 */ 'v', '2', '8', 0,
/* 739 */ 'v', 's', '3', '8', 0,
/* 744 */ 'v', 's', '4', '8', 0,
/* 749 */ 'v', 's', '5', '8', 0,
/* 754 */ 'f', '8', 0,
/* 757 */ 'q', '8', 0,
/* 760 */ 'r', '8', 0,
/* 763 */ 'v', 's', '8', 0,
/* 767 */ 'v', '8', 0,
/* 770 */ 'f', '1', '9', 0,
/* 774 */ 'q', '1', '9', 0,
/* 778 */ 'r', '1', '9', 0,
/* 782 */ 'v', 's', '1', '9', 0,
/* 787 */ 'v', '1', '9', 0,
/* 791 */ 'f', '2', '9', 0,
/* 795 */ 'q', '2', '9', 0,
/* 799 */ 'r', '2', '9', 0,
/* 803 */ 'v', 's', '2', '9', 0,
/* 808 */ 'v', '2', '9', 0,
/* 812 */ 'v', 's', '3', '9', 0,
/* 817 */ 'v', 's', '4', '9', 0,
/* 822 */ 'v', 's', '5', '9', 0,
/* 827 */ 'f', '9', 0,
/* 830 */ 'q', '9', 0,
/* 833 */ 'r', '9', 0,
/* 836 */ 'v', 's', '9', 0,
/* 840 */ 'v', '9', 0,
/* 843 */ 'v', 'r', 's', 'a', 'v', 'e', 0,
/* 850 */ 's', 'p', 'e', 'f', 's', 'c', 'r', 0,
/* 858 */ 'x', 'e', 'r', 0,
/* 862 */ 'l', 'r', 0,
/* 865 */ 'c', 't', 'r', 0,
};
static const uint16_t RegAsmOffset[] = {
36, 858, 865, 18, 862, 0, 850, 843, 858, 55, 36, 137, 232, 311,
390, 464, 538, 612, 686, 865, 131, 226, 305, 384, 458, 532, 606, 680,
754, 827, 53, 148, 243, 322, 401, 475, 549, 623, 697, 770, 74, 169,
264, 343, 422, 496, 570, 644, 718, 791, 95, 190, 18, 862, 134, 229,
308, 387, 461, 535, 609, 683, 757, 830, 57, 152, 247, 326, 405, 479,
553, 627, 701, 774, 78, 173, 268, 347, 426, 500, 574, 648, 722, 795,
99, 194, 138, 233, 312, 391, 465, 539, 613, 687, 760, 833, 61, 156,
251, 330, 409, 483, 557, 631, 705, 778, 82, 177, 272, 351, 430, 504,
578, 652, 726, 799, 103, 198, 138, 233, 312, 391, 465, 539, 613, 687,
760, 833, 61, 156, 251, 330, 409, 483, 557, 631, 705, 778, 82, 177,
272, 351, 430, 504, 578, 652, 726, 799, 103, 198, 145, 240, 319, 398,
472, 546, 620, 694, 767, 840, 70, 165, 260, 339, 418, 492, 566, 640,
714, 787, 91, 186, 281, 360, 439, 513, 587, 661, 735, 808, 112, 207,
145, 240, 319, 398, 472, 546, 620, 694, 767, 840, 70, 165, 260, 339,
418, 492, 566, 640, 714, 787, 91, 186, 281, 360, 439, 513, 587, 661,
735, 808, 112, 207, 141, 236, 315, 394, 468, 542, 616, 690, 763, 836,
65, 160, 255, 334, 413, 487, 561, 635, 709, 782, 86, 181, 276, 355,
434, 508, 582, 656, 730, 803, 107, 202, 285, 364, 443, 517, 591, 665,
739, 812, 116, 211, 290, 369, 448, 522, 596, 670, 744, 817, 121, 216,
295, 374, 453, 527, 601, 675, 749, 822, 126, 221, 300, 379, 138, 233,
312, 391, 465, 539, 613, 687, 760, 833, 61, 156, 251, 330, 409, 483,
557, 631, 705, 778, 82, 177, 272, 351, 430, 504, 578, 652, 726, 799,
103, 198, 55, 245, 551, 54, 402, 698, 265, 571, 96, 150, 477, 772,
323, 624, 170, 497, 792, 55, 403, 699, 244, 550, 75, 423, 719, 324,
625, 149, 476, 771, 344, 645, 191,
};
return AsmStrs+RegAsmOffset[RegNo-1];
#else
return NULL;
#endif
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,343 @@
0,
PPC_REG_XER,
PPC_REG_CTR,
0,
PPC_REG_LR,
0,
0,
PPC_REG_VRSAVE,
PPC_REG_XER,
PPC_REG_R0,
0,
PPC_REG_CR0,
PPC_REG_CR1,
PPC_REG_CR2,
PPC_REG_CR3,
PPC_REG_CR4,
PPC_REG_CR5,
PPC_REG_CR6,
PPC_REG_CR7,
PPC_REG_CTR,
PPC_REG_F0,
PPC_REG_F1,
PPC_REG_F2,
PPC_REG_F3,
PPC_REG_F4,
PPC_REG_F5,
PPC_REG_F6,
PPC_REG_F7,
PPC_REG_F8,
PPC_REG_F9,
PPC_REG_F10,
PPC_REG_F11,
PPC_REG_F12,
PPC_REG_F13,
PPC_REG_F14,
PPC_REG_F15,
PPC_REG_F16,
PPC_REG_F17,
PPC_REG_F18,
PPC_REG_F19,
PPC_REG_F20,
PPC_REG_F21,
PPC_REG_F22,
PPC_REG_F23,
PPC_REG_F24,
PPC_REG_F25,
PPC_REG_F26,
PPC_REG_F27,
PPC_REG_F28,
PPC_REG_F29,
PPC_REG_F30,
PPC_REG_F31,
0,
PPC_REG_LR,
PPC_REG_Q0,
PPC_REG_Q1,
PPC_REG_Q2,
PPC_REG_Q3,
PPC_REG_Q4,
PPC_REG_Q5,
PPC_REG_Q6,
PPC_REG_Q7,
PPC_REG_Q8,
PPC_REG_Q9,
PPC_REG_Q10,
PPC_REG_Q11,
PPC_REG_Q12,
PPC_REG_Q13,
PPC_REG_Q14,
PPC_REG_Q15,
PPC_REG_Q16,
PPC_REG_Q17,
PPC_REG_Q18,
PPC_REG_Q19,
PPC_REG_Q20,
PPC_REG_Q21,
PPC_REG_Q22,
PPC_REG_Q23,
PPC_REG_Q24,
PPC_REG_Q25,
PPC_REG_Q26,
PPC_REG_Q27,
PPC_REG_Q28,
PPC_REG_Q29,
PPC_REG_Q30,
PPC_REG_Q31,
PPC_REG_R0,
PPC_REG_R1,
PPC_REG_R2,
PPC_REG_R3,
PPC_REG_R4,
PPC_REG_R5,
PPC_REG_R6,
PPC_REG_R7,
PPC_REG_R8,
PPC_REG_R9,
PPC_REG_R10,
PPC_REG_R11,
PPC_REG_R12,
PPC_REG_R13,
PPC_REG_R14,
PPC_REG_R15,
PPC_REG_R16,
PPC_REG_R17,
PPC_REG_R18,
PPC_REG_R19,
PPC_REG_R20,
PPC_REG_R21,
PPC_REG_R22,
PPC_REG_R23,
PPC_REG_R24,
PPC_REG_R25,
PPC_REG_R26,
PPC_REG_R27,
PPC_REG_R28,
PPC_REG_R29,
PPC_REG_R30,
PPC_REG_R31,
PPC_REG_R0,
PPC_REG_R1,
PPC_REG_R2,
PPC_REG_R3,
PPC_REG_R4,
PPC_REG_R5,
PPC_REG_R6,
PPC_REG_R7,
PPC_REG_R8,
PPC_REG_R9,
PPC_REG_R10,
PPC_REG_R11,
PPC_REG_R12,
PPC_REG_R13,
PPC_REG_R14,
PPC_REG_R15,
PPC_REG_R16,
PPC_REG_R17,
PPC_REG_R18,
PPC_REG_R19,
PPC_REG_R20,
PPC_REG_R21,
PPC_REG_R22,
PPC_REG_R23,
PPC_REG_R24,
PPC_REG_R25,
PPC_REG_R26,
PPC_REG_R27,
PPC_REG_R28,
PPC_REG_R29,
PPC_REG_R30,
PPC_REG_R31,
PPC_REG_V0,
PPC_REG_V1,
PPC_REG_V2,
PPC_REG_V3,
PPC_REG_V4,
PPC_REG_V5,
PPC_REG_V6,
PPC_REG_V7,
PPC_REG_V8,
PPC_REG_V9,
PPC_REG_V10,
PPC_REG_V11,
PPC_REG_V12,
PPC_REG_V13,
PPC_REG_V14,
PPC_REG_V15,
PPC_REG_V16,
PPC_REG_V17,
PPC_REG_V18,
PPC_REG_V19,
PPC_REG_V20,
PPC_REG_V21,
PPC_REG_V22,
PPC_REG_V23,
PPC_REG_V24,
PPC_REG_V25,
PPC_REG_V26,
PPC_REG_V27,
PPC_REG_V28,
PPC_REG_V29,
PPC_REG_V30,
PPC_REG_V31,
PPC_REG_V0,
PPC_REG_V1,
PPC_REG_V2,
PPC_REG_V3,
PPC_REG_V4,
PPC_REG_V5,
PPC_REG_V6,
PPC_REG_V7,
PPC_REG_V8,
PPC_REG_V9,
PPC_REG_V10,
PPC_REG_V11,
PPC_REG_V12,
PPC_REG_V13,
PPC_REG_V14,
PPC_REG_V15,
PPC_REG_V16,
PPC_REG_V17,
PPC_REG_V18,
PPC_REG_V19,
PPC_REG_V20,
PPC_REG_V21,
PPC_REG_V22,
PPC_REG_V23,
PPC_REG_V24,
PPC_REG_V25,
PPC_REG_V26,
PPC_REG_V27,
PPC_REG_V28,
PPC_REG_V29,
PPC_REG_V30,
PPC_REG_V31,
PPC_REG_VS0,
PPC_REG_VS1,
PPC_REG_VS2,
PPC_REG_VS3,
PPC_REG_VS4,
PPC_REG_VS5,
PPC_REG_VS6,
PPC_REG_VS7,
PPC_REG_VS8,
PPC_REG_VS9,
PPC_REG_VS10,
PPC_REG_VS11,
PPC_REG_VS12,
PPC_REG_VS13,
PPC_REG_VS14,
PPC_REG_VS15,
PPC_REG_VS16,
PPC_REG_VS17,
PPC_REG_VS18,
PPC_REG_VS19,
PPC_REG_VS20,
PPC_REG_VS21,
PPC_REG_VS22,
PPC_REG_VS23,
PPC_REG_VS24,
PPC_REG_VS25,
PPC_REG_VS26,
PPC_REG_VS27,
PPC_REG_VS28,
PPC_REG_VS29,
PPC_REG_VS30,
PPC_REG_VS31,
PPC_REG_VS32,
PPC_REG_VS33,
PPC_REG_VS34,
PPC_REG_VS35,
PPC_REG_VS36,
PPC_REG_VS37,
PPC_REG_VS38,
PPC_REG_VS39,
PPC_REG_VS40,
PPC_REG_VS41,
PPC_REG_VS42,
PPC_REG_VS43,
PPC_REG_VS44,
PPC_REG_VS45,
PPC_REG_VS46,
PPC_REG_VS47,
PPC_REG_VS48,
PPC_REG_VS49,
PPC_REG_VS50,
PPC_REG_VS51,
PPC_REG_VS52,
PPC_REG_VS53,
PPC_REG_VS54,
PPC_REG_VS55,
PPC_REG_VS56,
PPC_REG_VS57,
PPC_REG_VS58,
PPC_REG_VS59,
PPC_REG_VS60,
PPC_REG_VS61,
PPC_REG_VS62,
PPC_REG_VS63,
PPC_REG_R0,
PPC_REG_R1,
PPC_REG_R2,
PPC_REG_R3,
PPC_REG_R4,
PPC_REG_R5,
PPC_REG_R6,
PPC_REG_R7,
PPC_REG_R8,
PPC_REG_R9,
PPC_REG_R10,
PPC_REG_R11,
PPC_REG_R12,
PPC_REG_R13,
PPC_REG_R14,
PPC_REG_R15,
PPC_REG_R16,
PPC_REG_R17,
PPC_REG_R18,
PPC_REG_R19,
PPC_REG_R20,
PPC_REG_R21,
PPC_REG_R22,
PPC_REG_R23,
PPC_REG_R24,
PPC_REG_R25,
PPC_REG_R26,
PPC_REG_R27,
PPC_REG_R28,
PPC_REG_R29,
PPC_REG_R30,
PPC_REG_R31,
PPC_REG_R0,
PPC_REG_R2,
PPC_REG_R6,
PPC_REG_R10,
PPC_REG_R14,
PPC_REG_R18,
PPC_REG_R22,
PPC_REG_R26,
PPC_REG_R30,
PPC_REG_R1,
PPC_REG_R5,
PPC_REG_R9,
PPC_REG_R13,
PPC_REG_R17,
PPC_REG_R21,
PPC_REG_R25,
PPC_REG_R29,
PPC_REG_R0,
PPC_REG_R4,
PPC_REG_R8,
PPC_REG_R12,
PPC_REG_R16,
PPC_REG_R20,
PPC_REG_R24,
PPC_REG_R28,
PPC_REG_R3,
PPC_REG_R7,
PPC_REG_R11,
PPC_REG_R15,
PPC_REG_R19,
PPC_REG_R23,
PPC_REG_R27,
PPC_REG_R31,