1 #ifndef CAPSTONE_PPC_H 2 #define CAPSTONE_PPC_H 3 4 /* Capstone Disassembly Engine */ 5 /* By Nguyen Anh Quynh <aquynh (at) gmail.com>, 2013-2014 */ 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 #if !defined(_MSC_VER) || !defined(_KERNEL_MODE) 12 #include <stdint.h> 13 #endif 14 15 #include "platform.h" 16 17 #ifdef _MSC_VER 18 #pragma warning(disable:4201) 19 #endif 20 21 //> PPC branch codes for some branch instructions 22 typedef enum ppc_bc { 23 PPC_BC_INVALID = 0, 24 PPC_BC_LT = (0 << 5) | 12, 25 PPC_BC_LE = (1 << 5) | 4, 26 PPC_BC_EQ = (2 << 5) | 12, 27 PPC_BC_GE = (0 << 5) | 4, 28 PPC_BC_GT = (1 << 5) | 12, 29 PPC_BC_NE = (2 << 5) | 4, 30 PPC_BC_UN = (3 << 5) | 12, 31 PPC_BC_NU = (3 << 5) | 4, 32 33 // extra conditions 34 PPC_BC_SO = (4 << 5) | 12, // summary overflow 35 PPC_BC_NS = (4 << 5) | 4, // not summary overflow 36 } ppc_bc; 37 38 //> PPC branch hint for some branch instructions 39 typedef enum ppc_bh { 40 PPC_BH_INVALID = 0, // no hint 41 PPC_BH_PLUS, // PLUS hint 42 PPC_BH_MINUS, // MINUS hint 43 } ppc_bh; 44 45 //> PPC registers 46 typedef enum ppc_reg { 47 PPC_REG_INVALID = 0, 48 49 PPC_REG_CARRY, 50 PPC_REG_CC, 51 PPC_REG_CR0, 52 PPC_REG_CR1, 53 PPC_REG_CR2, 54 PPC_REG_CR3, 55 PPC_REG_CR4, 56 PPC_REG_CR5, 57 PPC_REG_CR6, 58 PPC_REG_CR7, 59 PPC_REG_CTR, 60 PPC_REG_F0, 61 PPC_REG_F1, 62 PPC_REG_F2, 63 PPC_REG_F3, 64 PPC_REG_F4, 65 PPC_REG_F5, 66 PPC_REG_F6, 67 PPC_REG_F7, 68 PPC_REG_F8, 69 PPC_REG_F9, 70 PPC_REG_F10, 71 PPC_REG_F11, 72 PPC_REG_F12, 73 PPC_REG_F13, 74 PPC_REG_F14, 75 PPC_REG_F15, 76 PPC_REG_F16, 77 PPC_REG_F17, 78 PPC_REG_F18, 79 PPC_REG_F19, 80 PPC_REG_F20, 81 PPC_REG_F21, 82 PPC_REG_F22, 83 PPC_REG_F23, 84 PPC_REG_F24, 85 PPC_REG_F25, 86 PPC_REG_F26, 87 PPC_REG_F27, 88 PPC_REG_F28, 89 PPC_REG_F29, 90 PPC_REG_F30, 91 PPC_REG_F31, 92 PPC_REG_LR, 93 PPC_REG_R0, 94 PPC_REG_R1, 95 PPC_REG_R2, 96 PPC_REG_R3, 97 PPC_REG_R4, 98 PPC_REG_R5, 99 PPC_REG_R6, 100 PPC_REG_R7, 101 PPC_REG_R8, 102 PPC_REG_R9, 103 PPC_REG_R10, 104 PPC_REG_R11, 105 PPC_REG_R12, 106 PPC_REG_R13, 107 PPC_REG_R14, 108 PPC_REG_R15, 109 PPC_REG_R16, 110 PPC_REG_R17, 111 PPC_REG_R18, 112 PPC_REG_R19, 113 PPC_REG_R20, 114 PPC_REG_R21, 115 PPC_REG_R22, 116 PPC_REG_R23, 117 PPC_REG_R24, 118 PPC_REG_R25, 119 PPC_REG_R26, 120 PPC_REG_R27, 121 PPC_REG_R28, 122 PPC_REG_R29, 123 PPC_REG_R30, 124 PPC_REG_R31, 125 PPC_REG_V0, 126 PPC_REG_V1, 127 PPC_REG_V2, 128 PPC_REG_V3, 129 PPC_REG_V4, 130 PPC_REG_V5, 131 PPC_REG_V6, 132 PPC_REG_V7, 133 PPC_REG_V8, 134 PPC_REG_V9, 135 PPC_REG_V10, 136 PPC_REG_V11, 137 PPC_REG_V12, 138 PPC_REG_V13, 139 PPC_REG_V14, 140 PPC_REG_V15, 141 PPC_REG_V16, 142 PPC_REG_V17, 143 PPC_REG_V18, 144 PPC_REG_V19, 145 PPC_REG_V20, 146 PPC_REG_V21, 147 PPC_REG_V22, 148 PPC_REG_V23, 149 PPC_REG_V24, 150 PPC_REG_V25, 151 PPC_REG_V26, 152 PPC_REG_V27, 153 PPC_REG_V28, 154 PPC_REG_V29, 155 PPC_REG_V30, 156 PPC_REG_V31, 157 PPC_REG_VRSAVE, 158 PPC_REG_VS0, 159 PPC_REG_VS1, 160 PPC_REG_VS2, 161 PPC_REG_VS3, 162 PPC_REG_VS4, 163 PPC_REG_VS5, 164 PPC_REG_VS6, 165 PPC_REG_VS7, 166 PPC_REG_VS8, 167 PPC_REG_VS9, 168 PPC_REG_VS10, 169 PPC_REG_VS11, 170 PPC_REG_VS12, 171 PPC_REG_VS13, 172 PPC_REG_VS14, 173 PPC_REG_VS15, 174 PPC_REG_VS16, 175 PPC_REG_VS17, 176 PPC_REG_VS18, 177 PPC_REG_VS19, 178 PPC_REG_VS20, 179 PPC_REG_VS21, 180 PPC_REG_VS22, 181 PPC_REG_VS23, 182 PPC_REG_VS24, 183 PPC_REG_VS25, 184 PPC_REG_VS26, 185 PPC_REG_VS27, 186 PPC_REG_VS28, 187 PPC_REG_VS29, 188 PPC_REG_VS30, 189 PPC_REG_VS31, 190 PPC_REG_VS32, 191 PPC_REG_VS33, 192 PPC_REG_VS34, 193 PPC_REG_VS35, 194 PPC_REG_VS36, 195 PPC_REG_VS37, 196 PPC_REG_VS38, 197 PPC_REG_VS39, 198 PPC_REG_VS40, 199 PPC_REG_VS41, 200 PPC_REG_VS42, 201 PPC_REG_VS43, 202 PPC_REG_VS44, 203 PPC_REG_VS45, 204 PPC_REG_VS46, 205 PPC_REG_VS47, 206 PPC_REG_VS48, 207 PPC_REG_VS49, 208 PPC_REG_VS50, 209 PPC_REG_VS51, 210 PPC_REG_VS52, 211 PPC_REG_VS53, 212 PPC_REG_VS54, 213 PPC_REG_VS55, 214 PPC_REG_VS56, 215 PPC_REG_VS57, 216 PPC_REG_VS58, 217 PPC_REG_VS59, 218 PPC_REG_VS60, 219 PPC_REG_VS61, 220 PPC_REG_VS62, 221 PPC_REG_VS63, 222 223 // extra registers for PPCMapping.c 224 PPC_REG_RM, 225 PPC_REG_CTR8, 226 PPC_REG_LR8, 227 PPC_REG_CR1EQ, 228 229 PPC_REG_ENDING, // <-- mark the end of the list of registers 230 } ppc_reg; 231 232 //> Operand type for instruction's operands 233 typedef enum ppc_op_type { 234 PPC_OP_INVALID = 0, // = CS_OP_INVALID (Uninitialized). 235 PPC_OP_REG, // = CS_OP_REG (Register operand). 236 PPC_OP_IMM, // = CS_OP_IMM (Immediate operand). 237 PPC_OP_MEM, // = CS_OP_MEM (Memory operand). 238 PPC_OP_CRX = 64, // Condition Register field 239 } ppc_op_type; 240 241 // Instruction's operand referring to memory 242 // This is associated with PPC_OP_MEM operand type above 243 typedef struct ppc_op_mem { 244 ppc_reg base; // base register 245 int32_t disp; // displacement/offset value 246 } ppc_op_mem; 247 248 typedef struct ppc_op_crx { 249 unsigned int scale; 250 ppc_reg reg; 251 ppc_bc cond; 252 } ppc_op_crx; 253 254 // Instruction operand 255 typedef struct cs_ppc_op { 256 ppc_op_type type; // operand type 257 union { 258 ppc_reg reg; // register value for REG operand 259 int32_t imm; // immediate value for IMM operand 260 ppc_op_mem mem; // base/disp value for MEM operand 261 ppc_op_crx crx; // operand with condition register 262 }; 263 } cs_ppc_op; 264 265 // Instruction structure 266 typedef struct cs_ppc { 267 // branch code for branch instructions 268 ppc_bc bc; 269 270 // branch hint for branch instructions 271 ppc_bh bh; 272 273 // if update_cr0 = True, then this 'dot' insn updates CR0 274 bool update_cr0; 275 276 // Number of operands of this instruction, 277 // or 0 when instruction has no operand. 278 uint8_t op_count; 279 cs_ppc_op operands[8]; // operands for this instruction. 280 } cs_ppc; 281 282 283 //> PPC instruction 284 typedef enum ppc_insn { 285 PPC_INS_INVALID = 0, 286 287 PPC_INS_ADD, 288 PPC_INS_ADDC, 289 PPC_INS_ADDE, 290 PPC_INS_ADDI, 291 PPC_INS_ADDIC, 292 PPC_INS_ADDIS, 293 PPC_INS_ADDME, 294 PPC_INS_ADDZE, 295 PPC_INS_AND, 296 PPC_INS_ANDC, 297 PPC_INS_ANDIS, 298 PPC_INS_ANDI, 299 PPC_INS_B, 300 PPC_INS_BA, 301 PPC_INS_BC, 302 PPC_INS_BCCTR, 303 PPC_INS_BCCTRL, 304 PPC_INS_BCL, 305 PPC_INS_BCLR, 306 PPC_INS_BCLRL, 307 PPC_INS_BCTR, 308 PPC_INS_BCTRL, 309 PPC_INS_BDNZ, 310 PPC_INS_BDNZA, 311 PPC_INS_BDNZL, 312 PPC_INS_BDNZLA, 313 PPC_INS_BDNZLR, 314 PPC_INS_BDNZLRL, 315 PPC_INS_BDZ, 316 PPC_INS_BDZA, 317 PPC_INS_BDZL, 318 PPC_INS_BDZLA, 319 PPC_INS_BDZLR, 320 PPC_INS_BDZLRL, 321 PPC_INS_BL, 322 PPC_INS_BLA, 323 PPC_INS_BLR, 324 PPC_INS_BLRL, 325 PPC_INS_BRINC, 326 PPC_INS_CMPD, 327 PPC_INS_CMPDI, 328 PPC_INS_CMPLD, 329 PPC_INS_CMPLDI, 330 PPC_INS_CMPLW, 331 PPC_INS_CMPLWI, 332 PPC_INS_CMPW, 333 PPC_INS_CMPWI, 334 PPC_INS_CNTLZD, 335 PPC_INS_CNTLZW, 336 PPC_INS_CREQV, 337 PPC_INS_CRXOR, 338 PPC_INS_CRAND, 339 PPC_INS_CRANDC, 340 PPC_INS_CRNAND, 341 PPC_INS_CRNOR, 342 PPC_INS_CROR, 343 PPC_INS_CRORC, 344 PPC_INS_DCBA, 345 PPC_INS_DCBF, 346 PPC_INS_DCBI, 347 PPC_INS_DCBST, 348 PPC_INS_DCBT, 349 PPC_INS_DCBTST, 350 PPC_INS_DCBZ, 351 PPC_INS_DCBZL, 352 PPC_INS_DCCCI, 353 PPC_INS_DIVD, 354 PPC_INS_DIVDU, 355 PPC_INS_DIVW, 356 PPC_INS_DIVWU, 357 PPC_INS_DSS, 358 PPC_INS_DSSALL, 359 PPC_INS_DST, 360 PPC_INS_DSTST, 361 PPC_INS_DSTSTT, 362 PPC_INS_DSTT, 363 PPC_INS_EIEIO, 364 PPC_INS_EQV, 365 PPC_INS_EVABS, 366 PPC_INS_EVADDIW, 367 PPC_INS_EVADDSMIAAW, 368 PPC_INS_EVADDSSIAAW, 369 PPC_INS_EVADDUMIAAW, 370 PPC_INS_EVADDUSIAAW, 371 PPC_INS_EVADDW, 372 PPC_INS_EVAND, 373 PPC_INS_EVANDC, 374 PPC_INS_EVCMPEQ, 375 PPC_INS_EVCMPGTS, 376 PPC_INS_EVCMPGTU, 377 PPC_INS_EVCMPLTS, 378 PPC_INS_EVCMPLTU, 379 PPC_INS_EVCNTLSW, 380 PPC_INS_EVCNTLZW, 381 PPC_INS_EVDIVWS, 382 PPC_INS_EVDIVWU, 383 PPC_INS_EVEQV, 384 PPC_INS_EVEXTSB, 385 PPC_INS_EVEXTSH, 386 PPC_INS_EVLDD, 387 PPC_INS_EVLDDX, 388 PPC_INS_EVLDH, 389 PPC_INS_EVLDHX, 390 PPC_INS_EVLDW, 391 PPC_INS_EVLDWX, 392 PPC_INS_EVLHHESPLAT, 393 PPC_INS_EVLHHESPLATX, 394 PPC_INS_EVLHHOSSPLAT, 395 PPC_INS_EVLHHOSSPLATX, 396 PPC_INS_EVLHHOUSPLAT, 397 PPC_INS_EVLHHOUSPLATX, 398 PPC_INS_EVLWHE, 399 PPC_INS_EVLWHEX, 400 PPC_INS_EVLWHOS, 401 PPC_INS_EVLWHOSX, 402 PPC_INS_EVLWHOU, 403 PPC_INS_EVLWHOUX, 404 PPC_INS_EVLWHSPLAT, 405 PPC_INS_EVLWHSPLATX, 406 PPC_INS_EVLWWSPLAT, 407 PPC_INS_EVLWWSPLATX, 408 PPC_INS_EVMERGEHI, 409 PPC_INS_EVMERGEHILO, 410 PPC_INS_EVMERGELO, 411 PPC_INS_EVMERGELOHI, 412 PPC_INS_EVMHEGSMFAA, 413 PPC_INS_EVMHEGSMFAN, 414 PPC_INS_EVMHEGSMIAA, 415 PPC_INS_EVMHEGSMIAN, 416 PPC_INS_EVMHEGUMIAA, 417 PPC_INS_EVMHEGUMIAN, 418 PPC_INS_EVMHESMF, 419 PPC_INS_EVMHESMFA, 420 PPC_INS_EVMHESMFAAW, 421 PPC_INS_EVMHESMFANW, 422 PPC_INS_EVMHESMI, 423 PPC_INS_EVMHESMIA, 424 PPC_INS_EVMHESMIAAW, 425 PPC_INS_EVMHESMIANW, 426 PPC_INS_EVMHESSF, 427 PPC_INS_EVMHESSFA, 428 PPC_INS_EVMHESSFAAW, 429 PPC_INS_EVMHESSFANW, 430 PPC_INS_EVMHESSIAAW, 431 PPC_INS_EVMHESSIANW, 432 PPC_INS_EVMHEUMI, 433 PPC_INS_EVMHEUMIA, 434 PPC_INS_EVMHEUMIAAW, 435 PPC_INS_EVMHEUMIANW, 436 PPC_INS_EVMHEUSIAAW, 437 PPC_INS_EVMHEUSIANW, 438 PPC_INS_EVMHOGSMFAA, 439 PPC_INS_EVMHOGSMFAN, 440 PPC_INS_EVMHOGSMIAA, 441 PPC_INS_EVMHOGSMIAN, 442 PPC_INS_EVMHOGUMIAA, 443 PPC_INS_EVMHOGUMIAN, 444 PPC_INS_EVMHOSMF, 445 PPC_INS_EVMHOSMFA, 446 PPC_INS_EVMHOSMFAAW, 447 PPC_INS_EVMHOSMFANW, 448 PPC_INS_EVMHOSMI, 449 PPC_INS_EVMHOSMIA, 450 PPC_INS_EVMHOSMIAAW, 451 PPC_INS_EVMHOSMIANW, 452 PPC_INS_EVMHOSSF, 453 PPC_INS_EVMHOSSFA, 454 PPC_INS_EVMHOSSFAAW, 455 PPC_INS_EVMHOSSFANW, 456 PPC_INS_EVMHOSSIAAW, 457 PPC_INS_EVMHOSSIANW, 458 PPC_INS_EVMHOUMI, 459 PPC_INS_EVMHOUMIA, 460 PPC_INS_EVMHOUMIAAW, 461 PPC_INS_EVMHOUMIANW, 462 PPC_INS_EVMHOUSIAAW, 463 PPC_INS_EVMHOUSIANW, 464 PPC_INS_EVMRA, 465 PPC_INS_EVMWHSMF, 466 PPC_INS_EVMWHSMFA, 467 PPC_INS_EVMWHSMI, 468 PPC_INS_EVMWHSMIA, 469 PPC_INS_EVMWHSSF, 470 PPC_INS_EVMWHSSFA, 471 PPC_INS_EVMWHUMI, 472 PPC_INS_EVMWHUMIA, 473 PPC_INS_EVMWLSMIAAW, 474 PPC_INS_EVMWLSMIANW, 475 PPC_INS_EVMWLSSIAAW, 476 PPC_INS_EVMWLSSIANW, 477 PPC_INS_EVMWLUMI, 478 PPC_INS_EVMWLUMIA, 479 PPC_INS_EVMWLUMIAAW, 480 PPC_INS_EVMWLUMIANW, 481 PPC_INS_EVMWLUSIAAW, 482 PPC_INS_EVMWLUSIANW, 483 PPC_INS_EVMWSMF, 484 PPC_INS_EVMWSMFA, 485 PPC_INS_EVMWSMFAA, 486 PPC_INS_EVMWSMFAN, 487 PPC_INS_EVMWSMI, 488 PPC_INS_EVMWSMIA, 489 PPC_INS_EVMWSMIAA, 490 PPC_INS_EVMWSMIAN, 491 PPC_INS_EVMWSSF, 492 PPC_INS_EVMWSSFA, 493 PPC_INS_EVMWSSFAA, 494 PPC_INS_EVMWSSFAN, 495 PPC_INS_EVMWUMI, 496 PPC_INS_EVMWUMIA, 497 PPC_INS_EVMWUMIAA, 498 PPC_INS_EVMWUMIAN, 499 PPC_INS_EVNAND, 500 PPC_INS_EVNEG, 501 PPC_INS_EVNOR, 502 PPC_INS_EVOR, 503 PPC_INS_EVORC, 504 PPC_INS_EVRLW, 505 PPC_INS_EVRLWI, 506 PPC_INS_EVRNDW, 507 PPC_INS_EVSLW, 508 PPC_INS_EVSLWI, 509 PPC_INS_EVSPLATFI, 510 PPC_INS_EVSPLATI, 511 PPC_INS_EVSRWIS, 512 PPC_INS_EVSRWIU, 513 PPC_INS_EVSRWS, 514 PPC_INS_EVSRWU, 515 PPC_INS_EVSTDD, 516 PPC_INS_EVSTDDX, 517 PPC_INS_EVSTDH, 518 PPC_INS_EVSTDHX, 519 PPC_INS_EVSTDW, 520 PPC_INS_EVSTDWX, 521 PPC_INS_EVSTWHE, 522 PPC_INS_EVSTWHEX, 523 PPC_INS_EVSTWHO, 524 PPC_INS_EVSTWHOX, 525 PPC_INS_EVSTWWE, 526 PPC_INS_EVSTWWEX, 527 PPC_INS_EVSTWWO, 528 PPC_INS_EVSTWWOX, 529 PPC_INS_EVSUBFSMIAAW, 530 PPC_INS_EVSUBFSSIAAW, 531 PPC_INS_EVSUBFUMIAAW, 532 PPC_INS_EVSUBFUSIAAW, 533 PPC_INS_EVSUBFW, 534 PPC_INS_EVSUBIFW, 535 PPC_INS_EVXOR, 536 PPC_INS_EXTSB, 537 PPC_INS_EXTSH, 538 PPC_INS_EXTSW, 539 PPC_INS_FABS, 540 PPC_INS_FADD, 541 PPC_INS_FADDS, 542 PPC_INS_FCFID, 543 PPC_INS_FCFIDS, 544 PPC_INS_FCFIDU, 545 PPC_INS_FCFIDUS, 546 PPC_INS_FCMPU, 547 PPC_INS_FCPSGN, 548 PPC_INS_FCTID, 549 PPC_INS_FCTIDUZ, 550 PPC_INS_FCTIDZ, 551 PPC_INS_FCTIW, 552 PPC_INS_FCTIWUZ, 553 PPC_INS_FCTIWZ, 554 PPC_INS_FDIV, 555 PPC_INS_FDIVS, 556 PPC_INS_FMADD, 557 PPC_INS_FMADDS, 558 PPC_INS_FMR, 559 PPC_INS_FMSUB, 560 PPC_INS_FMSUBS, 561 PPC_INS_FMUL, 562 PPC_INS_FMULS, 563 PPC_INS_FNABS, 564 PPC_INS_FNEG, 565 PPC_INS_FNMADD, 566 PPC_INS_FNMADDS, 567 PPC_INS_FNMSUB, 568 PPC_INS_FNMSUBS, 569 PPC_INS_FRE, 570 PPC_INS_FRES, 571 PPC_INS_FRIM, 572 PPC_INS_FRIN, 573 PPC_INS_FRIP, 574 PPC_INS_FRIZ, 575 PPC_INS_FRSP, 576 PPC_INS_FRSQRTE, 577 PPC_INS_FRSQRTES, 578 PPC_INS_FSEL, 579 PPC_INS_FSQRT, 580 PPC_INS_FSQRTS, 581 PPC_INS_FSUB, 582 PPC_INS_FSUBS, 583 PPC_INS_ICBI, 584 PPC_INS_ICCCI, 585 PPC_INS_ISEL, 586 PPC_INS_ISYNC, 587 PPC_INS_LA, 588 PPC_INS_LBZ, 589 PPC_INS_LBZU, 590 PPC_INS_LBZUX, 591 PPC_INS_LBZX, 592 PPC_INS_LD, 593 PPC_INS_LDARX, 594 PPC_INS_LDBRX, 595 PPC_INS_LDU, 596 PPC_INS_LDUX, 597 PPC_INS_LDX, 598 PPC_INS_LFD, 599 PPC_INS_LFDU, 600 PPC_INS_LFDUX, 601 PPC_INS_LFDX, 602 PPC_INS_LFIWAX, 603 PPC_INS_LFIWZX, 604 PPC_INS_LFS, 605 PPC_INS_LFSU, 606 PPC_INS_LFSUX, 607 PPC_INS_LFSX, 608 PPC_INS_LHA, 609 PPC_INS_LHAU, 610 PPC_INS_LHAUX, 611 PPC_INS_LHAX, 612 PPC_INS_LHBRX, 613 PPC_INS_LHZ, 614 PPC_INS_LHZU, 615 PPC_INS_LHZUX, 616 PPC_INS_LHZX, 617 PPC_INS_LI, 618 PPC_INS_LIS, 619 PPC_INS_LMW, 620 PPC_INS_LSWI, 621 PPC_INS_LVEBX, 622 PPC_INS_LVEHX, 623 PPC_INS_LVEWX, 624 PPC_INS_LVSL, 625 PPC_INS_LVSR, 626 PPC_INS_LVX, 627 PPC_INS_LVXL, 628 PPC_INS_LWA, 629 PPC_INS_LWARX, 630 PPC_INS_LWAUX, 631 PPC_INS_LWAX, 632 PPC_INS_LWBRX, 633 PPC_INS_LWZ, 634 PPC_INS_LWZU, 635 PPC_INS_LWZUX, 636 PPC_INS_LWZX, 637 PPC_INS_LXSDX, 638 PPC_INS_LXVD2X, 639 PPC_INS_LXVDSX, 640 PPC_INS_LXVW4X, 641 PPC_INS_MBAR, 642 PPC_INS_MCRF, 643 PPC_INS_MFCR, 644 PPC_INS_MFCTR, 645 PPC_INS_MFDCR, 646 PPC_INS_MFFS, 647 PPC_INS_MFLR, 648 PPC_INS_MFMSR, 649 PPC_INS_MFOCRF, 650 PPC_INS_MFSPR, 651 PPC_INS_MFSR, 652 PPC_INS_MFSRIN, 653 PPC_INS_MFTB, 654 PPC_INS_MFVSCR, 655 PPC_INS_MSYNC, 656 PPC_INS_MTCRF, 657 PPC_INS_MTCTR, 658 PPC_INS_MTDCR, 659 PPC_INS_MTFSB0, 660 PPC_INS_MTFSB1, 661 PPC_INS_MTFSF, 662 PPC_INS_MTLR, 663 PPC_INS_MTMSR, 664 PPC_INS_MTMSRD, 665 PPC_INS_MTOCRF, 666 PPC_INS_MTSPR, 667 PPC_INS_MTSR, 668 PPC_INS_MTSRIN, 669 PPC_INS_MTVSCR, 670 PPC_INS_MULHD, 671 PPC_INS_MULHDU, 672 PPC_INS_MULHW, 673 PPC_INS_MULHWU, 674 PPC_INS_MULLD, 675 PPC_INS_MULLI, 676 PPC_INS_MULLW, 677 PPC_INS_NAND, 678 PPC_INS_NEG, 679 PPC_INS_NOP, 680 PPC_INS_ORI, 681 PPC_INS_NOR, 682 PPC_INS_OR, 683 PPC_INS_ORC, 684 PPC_INS_ORIS, 685 PPC_INS_POPCNTD, 686 PPC_INS_POPCNTW, 687 PPC_INS_RFCI, 688 PPC_INS_RFDI, 689 PPC_INS_RFI, 690 PPC_INS_RFID, 691 PPC_INS_RFMCI, 692 PPC_INS_RLDCL, 693 PPC_INS_RLDCR, 694 PPC_INS_RLDIC, 695 PPC_INS_RLDICL, 696 PPC_INS_RLDICR, 697 PPC_INS_RLDIMI, 698 PPC_INS_RLWIMI, 699 PPC_INS_RLWINM, 700 PPC_INS_RLWNM, 701 PPC_INS_SC, 702 PPC_INS_SLBIA, 703 PPC_INS_SLBIE, 704 PPC_INS_SLBMFEE, 705 PPC_INS_SLBMTE, 706 PPC_INS_SLD, 707 PPC_INS_SLW, 708 PPC_INS_SRAD, 709 PPC_INS_SRADI, 710 PPC_INS_SRAW, 711 PPC_INS_SRAWI, 712 PPC_INS_SRD, 713 PPC_INS_SRW, 714 PPC_INS_STB, 715 PPC_INS_STBU, 716 PPC_INS_STBUX, 717 PPC_INS_STBX, 718 PPC_INS_STD, 719 PPC_INS_STDBRX, 720 PPC_INS_STDCX, 721 PPC_INS_STDU, 722 PPC_INS_STDUX, 723 PPC_INS_STDX, 724 PPC_INS_STFD, 725 PPC_INS_STFDU, 726 PPC_INS_STFDUX, 727 PPC_INS_STFDX, 728 PPC_INS_STFIWX, 729 PPC_INS_STFS, 730 PPC_INS_STFSU, 731 PPC_INS_STFSUX, 732 PPC_INS_STFSX, 733 PPC_INS_STH, 734 PPC_INS_STHBRX, 735 PPC_INS_STHU, 736 PPC_INS_STHUX, 737 PPC_INS_STHX, 738 PPC_INS_STMW, 739 PPC_INS_STSWI, 740 PPC_INS_STVEBX, 741 PPC_INS_STVEHX, 742 PPC_INS_STVEWX, 743 PPC_INS_STVX, 744 PPC_INS_STVXL, 745 PPC_INS_STW, 746 PPC_INS_STWBRX, 747 PPC_INS_STWCX, 748 PPC_INS_STWU, 749 PPC_INS_STWUX, 750 PPC_INS_STWX, 751 PPC_INS_STXSDX, 752 PPC_INS_STXVD2X, 753 PPC_INS_STXVW4X, 754 PPC_INS_SUBF, 755 PPC_INS_SUBFC, 756 PPC_INS_SUBFE, 757 PPC_INS_SUBFIC, 758 PPC_INS_SUBFME, 759 PPC_INS_SUBFZE, 760 PPC_INS_SYNC, 761 PPC_INS_TD, 762 PPC_INS_TDI, 763 PPC_INS_TLBIA, 764 PPC_INS_TLBIE, 765 PPC_INS_TLBIEL, 766 PPC_INS_TLBIVAX, 767 PPC_INS_TLBLD, 768 PPC_INS_TLBLI, 769 PPC_INS_TLBRE, 770 PPC_INS_TLBSX, 771 PPC_INS_TLBSYNC, 772 PPC_INS_TLBWE, 773 PPC_INS_TRAP, 774 PPC_INS_TW, 775 PPC_INS_TWI, 776 PPC_INS_VADDCUW, 777 PPC_INS_VADDFP, 778 PPC_INS_VADDSBS, 779 PPC_INS_VADDSHS, 780 PPC_INS_VADDSWS, 781 PPC_INS_VADDUBM, 782 PPC_INS_VADDUBS, 783 PPC_INS_VADDUHM, 784 PPC_INS_VADDUHS, 785 PPC_INS_VADDUWM, 786 PPC_INS_VADDUWS, 787 PPC_INS_VAND, 788 PPC_INS_VANDC, 789 PPC_INS_VAVGSB, 790 PPC_INS_VAVGSH, 791 PPC_INS_VAVGSW, 792 PPC_INS_VAVGUB, 793 PPC_INS_VAVGUH, 794 PPC_INS_VAVGUW, 795 PPC_INS_VCFSX, 796 PPC_INS_VCFUX, 797 PPC_INS_VCMPBFP, 798 PPC_INS_VCMPEQFP, 799 PPC_INS_VCMPEQUB, 800 PPC_INS_VCMPEQUH, 801 PPC_INS_VCMPEQUW, 802 PPC_INS_VCMPGEFP, 803 PPC_INS_VCMPGTFP, 804 PPC_INS_VCMPGTSB, 805 PPC_INS_VCMPGTSH, 806 PPC_INS_VCMPGTSW, 807 PPC_INS_VCMPGTUB, 808 PPC_INS_VCMPGTUH, 809 PPC_INS_VCMPGTUW, 810 PPC_INS_VCTSXS, 811 PPC_INS_VCTUXS, 812 PPC_INS_VEXPTEFP, 813 PPC_INS_VLOGEFP, 814 PPC_INS_VMADDFP, 815 PPC_INS_VMAXFP, 816 PPC_INS_VMAXSB, 817 PPC_INS_VMAXSH, 818 PPC_INS_VMAXSW, 819 PPC_INS_VMAXUB, 820 PPC_INS_VMAXUH, 821 PPC_INS_VMAXUW, 822 PPC_INS_VMHADDSHS, 823 PPC_INS_VMHRADDSHS, 824 PPC_INS_VMINFP, 825 PPC_INS_VMINSB, 826 PPC_INS_VMINSH, 827 PPC_INS_VMINSW, 828 PPC_INS_VMINUB, 829 PPC_INS_VMINUH, 830 PPC_INS_VMINUW, 831 PPC_INS_VMLADDUHM, 832 PPC_INS_VMRGHB, 833 PPC_INS_VMRGHH, 834 PPC_INS_VMRGHW, 835 PPC_INS_VMRGLB, 836 PPC_INS_VMRGLH, 837 PPC_INS_VMRGLW, 838 PPC_INS_VMSUMMBM, 839 PPC_INS_VMSUMSHM, 840 PPC_INS_VMSUMSHS, 841 PPC_INS_VMSUMUBM, 842 PPC_INS_VMSUMUHM, 843 PPC_INS_VMSUMUHS, 844 PPC_INS_VMULESB, 845 PPC_INS_VMULESH, 846 PPC_INS_VMULEUB, 847 PPC_INS_VMULEUH, 848 PPC_INS_VMULOSB, 849 PPC_INS_VMULOSH, 850 PPC_INS_VMULOUB, 851 PPC_INS_VMULOUH, 852 PPC_INS_VNMSUBFP, 853 PPC_INS_VNOR, 854 PPC_INS_VOR, 855 PPC_INS_VPERM, 856 PPC_INS_VPKPX, 857 PPC_INS_VPKSHSS, 858 PPC_INS_VPKSHUS, 859 PPC_INS_VPKSWSS, 860 PPC_INS_VPKSWUS, 861 PPC_INS_VPKUHUM, 862 PPC_INS_VPKUHUS, 863 PPC_INS_VPKUWUM, 864 PPC_INS_VPKUWUS, 865 PPC_INS_VREFP, 866 PPC_INS_VRFIM, 867 PPC_INS_VRFIN, 868 PPC_INS_VRFIP, 869 PPC_INS_VRFIZ, 870 PPC_INS_VRLB, 871 PPC_INS_VRLH, 872 PPC_INS_VRLW, 873 PPC_INS_VRSQRTEFP, 874 PPC_INS_VSEL, 875 PPC_INS_VSL, 876 PPC_INS_VSLB, 877 PPC_INS_VSLDOI, 878 PPC_INS_VSLH, 879 PPC_INS_VSLO, 880 PPC_INS_VSLW, 881 PPC_INS_VSPLTB, 882 PPC_INS_VSPLTH, 883 PPC_INS_VSPLTISB, 884 PPC_INS_VSPLTISH, 885 PPC_INS_VSPLTISW, 886 PPC_INS_VSPLTW, 887 PPC_INS_VSR, 888 PPC_INS_VSRAB, 889 PPC_INS_VSRAH, 890 PPC_INS_VSRAW, 891 PPC_INS_VSRB, 892 PPC_INS_VSRH, 893 PPC_INS_VSRO, 894 PPC_INS_VSRW, 895 PPC_INS_VSUBCUW, 896 PPC_INS_VSUBFP, 897 PPC_INS_VSUBSBS, 898 PPC_INS_VSUBSHS, 899 PPC_INS_VSUBSWS, 900 PPC_INS_VSUBUBM, 901 PPC_INS_VSUBUBS, 902 PPC_INS_VSUBUHM, 903 PPC_INS_VSUBUHS, 904 PPC_INS_VSUBUWM, 905 PPC_INS_VSUBUWS, 906 PPC_INS_VSUM2SWS, 907 PPC_INS_VSUM4SBS, 908 PPC_INS_VSUM4SHS, 909 PPC_INS_VSUM4UBS, 910 PPC_INS_VSUMSWS, 911 PPC_INS_VUPKHPX, 912 PPC_INS_VUPKHSB, 913 PPC_INS_VUPKHSH, 914 PPC_INS_VUPKLPX, 915 PPC_INS_VUPKLSB, 916 PPC_INS_VUPKLSH, 917 PPC_INS_VXOR, 918 PPC_INS_WAIT, 919 PPC_INS_WRTEE, 920 PPC_INS_WRTEEI, 921 PPC_INS_XOR, 922 PPC_INS_XORI, 923 PPC_INS_XORIS, 924 PPC_INS_XSABSDP, 925 PPC_INS_XSADDDP, 926 PPC_INS_XSCMPODP, 927 PPC_INS_XSCMPUDP, 928 PPC_INS_XSCPSGNDP, 929 PPC_INS_XSCVDPSP, 930 PPC_INS_XSCVDPSXDS, 931 PPC_INS_XSCVDPSXWS, 932 PPC_INS_XSCVDPUXDS, 933 PPC_INS_XSCVDPUXWS, 934 PPC_INS_XSCVSPDP, 935 PPC_INS_XSCVSXDDP, 936 PPC_INS_XSCVUXDDP, 937 PPC_INS_XSDIVDP, 938 PPC_INS_XSMADDADP, 939 PPC_INS_XSMADDMDP, 940 PPC_INS_XSMAXDP, 941 PPC_INS_XSMINDP, 942 PPC_INS_XSMSUBADP, 943 PPC_INS_XSMSUBMDP, 944 PPC_INS_XSMULDP, 945 PPC_INS_XSNABSDP, 946 PPC_INS_XSNEGDP, 947 PPC_INS_XSNMADDADP, 948 PPC_INS_XSNMADDMDP, 949 PPC_INS_XSNMSUBADP, 950 PPC_INS_XSNMSUBMDP, 951 PPC_INS_XSRDPI, 952 PPC_INS_XSRDPIC, 953 PPC_INS_XSRDPIM, 954 PPC_INS_XSRDPIP, 955 PPC_INS_XSRDPIZ, 956 PPC_INS_XSREDP, 957 PPC_INS_XSRSQRTEDP, 958 PPC_INS_XSSQRTDP, 959 PPC_INS_XSSUBDP, 960 PPC_INS_XSTDIVDP, 961 PPC_INS_XSTSQRTDP, 962 PPC_INS_XVABSDP, 963 PPC_INS_XVABSSP, 964 PPC_INS_XVADDDP, 965 PPC_INS_XVADDSP, 966 PPC_INS_XVCMPEQDP, 967 PPC_INS_XVCMPEQSP, 968 PPC_INS_XVCMPGEDP, 969 PPC_INS_XVCMPGESP, 970 PPC_INS_XVCMPGTDP, 971 PPC_INS_XVCMPGTSP, 972 PPC_INS_XVCPSGNDP, 973 PPC_INS_XVCPSGNSP, 974 PPC_INS_XVCVDPSP, 975 PPC_INS_XVCVDPSXDS, 976 PPC_INS_XVCVDPSXWS, 977 PPC_INS_XVCVDPUXDS, 978 PPC_INS_XVCVDPUXWS, 979 PPC_INS_XVCVSPDP, 980 PPC_INS_XVCVSPSXDS, 981 PPC_INS_XVCVSPSXWS, 982 PPC_INS_XVCVSPUXDS, 983 PPC_INS_XVCVSPUXWS, 984 PPC_INS_XVCVSXDDP, 985 PPC_INS_XVCVSXDSP, 986 PPC_INS_XVCVSXWDP, 987 PPC_INS_XVCVSXWSP, 988 PPC_INS_XVCVUXDDP, 989 PPC_INS_XVCVUXDSP, 990 PPC_INS_XVCVUXWDP, 991 PPC_INS_XVCVUXWSP, 992 PPC_INS_XVDIVDP, 993 PPC_INS_XVDIVSP, 994 PPC_INS_XVMADDADP, 995 PPC_INS_XVMADDASP, 996 PPC_INS_XVMADDMDP, 997 PPC_INS_XVMADDMSP, 998 PPC_INS_XVMAXDP, 999 PPC_INS_XVMAXSP, 1000 PPC_INS_XVMINDP, 1001 PPC_INS_XVMINSP, 1002 PPC_INS_XVMSUBADP, 1003 PPC_INS_XVMSUBASP, 1004 PPC_INS_XVMSUBMDP, 1005 PPC_INS_XVMSUBMSP, 1006 PPC_INS_XVMULDP, 1007 PPC_INS_XVMULSP, 1008 PPC_INS_XVNABSDP, 1009 PPC_INS_XVNABSSP, 1010 PPC_INS_XVNEGDP, 1011 PPC_INS_XVNEGSP, 1012 PPC_INS_XVNMADDADP, 1013 PPC_INS_XVNMADDASP, 1014 PPC_INS_XVNMADDMDP, 1015 PPC_INS_XVNMADDMSP, 1016 PPC_INS_XVNMSUBADP, 1017 PPC_INS_XVNMSUBASP, 1018 PPC_INS_XVNMSUBMDP, 1019 PPC_INS_XVNMSUBMSP, 1020 PPC_INS_XVRDPI, 1021 PPC_INS_XVRDPIC, 1022 PPC_INS_XVRDPIM, 1023 PPC_INS_XVRDPIP, 1024 PPC_INS_XVRDPIZ, 1025 PPC_INS_XVREDP, 1026 PPC_INS_XVRESP, 1027 PPC_INS_XVRSPI, 1028 PPC_INS_XVRSPIC, 1029 PPC_INS_XVRSPIM, 1030 PPC_INS_XVRSPIP, 1031 PPC_INS_XVRSPIZ, 1032 PPC_INS_XVRSQRTEDP, 1033 PPC_INS_XVRSQRTESP, 1034 PPC_INS_XVSQRTDP, 1035 PPC_INS_XVSQRTSP, 1036 PPC_INS_XVSUBDP, 1037 PPC_INS_XVSUBSP, 1038 PPC_INS_XVTDIVDP, 1039 PPC_INS_XVTDIVSP, 1040 PPC_INS_XVTSQRTDP, 1041 PPC_INS_XVTSQRTSP, 1042 PPC_INS_XXLAND, 1043 PPC_INS_XXLANDC, 1044 PPC_INS_XXLNOR, 1045 PPC_INS_XXLOR, 1046 PPC_INS_XXLXOR, 1047 PPC_INS_XXMRGHW, 1048 PPC_INS_XXMRGLW, 1049 PPC_INS_XXPERMDI, 1050 PPC_INS_XXSEL, 1051 PPC_INS_XXSLDWI, 1052 PPC_INS_XXSPLTW, 1053 PPC_INS_BCA, 1054 PPC_INS_BCLA, 1055 1056 // extra & alias instructions 1057 PPC_INS_SLWI, 1058 PPC_INS_SRWI, 1059 PPC_INS_SLDI, 1060 1061 PPC_INS_BTA, 1062 PPC_INS_CRSET, 1063 PPC_INS_CRNOT, 1064 PPC_INS_CRMOVE, 1065 PPC_INS_CRCLR, 1066 PPC_INS_MFBR0, 1067 PPC_INS_MFBR1, 1068 PPC_INS_MFBR2, 1069 PPC_INS_MFBR3, 1070 PPC_INS_MFBR4, 1071 PPC_INS_MFBR5, 1072 PPC_INS_MFBR6, 1073 PPC_INS_MFBR7, 1074 PPC_INS_MFXER, 1075 PPC_INS_MFRTCU, 1076 PPC_INS_MFRTCL, 1077 PPC_INS_MFDSCR, 1078 PPC_INS_MFDSISR, 1079 PPC_INS_MFDAR, 1080 PPC_INS_MFSRR2, 1081 PPC_INS_MFSRR3, 1082 PPC_INS_MFCFAR, 1083 PPC_INS_MFAMR, 1084 PPC_INS_MFPID, 1085 PPC_INS_MFTBLO, 1086 PPC_INS_MFTBHI, 1087 PPC_INS_MFDBATU, 1088 PPC_INS_MFDBATL, 1089 PPC_INS_MFIBATU, 1090 PPC_INS_MFIBATL, 1091 PPC_INS_MFDCCR, 1092 PPC_INS_MFICCR, 1093 PPC_INS_MFDEAR, 1094 PPC_INS_MFESR, 1095 PPC_INS_MFSPEFSCR, 1096 PPC_INS_MFTCR, 1097 PPC_INS_MFASR, 1098 PPC_INS_MFPVR, 1099 PPC_INS_MFTBU, 1100 PPC_INS_MTCR, 1101 PPC_INS_MTBR0, 1102 PPC_INS_MTBR1, 1103 PPC_INS_MTBR2, 1104 PPC_INS_MTBR3, 1105 PPC_INS_MTBR4, 1106 PPC_INS_MTBR5, 1107 PPC_INS_MTBR6, 1108 PPC_INS_MTBR7, 1109 PPC_INS_MTXER, 1110 PPC_INS_MTDSCR, 1111 PPC_INS_MTDSISR, 1112 PPC_INS_MTDAR, 1113 PPC_INS_MTSRR2, 1114 PPC_INS_MTSRR3, 1115 PPC_INS_MTCFAR, 1116 PPC_INS_MTAMR, 1117 PPC_INS_MTPID, 1118 PPC_INS_MTTBL, 1119 PPC_INS_MTTBU, 1120 PPC_INS_MTTBLO, 1121 PPC_INS_MTTBHI, 1122 PPC_INS_MTDBATU, 1123 PPC_INS_MTDBATL, 1124 PPC_INS_MTIBATU, 1125 PPC_INS_MTIBATL, 1126 PPC_INS_MTDCCR, 1127 PPC_INS_MTICCR, 1128 PPC_INS_MTDEAR, 1129 PPC_INS_MTESR, 1130 PPC_INS_MTSPEFSCR, 1131 PPC_INS_MTTCR, 1132 PPC_INS_NOT, 1133 PPC_INS_MR, 1134 PPC_INS_ROTLD, 1135 PPC_INS_ROTLDI, 1136 PPC_INS_CLRLDI, 1137 PPC_INS_ROTLWI, 1138 PPC_INS_CLRLWI, 1139 PPC_INS_ROTLW, 1140 PPC_INS_SUB, 1141 PPC_INS_SUBC, 1142 PPC_INS_LWSYNC, 1143 PPC_INS_PTESYNC, 1144 PPC_INS_TDLT, 1145 PPC_INS_TDEQ, 1146 PPC_INS_TDGT, 1147 PPC_INS_TDNE, 1148 PPC_INS_TDLLT, 1149 PPC_INS_TDLGT, 1150 PPC_INS_TDU, 1151 PPC_INS_TDLTI, 1152 PPC_INS_TDEQI, 1153 PPC_INS_TDGTI, 1154 PPC_INS_TDNEI, 1155 PPC_INS_TDLLTI, 1156 PPC_INS_TDLGTI, 1157 PPC_INS_TDUI, 1158 PPC_INS_TLBREHI, 1159 PPC_INS_TLBRELO, 1160 PPC_INS_TLBWEHI, 1161 PPC_INS_TLBWELO, 1162 PPC_INS_TWLT, 1163 PPC_INS_TWEQ, 1164 PPC_INS_TWGT, 1165 PPC_INS_TWNE, 1166 PPC_INS_TWLLT, 1167 PPC_INS_TWLGT, 1168 PPC_INS_TWU, 1169 PPC_INS_TWLTI, 1170 PPC_INS_TWEQI, 1171 PPC_INS_TWGTI, 1172 PPC_INS_TWNEI, 1173 PPC_INS_TWLLTI, 1174 PPC_INS_TWLGTI, 1175 PPC_INS_TWUI, 1176 PPC_INS_WAITRSV, 1177 PPC_INS_WAITIMPL, 1178 PPC_INS_XNOP, 1179 PPC_INS_XVMOVDP, 1180 PPC_INS_XVMOVSP, 1181 PPC_INS_XXSPLTD, 1182 PPC_INS_XXMRGHD, 1183 PPC_INS_XXMRGLD, 1184 PPC_INS_XXSWAPD, 1185 PPC_INS_BT, 1186 PPC_INS_BF, 1187 PPC_INS_BDNZT, 1188 PPC_INS_BDNZF, 1189 PPC_INS_BDZF, 1190 PPC_INS_BDZT, 1191 PPC_INS_BFA, 1192 PPC_INS_BDNZTA, 1193 PPC_INS_BDNZFA, 1194 PPC_INS_BDZTA, 1195 PPC_INS_BDZFA, 1196 PPC_INS_BTCTR, 1197 PPC_INS_BFCTR, 1198 PPC_INS_BTCTRL, 1199 PPC_INS_BFCTRL, 1200 PPC_INS_BTL, 1201 PPC_INS_BFL, 1202 PPC_INS_BDNZTL, 1203 PPC_INS_BDNZFL, 1204 PPC_INS_BDZTL, 1205 PPC_INS_BDZFL, 1206 PPC_INS_BTLA, 1207 PPC_INS_BFLA, 1208 PPC_INS_BDNZTLA, 1209 PPC_INS_BDNZFLA, 1210 PPC_INS_BDZTLA, 1211 PPC_INS_BDZFLA, 1212 PPC_INS_BTLR, 1213 PPC_INS_BFLR, 1214 PPC_INS_BDNZTLR, 1215 PPC_INS_BDZTLR, 1216 PPC_INS_BDZFLR, 1217 PPC_INS_BTLRL, 1218 PPC_INS_BFLRL, 1219 PPC_INS_BDNZTLRL, 1220 PPC_INS_BDNZFLRL, 1221 PPC_INS_BDZTLRL, 1222 PPC_INS_BDZFLRL, 1223 1224 PPC_INS_ENDING, // <-- mark the end of the list of instructions 1225 } ppc_insn; 1226 1227 //> Group of PPC instructions 1228 typedef enum ppc_insn_group { 1229 PPC_GRP_INVALID = 0, // = CS_GRP_INVALID 1230 1231 //> Generic groups 1232 // all jump instructions (conditional+direct+indirect jumps) 1233 PPC_GRP_JUMP, // = CS_GRP_JUMP 1234 1235 //> Architecture-specific groups 1236 PPC_GRP_ALTIVEC = 128, 1237 PPC_GRP_MODE32, 1238 PPC_GRP_MODE64, 1239 PPC_GRP_BOOKE, 1240 PPC_GRP_NOTBOOKE, 1241 PPC_GRP_SPE, 1242 PPC_GRP_VSX, 1243 PPC_GRP_E500, 1244 PPC_GRP_PPC4XX, 1245 PPC_GRP_PPC6XX, 1246 1247 PPC_GRP_ENDING, // <-- mark the end of the list of groups 1248 } ppc_insn_group; 1249 1250 #ifdef __cplusplus 1251 } 1252 #endif 1253 1254 #endif 1255