5 #ifndef V8_PPC_CONSTANTS_PPC_H_ 6 #define V8_PPC_CONSTANTS_PPC_H_ 10 #include "src/base/logging.h" 11 #include "src/base/macros.h" 12 #include "src/globals.h" 16 #define UNIMPLEMENTED_PPC() \ 17 v8::internal::PrintF("%s, \tline %d: \tfunction %s not implemented. \n", \ 18 __FILE__, __LINE__, __func__) 20 #define UNIMPLEMENTED_PPC() 27 constexpr
size_t kMaxPCRelativeCodeRangeInMB = 0;
30 const int kNumRegisters = 32;
33 const int kNumDoubleRegisters = 32;
35 const int kNoRegister = -1;
39 const int kLoadPtrMaxReachBits = 15;
40 const int kLoadDoubleMaxReachBits = 15;
45 constexpr
int kRootRegisterBias = 128;
48 #define SIGN_EXT_IMM16(imm) ((static_cast<int>(imm) << 16) >> 16) 51 #define SIGN_EXT_IMM22(imm) ((static_cast<int>(imm) << 10) >> 10) 54 #define SIGN_EXT_IMM26(imm) ((static_cast<int>(imm) << 6) >> 6) 85 inline Condition NegateCondition(Condition cond) {
87 return static_cast<Condition
>(cond ^ ne);
100 #define PPC_XX3_OPCODE_LIST(V) \ 102 V(xsadddp, XSADDDP, 0xF0000100) \ 104 V(xsaddsp, XSADDSP, 0xF0000000) \ 106 V(xscmpodp, XSCMPODP, 0xF0000158) \ 108 V(xscmpudp, XSCMPUDP, 0xF0000118) \ 110 V(xscpsgndp, XSCPSGNDP, 0xF0000580) \ 112 V(xsdivdp, XSDIVDP, 0xF00001C0) \ 114 V(xsdivsp, XSDIVSP, 0xF00000C0) \ 116 V(xsmaddadp, XSMADDADP, 0xF0000108) \ 118 V(xsmaddasp, XSMADDASP, 0xF0000008) \ 120 V(xsmaddmdp, XSMADDMDP, 0xF0000148) \ 122 V(xsmaddmsp, XSMADDMSP, 0xF0000048) \ 124 V(xsmaxdp, XSMAXDP, 0xF0000500) \ 126 V(xsmindp, XSMINDP, 0xF0000540) \ 128 V(xsmsubadp, XSMSUBADP, 0xF0000188) \ 130 V(xsmsubasp, XSMSUBASP, 0xF0000088) \ 132 V(xsmsubmdp, XSMSUBMDP, 0xF00001C8) \ 134 V(xsmsubmsp, XSMSUBMSP, 0xF00000C8) \ 136 V(xsmuldp, XSMULDP, 0xF0000180) \ 138 V(xsmulsp, XSMULSP, 0xF0000080) \ 140 V(xsnmaddadp, XSNMADDADP, 0xF0000508) \ 142 V(xsnmaddasp, XSNMADDASP, 0xF0000408) \ 144 V(xsnmaddmdp, XSNMADDMDP, 0xF0000548) \ 146 V(xsnmaddmsp, XSNMADDMSP, 0xF0000448) \ 148 V(xsnmsubadp, XSNMSUBADP, 0xF0000588) \ 150 V(xsnmsubasp, XSNMSUBASP, 0xF0000488) \ 152 V(xsnmsubmdp, XSNMSUBMDP, 0xF00005C8) \ 154 V(xsnmsubmsp, XSNMSUBMSP, 0xF00004C8) \ 156 V(xsredp, XSREDP, 0xF0000168) \ 158 V(xsresp, XSRESP, 0xF0000068) \ 160 V(xssubdp, XSSUBDP, 0xF0000140) \ 162 V(xssubsp, XSSUBSP, 0xF0000040) \ 164 V(xstdivdp, XSTDIVDP, 0xF00001E8) \ 166 V(xvadddp, XVADDDP, 0xF0000300) \ 168 V(xvaddsp, XVADDSP, 0xF0000200) \ 170 V(xvcmpeqdp, XVCMPEQDP, 0xF0000318) \ 172 V(xvcmpeqdpx, XVCMPEQDPx, 0xF0000718) \ 174 V(xvcmpeqsp, XVCMPEQSP, 0xF0000218) \ 176 V(xvcmpeqspx, XVCMPEQSPx, 0xF0000618) \ 178 V(xvcmpgedp, XVCMPGEDP, 0xF0000398) \ 181 V(xvcmpgedpx, XVCMPGEDPx, 0xF0000798) \ 183 V(xvcmpgesp, XVCMPGESP, 0xF0000298) \ 186 V(xvcmpgespx, XVCMPGESPx, 0xF0000698) \ 188 V(xvcmpgtdp, XVCMPGTDP, 0xF0000358) \ 190 V(xvcmpgtdpx, XVCMPGTDPx, 0xF0000758) \ 192 V(xvcmpgtsp, XVCMPGTSP, 0xF0000258) \ 194 V(xvcmpgtspx, XVCMPGTSPx, 0xF0000658) \ 196 V(xvcpsgndp, XVCPSGNDP, 0xF0000780) \ 198 V(xvcpsgnsp, XVCPSGNSP, 0xF0000680) \ 200 V(xvdivdp, XVDIVDP, 0xF00003C0) \ 202 V(xvdivsp, XVDIVSP, 0xF00002C0) \ 204 V(xvmaddadp, XVMADDADP, 0xF0000308) \ 206 V(xvmaddasp, XVMADDASP, 0xF0000208) \ 208 V(xvmaddmdp, XVMADDMDP, 0xF0000348) \ 210 V(xvmaddmsp, XVMADDMSP, 0xF0000248) \ 212 V(xvmaxdp, XVMAXDP, 0xF0000700) \ 214 V(xvmaxsp, XVMAXSP, 0xF0000600) \ 216 V(xvmindp, XVMINDP, 0xF0000740) \ 218 V(xvminsp, XVMINSP, 0xF0000640) \ 220 V(xvmsubadp, XVMSUBADP, 0xF0000388) \ 222 V(xvmsubasp, XVMSUBASP, 0xF0000288) \ 224 V(xvmsubmdp, XVMSUBMDP, 0xF00003C8) \ 226 V(xvmsubmsp, XVMSUBMSP, 0xF00002C8) \ 228 V(xvmuldp, XVMULDP, 0xF0000380) \ 230 V(xvmulsp, XVMULSP, 0xF0000280) \ 232 V(xvnmaddadp, XVNMADDADP, 0xF0000708) \ 234 V(xvnmaddasp, XVNMADDASP, 0xF0000608) \ 236 V(xvnmaddmdp, XVNMADDMDP, 0xF0000748) \ 238 V(xvnmaddmsp, XVNMADDMSP, 0xF0000648) \ 240 V(xvnmsubadp, XVNMSUBADP, 0xF0000788) \ 242 V(xvnmsubasp, XVNMSUBASP, 0xF0000688) \ 244 V(xvnmsubmdp, XVNMSUBMDP, 0xF00007C8) \ 246 V(xvnmsubmsp, XVNMSUBMSP, 0xF00006C8) \ 248 V(xvredp, XVREDP, 0xF0000368) \ 250 V(xvresp, XVRESP, 0xF0000268) \ 252 V(xvsubdp, XVSUBDP, 0xF0000340) \ 254 V(xvsubsp, XVSUBSP, 0xF0000240) \ 256 V(xvtdivdp, XVTDIVDP, 0xF00003E8) \ 258 V(xvtdivsp, XVTDIVSP, 0xF00002E8) \ 260 V(xxland, XXLAND, 0xF0000410) \ 262 V(xxlandc, XXLANDC, 0xF0000450) \ 264 V(xxleqv, XXLEQV, 0xF00005D0) \ 266 V(xxlnand, XXLNAND, 0xF0000590) \ 268 V(xxlnor, XXLNOR, 0xF0000510) \ 270 V(xxlor, XXLOR, 0xF0000490) \ 272 V(xxlorc, XXLORC, 0xF0000550) \ 274 V(xxlxor, XXLXOR, 0xF00004D0) \ 276 V(xxmrghw, XXMRGHW, 0xF0000090) \ 278 V(xxmrglw, XXMRGLW, 0xF0000190) \ 280 V(xxpermdi, XXPERMDI, 0xF0000050) \ 282 V(xxsldwi, XXSLDWI, 0xF0000010) \ 284 V(xxspltw, XXSPLTW, 0xF0000290) 286 #define PPC_Z23_OPCODE_LIST(V) \ 288 V(dqua, DQUA, 0xEC000006) \ 290 V(dquai, DQUAI, 0xEC000086) \ 292 V(dquaiq, DQUAIQ, 0xFC000086) \ 294 V(dquaq, DQUAQ, 0xFC000006) \ 296 V(drintn, DRINTN, 0xEC0001C6) \ 298 V(drintnq, DRINTNQ, 0xFC0001C6) \ 300 V(drintx, DRINTX, 0xEC0000C6) \ 302 V(drintxq, DRINTXQ, 0xFC0000C6) \ 304 V(drrnd, DRRND, 0xEC000046) \ 306 V(drrndq, DRRNDQ, 0xFC000046) 308 #define PPC_Z22_OPCODE_LIST(V) \ 310 V(dscli, DSCLI, 0xEC000084) \ 312 V(dscliq, DSCLIQ, 0xFC000084) \ 314 V(dscri, DSCRI, 0xEC0000C4) \ 316 V(dscriq, DSCRIQ, 0xFC0000C4) \ 318 V(dtstdc, DTSTDC, 0xEC000184) \ 320 V(dtstdcq, DTSTDCQ, 0xFC000184) \ 322 V(dtstdg, DTSTDG, 0xEC0001C4) \ 324 V(dtstdgq, DTSTDGQ, 0xFC0001C4) 326 #define PPC_XX2_OPCODE_LIST(V) \ 328 V(mtvsrd, MTVSRD, 0x7C000166) \ 330 V(mtvsrwa, MTVSRWA, 0x7C0001A6) \ 332 V(mtvsrwz, MTVSRWZ, 0x7C0001E6) \ 334 V(xsabsdp, XSABSDP, 0xF0000564) \ 336 V(xscvdpsp, XSCVDPSP, 0xF0000424) \ 339 V(xscvdpspn, XSCVDPSPN, 0xF000042C) \ 342 V(xscvdpsxds, XSCVDPSXDS, 0xF0000560) \ 345 V(xscvdpsxws, XSCVDPSXWS, 0xF0000160) \ 348 V(xscvdpuxds, XSCVDPUXDS, 0xF0000520) \ 351 V(xscvdpuxws, XSCVDPUXWS, 0xF0000120) \ 353 V(xscvspdp, XSCVSPDP, 0xF0000524) \ 356 V(xscvspdpn, XSCVSPDPN, 0xF000052C) \ 358 V(xscvsxddp, XSCVSXDDP, 0xF00005E0) \ 360 V(xscvsxdsp, XSCVSXDSP, 0xF00004E0) \ 363 V(xscvuxddp, XSCVUXDDP, 0xF00005A0) \ 366 V(xscvuxdsp, XSCVUXDSP, 0xF00004A0) \ 368 V(xsnabsdp, XSNABSDP, 0xF00005A4) \ 370 V(xsnegdp, XSNEGDP, 0xF00005E4) \ 372 V(xsrdpi, XSRDPI, 0xF0000124) \ 375 V(xsrdpic, XSRDPIC, 0xF00001AC) \ 377 V(xsrdpim, XSRDPIM, 0xF00001E4) \ 379 V(xsrdpip, XSRDPIP, 0xF00001A4) \ 381 V(xsrdpiz, XSRDPIZ, 0xF0000164) \ 383 V(xsrsp, XSRSP, 0xF0000464) \ 385 V(xsrsqrtedp, XSRSQRTEDP, 0xF0000128) \ 387 V(xsrsqrtesp, XSRSQRTESP, 0xF0000028) \ 389 V(xssqrtdp, XSSQRTDP, 0xF000012C) \ 391 V(xssqrtsp, XSSQRTSP, 0xF000002C) \ 393 V(xstsqrtdp, XSTSQRTDP, 0xF00001A8) \ 395 V(xvabsdp, XVABSDP, 0xF0000764) \ 397 V(xvabssp, XVABSSP, 0xF0000664) \ 399 V(xvcvdpsp, XVCVDPSP, 0xF0000624) \ 402 V(xvcvdpsxds, XVCVDPSXDS, 0xF0000760) \ 405 V(xvcvdpsxws, XVCVDPSXWS, 0xF0000360) \ 408 V(xvcvdpuxds, XVCVDPUXDS, 0xF0000720) \ 411 V(xvcvdpuxws, XVCVDPUXWS, 0xF0000320) \ 413 V(xvcvspdp, XVCVSPDP, 0xF0000724) \ 416 V(xvcvspsxds, XVCVSPSXDS, 0xF0000660) \ 419 V(xvcvspsxws, XVCVSPSXWS, 0xF0000260) \ 422 V(xvcvspuxds, XVCVSPUXDS, 0xF0000620) \ 425 V(xvcvspuxws, XVCVSPUXWS, 0xF0000220) \ 427 V(xvcvsxddp, XVCVSXDDP, 0xF00007E0) \ 429 V(xvcvsxdsp, XVCVSXDSP, 0xF00006E0) \ 431 V(xvcvsxwdp, XVCVSXWDP, 0xF00003E0) \ 433 V(xvcvsxwsp, XVCVSXWSP, 0xF00002E0) \ 436 V(xvcvuxddp, XVCVUXDDP, 0xF00007A0) \ 439 V(xvcvuxdsp, XVCVUXDSP, 0xF00006A0) \ 441 V(xvcvuxwdp, XVCVUXWDP, 0xF00003A0) \ 443 V(xvcvuxwsp, XVCVUXWSP, 0xF00002A0) \ 445 V(xvnabsdp, XVNABSDP, 0xF00007A4) \ 447 V(xvnabssp, XVNABSSP, 0xF00006A4) \ 449 V(xvnegdp, XVNEGDP, 0xF00007E4) \ 451 V(xvnegsp, XVNEGSP, 0xF00006E4) \ 453 V(xvrdpi, XVRDPI, 0xF0000324) \ 456 V(xvrdpic, XVRDPIC, 0xF00003AC) \ 458 V(xvrdpim, XVRDPIM, 0xF00003E4) \ 460 V(xvrdpip, XVRDPIP, 0xF00003A4) \ 462 V(xvrdpiz, XVRDPIZ, 0xF0000364) \ 464 V(xvrspi, XVRSPI, 0xF0000224) \ 467 V(xvrspic, XVRSPIC, 0xF00002AC) \ 469 V(xvrspim, XVRSPIM, 0xF00002E4) \ 471 V(xvrspip, XVRSPIP, 0xF00002A4) \ 473 V(xvrspiz, XVRSPIZ, 0xF0000264) \ 475 V(xvrsqrtedp, XVRSQRTEDP, 0xF0000328) \ 477 V(xvrsqrtesp, XVRSQRTESP, 0xF0000228) \ 479 V(xvsqrtdp, XVSQRTDP, 0xF000032C) \ 481 V(xvsqrtsp, XVSQRTSP, 0xF000022C) \ 483 V(xvtsqrtdp, XVTSQRTDP, 0xF00003A8) \ 485 V(xvtsqrtsp, XVTSQRTSP, 0xF00002A8) 487 #define PPC_EVX_OPCODE_LIST(V) \ 489 V(evlddepx, EVLDDEPX, 0x7C00063E) \ 491 V(evstddepx, EVSTDDEPX, 0x7C00073E) \ 493 V(brinc, BRINC, 0x1000020F) \ 495 V(evabs, EVABS, 0x10000208) \ 497 V(evaddiw, EVADDIW, 0x10000202) \ 499 V(evaddsmiaaw, EVADDSMIAAW, 0x100004C9) \ 501 V(evaddssiaaw, EVADDSSIAAW, 0x100004C1) \ 503 V(evaddumiaaw, EVADDUMIAAW, 0x100004C8) \ 505 V(evaddusiaaw, EVADDUSIAAW, 0x100004C0) \ 507 V(evaddw, EVADDW, 0x10000200) \ 509 V(evand, EVAND, 0x10000211) \ 511 V(evandc, EVANDC, 0x10000212) \ 513 V(evcmpeq, EVCMPEQ, 0x10000234) \ 515 V(evcmpgts, EVCMPGTS, 0x10000231) \ 517 V(evcmpgtu, EVCMPGTU, 0x10000230) \ 519 V(evcmplts, EVCMPLTS, 0x10000233) \ 521 V(evcmpltu, EVCMPLTU, 0x10000232) \ 523 V(evcntlsw, EVCNTLSW, 0x1000020E) \ 525 V(evcntlzw, EVCNTLZW, 0x1000020D) \ 527 V(evdivws, EVDIVWS, 0x100004C6) \ 529 V(evdivwu, EVDIVWU, 0x100004C7) \ 531 V(eveqv, EVEQV, 0x10000219) \ 533 V(evextsb, EVEXTSB, 0x1000020A) \ 535 V(evextsh, EVEXTSH, 0x1000020B) \ 537 V(evldd, EVLDD, 0x10000301) \ 539 V(evlddx, EVLDDX, 0x10000300) \ 541 V(evldh, EVLDH, 0x10000305) \ 543 V(evldhx, EVLDHX, 0x10000304) \ 545 V(evldw, EVLDW, 0x10000303) \ 547 V(evldwx, EVLDWX, 0x10000302) \ 549 V(evlhhesplat, EVLHHESPLAT, 0x10000309) \ 551 V(evlhhesplatx, EVLHHESPLATX, 0x10000308) \ 553 V(evlhhossplat, EVLHHOSSPLAT, 0x1000030F) \ 555 V(evlhhossplatx, EVLHHOSSPLATX, 0x1000030E) \ 557 V(evlhhousplat, EVLHHOUSPLAT, 0x1000030D) \ 559 V(evlhhousplatx, EVLHHOUSPLATX, 0x1000030C) \ 561 V(evlwhe, EVLWHE, 0x10000311) \ 563 V(evlwhos, EVLWHOS, 0x10000317) \ 566 V(evlwhosx, EVLWHOSX, 0x10000316) \ 568 V(evlwhou, EVLWHOU, 0x10000315) \ 571 V(evlwhoux, EVLWHOUX, 0x10000314) \ 573 V(evlwhsplat, EVLWHSPLAT, 0x1000031D) \ 575 V(evlwhsplatx, EVLWHSPLATX, 0x1000031C) \ 577 V(evlwwsplat, EVLWWSPLAT, 0x10000319) \ 579 V(evlwwsplatx, EVLWWSPLATX, 0x10000318) \ 581 V(evmergehi, EVMERGEHI, 0x1000022C) \ 583 V(evmergehilo, EVMERGEHILO, 0x1000022E) \ 585 V(evmergelo, EVMERGELO, 0x1000022D) \ 587 V(evmergelohi, EVMERGELOHI, 0x1000022F) \ 590 V(evmhegsmfaa, EVMHEGSMFAA, 0x1000052B) \ 593 V(evmhegsmfan, EVMHEGSMFAN, 0x100005AB) \ 596 V(evmhegsmiaa, EVMHEGSMIAA, 0x10000529) \ 599 V(evmhegsmian, EVMHEGSMIAN, 0x100005A9) \ 602 V(evmhegumiaa, EVMHEGUMIAA, 0x10000528) \ 605 V(evmhegumian, EVMHEGUMIAN, 0x100005A8) \ 607 V(evmhesmf, EVMHESMF, 0x1000040B) \ 610 V(evmhesmfa, EVMHESMFA, 0x1000042B) \ 613 V(evmhesmfaaw, EVMHESMFAAW, 0x1000050B) \ 616 V(evmhesmfanw, EVMHESMFANW, 0x1000058B) \ 618 V(evmhesmi, EVMHESMI, 0x10000409) \ 621 V(evmhesmia, EVMHESMIA, 0x10000429) \ 624 V(evmhesmiaaw, EVMHESMIAAW, 0x10000509) \ 627 V(evmhesmianw, EVMHESMIANW, 0x10000589) \ 629 V(evmhessf, EVMHESSF, 0x10000403) \ 632 V(evmhessfa, EVMHESSFA, 0x10000423) \ 635 V(evmhessfaaw, EVMHESSFAAW, 0x10000503) \ 638 V(evmhessfanw, EVMHESSFANW, 0x10000583) \ 641 V(evmhessiaaw, EVMHESSIAAW, 0x10000501) \ 644 V(evmhessianw, EVMHESSIANW, 0x10000581) \ 646 V(evmheumi, EVMHEUMI, 0x10000408) \ 649 V(evmheumia, EVMHEUMIA, 0x10000428) \ 652 V(evmheumiaaw, EVMHEUMIAAW, 0x10000508) \ 655 V(evmheumianw, EVMHEUMIANW, 0x10000588) \ 658 V(evmheusiaaw, EVMHEUSIAAW, 0x10000500) \ 661 V(evmheusianw, EVMHEUSIANW, 0x10000580) \ 664 V(evmhogsmfaa, EVMHOGSMFAA, 0x1000052F) \ 667 V(evmhogsmfan, EVMHOGSMFAN, 0x100005AF) \ 670 V(evmhogsmiaa, EVMHOGSMIAA, 0x1000052D) \ 673 V(evmhogsmian, EVMHOGSMIAN, 0x100005AD) \ 676 V(evmhogumiaa, EVMHOGUMIAA, 0x1000052C) \ 679 V(evmhogumian, EVMHOGUMIAN, 0x100005AC) \ 681 V(evmhosmf, EVMHOSMF, 0x1000040F) \ 684 V(evmhosmfa, EVMHOSMFA, 0x1000042F) \ 687 V(evmhosmfaaw, EVMHOSMFAAW, 0x1000050F) \ 690 V(evmhosmfanw, EVMHOSMFANW, 0x1000058F) \ 692 V(evmhosmi, EVMHOSMI, 0x1000040D) \ 695 V(evmhosmia, EVMHOSMIA, 0x1000042D) \ 698 V(evmhosmiaaw, EVMHOSMIAAW, 0x1000050D) \ 701 V(evmhosmianw, EVMHOSMIANW, 0x1000058D) \ 703 V(evmhossf, EVMHOSSF, 0x10000407) \ 706 V(evmhossfa, EVMHOSSFA, 0x10000427) \ 709 V(evmhossfaaw, EVMHOSSFAAW, 0x10000507) \ 712 V(evmhossfanw, EVMHOSSFANW, 0x10000587) \ 715 V(evmhossiaaw, EVMHOSSIAAW, 0x10000505) \ 718 V(evmhossianw, EVMHOSSIANW, 0x10000585) \ 720 V(evmhoumi, EVMHOUMI, 0x1000040C) \ 723 V(evmhoumia, EVMHOUMIA, 0x1000042C) \ 726 V(evmhoumiaaw, EVMHOUMIAAW, 0x1000050C) \ 729 V(evmhoumianw, EVMHOUMIANW, 0x1000058C) \ 732 V(evmhousiaaw, EVMHOUSIAAW, 0x10000504) \ 735 V(evmhousianw, EVMHOUSIANW, 0x10000584) \ 737 V(evmra, EVMRA, 0x100004C4) \ 739 V(evmwhsmf, EVMWHSMF, 0x1000044F) \ 741 V(evmwhsmfa, EVMWHSMFA, 0x1000046F) \ 743 V(evmwhsmi, EVMWHSMI, 0x1000044D) \ 745 V(evmwhsmia, EVMWHSMIA, 0x1000046D) \ 747 V(evmwhssf, EVMWHSSF, 0x10000447) \ 749 V(evmwhssfa, EVMWHSSFA, 0x10000467) \ 751 V(evmwhumi, EVMWHUMI, 0x1000044C) \ 753 V(evmwhumia, EVMWHUMIA, 0x1000046C) \ 756 V(evmwlsmiaaw, EVMWLSMIAAW, 0x10000549) \ 759 V(evmwlsmianw, EVMWLSMIANW, 0x100005C9) \ 762 V(evmwlssiaaw, EVMWLSSIAAW, 0x10000541) \ 765 V(evmwlssianw, EVMWLSSIANW, 0x100005C1) \ 767 V(evmwlumi, EVMWLUMI, 0x10000448) \ 769 V(evmwlumia, EVMWLUMIA, 0x10000468) \ 772 V(evmwlumiaaw, EVMWLUMIAAW, 0x10000548) \ 775 V(evmwlumianw, EVMWLUMIANW, 0x100005C8) \ 778 V(evmwlusiaaw, EVMWLUSIAAW, 0x10000540) \ 781 V(evmwlusianw, EVMWLUSIANW, 0x100005C0) \ 783 V(evmwsmf, EVMWSMF, 0x1000045B) \ 785 V(evmwsmfa, EVMWSMFA, 0x1000047B) \ 787 V(evmwsmfaa, EVMWSMFAA, 0x1000055B) \ 790 V(evmwsmfan, EVMWSMFAN, 0x100005DB) \ 792 V(evmwsmi, EVMWSMI, 0x10000459) \ 794 V(evmwsmia, EVMWSMIA, 0x10000479) \ 796 V(evmwsmiaa, EVMWSMIAA, 0x10000559) \ 798 V(evmwsmian, EVMWSMIAN, 0x100005D9) \ 800 V(evmwssf, EVMWSSF, 0x10000453) \ 802 V(evmwssfa, EVMWSSFA, 0x10000473) \ 804 V(evmwssfaa, EVMWSSFAA, 0x10000553) \ 807 V(evmwssfan, EVMWSSFAN, 0x100005D3) \ 809 V(evmwumi, EVMWUMI, 0x10000458) \ 811 V(evmwumia, EVMWUMIA, 0x10000478) \ 813 V(evmwumiaa, EVMWUMIAA, 0x10000558) \ 816 V(evmwumian, EVMWUMIAN, 0x100005D8) \ 818 V(evnand, EVNAND, 0x1000021E) \ 820 V(evneg, EVNEG, 0x10000209) \ 822 V(evnor, EVNOR, 0x10000218) \ 824 V(evor, EVOR, 0x10000217) \ 826 V(evorc, EVORC, 0x1000021B) \ 828 V(evrlw, EVRLW, 0x10000228) \ 830 V(evrlwi, EVRLWI, 0x1000022A) \ 832 V(evrndw, EVRNDW, 0x1000020C) \ 834 V(evslw, EVSLW, 0x10000224) \ 836 V(evslwi, EVSLWI, 0x10000226) \ 838 V(evsplatfi, EVSPLATFI, 0x1000022B) \ 840 V(evsplati, EVSPLATI, 0x10000229) \ 842 V(evsrwis, EVSRWIS, 0x10000223) \ 844 V(evsrwiu, EVSRWIU, 0x10000222) \ 846 V(evsrws, EVSRWS, 0x10000221) \ 848 V(evsrwu, EVSRWU, 0x10000220) \ 850 V(evstdd, EVSTDD, 0x10000321) \ 852 V(evstddx, EVSTDDX, 0x10000320) \ 854 V(evstdh, EVSTDH, 0x10000325) \ 856 V(evstdhx, EVSTDHX, 0x10000324) \ 858 V(evstdw, EVSTDW, 0x10000323) \ 860 V(evstdwx, EVSTDWX, 0x10000322) \ 862 V(evstwhe, EVSTWHE, 0x10000331) \ 864 V(evstwhex, EVSTWHEX, 0x10000330) \ 866 V(evstwho, EVSTWHO, 0x10000335) \ 868 V(evstwhox, EVSTWHOX, 0x10000334) \ 870 V(evstwwe, EVSTWWE, 0x10000339) \ 872 V(evstwwex, EVSTWWEX, 0x10000338) \ 874 V(evstwwo, EVSTWWO, 0x1000033D) \ 876 V(evstwwox, EVSTWWOX, 0x1000033C) \ 878 V(evsubfsmiaaw, EVSUBFSMIAAW, 0x100004CB) \ 880 V(evsubfssiaaw, EVSUBFSSIAAW, 0x100004C3) \ 882 V(evsubfumiaaw, EVSUBFUMIAAW, 0x100004CA) \ 884 V(evsubfusiaaw, EVSUBFUSIAAW, 0x100004C2) \ 886 V(evsubfw, EVSUBFW, 0x10000204) \ 888 V(evsubifw, EVSUBIFW, 0x10000206) \ 890 V(evxor, EVXOR, 0x10000216) \ 892 V(efdabs, EFDABS, 0x100002E4) \ 894 V(efdadd, EFDADD, 0x100002E0) \ 896 V(efdcfs, EFDCFS, 0x100002EF) \ 898 V(efdcfsf, EFDCFSF, 0x100002F3) \ 900 V(efdcfsi, EFDCFSI, 0x100002F1) \ 903 V(efdcfsid, EFDCFSID, 0x100002E3) \ 905 V(efdcfuf, EFDCFUF, 0x100002F2) \ 907 V(efdcfui, EFDCFUI, 0x100002F0) \ 910 V(efdcfuid, EFDCFUID, 0x100002E2) \ 912 V(efdcmpeq, EFDCMPEQ, 0x100002EE) \ 914 V(efdcmpgt, EFDCMPGT, 0x100002EC) \ 916 V(efdcmplt, EFDCMPLT, 0x100002ED) \ 918 V(efdctsf, EFDCTSF, 0x100002F7) \ 920 V(efdctsi, EFDCTSI, 0x100002F5) \ 923 V(efdctsidz, EFDCTSIDZ, 0x100002EB) \ 926 V(efdctsiz, EFDCTSIZ, 0x100002FA) \ 928 V(efdctuf, EFDCTUF, 0x100002F6) \ 930 V(efdctui, EFDCTUI, 0x100002F4) \ 933 V(efdctuidz, EFDCTUIDZ, 0x100002EA) \ 936 V(efdctuiz, EFDCTUIZ, 0x100002F8) \ 938 V(efddiv, EFDDIV, 0x100002E9) \ 940 V(efdmul, EFDMUL, 0x100002E8) \ 942 V(efdnabs, EFDNABS, 0x100002E5) \ 944 V(efdneg, EFDNEG, 0x100002E6) \ 946 V(efdsub, EFDSUB, 0x100002E1) \ 948 V(efdtsteq, EFDTSTEQ, 0x100002FE) \ 950 V(efdtstgt, EFDTSTGT, 0x100002FC) \ 952 V(efdtstlt, EFDTSTLT, 0x100002FD) \ 954 V(efscfd, EFSCFD, 0x100002CF) \ 956 V(efsabs, EFSABS, 0x100002C4) \ 958 V(efsadd, EFSADD, 0x100002C0) \ 960 V(efscfsf, EFSCFSF, 0x100002D3) \ 962 V(efscfsi, EFSCFSI, 0x100002D1) \ 964 V(efscfuf, EFSCFUF, 0x100002D2) \ 966 V(efscfui, EFSCFUI, 0x100002D0) \ 968 V(efscmpeq, EFSCMPEQ, 0x100002CE) \ 970 V(efscmpgt, EFSCMPGT, 0x100002CC) \ 972 V(efscmplt, EFSCMPLT, 0x100002CD) \ 974 V(efsctsf, EFSCTSF, 0x100002D7) \ 976 V(efsctsi, EFSCTSI, 0x100002D5) \ 978 V(efsctsiz, EFSCTSIZ, 0x100002DA) \ 980 V(efsctuf, EFSCTUF, 0x100002D6) \ 982 V(efsctui, EFSCTUI, 0x100002D4) \ 984 V(efsctuiz, EFSCTUIZ, 0x100002D8) \ 986 V(efsdiv, EFSDIV, 0x100002C9) \ 988 V(efsmul, EFSMUL, 0x100002C8) \ 990 V(efsnabs, EFSNABS, 0x100002C5) \ 992 V(efsneg, EFSNEG, 0x100002C6) \ 994 V(efssub, EFSSUB, 0x100002C1) \ 996 V(efststeq, EFSTSTEQ, 0x100002DE) \ 998 V(efststgt, EFSTSTGT, 0x100002DC) \ 1000 V(efststlt, EFSTSTLT, 0x100002DD) \ 1002 V(evfsabs, EVFSABS, 0x10000284) \ 1004 V(evfsadd, EVFSADD, 0x10000280) \ 1006 V(evfscfsf, EVFSCFSF, 0x10000293) \ 1008 V(evfscfsi, EVFSCFSI, 0x10000291) \ 1010 V(evfscfuf, EVFSCFUF, 0x10000292) \ 1012 V(evfscfui, EVFSCFUI, 0x10000290) \ 1014 V(evfscmpeq, EVFSCMPEQ, 0x1000028E) \ 1016 V(evfscmpgt, EVFSCMPGT, 0x1000028C) \ 1018 V(evfscmplt, EVFSCMPLT, 0x1000028D) \ 1020 V(evfsctsf, EVFSCTSF, 0x10000297) \ 1022 V(evfsctsi, EVFSCTSI, 0x10000295) \ 1025 V(evfsctsiz, EVFSCTSIZ, 0x1000029A) \ 1027 V(evfsctuf, EVFSCTUF, 0x10000296) \ 1029 V(evfsctui, EVFSCTUI, 0x10000294) \ 1032 V(evfsctuiz, EVFSCTUIZ, 0x10000298) \ 1034 V(evfsdiv, EVFSDIV, 0x10000289) \ 1036 V(evfsmul, EVFSMUL, 0x10000288) \ 1038 V(evfsnabs, EVFSNABS, 0x10000285) \ 1040 V(evfsneg, EVFSNEG, 0x10000286) \ 1042 V(evfssub, EVFSSUB, 0x10000281) \ 1044 V(evfststeq, EVFSTSTEQ, 0x1000029E) \ 1046 V(evfststgt, EVFSTSTGT, 0x1000029C) \ 1048 V(evfststlt, EVFSTSTLT, 0x1000029D) 1050 #define PPC_VC_OPCODE_LIST(V) \ 1052 V(vcmpbfp, VCMPBFP, 0x100003C6) \ 1054 V(vcmpeqfp, VCMPEQFP, 0x100000C6) \ 1056 V(vcmpequb, VCMPEQUB, 0x10000006) \ 1058 V(vcmpequd, VCMPEQUD, 0x100000C7) \ 1060 V(vcmpequh, VCMPEQUH, 0x10000046) \ 1062 V(vcmpequw, VCMPEQUW, 0x10000086) \ 1064 V(vcmpgefp, VCMPGEFP, 0x100001C6) \ 1066 V(vcmpgtfp, VCMPGTFP, 0x100002C6) \ 1068 V(vcmpgtsb, VCMPGTSB, 0x10000306) \ 1070 V(vcmpgtsd, VCMPGTSD, 0x100003C7) \ 1072 V(vcmpgtsh, VCMPGTSH, 0x10000346) \ 1074 V(vcmpgtsw, VCMPGTSW, 0x10000386) \ 1076 V(vcmpgtub, VCMPGTUB, 0x10000206) \ 1078 V(vcmpgtud, VCMPGTUD, 0x100002C7) \ 1080 V(vcmpgtuh, VCMPGTUH, 0x10000246) \ 1082 V(vcmpgtuw, VCMPGTUW, 0x10000286) 1084 #define PPC_X_OPCODE_A_FORM_LIST(V) \ 1086 V(modsd, MODSD, 0x7C000612) \ 1088 V(modud, MODUD, 0x7C000212) \ 1090 V(modsw, MODSW, 0x7C000616) \ 1092 V(moduw, MODUW, 0x7C000216) 1094 #define PPC_X_OPCODE_B_FORM_LIST(V) \ 1096 V(xor_, XORX, 0x7C000278) \ 1098 V(and_, ANDX, 0x7C000038) \ 1100 V(andc, ANDCX, 0x7C000078) \ 1102 V(orx, ORX, 0x7C000378) \ 1104 V(orc, ORC, 0x7C000338) \ 1106 V(nor, NORX, 0x7C0000F8) \ 1108 V(srw, SRWX, 0x7C000430) \ 1110 V(slw, SLWX, 0x7C000030) \ 1112 V(sraw, SRAW, 0x7C000630) \ 1114 V(sld, SLDX, 0x7C000036) \ 1116 V(srad, SRAD, 0x7C000634) \ 1118 V(srd, SRDX, 0x7C000436) 1120 #define PPC_X_OPCODE_C_FORM_LIST(V) \ 1122 V(cntlzw, CNTLZWX, 0x7C000034) \ 1124 V(cntlzd, CNTLZDX, 0x7C000074) \ 1126 V(popcntb, POPCNTB, 0x7C0000F4) \ 1128 V(popcntw, POPCNTW, 0x7C0002F4) \ 1130 V(popcntd, POPCNTD, 0x7C0003F4) \ 1132 V(extsb, EXTSB, 0x7C000774) \ 1134 V(extsh, EXTSH, 0x7C000734) 1136 #define PPC_X_OPCODE_D_FORM_LIST(V) \ 1138 V(lhbrx, LHBRX, 0x7C00062C) \ 1140 V(lwbrx, LWBRX, 0x7C00042C) \ 1142 V(ldbrx, LDBRX, 0x7C000428) \ 1144 V(lbzx, LBZX, 0x7C0000AE) \ 1146 V(lbzux, LBZUX, 0x7C0000EE) \ 1148 V(lhzx, LHZX, 0x7C00022E) \ 1150 V(lhzux, LHZUX, 0x7C00026E) \ 1152 V(lhax, LHAX, 0x7C0002AE) \ 1154 V(lwzx, LWZX, 0x7C00002E) \ 1156 V(lwzux, LWZUX, 0x7C00006E) \ 1158 V(ldx, LDX, 0x7C00002A) \ 1160 V(ldux, LDUX, 0x7C00006A) \ 1162 V(lfdx, LFDX, 0x7C0004AE) \ 1164 V(lfsx, LFSX, 0x7C00042E) \ 1166 V(lfdux, LFDUX, 0x7C0004EE) \ 1168 V(lfsux, LFSUX, 0x7C00046E) \ 1170 V(stbux, STBUX, 0x7C0001EE) \ 1172 V(stbx, STBX, 0x7C0001AE) \ 1174 V(sthux, STHUX, 0x7C00036E) \ 1176 V(sthx, STHX, 0x7C00032E) \ 1178 V(stwux, STWUX, 0x7C00016E) \ 1180 V(stwx, STWX, 0x7C00012E) \ 1182 V(stdux, STDUX, 0x7C00016A) \ 1184 V(stdx, STDX, 0x7C00012A) \ 1186 V(stfdux, STFDUX, 0x7C0005EE) \ 1188 V(stfdx, STFDX, 0x7C0005AE) \ 1190 V(stfsux, STFSUX, 0x7C00056E) \ 1192 V(stfsx, STFSX, 0x7C00052E) 1194 #define PPC_X_OPCODE_E_FORM_LIST(V) \ 1196 V(srawi, SRAWIX, 0x7C000670) 1198 #define PPC_X_OPCODE_F_FORM_LIST(V) \ 1200 V(cmp, CMP, 0x7C000000) \ 1202 V(cmpl, CMPL, 0x7C000040) 1204 #define PPC_X_OPCODE_EH_S_FORM_LIST(V) \ 1206 V(stbcx, STBCX, 0x7C00056D) \ 1208 V(sthcx, STHCX, 0x7C0005AD) \ 1210 V(stwcx, STWCX, 0x7C00012D) \ 1212 V(stdcx, STDCX, 0x7C0001AD) 1214 #define PPC_X_OPCODE_EH_L_FORM_LIST(V) \ 1216 V(lbarx, LBARX, 0x7C000068) \ 1218 V(lharx, LHARX, 0x7C0000E8) \ 1220 V(lwarx, LWARX, 0x7C000028) \ 1222 V(ldarx, LDARX, 0x7C0000A8) 1224 #define PPC_X_OPCODE_UNUSED_LIST(V) \ 1226 V(bpermd, BPERMD, 0x7C0001F8) \ 1228 V(extsw, EXTSW, 0x7C0007B4) \ 1230 V(lwaux, LWAUX, 0x7C0002EA) \ 1232 V(lwax, LWAX, 0x7C0002AA) \ 1234 V(prtyd, PRTYD, 0x7C000174) \ 1236 V(stdbrx, STDBRX, 0x7C000528) \ 1238 V(td, TD, 0x7C000088) \ 1240 V(bctar, BCTAR, 0x4C000460) \ 1242 V(cmpb, CMPB, 0x7C0003F8) \ 1244 V(dcbf, DCBF, 0x7C0000AC) \ 1246 V(dcbst, DCBST, 0x7C00006C) \ 1248 V(dcbt, DCBT, 0x7C00022C) \ 1250 V(dcbtst, DCBTST, 0x7C0001EC) \ 1252 V(dcbz, DCBZ, 0x7C0007EC) \ 1254 V(eqv, EQV, 0x7C000238) \ 1256 V(icbi, ICBI, 0x7C0007AC) \ 1258 V(nand, NAND, 0x7C0003B8) \ 1260 V(prtyw, PRTYW, 0x7C000134) \ 1262 V(sthbrx, STHBRX, 0x7C00072C) \ 1264 V(stwbrx, STWBRX, 0x7C00052C) \ 1266 V(sync, SYNC, 0x7C0004AC) \ 1268 V(tw, TW, 0x7C000008) \ 1270 V(xnop, XNOP, 0x68000000) \ 1272 V(cbcdtd, CBCDTD, 0x7C000274) \ 1274 V(cdtbcd, CDTBCD, 0x7C000234) \ 1276 V(dadd, DADD, 0xEC000004) \ 1278 V(daddq, DADDQ, 0xFC000004) \ 1280 V(dcffix, DCFFIX, 0xEC000644) \ 1282 V(dcffixq, DCFFIXQ, 0xFC000644) \ 1284 V(dcmpo, DCMPO, 0xEC000104) \ 1286 V(dcmpoq, DCMPOQ, 0xFC000104) \ 1288 V(dcmpu, DCMPU, 0xEC000504) \ 1290 V(dcmpuq, DCMPUQ, 0xFC000504) \ 1292 V(dctdp, DCTDP, 0xEC000204) \ 1294 V(dctfix, DCTFIX, 0xEC000244) \ 1296 V(dctfixq, DCTFIXQ, 0xFC000244) \ 1298 V(dctqpq, DCTQPQ, 0xFC000204) \ 1300 V(ddedpd, DDEDPD, 0xEC000284) \ 1302 V(ddedpdq, DDEDPDQ, 0xFC000284) \ 1304 V(ddiv, DDIV, 0xEC000444) \ 1306 V(ddivq, DDIVQ, 0xFC000444) \ 1308 V(denbcd, DENBCD, 0xEC000684) \ 1310 V(denbcdq, DENBCDQ, 0xFC000684) \ 1312 V(diex, DIEX, 0xEC0006C4) \ 1314 V(diexq, DIEXQ, 0xFC0006C4) \ 1316 V(dmul, DMUL, 0xEC000044) \ 1318 V(dmulq, DMULQ, 0xFC000044) \ 1320 V(drdpq, DRDPQ, 0xFC000604) \ 1322 V(drsp, DRSP, 0xEC000604) \ 1324 V(dsub, DSUB, 0xEC000404) \ 1326 V(dsubq, DSUBQ, 0xFC000404) \ 1328 V(dtstex, DTSTEX, 0xEC000144) \ 1330 V(dtstexq, DTSTEXQ, 0xFC000144) \ 1332 V(dtstsf, DTSTSF, 0xEC000544) \ 1334 V(dtstsfq, DTSTSFQ, 0xFC000544) \ 1336 V(dxex, DXEX, 0xEC0002C4) \ 1338 V(dxexq, DXEXQ, 0xFC0002C4) \ 1340 V(dsn, DSN, 0x7C0003C6) \ 1342 V(lbdx, LBDX, 0x7C000406) \ 1344 V(lddx, LDDX, 0x7C0004C6) \ 1346 V(lfddx, LFDDX, 0x7C000646) \ 1348 V(lhdx, LHDX, 0x7C000446) \ 1350 V(lwdx, LWDX, 0x7C000486) \ 1352 V(stbdx, STBDX, 0x7C000506) \ 1354 V(stddx, STDDX, 0x7C0005C6) \ 1356 V(stfddx, STFDDX, 0x7C000746) \ 1358 V(sthdx, STHDX, 0x7C000546) \ 1360 V(stwdx, STWDX, 0x7C000586) \ 1362 V(dcba, DCBA, 0x7C0005EC) \ 1364 V(dcbi, DCBI, 0x7C0003AC) \ 1366 V(icbt, ICBT, 0x7C00002C) \ 1368 V(mcrxr, MCRXR, 0x7C000400) \ 1370 V(tlbilx, TLBILX, 0x7C000024) \ 1372 V(tlbivax, TLBIVAX, 0x7C000624) \ 1374 V(tlbre, TLBRE, 0x7C000764) \ 1376 V(tlbsx, TLBSX, 0x7C000724) \ 1378 V(tlbwe, TLBWE, 0x7C0007A4) \ 1380 V(wrtee, WRTEE, 0x7C000106) \ 1382 V(wrteei, WRTEEI, 0x7C000146) \ 1384 V(dcread, DCREAD, 0x7C00028C) \ 1386 V(icread, ICREAD, 0x7C0007CC) \ 1388 V(dci, DCI, 0x7C00038C) \ 1390 V(ici, ICI, 0x7C00078C) \ 1392 V(mfdcrux, MFDCRUX, 0x7C000246) \ 1394 V(mfdcrx, MFDCRX, 0x7C000206) \ 1396 V(mtdcrux, MTDCRUX, 0x7C000346) \ 1398 V(mtdcrx, MTDCRX, 0x7C000306) \ 1400 V(rfdi, RFDI, 0x4C00004E) \ 1402 V(dcbfep, DCBFEP, 0x7C0000FE) \ 1404 V(dcbstep, DCBSTEP, 0x7C00007E) \ 1406 V(dcbtep, DCBTEP, 0x7C00027E) \ 1408 V(dcbtstep, DCBTSTEP, 0x7C0001FE) \ 1410 V(dcbzep, DCBZEP, 0x7C0007FE) \ 1412 V(icbiep, ICBIEP, 0x7C0007BE) \ 1414 V(lbepx, LBEPX, 0x7C0000BE) \ 1416 V(lfdepx, LFDEPX, 0x7C0004BE) \ 1418 V(lhepx, LHEPX, 0x7C00023E) \ 1420 V(lvepx, LVEPX, 0x7C00024E) \ 1422 V(lvepxl, LVEPXL, 0x7C00020E) \ 1424 V(lwepx, LWEPX, 0x7C00003E) \ 1426 V(stbepx, STBEPX, 0x7C0001BE) \ 1428 V(stfdepx, STFDEPX, 0x7C0005BE) \ 1430 V(sthepx, STHEPX, 0x7C00033E) \ 1432 V(stvepx, STVEPX, 0x7C00064E) \ 1434 V(stvepxl, STVEPXL, 0x7C00060E) \ 1436 V(stwepx, STWEPX, 0x7C00013E) \ 1438 V(ldepx, LDEPX, 0x7C00003A) \ 1440 V(stdepx, STDEPX, 0x7C00013A) \ 1442 V(tlbsrx, TLBSRX, 0x7C0006A5) \ 1444 V(eciwx, ECIWX, 0x7C00026C) \ 1446 V(ecowx, ECOWX, 0x7C00036C) \ 1448 V(dcblc, DCBLC, 0x7C00030C) \ 1450 V(dcblq, DCBLQ, 0x7C00034D) \ 1452 V(dcbtls, DCBTLS, 0x7C00014C) \ 1454 V(dcbtstls, DCBTSTLS, 0x7C00010C) \ 1456 V(icblc, ICBLC, 0x7C0001CC) \ 1458 V(icblq, ICBLQ, 0x7C00018D) \ 1460 V(icbtls, ICBTLS, 0x7C0003CC) \ 1462 V(fcmpo, FCMPO, 0xFC000040) \ 1464 V(fcmpu, FCMPU, 0xFC000000) \ 1466 V(ftdiv, FTDIV, 0xFC000100) \ 1468 V(ftsqrt, FTSQRT, 0xFC000140) \ 1470 V(lfiwax, LFIWAX, 0x7C0006AE) \ 1472 V(lfiwzx, LFIWZX, 0x7C0006EE) \ 1474 V(mcrfs, MCRFS, 0xFC000080) \ 1476 V(stfiwx, STFIWX, 0x7C0007AE) \ 1478 V(lfdpx, LFDPX, 0x7C00062E) \ 1480 V(stfdpx, STFDPX, 0x7C00072E) \ 1482 V(fabs, FABS, 0xFC000210) \ 1484 V(fcfid, FCFID, 0xFC00069C) \ 1486 V(fcfids, FCFIDS, 0xEC00069C) \ 1488 V(fcfidu, FCFIDU, 0xFC00079C) \ 1490 V(fcfidus, FCFIDUS, 0xEC00079C) \ 1492 V(fcpsgn, FCPSGN, 0xFC000010) \ 1494 V(fctid, FCTID, 0xFC00065C) \ 1496 V(fctidu, FCTIDU, 0xFC00075C) \ 1499 V(fctiduz, FCTIDUZ, 0xFC00075E) \ 1501 V(fctidz, FCTIDZ, 0xFC00065E) \ 1503 V(fctiw, FCTIW, 0xFC00001C) \ 1505 V(fctiwu, FCTIWU, 0xFC00011C) \ 1507 V(fctiwuz, FCTIWUZ, 0xFC00011E) \ 1509 V(fctiwz, FCTIWZ, 0xFC00001E) \ 1511 V(fmr, FMR, 0xFC000090) \ 1513 V(fnabs, FNABS, 0xFC000110) \ 1515 V(fneg, FNEG, 0xFC000050) \ 1517 V(frsp, FRSP, 0xFC000018) \ 1519 V(mffs, MFFS, 0xFC00048E) \ 1521 V(mtfsb0, MTFSB0, 0xFC00008C) \ 1523 V(mtfsb1, MTFSB1, 0xFC00004C) \ 1525 V(mtfsfi, MTFSFI, 0xFC00010C) \ 1527 V(frim, FRIM, 0xFC0003D0) \ 1529 V(frin, FRIN, 0xFC000310) \ 1531 V(frip, FRIP, 0xFC000390) \ 1533 V(friz, FRIZ, 0xFC000350) \ 1535 V(mulchw, MULCHW, 0x10000150) \ 1537 V(mulchwu, MULCHWU, 0x10000110) \ 1539 V(mulhhw, MULHHW, 0x10000050) \ 1541 V(mulhhwu, MULHHWU, 0x10000010) \ 1543 V(mullhw, MULLHW, 0x10000350) \ 1545 V(mullhwu, MULLHWU, 0x10000310) \ 1547 V(dlmzb, DLMZB, 0x7C00009C) \ 1549 V(lqarx, LQARX, 0x7C000228) \ 1551 V(stqcx, STQCX, 0x7C00016D) \ 1553 V(lswi, LSWI, 0x7C0004AA) \ 1555 V(lswx, LSWX, 0x7C00042A) \ 1557 V(stswi, STSWI, 0x7C0005AA) \ 1559 V(stswx, STSWX, 0x7C00052A) \ 1561 V(clrbhrb, CLRBHRB, 0x7C00035C) \ 1563 V(eieio, EIEIO, 0x7C0006AC) \ 1565 V(lbzcix, LBZCIX, 0x7C0006AA) \ 1567 V(ldcix, LDCIX, 0x7C0006EA) \ 1569 V(lhzcix, LHZCIX, 0x7C00066A) \ 1571 V(lwzcix, LWZCIX, 0x7C00062A) \ 1573 V(mfsr, MFSR, 0x7C0004A6) \ 1575 V(mfsrin, MFSRIN, 0x7C000526) \ 1577 V(mtmsrd, MTMSRD, 0x7C000164) \ 1579 V(mtsle, MTSLE, 0x7C000126) \ 1581 V(mtsr, MTSR, 0x7C0001A4) \ 1583 V(mtsrin, MTSRIN, 0x7C0001E4) \ 1585 V(slbfee, SLBFEE, 0x7C0007A7) \ 1587 V(slbia, SLBIA, 0x7C0003E4) \ 1589 V(slbie, SLBIE, 0x7C000364) \ 1591 V(slbmfee, SLBMFEE, 0x7C000726) \ 1593 V(slbmfev, SLBMFEV, 0x7C0006A6) \ 1595 V(slbmte, SLBMTE, 0x7C000324) \ 1597 V(stbcix, STBCIX, 0x7C0007AA) \ 1599 V(stdcix, STDCIX, 0x7C0007EA) \ 1601 V(sthcix, STHCIX, 0x7C00076A) \ 1603 V(stwcix, STWCIX, 0x7C00072A) \ 1605 V(tlbia, TLBIA, 0x7C0002E4) \ 1607 V(tlbie, TLBIE, 0x7C000264) \ 1609 V(tlbiel, TLBIEL, 0x7C000224) \ 1611 V(msgclrp, MSGCLRP, 0x7C00015C) \ 1613 V(msgsndp, MSGSNDP, 0x7C00011C) \ 1615 V(msgclr, MSGCLR, 0x7C0001DC) \ 1617 V(msgsnd, MSGSND, 0x7C00019C) \ 1619 V(mfmsr, MFMSR, 0x7C0000A6) \ 1621 V(mtmsr, MTMSR, 0x7C000124) \ 1623 V(tlbsync, TLBSYNC, 0x7C00046C) \ 1625 V(tabort, TABORT, 0x7C00071D) \ 1627 V(tabortdc, TABORTDC, 0x7C00065D) \ 1629 V(tabortdci, TABORTDCI, 0x7C0006DD) \ 1631 V(tabortwc, TABORTWC, 0x7C00061D) \ 1633 V(tabortwci, TABORTWCI, 0x7C00069D) \ 1635 V(tbegin, TBEGIN, 0x7C00051D) \ 1637 V(tcheck, TCHECK, 0x7C00059C) \ 1639 V(tend, TEND, 0x7C00055C) \ 1641 V(trechkpt, TRECHKPT, 0x7C0007DD) \ 1643 V(treclaim, TRECLAIM, 0x7C00075D) \ 1645 V(tsr, TSR, 0x7C0005DC) \ 1647 V(lvebx, LVEBX, 0x7C00000E) \ 1649 V(lvehx, LVEHX, 0x7C00004E) \ 1651 V(lvewx, LVEWX, 0x7C00008E) \ 1653 V(lvsl, LVSL, 0x7C00000C) \ 1655 V(lvsr, LVSR, 0x7C00004C) \ 1657 V(lvx, LVX, 0x7C0000CE) \ 1659 V(lvxl, LVXL, 0x7C0002CE) \ 1661 V(stvebx, STVEBX, 0x7C00010E) \ 1663 V(stvehx, STVEHX, 0x7C00014E) \ 1665 V(stvewx, STVEWX, 0x7C00018E) \ 1667 V(stvx, STVX, 0x7C0001CE) \ 1669 V(stvxl, STVXL, 0x7C0003CE) \ 1671 V(vminsd, VMINSD, 0x100003C2) \ 1673 V(fmrgew, FMRGEW, 0xFC00078C) \ 1675 V(fmrgow, FMRGOW, 0xFC00068C) \ 1677 V(wait, WAIT, 0x7C00007C) 1679 #define PPC_X_OPCODE_LIST(V) \ 1680 PPC_X_OPCODE_A_FORM_LIST(V) \ 1681 PPC_X_OPCODE_B_FORM_LIST(V) \ 1682 PPC_X_OPCODE_C_FORM_LIST(V) \ 1683 PPC_X_OPCODE_D_FORM_LIST(V) \ 1684 PPC_X_OPCODE_E_FORM_LIST(V) \ 1685 PPC_X_OPCODE_F_FORM_LIST(V) \ 1686 PPC_X_OPCODE_EH_L_FORM_LIST(V) \ 1687 PPC_X_OPCODE_UNUSED_LIST(V) 1689 #define PPC_EVS_OPCODE_LIST(V) \ 1691 V(evsel, EVSEL, 0x10000278) 1693 #define PPC_DS_OPCODE_LIST(V) \ 1695 V(ld, LD, 0xE8000000) \ 1697 V(ldu, LDU, 0xE8000001) \ 1699 V(lwa, LWA, 0xE8000002) \ 1701 V(std, STD, 0xF8000000) \ 1703 V(stdu, STDU, 0xF8000001) \ 1705 V(lfdp, LFDP, 0xE4000000) \ 1707 V(stfdp, STFDP, 0xF4000000) \ 1709 V(stq, STQ, 0xF8000002) 1711 #define PPC_DQ_OPCODE_LIST(V) \ 1712 V(lsq, LSQ, 0xE0000000) 1714 #define PPC_D_OPCODE_LIST(V) \ 1716 V(tdi, TDI, 0x08000000) \ 1718 V(addi, ADDI, 0x38000000) \ 1720 V(addic, ADDIC, 0x30000000) \ 1722 V(addicx, ADDICx, 0x34000000) \ 1724 V(addis, ADDIS, 0x3C000000) \ 1726 V(andix, ANDIx, 0x70000000) \ 1728 V(andisx, ANDISx, 0x74000000) \ 1730 V(cmpi, CMPI, 0x2C000000) \ 1732 V(cmpli, CMPLI, 0x28000000) \ 1734 V(lbz, LBZ, 0x88000000) \ 1736 V(lbzu, LBZU, 0x8C000000) \ 1738 V(lha, LHA, 0xA8000000) \ 1740 V(lhau, LHAU, 0xAC000000) \ 1742 V(lhz, LHZ, 0xA0000000) \ 1744 V(lhzu, LHZU, 0xA4000000) \ 1746 V(lmw, LMW, 0xB8000000) \ 1748 V(lwz, LWZ, 0x80000000) \ 1750 V(lwzu, LWZU, 0x84000000) \ 1752 V(mulli, MULLI, 0x1C000000) \ 1754 V(ori, ORI, 0x60000000) \ 1756 V(oris, ORIS, 0x64000000) \ 1758 V(stb, STB, 0x98000000) \ 1760 V(stbu, STBU, 0x9C000000) \ 1762 V(sth, STH, 0xB0000000) \ 1764 V(sthu, STHU, 0xB4000000) \ 1766 V(stmw, STMW, 0xBC000000) \ 1768 V(stw, STW, 0x90000000) \ 1770 V(stwu, STWU, 0x94000000) \ 1772 V(subfic, SUBFIC, 0x20000000) \ 1774 V(twi, TWI, 0x0C000000) \ 1776 V(xori, XORI, 0x68000000) \ 1778 V(xoris, XORIS, 0x6C000000) \ 1780 V(lfd, LFD, 0xC8000000) \ 1782 V(lfdu, LFDU, 0xCC000000) \ 1784 V(lfs, LFS, 0xC0000000) \ 1786 V(lfsu, LFSU, 0xC4000000) \ 1788 V(stfd, STFD, 0xD8000000) \ 1790 V(stfdu, STFDU, 0xDC000000) \ 1792 V(stfs, STFS, 0xD0000000) \ 1794 V(stfsu, STFSU, 0xD4000000) 1796 #define PPC_XFL_OPCODE_LIST(V) \ 1798 V(mtfsf, MTFSF, 0xFC00058E) 1800 #define PPC_XFX_OPCODE_LIST(V) \ 1802 V(mfcr, MFCR, 0x7C000026) \ 1804 V(mfocrf, MFOCRF, 0x7C100026) \ 1806 V(mfspr, MFSPR, 0x7C0002A6) \ 1808 V(mtcrf, MTCRF, 0x7C000120) \ 1810 V(mtocrf, MTOCRF, 0x7C100120) \ 1812 V(mtspr, MTSPR, 0x7C0003A6) \ 1814 V(dnh, DNH, 0x4C00018C) \ 1816 V(mfdcr, MFDCR, 0x7C000286) \ 1818 V(mtdcr, MTDCR, 0x7C000386) \ 1820 V(mfpmr, MFPMR, 0x7C00029C) \ 1822 V(mtpmr, MTPMR, 0x7C00039C) \ 1824 V(mfbhrbe, MFBHRBE, 0x7C00025C) \ 1826 V(mftb, MFTB, 0x7C0002E6) 1828 #define PPC_MDS_OPCODE_LIST(V) \ 1830 V(rldcl, RLDCL, 0x78000010) \ 1832 V(rldcr, RLDCR, 0x78000012) 1834 #define PPC_A_OPCODE_LIST(V) \ 1836 V(isel, ISEL, 0x7C00001E) \ 1838 V(fadd, FADD, 0xFC00002A) \ 1840 V(fadds, FADDS, 0xEC00002A) \ 1842 V(fdiv, FDIV, 0xFC000024) \ 1844 V(fdivs, FDIVS, 0xEC000024) \ 1846 V(fmadd, FMADD, 0xFC00003A) \ 1848 V(fmadds, FMADDS, 0xEC00003A) \ 1850 V(fmsub, FMSUB, 0xFC000038) \ 1852 V(fmsubs, FMSUBS, 0xEC000038) \ 1854 V(fmul, FMUL, 0xFC000032) \ 1856 V(fmuls, FMULS, 0xEC000032) \ 1858 V(fnmadd, FNMADD, 0xFC00003E) \ 1860 V(fnmadds, FNMADDS, 0xEC00003E) \ 1862 V(fnmsub, FNMSUB, 0xFC00003C) \ 1864 V(fnmsubs, FNMSUBS, 0xEC00003C) \ 1866 V(fres, FRES, 0xEC000030) \ 1868 V(frsqrte, FRSQRTE, 0xFC000034) \ 1870 V(fsel, FSEL, 0xFC00002E) \ 1872 V(fsqrt, FSQRT, 0xFC00002C) \ 1874 V(fsqrts, FSQRTS, 0xEC00002C) \ 1876 V(fsub, FSUB, 0xFC000028) \ 1878 V(fsubs, FSUBS, 0xEC000028) \ 1880 V(fre, FRE, 0xFC000030) \ 1882 V(frsqrtes, FRSQRTES, 0xEC000034) 1884 #define PPC_VA_OPCODE_LIST(V) \ 1886 V(vaddecuq, VADDECUQ, 0x1000003D) \ 1888 V(vaddeuqm, VADDEUQM, 0x1000003C) \ 1890 V(vmaddfp, VMADDFP, 0x1000002E) \ 1892 V(vmhaddshs, VMHADDSHS, 0x10000020) \ 1894 V(vmhraddshs, VMHRADDSHS, 0x10000021) \ 1896 V(vmladduhm, VMLADDUHM, 0x10000022) \ 1898 V(vmsummbm, VMSUMMBM, 0x10000025) \ 1900 V(vmsumshm, VMSUMSHM, 0x10000028) \ 1902 V(vmsumshs, VMSUMSHS, 0x10000029) \ 1904 V(vmsumubm, VMSUMUBM, 0x10000024) \ 1906 V(vmsumuhm, VMSUMUHM, 0x10000026) \ 1908 V(vmsumuhs, VMSUMUHS, 0x10000027) \ 1910 V(vnmsubfp, VNMSUBFP, 0x1000002F) \ 1912 V(vperm, VPERM, 0x1000002B) \ 1914 V(vsel, VSEL, 0x1000002A) \ 1916 V(vsldoi, VSLDOI, 0x1000002C) \ 1918 V(vsubecuq, VSUBECUQ, 0x1000003F) \ 1920 V(vsubeuqm, VSUBEUQM, 0x1000003E) \ 1922 V(vpermxor, VPERMXOR, 0x1000002D) 1924 #define PPC_XX1_OPCODE_LIST(V) \ 1926 V(lxsdx, LXSDX, 0x7C000498) \ 1928 V(lxsiwax, LXSIWAX, 0x7C000098) \ 1930 V(lxsiwzx, LXSIWZX, 0x7C000018) \ 1932 V(lxsspx, LXSSPX, 0x7C000418) \ 1934 V(lxvd, LXVD, 0x7C000698) \ 1936 V(lxvdsx, LXVDSX, 0x7C000298) \ 1938 V(lxvw, LXVW, 0x7C000618) \ 1940 V(mfvsrd, MFVSRD, 0x7C000066) \ 1942 V(mfvsrwz, MFVSRWZ, 0x7C0000E6) \ 1944 V(stxsdx, STXSDX, 0x7C000598) \ 1946 V(stxsiwx, STXSIWX, 0x7C000118) \ 1948 V(stxsspx, STXSSPX, 0x7C000518) \ 1950 V(stxvd, STXVD, 0x7C000798) \ 1952 V(stxvw, STXVW, 0x7C000718) 1954 #define PPC_B_OPCODE_LIST(V) \ 1956 V(bc, BCX, 0x40000000) 1958 #define PPC_XO_OPCODE_LIST(V) \ 1960 V(divd, DIVD, 0x7C0003D2) \ 1962 V(divde, DIVDE, 0x7C000352) \ 1964 V(divdeo, DIVDEO, 0x7C000752) \ 1966 V(divdeu, DIVDEU, 0x7C000312) \ 1968 V(divdeuo, DIVDEUO, 0x7C000712) \ 1970 V(divdo, DIVDO, 0x7C0007D2) \ 1972 V(divdu, DIVDU, 0x7C000392) \ 1974 V(divduo, DIVDUO, 0x7C000792) \ 1976 V(mulhd, MULHD, 0x7C000092) \ 1978 V(mulhdu, MULHDU, 0x7C000012) \ 1980 V(mulld, MULLD, 0x7C0001D2) \ 1982 V(mulldo, MULLDO, 0x7C0005D2) \ 1984 V(add, ADDX, 0x7C000214) \ 1986 V(addc, ADDCX, 0x7C000014) \ 1988 V(addco, ADDCO, 0x7C000414) \ 1990 V(adde, ADDEX, 0x7C000114) \ 1992 V(addeo, ADDEO, 0x7C000514) \ 1994 V(addme, ADDME, 0x7C0001D4) \ 1996 V(addmeo, ADDMEO, 0x7C0005D4) \ 1998 V(addo, ADDO, 0x7C000614) \ 2000 V(addze, ADDZEX, 0x7C000194) \ 2002 V(addzeo, ADDZEO, 0x7C000594) \ 2004 V(divw, DIVW, 0x7C0003D6) \ 2006 V(divwe, DIVWE, 0x7C000356) \ 2008 V(divweo, DIVWEO, 0x7C000756) \ 2010 V(divweu, DIVWEU, 0x7C000316) \ 2012 V(divweuo, DIVWEUO, 0x7C000716) \ 2014 V(divwo, DIVWO, 0x7C0007D6) \ 2016 V(divwu, DIVWU, 0x7C000396) \ 2018 V(divwuo, DIVWUO, 0x7C000796) \ 2020 V(mulhw, MULHWX, 0x7C000096) \ 2022 V(mulhwu, MULHWUX, 0x7C000016) \ 2024 V(mullw, MULLW, 0x7C0001D6) \ 2026 V(mullwo, MULLWO, 0x7C0005D6) \ 2028 V(neg, NEGX, 0x7C0000D0) \ 2030 V(nego, NEGO, 0x7C0004D0) \ 2032 V(subf, SUBFX, 0x7C000050) \ 2034 V(subfc, SUBFCX, 0x7C000010) \ 2036 V(subfco, SUBFCO, 0x7C000410) \ 2038 V(subfe, SUBFEX, 0x7C000110) \ 2040 V(subfeo, SUBFEO, 0x7C000510) \ 2042 V(subfme, SUBFME, 0x7C0001D0) \ 2044 V(subfmeo, SUBFMEO, 0x7C0005D0) \ 2046 V(subfo, SUBFO, 0x7C000450) \ 2048 V(subfze, SUBFZE, 0x7C000190) \ 2050 V(subfzeo, SUBFZEO, 0x7C000590) \ 2052 V(addg, ADDG, 0x7C000094) \ 2054 V(macchw, MACCHW, 0x10000158) \ 2056 V(macchws, MACCHWS, 0x100001D8) \ 2058 V(macchwsu, MACCHWSU, 0x10000198) \ 2060 V(macchwu, MACCHWU, 0x10000118) \ 2062 V(machhw, MACHHW, 0x10000058) \ 2064 V(machhws, MACHHWS, 0x100000D8) \ 2066 V(machhwsu, MACHHWSU, 0x10000098) \ 2068 V(machhwu, MACHHWU, 0x10000018) \ 2070 V(maclhw, MACLHW, 0x10000358) \ 2072 V(maclhws, MACLHWS, 0x100003D8) \ 2074 V(maclhwsu, MACLHWSU, 0x10000398) \ 2076 V(maclhwu, MACLHWU, 0x10000318) \ 2078 V(nmacchw, NMACCHW, 0x1000015C) \ 2080 V(nmacchws, NMACCHWS, 0x100001DC) \ 2082 V(nmachhw, NMACHHW, 0x1000005C) \ 2084 V(nmachhws, NMACHHWS, 0x100000DC) \ 2086 V(nmaclhw, NMACLHW, 0x1000035C) \ 2088 V(nmaclhws, NMACLHWS, 0x100003DC) \ 2090 #define PPC_XL_OPCODE_LIST(V) \ 2092 V(bcctr, BCCTRX, 0x4C000420) \ 2094 V(bclr, BCLRX, 0x4C000020) \ 2096 V(crand, CRAND, 0x4C000202) \ 2098 V(crandc, CRANDC, 0x4C000102) \ 2100 V(creqv, CREQV, 0x4C000242) \ 2102 V(crnand, CRNAND, 0x4C0001C2) \ 2104 V(crnor, CRNOR, 0x4C000042) \ 2106 V(cror, CROR, 0x4C000382) \ 2108 V(crorc, CRORC, 0x4C000342) \ 2110 V(crxor, CRXOR, 0x4C000182) \ 2112 V(isync, ISYNC, 0x4C00012C) \ 2114 V(mcrf, MCRF, 0x4C000000) \ 2116 V(rfci, RFCI, 0x4C000066) \ 2118 V(rfi, RFI, 0x4C000064) \ 2120 V(rfmci, RFMCI, 0x4C00004C) \ 2122 V(ehpriv, EHPRIV, 0x7C00021C) \ 2124 V(rfgi, RFGI, 0x4C0000CC) \ 2126 V(doze, DOZE, 0x4C000324) \ 2128 V(hrfid, HRFID, 0x4C000224) \ 2130 V(nap, NAP, 0x4C000364) \ 2132 V(rfebb, RFEBB, 0x4C000124) \ 2134 V(rfid, RFID, 0x4C000024) \ 2136 V(rvwinkle, RVWINKLE, 0x4C0003E4) \ 2138 V(sleep, SLEEP, 0x4C0003A4) 2140 #define PPC_XX4_OPCODE_LIST(V) \ 2142 V(xxsel, XXSEL, 0xF0000030) 2144 #define PPC_I_OPCODE_LIST(V) \ 2146 V(b, BX, 0x48000000) 2148 #define PPC_M_OPCODE_LIST(V) \ 2150 V(rlwimi, RLWIMIX, 0x50000000) \ 2152 V(rlwinm, RLWINMX, 0x54000000) \ 2154 V(rlwnm, RLWNMX, 0x5C000000) 2156 #define PPC_VX_OPCODE_LIST(V) \ 2158 V(bcdadd, BCDADD, 0xF0000400) \ 2160 V(bcdsub, BCDSUB, 0xF0000440) \ 2162 V(mfvscr, MFVSCR, 0x10000604) \ 2164 V(mtvscr, MTVSCR, 0x10000644) \ 2166 V(vaddcuq, VADDCUQ, 0x10000140) \ 2168 V(vaddcuw, VADDCUW, 0x10000180) \ 2170 V(vaddfp, VADDFP, 0x1000000A) \ 2172 V(vaddsbs, VADDSBS, 0x10000300) \ 2174 V(vaddshs, VADDSHS, 0x10000340) \ 2176 V(vaddsws, VADDSWS, 0x10000380) \ 2178 V(vaddubm, VADDUBM, 0x10000000) \ 2180 V(vaddubs, VADDUBS, 0x10000200) \ 2182 V(vaddudm, VADDUDM, 0x100000C0) \ 2184 V(vadduhm, VADDUHM, 0x10000040) \ 2186 V(vadduhs, VADDUHS, 0x10000240) \ 2188 V(vadduqm, VADDUQM, 0x10000100) \ 2190 V(vadduwm, VADDUWM, 0x10000080) \ 2192 V(vadduws, VADDUWS, 0x10000280) \ 2194 V(vand, VAND, 0x10000404) \ 2196 V(vandc, VANDC, 0x10000444) \ 2198 V(vavgsb, VAVGSB, 0x10000502) \ 2200 V(vavgsh, VAVGSH, 0x10000542) \ 2202 V(vavgsw, VAVGSW, 0x10000582) \ 2204 V(vavgub, VAVGUB, 0x10000402) \ 2206 V(vavguh, VAVGUH, 0x10000442) \ 2208 V(vavguw, VAVGUW, 0x10000482) \ 2210 V(vbpermq, VBPERMQ, 0x1000054C) \ 2212 V(vcfsx, VCFSX, 0x1000034A) \ 2214 V(vcfux, VCFUX, 0x1000030A) \ 2216 V(vclzb, VCLZB, 0x10000702) \ 2218 V(vclzd, VCLZD, 0x100007C2) \ 2220 V(vclzh, VCLZH, 0x10000742) \ 2222 V(vclzw, VCLZW, 0x10000782) \ 2225 V(vctsxs, VCTSXS, 0x100003CA) \ 2228 V(vctuxs, VCTUXS, 0x1000038A) \ 2230 V(veqv, VEQV, 0x10000684) \ 2232 V(vexptefp, VEXPTEFP, 0x1000018A) \ 2234 V(vgbbd, VGBBD, 0x1000050C) \ 2236 V(vlogefp, VLOGEFP, 0x100001CA) \ 2238 V(vmaxfp, VMAXFP, 0x1000040A) \ 2240 V(vmaxsb, VMAXSB, 0x10000102) \ 2242 V(vmaxsd, VMAXSD, 0x100001C2) \ 2244 V(vmaxsh, VMAXSH, 0x10000142) \ 2246 V(vmaxsw, VMAXSW, 0x10000182) \ 2248 V(vmaxub, VMAXUB, 0x10000002) \ 2250 V(vmaxud, VMAXUD, 0x100000C2) \ 2252 V(vmaxuh, VMAXUH, 0x10000042) \ 2254 V(vmaxuw, VMAXUW, 0x10000082) \ 2256 V(vminfp, VMINFP, 0x1000044A) \ 2258 V(vminsb, VMINSB, 0x10000302) \ 2260 V(vminsh, VMINSH, 0x10000342) \ 2262 V(vminsw, VMINSW, 0x10000382) \ 2264 V(vminub, VMINUB, 0x10000202) \ 2266 V(vminud, VMINUD, 0x100002C2) \ 2268 V(vminuh, VMINUH, 0x10000242) \ 2270 V(vminuw, VMINUW, 0x10000282) \ 2272 V(vmrghb, VMRGHB, 0x1000000C) \ 2274 V(vmrghh, VMRGHH, 0x1000004C) \ 2276 V(vmrghw, VMRGHW, 0x1000008C) \ 2278 V(vmrglb, VMRGLB, 0x1000010C) \ 2280 V(vmrglh, VMRGLH, 0x1000014C) \ 2282 V(vmrglw, VMRGLW, 0x1000018C) \ 2284 V(vmulesb, VMULESB, 0x10000308) \ 2286 V(vmulesh, VMULESH, 0x10000348) \ 2288 V(vmulesw, VMULESW, 0x10000388) \ 2290 V(vmuleub, VMULEUB, 0x10000208) \ 2292 V(vmuleuh, VMULEUH, 0x10000248) \ 2294 V(vmuleuw, VMULEUW, 0x10000288) \ 2296 V(vmulosb, VMULOSB, 0x10000108) \ 2298 V(vmulosh, VMULOSH, 0x10000148) \ 2300 V(vmulosw, VMULOSW, 0x10000188) \ 2302 V(vmuloub, VMULOUB, 0x10000008) \ 2304 V(vmulouh, VMULOUH, 0x10000048) \ 2306 V(vmulouw, VMULOUW, 0x10000088) \ 2308 V(vmuluwm, VMULUWM, 0x10000089) \ 2310 V(vnand, VNAND, 0x10000584) \ 2312 V(vnor, VNOR, 0x10000504) \ 2314 V(vor, VOR, 0x10000484) \ 2316 V(vorc, VORC, 0x10000544) \ 2318 V(vpkpx, VPKPX, 0x1000030E) \ 2320 V(vpksdss, VPKSDSS, 0x100005CE) \ 2322 V(vpksdus, VPKSDUS, 0x1000054E) \ 2324 V(vpkshss, VPKSHSS, 0x1000018E) \ 2326 V(vpkshus, VPKSHUS, 0x1000010E) \ 2328 V(vpkswss, VPKSWSS, 0x100001CE) \ 2330 V(vpkswus, VPKSWUS, 0x1000014E) \ 2332 V(vpkudum, VPKUDUM, 0x1000044E) \ 2334 V(vpkudus, VPKUDUS, 0x100004CE) \ 2336 V(vpkuhum, VPKUHUM, 0x1000000E) \ 2338 V(vpkuhus, VPKUHUS, 0x1000008E) \ 2340 V(vpkuwum, VPKUWUM, 0x1000004E) \ 2342 V(vpkuwus, VPKUWUS, 0x100000CE) \ 2344 V(vpmsumb, VPMSUMB, 0x10000408) \ 2346 V(vpmsumd, VPMSUMD, 0x100004C8) \ 2348 V(vpmsumh, VPMSUMH, 0x10000448) \ 2350 V(vpmsumw, VPMSUMW, 0x10000488) \ 2352 V(vpopcntb, VPOPCNTB, 0x10000703) \ 2354 V(vpopcntd, VPOPCNTD, 0x100007C3) \ 2356 V(vpopcnth, VPOPCNTH, 0x10000743) \ 2358 V(vpopcntw, VPOPCNTW, 0x10000783) \ 2360 V(vrefp, VREFP, 0x1000010A) \ 2362 V(vrfim, VRFIM, 0x100002CA) \ 2364 V(vrfin, VRFIN, 0x1000020A) \ 2366 V(vrfip, VRFIP, 0x1000028A) \ 2368 V(vrfiz, VRFIZ, 0x1000024A) \ 2370 V(vrlb, VRLB, 0x10000004) \ 2372 V(vrld, VRLD, 0x100000C4) \ 2374 V(vrlh, VRLH, 0x10000044) \ 2376 V(vrlw, VRLW, 0x10000084) \ 2378 V(vrsqrtefp, VRSQRTEFP, 0x1000014A) \ 2380 V(vsl, VSL, 0x100001C4) \ 2382 V(vslb, VSLB, 0x10000104) \ 2384 V(vsld, VSLD, 0x100005C4) \ 2386 V(vslh, VSLH, 0x10000144) \ 2388 V(vslo, VSLO, 0x1000040C) \ 2390 V(vslw, VSLW, 0x10000184) \ 2392 V(vspltb, VSPLTB, 0x1000020C) \ 2394 V(vsplth, VSPLTH, 0x1000024C) \ 2396 V(vspltisb, VSPLTISB, 0x1000030C) \ 2398 V(vspltish, VSPLTISH, 0x1000034C) \ 2400 V(vspltisw, VSPLTISW, 0x1000038C) \ 2402 V(vspltw, VSPLTW, 0x1000028C) \ 2404 V(vsr, VSR, 0x100002C4) \ 2406 V(vsrab, VSRAB, 0x10000304) \ 2408 V(vsrad, VSRAD, 0x100003C4) \ 2410 V(vsrah, VSRAH, 0x10000344) \ 2412 V(vsraw, VSRAW, 0x10000384) \ 2414 V(vsrb, VSRB, 0x10000204) \ 2416 V(vsrd, VSRD, 0x100006C4) \ 2418 V(vsrh, VSRH, 0x10000244) \ 2420 V(vsro, VSRO, 0x1000044C) \ 2422 V(vsrw, VSRW, 0x10000284) \ 2424 V(vsubcuq, VSUBCUQ, 0x10000540) \ 2426 V(vsubcuw, VSUBCUW, 0x10000580) \ 2428 V(vsubfp, VSUBFP, 0x1000004A) \ 2430 V(vsubsbs, VSUBSBS, 0x10000700) \ 2432 V(vsubshs, VSUBSHS, 0x10000740) \ 2434 V(vsubsws, VSUBSWS, 0x10000780) \ 2436 V(vsububm, VSUBUBM, 0x10000400) \ 2438 V(vsububs, VSUBUBS, 0x10000600) \ 2440 V(vsubudm, VSUBUDM, 0x100004C0) \ 2442 V(vsubuhm, VSUBUHM, 0x10000440) \ 2444 V(vsubuhs, VSUBUHS, 0x10000640) \ 2446 V(vsubuqm, VSUBUQM, 0x10000500) \ 2448 V(vsubuwm, VSUBUWM, 0x10000480) \ 2450 V(vsubuws, VSUBUWS, 0x10000680) \ 2452 V(vsum2sws, VSUM2SWS, 0x10000688) \ 2454 V(vsum4sbs, VSUM4SBS, 0x10000708) \ 2456 V(vsum4shs, VSUM4SHS, 0x10000648) \ 2458 V(vsum4bus, VSUM4BUS, 0x10000608) \ 2460 V(vsumsws, VSUMSWS, 0x10000788) \ 2462 V(vupkhpx, VUPKHPX, 0x1000034E) \ 2464 V(vupkhsb, VUPKHSB, 0x1000020E) \ 2466 V(vupkhsh, VUPKHSH, 0x1000024E) \ 2468 V(vupkhsw, VUPKHSW, 0x1000064E) \ 2470 V(vupklpx, VUPKLPX, 0x100003CE) \ 2472 V(vupklsb, VUPKLSB, 0x1000028E) \ 2474 V(vupklsh, VUPKLSH, 0x100002CE) \ 2476 V(vupklsw, VUPKLSW, 0x100006CE) \ 2478 V(vxor, VXOR, 0x100004C4) \ 2480 V(vcipher, VCIPHER, 0x10000508) \ 2482 V(vcipherlast, VCIPHERLAST, 0x10000509) \ 2484 V(vncipher, VNCIPHER, 0x10000548) \ 2486 V(vncipherlast, VNCIPHERLAST, 0x10000549) \ 2488 V(vsbox, VSBOX, 0x100005C8) \ 2490 V(vshasigmad, VSHASIGMAD, 0x100006C2) \ 2492 V(vshasigmaw, VSHASIGMAW, 0x10000682) \ 2494 V(vmrgew, VMRGEW, 0x1000078C) \ 2496 V(vmrgow, VMRGOW, 0x1000068C) 2498 #define PPC_XS_OPCODE_LIST(V) \ 2500 V(sradi, SRADIX, 0x7C000674) 2502 #define PPC_MD_OPCODE_LIST(V) \ 2504 V(rldic, RLDIC, 0x78000008) \ 2506 V(rldicl, RLDICL, 0x78000000) \ 2508 V(rldicr, RLDICR, 0x78000004) \ 2510 V(rldimi, RLDIMI, 0x7800000C) 2512 #define PPC_SC_OPCODE_LIST(V) \ 2514 V(sc, SC, 0x44000002) 2516 #define PPC_OPCODE_LIST(V) \ 2517 PPC_X_OPCODE_LIST(V) \ 2518 PPC_X_OPCODE_EH_S_FORM_LIST(V) \ 2519 PPC_XO_OPCODE_LIST(V) \ 2520 PPC_DS_OPCODE_LIST(V) \ 2521 PPC_DQ_OPCODE_LIST(V) \ 2522 PPC_MDS_OPCODE_LIST(V) \ 2523 PPC_MD_OPCODE_LIST(V) \ 2524 PPC_XS_OPCODE_LIST(V) \ 2525 PPC_D_OPCODE_LIST(V) \ 2526 PPC_I_OPCODE_LIST(V) \ 2527 PPC_B_OPCODE_LIST(V) \ 2528 PPC_XL_OPCODE_LIST(V) \ 2529 PPC_A_OPCODE_LIST(V) \ 2530 PPC_XFX_OPCODE_LIST(V) \ 2531 PPC_M_OPCODE_LIST(V) \ 2532 PPC_SC_OPCODE_LIST(V) \ 2533 PPC_Z23_OPCODE_LIST(V) \ 2534 PPC_Z22_OPCODE_LIST(V) \ 2535 PPC_EVX_OPCODE_LIST(V) \ 2536 PPC_XFL_OPCODE_LIST(V) \ 2537 PPC_EVS_OPCODE_LIST(V) \ 2538 PPC_VX_OPCODE_LIST(V) \ 2539 PPC_VA_OPCODE_LIST(V) \ 2540 PPC_VC_OPCODE_LIST(V) \ 2541 PPC_XX1_OPCODE_LIST(V) \ 2542 PPC_XX2_OPCODE_LIST(V) \ 2543 PPC_XX3_OPCODE_LIST(V) \ 2544 PPC_XX4_OPCODE_LIST(V) 2547 #define DECLARE_INSTRUCTION(name, opcode_name, opcode_value) \ 2548 opcode_name = opcode_value, 2549 PPC_OPCODE_LIST(DECLARE_INSTRUCTION)
2550 #undef DECLARE_INSTRUCTION 2589 kCondMask = 0x1F << 21,
2590 kOff12Mask = (1 << 12) - 1,
2591 kImm24Mask = (1 << 24) - 1,
2592 kOff16Mask = (1 << 16) - 1,
2593 kImm16Mask = (1 << 16) - 1,
2594 kImm22Mask = (1 << 22) - 1,
2595 kImm26Mask = (1 << 26) - 1,
2596 kBOfieldMask = 0x1f << 21,
2597 kOpcodeMask = 0x3f << 26,
2598 kExt1OpcodeMask = 0x3ff << 1,
2599 kExt2OpcodeMask = 0x3ff << 1,
2600 kExt2OpcodeVariant2Mask = 0x1ff << 2,
2601 kExt5OpcodeMask = 0x3 << 2,
2602 kBOMask = 0x1f << 21,
2603 kBIMask = 0x1F << 16,
2604 kBDMask = 0x14 << 2,
2605 kAAMask = 0x01 << 1,
2608 kTOMask = 0x1f << 21
2656 enum CRBit { CR_LT = 0, CR_GT = 1, CR_EQ = 2, CR_SO = 3, CR_FU = 3 };
2674 enum SoftwareInterruptCodes {
2676 kCallRtRedirected = 0x10,
2678 kBreakpoint = 0x821008,
2682 const uint32_t kStopCodeMask = kStopCode - 1;
2683 const uint32_t kMaxStopCode = kStopCode - 1;
2684 const int32_t kDefaultStopCode = -1;
2687 enum FPRoundingMode {
2694 kRoundToNearest = RN,
2696 kRoundToPlusInf = RP,
2697 kRoundToMinusInf = RM
2700 const uint32_t kFPRoundingModeMask = 3;
2702 enum CheckForInexactConversion {
2703 kCheckForInexactConversion,
2704 kDontCheckForInexactConversion
2714 extern const Instr kPopInstruction;
2718 extern const Instr kPushRegPattern;
2722 extern const Instr kPopRegPattern;
2725 const Instr rtCallRedirInstr = TWI;
2744 constexpr uint8_t kInstrSize = 4;
2745 constexpr uint8_t kInstrSizeLog2 = 2;
2746 constexpr uint8_t kPcLoadDelta = 8;
2752 #define DECLARE_STATIC_TYPED_ACCESSOR(return_type, Name) \ 2753 static inline return_type Name(Instr instr) { \ 2754 char* temp = reinterpret_cast<char*>(&instr); \ 2755 return reinterpret_cast<Instruction*>(temp)->Name(); \ 2758 #define DECLARE_STATIC_ACCESSOR(Name) DECLARE_STATIC_TYPED_ACCESSOR(int, Name) 2761 inline Instr InstructionBits()
const {
2762 return *
reinterpret_cast<const Instr*
>(
this);
2766 inline void SetInstructionBits(Instr value) {
2767 *
reinterpret_cast<Instr*
>(
this) = value;
2771 inline int Bit(
int nr)
const {
return (InstructionBits() >> nr) & 1; }
2774 inline int Bits(
int hi,
int lo)
const {
2775 return (InstructionBits() >> lo) & ((2 << (hi - lo)) - 1);
2779 inline uint32_t BitField(
int hi,
int lo)
const {
2780 return InstructionBits() & (((2 << (hi - lo)) - 1) << lo);
2786 static inline int Bit(Instr instr,
int nr) {
return (instr >> nr) & 1; }
2789 static inline int Bits(Instr instr,
int hi,
int lo) {
2790 return (instr >> lo) & ((2 << (hi - lo)) - 1);
2795 static inline uint32_t BitField(Instr instr,
int hi,
int lo) {
2796 return instr & (((2 << (hi - lo)) - 1) << lo);
2799 inline int RSValue()
const {
return Bits(25, 21); }
2800 inline int RTValue()
const {
return Bits(25, 21); }
2801 inline int RAValue()
const {
return Bits(20, 16); }
2802 DECLARE_STATIC_ACCESSOR(RAValue);
2803 inline int RBValue()
const {
return Bits(15, 11); }
2804 DECLARE_STATIC_ACCESSOR(RBValue);
2805 inline int RCValue()
const {
return Bits(10, 6); }
2806 DECLARE_STATIC_ACCESSOR(RCValue);
2808 inline int OpcodeValue()
const {
return static_cast<Opcode
>(Bits(31, 26)); }
2809 inline uint32_t OpcodeField()
const {
2810 return static_cast<Opcode
>(BitField(31, 26));
2813 #define OPCODE_CASES(name, opcode_name, opcode_value) \ 2816 inline Opcode OpcodeBase()
const {
2820 PPC_D_OPCODE_LIST(OPCODE_CASES)
2821 PPC_I_OPCODE_LIST(OPCODE_CASES)
2822 PPC_B_OPCODE_LIST(OPCODE_CASES)
2823 PPC_M_OPCODE_LIST(OPCODE_CASES)
2824 return static_cast<Opcode
>(opcode);
2827 opcode = extcode | BitField(10, 0);
2829 PPC_VX_OPCODE_LIST(OPCODE_CASES)
2830 PPC_X_OPCODE_EH_S_FORM_LIST(OPCODE_CASES)
2831 return static_cast<Opcode
>(opcode);
2833 opcode = extcode | BitField(9, 0);
2835 PPC_VC_OPCODE_LIST(OPCODE_CASES)
2836 return static_cast<Opcode
>(opcode);
2838 opcode = extcode | BitField(10, 1) | BitField(20, 20);
2840 PPC_XFX_OPCODE_LIST(OPCODE_CASES)
2841 return static_cast<Opcode
>(opcode);
2843 opcode = extcode | BitField(10, 1);
2845 PPC_X_OPCODE_LIST(OPCODE_CASES)
2846 PPC_XL_OPCODE_LIST(OPCODE_CASES)
2847 PPC_XFL_OPCODE_LIST(OPCODE_CASES)
2848 PPC_XX1_OPCODE_LIST(OPCODE_CASES)
2849 PPC_XX2_OPCODE_LIST(OPCODE_CASES)
2850 PPC_EVX_OPCODE_LIST(OPCODE_CASES)
2851 return static_cast<Opcode
>(opcode);
2853 opcode = extcode | BitField(9, 1);
2855 PPC_XO_OPCODE_LIST(OPCODE_CASES)
2856 PPC_Z22_OPCODE_LIST(OPCODE_CASES)
2857 return static_cast<Opcode
>(opcode);
2859 opcode = extcode | BitField(10, 2);
2861 PPC_XS_OPCODE_LIST(OPCODE_CASES)
2862 return static_cast<Opcode
>(opcode);
2864 opcode = extcode | BitField(10, 3);
2866 PPC_EVS_OPCODE_LIST(OPCODE_CASES)
2867 PPC_XX3_OPCODE_LIST(OPCODE_CASES)
2868 return static_cast<Opcode
>(opcode);
2870 opcode = extcode | BitField(8, 1);
2872 PPC_Z23_OPCODE_LIST(OPCODE_CASES)
2873 return static_cast<Opcode
>(opcode);
2875 opcode = extcode | BitField(5, 0);
2877 PPC_VA_OPCODE_LIST(OPCODE_CASES)
2878 return static_cast<Opcode
>(opcode);
2880 opcode = extcode | BitField(5, 1);
2882 PPC_A_OPCODE_LIST(OPCODE_CASES)
2883 return static_cast<Opcode
>(opcode);
2885 opcode = extcode | BitField(4, 1);
2887 PPC_MDS_OPCODE_LIST(OPCODE_CASES)
2888 return static_cast<Opcode
>(opcode);
2890 opcode = extcode | BitField(4, 2);
2892 PPC_MD_OPCODE_LIST(OPCODE_CASES)
2893 return static_cast<Opcode
>(opcode);
2895 opcode = extcode | BitField(5, 4);
2897 PPC_XX4_OPCODE_LIST(OPCODE_CASES)
2898 return static_cast<Opcode
>(opcode);
2900 opcode = extcode | BitField(2, 0);
2902 PPC_DQ_OPCODE_LIST(OPCODE_CASES)
2903 return static_cast<Opcode
>(opcode);
2905 opcode = extcode | BitField(1, 0);
2907 PPC_DS_OPCODE_LIST(OPCODE_CASES)
2908 return static_cast<Opcode
>(opcode);
2910 opcode = extcode | BitField(1, 1);
2912 PPC_SC_OPCODE_LIST(OPCODE_CASES)
2913 return static_cast<Opcode
>(opcode);
2916 return static_cast<Opcode
>(0);
2922 inline SoftwareInterruptCodes SvcValue()
const {
2923 return static_cast<SoftwareInterruptCodes
>(Bits(23, 0));
2930 static Instruction* At(byte* pc) {
2931 return reinterpret_cast<Instruction*
>(pc);
2937 DISALLOW_IMPLICIT_CONSTRUCTORS(Instruction);
2945 static int Number(
const char* name);
2948 static const char* names_[kNumRegisters];
2955 static int Number(
const char* name);
2958 static const char* names_[kNumDoubleRegisters];
2963 #endif // V8_PPC_CONSTANTS_PPC_H_