5#ifndef V8_CODEGEN_PPC_CONSTANTS_PPC_H_
6#define V8_CODEGEN_PPC_CONSTANTS_PPC_H_
17#define UNIMPLEMENTED_PPC() \
18 v8::internal::PrintF("%s, \tline %d: \tfunction %s not implemented. \n", \
19 __FILE__, __LINE__, __func__)
21#define UNIMPLEMENTED_PPC()
24#if V8_HOST_ARCH_PPC64 && \
25 (V8_OS_AIX || (V8_TARGET_ARCH_PPC64 && V8_TARGET_BIG_ENDIAN && \
26 (!defined(_CALL_ELF) || _CALL_ELF == 1)))
27#define ABI_USES_FUNCTION_DESCRIPTORS 1
29#define ABI_USES_FUNCTION_DESCRIPTORS 0
32#if !V8_HOST_ARCH_PPC64 || V8_OS_AIX || V8_TARGET_ARCH_PPC64
33#define ABI_PASSES_HANDLES_IN_REGS 1
35#define ABI_PASSES_HANDLES_IN_REGS 0
38#if !V8_HOST_ARCH_PPC64 || !V8_TARGET_ARCH_PPC64 || V8_TARGET_LITTLE_ENDIAN || \
39 (defined(_CALL_ELF) && _CALL_ELF == 2)
40#define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1
42#define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0
45#if !V8_HOST_ARCH_PPC64 || \
46 (V8_TARGET_ARCH_PPC64 && \
47 (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)))
48#define ABI_CALL_VIA_IP 1
50#define ABI_CALL_VIA_IP 0
53#if !V8_HOST_ARCH_PPC64 || V8_OS_AIX || V8_TARGET_ARCH_PPC64
54#define ABI_TOC_REGISTER 2
56#define ABI_TOC_REGISTER 13
88#define SIGN_EXT_IMM5(imm) ((static_cast<int>(imm) << 27) >> 27)
91#define SIGN_EXT_IMM16(imm) ((static_cast<int>(imm) << 16) >> 16)
94#define SIGN_EXT_IMM18(imm) ((static_cast<int>(imm) << 14) >> 14)
97#define SIGN_EXT_IMM22(imm) ((static_cast<int>(imm) << 10) >> 10)
100#define SIGN_EXT_IMM26(imm) ((static_cast<int>(imm) << 6) >> 6)
103#define SIGN_EXT_IMM34(imm) ((static_cast<int64_t>(imm) << 30) >> 30)
209using Instr = uint32_t;
211#define PPC_XX3_OPCODE_SCALAR_LIST(V) \
213 V(xsadddp, XSADDDP, 0xF0000100) \
215 V(xsaddsp, XSADDSP, 0xF0000000) \
217 V(xscmpodp, XSCMPODP, 0xF0000158) \
219 V(xscmpudp, XSCMPUDP, 0xF0000118) \
221 V(xscpsgndp, XSCPSGNDP, 0xF0000580) \
223 V(xsdivdp, XSDIVDP, 0xF00001C0) \
225 V(xsdivsp, XSDIVSP, 0xF00000C0) \
227 V(xsmaddadp, XSMADDADP, 0xF0000108) \
229 V(xsmaddasp, XSMADDASP, 0xF0000008) \
231 V(xsmaddmdp, XSMADDMDP, 0xF0000148) \
233 V(xsmaddmsp, XSMADDMSP, 0xF0000048) \
235 V(xsmaxdp, XSMAXDP, 0xF0000500) \
237 V(xsmindp, XSMINDP, 0xF0000540) \
239 V(xsmsubadp, XSMSUBADP, 0xF0000188) \
241 V(xsmsubasp, XSMSUBASP, 0xF0000088) \
243 V(xsmsubmdp, XSMSUBMDP, 0xF00001C8) \
245 V(xsmsubmsp, XSMSUBMSP, 0xF00000C8) \
247 V(xsmuldp, XSMULDP, 0xF0000180) \
249 V(xsmulsp, XSMULSP, 0xF0000080) \
251 V(xsnmaddadp, XSNMADDADP, 0xF0000508) \
253 V(xsnmaddasp, XSNMADDASP, 0xF0000408) \
255 V(xsnmaddmdp, XSNMADDMDP, 0xF0000548) \
257 V(xsnmaddmsp, XSNMADDMSP, 0xF0000448) \
259 V(xsnmsubadp, XSNMSUBADP, 0xF0000588) \
261 V(xsnmsubasp, XSNMSUBASP, 0xF0000488) \
263 V(xsnmsubmdp, XSNMSUBMDP, 0xF00005C8) \
265 V(xsnmsubmsp, XSNMSUBMSP, 0xF00004C8) \
267 V(xsredp, XSREDP, 0xF0000168) \
269 V(xssubdp, XSSUBDP, 0xF0000140) \
271 V(xssubsp, XSSUBSP, 0xF0000040) \
273 V(xstdivdp, XSTDIVDP, 0xF00001E8)
275#define PPC_XX3_OPCODE_VECTOR_A_FORM_LIST(V) \
277 V(xvcmpeqsp, XVCMPEQSP, 0xF0000218) \
279 V(xvcmpeqdp, XVCMPEQDP, 0xF0000318)
281#define PPC_XX3_OPCODE_VECTOR_B_FORM_LIST(V) \
283 V(xvadddp, XVADDDP, 0xF0000300) \
285 V(xvaddsp, XVADDSP, 0xF0000200) \
287 V(xvcmpeqdpx, XVCMPEQDPx, 0xF0000718) \
289 V(xvcmpeqspx, XVCMPEQSPx, 0xF0000618) \
291 V(xvcmpgedp, XVCMPGEDP, 0xF0000398) \
294 V(xvcmpgedpx, XVCMPGEDPx, 0xF0000798) \
296 V(xvcmpgesp, XVCMPGESP, 0xF0000298) \
299 V(xvcmpgespx, XVCMPGESPx, 0xF0000698) \
301 V(xvcmpgtdp, XVCMPGTDP, 0xF0000358) \
303 V(xvcmpgtdpx, XVCMPGTDPx, 0xF0000758) \
305 V(xvcmpgtsp, XVCMPGTSP, 0xF0000258) \
307 V(xvcmpgtspx, XVCMPGTSPx, 0xF0000658) \
309 V(xvcpsgndp, XVCPSGNDP, 0xF0000780) \
311 V(xvcpsgnsp, XVCPSGNSP, 0xF0000680) \
313 V(xvdivdp, XVDIVDP, 0xF00003C0) \
315 V(xvdivsp, XVDIVSP, 0xF00002C0) \
317 V(xvmaddadp, XVMADDADP, 0xF0000308) \
319 V(xvmaddasp, XVMADDASP, 0xF0000208) \
321 V(xvmaddmdp, XVMADDMDP, 0xF0000348) \
323 V(xvmaddmsp, XVMADDMSP, 0xF0000248) \
325 V(xvmaxdp, XVMAXDP, 0xF0000700) \
327 V(xvmaxsp, XVMAXSP, 0xF0000600) \
329 V(xvmindp, XVMINDP, 0xF0000740) \
331 V(xvminsp, XVMINSP, 0xF0000640) \
333 V(xvmsubadp, XVMSUBADP, 0xF0000388) \
335 V(xvmsubasp, XVMSUBASP, 0xF0000288) \
337 V(xvmsubmdp, XVMSUBMDP, 0xF00003C8) \
339 V(xvmsubmsp, XVMSUBMSP, 0xF00002C8) \
341 V(xvmuldp, XVMULDP, 0xF0000380) \
343 V(xvmulsp, XVMULSP, 0xF0000280) \
345 V(xvnmaddadp, XVNMADDADP, 0xF0000708) \
347 V(xvnmaddasp, XVNMADDASP, 0xF0000608) \
349 V(xvnmaddmdp, XVNMADDMDP, 0xF0000748) \
351 V(xvnmaddmsp, XVNMADDMSP, 0xF0000648) \
353 V(xvnmsubadp, XVNMSUBADP, 0xF0000788) \
355 V(xvnmsubasp, XVNMSUBASP, 0xF0000688) \
357 V(xvnmsubmdp, XVNMSUBMDP, 0xF00007C8) \
359 V(xvnmsubmsp, XVNMSUBMSP, 0xF00006C8) \
361 V(xvredp, XVREDP, 0xF0000368) \
363 V(xvsubdp, XVSUBDP, 0xF0000340) \
365 V(xvsubsp, XVSUBSP, 0xF0000240) \
367 V(xvtdivdp, XVTDIVDP, 0xF00003E8) \
369 V(xvtdivsp, XVTDIVSP, 0xF00002E8) \
371 V(xxland, XXLAND, 0xF0000410) \
373 V(xxlandc, XXLANDC, 0xF0000450) \
375 V(xxleqv, XXLEQV, 0xF00005D0) \
377 V(xxlnand, XXLNAND, 0xF0000590) \
379 V(xxlnor, XXLNOR, 0xF0000510) \
381 V(xxlor, XXLOR, 0xF0000490) \
383 V(xxlorc, XXLORC, 0xF0000550) \
385 V(xxlxor, XXLXOR, 0xF00004D0) \
387 V(xxmrghw, XXMRGHW, 0xF0000090) \
389 V(xxmrglw, XXMRGLW, 0xF0000190) \
391 V(xxpermdi, XXPERMDI, 0xF0000050) \
393 V(xxsldwi, XXSLDWI, 0xF0000010) \
395 V(xxspltw, XXSPLTW, 0xF0000290)
397#define PPC_XX3_OPCODE_VECTOR_LIST(V) \
398 PPC_XX3_OPCODE_VECTOR_A_FORM_LIST(V) \
399 PPC_XX3_OPCODE_VECTOR_B_FORM_LIST(V)
401#define PPC_Z23_OPCODE_LIST(V) \
403 V(dqua, DQUA, 0xEC000006) \
405 V(dquai, DQUAI, 0xEC000086) \
407 V(dquaiq, DQUAIQ, 0xFC000086) \
409 V(dquaq, DQUAQ, 0xFC000006) \
411 V(drintn, DRINTN, 0xEC0001C6) \
413 V(drintnq, DRINTNQ, 0xFC0001C6) \
415 V(drintx, DRINTX, 0xEC0000C6) \
417 V(drintxq, DRINTXQ, 0xFC0000C6) \
419 V(drrnd, DRRND, 0xEC000046) \
421 V(drrndq, DRRNDQ, 0xFC000046)
423#define PPC_Z22_OPCODE_LIST(V) \
425 V(dscli, DSCLI, 0xEC000084) \
427 V(dscliq, DSCLIQ, 0xFC000084) \
429 V(dscri, DSCRI, 0xEC0000C4) \
431 V(dscriq, DSCRIQ, 0xFC0000C4) \
433 V(dtstdc, DTSTDC, 0xEC000184) \
435 V(dtstdcq, DTSTDCQ, 0xFC000184) \
437 V(dtstdg, DTSTDG, 0xEC0001C4) \
439 V(dtstdgq, DTSTDGQ, 0xFC0001C4)
441#define PPC_XX2_OPCODE_VECTOR_A_FORM_LIST(V) \
443 V(xvabsdp, XVABSDP, 0xF0000764) \
445 V(xvnegdp, XVNEGDP, 0xF00007E4) \
447 V(xvsqrtdp, XVSQRTDP, 0xF000032C) \
449 V(xvabssp, XVABSSP, 0xF0000664) \
451 V(xvnegsp, XVNEGSP, 0xF00006E4) \
453 V(xvresp, XVRESP, 0xF0000268) \
455 V(xvrsqrtesp, XVRSQRTESP, 0xF0000228) \
457 V(xvsqrtsp, XVSQRTSP, 0xF000022C) \
460 V(xvcvspsxws, XVCVSPSXWS, 0xF0000260) \
463 V(xvcvspuxws, XVCVSPUXWS, 0xF0000220) \
465 V(xvcvsxwsp, XVCVSXWSP, 0xF00002E0) \
467 V(xvcvuxwsp, XVCVUXWSP, 0xF00002A0) \
469 V(xvrdpip, XVRDPIP, 0xF00003A4) \
471 V(xvrdpim, XVRDPIM, 0xF00003E4) \
473 V(xvrdpiz, XVRDPIZ, 0xF0000364) \
475 V(xvrdpi, XVRDPI, 0xF0000324) \
477 V(xvrspip, XVRSPIP, 0xF00002A4) \
479 V(xvrspim, XVRSPIM, 0xF00002E4) \
481 V(xvrspiz, XVRSPIZ, 0xF0000264) \
483 V(xvrspi, XVRSPI, 0xF0000224) \
485 V(xvcvsxddp, XVCVSXDDP, 0xF00007E0) \
488 V(xvcvuxddp, XVCVUXDDP, 0xF00007A0) \
490 V(xvcvspdp, XVCVSPDP, 0xF0000724) \
492 V(xvcvdpsp, XVCVDPSP, 0xF0000624) \
495 V(xvcvdpsxws, XVCVDPSXWS, 0xF0000360) \
498 V(xvcvdpuxws, XVCVDPUXWS, 0xF0000320)
500#define PPC_XX2_OPCODE_SCALAR_A_FORM_LIST(V) \
503 V(xscvdpspn, XSCVDPSPN, 0xF000042C) \
506 V(xscvspdpn, XSCVSPDPN, 0xF000052C)
508#define PPC_XX2_OPCODE_B_FORM_LIST(V) \
510 V(xxbrq, XXBRQ, 0xF01F076C) \
512 V(xxbrd, XXBRD, 0xF017076C) \
514 V(xxbrw, XXBRW, 0xF00F076C) \
516 V(xxbrh, XXBRH, 0xF007076C)
518#define PPC_XX2_OPCODE_UNUSED_LIST(V) \
520 V(xssqrtdp, XSSQRTDP, 0xF000012C) \
522 V(xsresp, XSRESP, 0xF0000068) \
524 V(xsrsqrtesp, XSRSQRTESP, 0xF0000028) \
526 V(xssqrtsp, XSSQRTSP, 0xF000002C) \
528 V(xsabsdp, XSABSDP, 0xF0000564) \
530 V(xscvdpsp, XSCVDPSP, 0xF0000424) \
533 V(xscvdpsxds, XSCVDPSXDS, 0xF0000560) \
536 V(xscvdpsxws, XSCVDPSXWS, 0xF0000160) \
539 V(xscvdpuxds, XSCVDPUXDS, 0xF0000520) \
542 V(xscvdpuxws, XSCVDPUXWS, 0xF0000120) \
544 V(xscvspdp, XSCVSPDP, 0xF0000524) \
546 V(xscvsxddp, XSCVSXDDP, 0xF00005E0) \
548 V(xscvsxdsp, XSCVSXDSP, 0xF00004E0) \
551 V(xscvuxddp, XSCVUXDDP, 0xF00005A0) \
554 V(xscvuxdsp, XSCVUXDSP, 0xF00004A0) \
556 V(xsnabsdp, XSNABSDP, 0xF00005A4) \
558 V(xsnegdp, XSNEGDP, 0xF00005E4) \
560 V(xsrdpi, XSRDPI, 0xF0000124) \
563 V(xsrdpic, XSRDPIC, 0xF00001AC) \
565 V(xsrdpim, XSRDPIM, 0xF00001E4) \
567 V(xsrdpip, XSRDPIP, 0xF00001A4) \
569 V(xsrdpiz, XSRDPIZ, 0xF0000164) \
571 V(xsrsp, XSRSP, 0xF0000464) \
573 V(xsrsqrtedp, XSRSQRTEDP, 0xF0000128) \
575 V(xstsqrtdp, XSTSQRTDP, 0xF00001A8) \
578 V(xvcvdpsxds, XVCVDPSXDS, 0xF0000760) \
581 V(xvcvdpuxds, XVCVDPUXDS, 0xF0000720) \
584 V(xvcvspsxds, XVCVSPSXDS, 0xF0000660) \
587 V(xvcvspuxds, XVCVSPUXDS, 0xF0000620) \
589 V(xvcvsxdsp, XVCVSXDSP, 0xF00006E0) \
591 V(xvcvsxwdp, XVCVSXWDP, 0xF00003E0) \
594 V(xvcvuxdsp, XVCVUXDSP, 0xF00006A0) \
596 V(xvcvuxwdp, XVCVUXWDP, 0xF00003A0) \
598 V(xvnabsdp, XVNABSDP, 0xF00007A4) \
600 V(xvnabssp, XVNABSSP, 0xF00006A4) \
603 V(xvrdpic, XVRDPIC, 0xF00003AC) \
606 V(xvrspic, XVRSPIC, 0xF00002AC) \
608 V(xvrsqrtedp, XVRSQRTEDP, 0xF0000328) \
610 V(xvtsqrtdp, XVTSQRTDP, 0xF00003A8) \
612 V(xvtsqrtsp, XVTSQRTSP, 0xF00002A8) \
614 V(xxspltib, XXSPLTIB, 0xF00002D0)
616#define PPC_XX2_OPCODE_LIST(V) \
617 PPC_XX2_OPCODE_VECTOR_A_FORM_LIST(V) \
618 PPC_XX2_OPCODE_SCALAR_A_FORM_LIST(V) \
619 PPC_XX2_OPCODE_B_FORM_LIST(V) \
620 PPC_XX2_OPCODE_UNUSED_LIST(V)
622#define PPC_EVX_OPCODE_LIST(V) \
624 V(evlddepx, EVLDDEPX, 0x7C00063E) \
626 V(evstddepx, EVSTDDEPX, 0x7C00073E) \
628 V(brinc, BRINC, 0x1000020F) \
630 V(evabs, EVABS, 0x10000208) \
632 V(evaddiw, EVADDIW, 0x10000202) \
634 V(evaddsmiaaw, EVADDSMIAAW, 0x100004C9) \
636 V(evaddssiaaw, EVADDSSIAAW, 0x100004C1) \
638 V(evaddumiaaw, EVADDUMIAAW, 0x100004C8) \
640 V(evaddusiaaw, EVADDUSIAAW, 0x100004C0) \
642 V(evaddw, EVADDW, 0x10000200) \
644 V(evand, EVAND, 0x10000211) \
646 V(evandc, EVANDC, 0x10000212) \
648 V(evcmpeq, EVCMPEQ, 0x10000234) \
650 V(evcmpgts, EVCMPGTS, 0x10000231) \
652 V(evcmpgtu, EVCMPGTU, 0x10000230) \
654 V(evcmplts, EVCMPLTS, 0x10000233) \
656 V(evcmpltu, EVCMPLTU, 0x10000232) \
658 V(evcntlsw, EVCNTLSW, 0x1000020E) \
660 V(evcntlzw, EVCNTLZW, 0x1000020D) \
662 V(evdivws, EVDIVWS, 0x100004C6) \
664 V(evdivwu, EVDIVWU, 0x100004C7) \
666 V(eveqv, EVEQV, 0x10000219) \
668 V(evextsb, EVEXTSB, 0x1000020A) \
670 V(evextsh, EVEXTSH, 0x1000020B) \
672 V(evldd, EVLDD, 0x10000301) \
674 V(evlddx, EVLDDX, 0x10000300) \
676 V(evldh, EVLDH, 0x10000305) \
678 V(evldhx, EVLDHX, 0x10000304) \
680 V(evldw, EVLDW, 0x10000303) \
682 V(evldwx, EVLDWX, 0x10000302) \
684 V(evlhhesplat, EVLHHESPLAT, 0x10000309) \
686 V(evlhhesplatx, EVLHHESPLATX, 0x10000308) \
688 V(evlhhossplat, EVLHHOSSPLAT, 0x1000030F) \
690 V(evlhhossplatx, EVLHHOSSPLATX, 0x1000030E) \
692 V(evlhhousplat, EVLHHOUSPLAT, 0x1000030D) \
694 V(evlhhousplatx, EVLHHOUSPLATX, 0x1000030C) \
696 V(evlwhe, EVLWHE, 0x10000311) \
698 V(evlwhos, EVLWHOS, 0x10000317) \
701 V(evlwhosx, EVLWHOSX, 0x10000316) \
703 V(evlwhou, EVLWHOU, 0x10000315) \
706 V(evlwhoux, EVLWHOUX, 0x10000314) \
708 V(evlwhsplat, EVLWHSPLAT, 0x1000031D) \
710 V(evlwhsplatx, EVLWHSPLATX, 0x1000031C) \
712 V(evlwwsplat, EVLWWSPLAT, 0x10000319) \
714 V(evlwwsplatx, EVLWWSPLATX, 0x10000318) \
716 V(evmergehi, EVMERGEHI, 0x1000022C) \
718 V(evmergehilo, EVMERGEHILO, 0x1000022E) \
720 V(evmergelo, EVMERGELO, 0x1000022D) \
722 V(evmergelohi, EVMERGELOHI, 0x1000022F) \
725 V(evmhegsmfaa, EVMHEGSMFAA, 0x1000052B) \
728 V(evmhegsmfan, EVMHEGSMFAN, 0x100005AB) \
731 V(evmhegsmiaa, EVMHEGSMIAA, 0x10000529) \
734 V(evmhegsmian, EVMHEGSMIAN, 0x100005A9) \
737 V(evmhegumiaa, EVMHEGUMIAA, 0x10000528) \
740 V(evmhegumian, EVMHEGUMIAN, 0x100005A8) \
742 V(evmhesmf, EVMHESMF, 0x1000040B) \
745 V(evmhesmfa, EVMHESMFA, 0x1000042B) \
748 V(evmhesmfaaw, EVMHESMFAAW, 0x1000050B) \
751 V(evmhesmfanw, EVMHESMFANW, 0x1000058B) \
753 V(evmhesmi, EVMHESMI, 0x10000409) \
756 V(evmhesmia, EVMHESMIA, 0x10000429) \
759 V(evmhesmiaaw, EVMHESMIAAW, 0x10000509) \
762 V(evmhesmianw, EVMHESMIANW, 0x10000589) \
764 V(evmhessf, EVMHESSF, 0x10000403) \
767 V(evmhessfa, EVMHESSFA, 0x10000423) \
770 V(evmhessfaaw, EVMHESSFAAW, 0x10000503) \
773 V(evmhessfanw, EVMHESSFANW, 0x10000583) \
776 V(evmhessiaaw, EVMHESSIAAW, 0x10000501) \
779 V(evmhessianw, EVMHESSIANW, 0x10000581) \
781 V(evmheumi, EVMHEUMI, 0x10000408) \
784 V(evmheumia, EVMHEUMIA, 0x10000428) \
787 V(evmheumiaaw, EVMHEUMIAAW, 0x10000508) \
790 V(evmheumianw, EVMHEUMIANW, 0x10000588) \
793 V(evmheusiaaw, EVMHEUSIAAW, 0x10000500) \
796 V(evmheusianw, EVMHEUSIANW, 0x10000580) \
799 V(evmhogsmfaa, EVMHOGSMFAA, 0x1000052F) \
802 V(evmhogsmfan, EVMHOGSMFAN, 0x100005AF) \
805 V(evmhogsmiaa, EVMHOGSMIAA, 0x1000052D) \
808 V(evmhogsmian, EVMHOGSMIAN, 0x100005AD) \
811 V(evmhogumiaa, EVMHOGUMIAA, 0x1000052C) \
814 V(evmhogumian, EVMHOGUMIAN, 0x100005AC) \
816 V(evmhosmf, EVMHOSMF, 0x1000040F) \
819 V(evmhosmfa, EVMHOSMFA, 0x1000042F) \
822 V(evmhosmfaaw, EVMHOSMFAAW, 0x1000050F) \
825 V(evmhosmfanw, EVMHOSMFANW, 0x1000058F) \
827 V(evmhosmi, EVMHOSMI, 0x1000040D) \
830 V(evmhosmia, EVMHOSMIA, 0x1000042D) \
833 V(evmhosmiaaw, EVMHOSMIAAW, 0x1000050D) \
836 V(evmhosmianw, EVMHOSMIANW, 0x1000058D) \
838 V(evmhossf, EVMHOSSF, 0x10000407) \
841 V(evmhossfa, EVMHOSSFA, 0x10000427) \
844 V(evmhossfaaw, EVMHOSSFAAW, 0x10000507) \
847 V(evmhossfanw, EVMHOSSFANW, 0x10000587) \
850 V(evmhossiaaw, EVMHOSSIAAW, 0x10000505) \
853 V(evmhossianw, EVMHOSSIANW, 0x10000585) \
855 V(evmhoumi, EVMHOUMI, 0x1000040C) \
858 V(evmhoumia, EVMHOUMIA, 0x1000042C) \
861 V(evmhoumiaaw, EVMHOUMIAAW, 0x1000050C) \
864 V(evmhoumianw, EVMHOUMIANW, 0x1000058C) \
867 V(evmhousiaaw, EVMHOUSIAAW, 0x10000504) \
870 V(evmhousianw, EVMHOUSIANW, 0x10000584) \
872 V(evmra, EVMRA, 0x100004C4) \
874 V(evmwhsmf, EVMWHSMF, 0x1000044F) \
876 V(evmwhsmfa, EVMWHSMFA, 0x1000046F) \
878 V(evmwhsmi, EVMWHSMI, 0x1000044D) \
880 V(evmwhsmia, EVMWHSMIA, 0x1000046D) \
882 V(evmwhssf, EVMWHSSF, 0x10000447) \
884 V(evmwhssfa, EVMWHSSFA, 0x10000467) \
886 V(evmwhumi, EVMWHUMI, 0x1000044C) \
888 V(evmwhumia, EVMWHUMIA, 0x1000046C) \
891 V(evmwlsmiaaw, EVMWLSMIAAW, 0x10000549) \
894 V(evmwlsmianw, EVMWLSMIANW, 0x100005C9) \
897 V(evmwlssiaaw, EVMWLSSIAAW, 0x10000541) \
900 V(evmwlssianw, EVMWLSSIANW, 0x100005C1) \
902 V(evmwlumi, EVMWLUMI, 0x10000448) \
904 V(evmwlumia, EVMWLUMIA, 0x10000468) \
907 V(evmwlumiaaw, EVMWLUMIAAW, 0x10000548) \
910 V(evmwlumianw, EVMWLUMIANW, 0x100005C8) \
913 V(evmwlusiaaw, EVMWLUSIAAW, 0x10000540) \
916 V(evmwlusianw, EVMWLUSIANW, 0x100005C0) \
918 V(evmwsmf, EVMWSMF, 0x1000045B) \
920 V(evmwsmfa, EVMWSMFA, 0x1000047B) \
922 V(evmwsmfaa, EVMWSMFAA, 0x1000055B) \
925 V(evmwsmfan, EVMWSMFAN, 0x100005DB) \
927 V(evmwsmi, EVMWSMI, 0x10000459) \
929 V(evmwsmia, EVMWSMIA, 0x10000479) \
931 V(evmwsmiaa, EVMWSMIAA, 0x10000559) \
933 V(evmwsmian, EVMWSMIAN, 0x100005D9) \
935 V(evmwssf, EVMWSSF, 0x10000453) \
937 V(evmwssfa, EVMWSSFA, 0x10000473) \
939 V(evmwssfaa, EVMWSSFAA, 0x10000553) \
942 V(evmwssfan, EVMWSSFAN, 0x100005D3) \
944 V(evmwumi, EVMWUMI, 0x10000458) \
946 V(evmwumia, EVMWUMIA, 0x10000478) \
948 V(evmwumiaa, EVMWUMIAA, 0x10000558) \
951 V(evmwumian, EVMWUMIAN, 0x100005D8) \
953 V(evnand, EVNAND, 0x1000021E) \
955 V(evneg, EVNEG, 0x10000209) \
957 V(evnor, EVNOR, 0x10000218) \
959 V(evor, EVOR, 0x10000217) \
961 V(evorc, EVORC, 0x1000021B) \
963 V(evrlw, EVRLW, 0x10000228) \
965 V(evrlwi, EVRLWI, 0x1000022A) \
967 V(evrndw, EVRNDW, 0x1000020C) \
969 V(evslw, EVSLW, 0x10000224) \
971 V(evslwi, EVSLWI, 0x10000226) \
973 V(evsplatfi, EVSPLATFI, 0x1000022B) \
975 V(evsplati, EVSPLATI, 0x10000229) \
977 V(evsrwis, EVSRWIS, 0x10000223) \
979 V(evsrwiu, EVSRWIU, 0x10000222) \
981 V(evsrws, EVSRWS, 0x10000221) \
983 V(evsrwu, EVSRWU, 0x10000220) \
985 V(evstdd, EVSTDD, 0x10000321) \
987 V(evstddx, EVSTDDX, 0x10000320) \
989 V(evstdh, EVSTDH, 0x10000325) \
991 V(evstdhx, EVSTDHX, 0x10000324) \
993 V(evstdw, EVSTDW, 0x10000323) \
995 V(evstdwx, EVSTDWX, 0x10000322) \
997 V(evstwhe, EVSTWHE, 0x10000331) \
999 V(evstwhex, EVSTWHEX, 0x10000330) \
1001 V(evstwho, EVSTWHO, 0x10000335) \
1003 V(evstwhox, EVSTWHOX, 0x10000334) \
1005 V(evstwwe, EVSTWWE, 0x10000339) \
1007 V(evstwwex, EVSTWWEX, 0x10000338) \
1009 V(evstwwo, EVSTWWO, 0x1000033D) \
1011 V(evstwwox, EVSTWWOX, 0x1000033C) \
1013 V(evsubfsmiaaw, EVSUBFSMIAAW, 0x100004CB) \
1015 V(evsubfssiaaw, EVSUBFSSIAAW, 0x100004C3) \
1017 V(evsubfumiaaw, EVSUBFUMIAAW, 0x100004CA) \
1019 V(evsubfusiaaw, EVSUBFUSIAAW, 0x100004C2) \
1021 V(evsubfw, EVSUBFW, 0x10000204) \
1023 V(evsubifw, EVSUBIFW, 0x10000206) \
1025 V(evxor, EVXOR, 0x10000216) \
1027 V(efdabs, EFDABS, 0x100002E4) \
1029 V(efdadd, EFDADD, 0x100002E0) \
1031 V(efdcfs, EFDCFS, 0x100002EF) \
1033 V(efdcfsf, EFDCFSF, 0x100002F3) \
1035 V(efdcfsi, EFDCFSI, 0x100002F1) \
1038 V(efdcfsid, EFDCFSID, 0x100002E3) \
1040 V(efdcfuf, EFDCFUF, 0x100002F2) \
1042 V(efdcfui, EFDCFUI, 0x100002F0) \
1045 V(efdcfuid, EFDCFUID, 0x100002E2) \
1047 V(efdcmpeq, EFDCMPEQ, 0x100002EE) \
1049 V(efdcmpgt, EFDCMPGT, 0x100002EC) \
1051 V(efdcmplt, EFDCMPLT, 0x100002ED) \
1053 V(efdctsf, EFDCTSF, 0x100002F7) \
1055 V(efdctsi, EFDCTSI, 0x100002F5) \
1058 V(efdctsidz, EFDCTSIDZ, 0x100002EB) \
1061 V(efdctsiz, EFDCTSIZ, 0x100002FA) \
1063 V(efdctuf, EFDCTUF, 0x100002F6) \
1065 V(efdctui, EFDCTUI, 0x100002F4) \
1068 V(efdctuidz, EFDCTUIDZ, 0x100002EA) \
1071 V(efdctuiz, EFDCTUIZ, 0x100002F8) \
1073 V(efddiv, EFDDIV, 0x100002E9) \
1075 V(efdmul, EFDMUL, 0x100002E8) \
1077 V(efdnabs, EFDNABS, 0x100002E5) \
1079 V(efdneg, EFDNEG, 0x100002E6) \
1081 V(efdsub, EFDSUB, 0x100002E1) \
1083 V(efdtsteq, EFDTSTEQ, 0x100002FE) \
1085 V(efdtstgt, EFDTSTGT, 0x100002FC) \
1087 V(efdtstlt, EFDTSTLT, 0x100002FD) \
1089 V(efscfd, EFSCFD, 0x100002CF) \
1091 V(efsabs, EFSABS, 0x100002C4) \
1093 V(efsadd, EFSADD, 0x100002C0) \
1095 V(efscfsf, EFSCFSF, 0x100002D3) \
1097 V(efscfsi, EFSCFSI, 0x100002D1) \
1099 V(efscfuf, EFSCFUF, 0x100002D2) \
1101 V(efscfui, EFSCFUI, 0x100002D0) \
1103 V(efscmpeq, EFSCMPEQ, 0x100002CE) \
1105 V(efscmpgt, EFSCMPGT, 0x100002CC) \
1107 V(efscmplt, EFSCMPLT, 0x100002CD) \
1109 V(efsctsf, EFSCTSF, 0x100002D7) \
1111 V(efsctsi, EFSCTSI, 0x100002D5) \
1113 V(efsctsiz, EFSCTSIZ, 0x100002DA) \
1115 V(efsctuf, EFSCTUF, 0x100002D6) \
1117 V(efsctui, EFSCTUI, 0x100002D4) \
1119 V(efsctuiz, EFSCTUIZ, 0x100002D8) \
1121 V(efsdiv, EFSDIV, 0x100002C9) \
1123 V(efsmul, EFSMUL, 0x100002C8) \
1125 V(efsnabs, EFSNABS, 0x100002C5) \
1127 V(efsneg, EFSNEG, 0x100002C6) \
1129 V(efssub, EFSSUB, 0x100002C1) \
1131 V(efststeq, EFSTSTEQ, 0x100002DE) \
1133 V(efststgt, EFSTSTGT, 0x100002DC) \
1135 V(efststlt, EFSTSTLT, 0x100002DD) \
1137 V(evfsabs, EVFSABS, 0x10000284) \
1139 V(evfsadd, EVFSADD, 0x10000280) \
1141 V(evfscfsf, EVFSCFSF, 0x10000293) \
1143 V(evfscfsi, EVFSCFSI, 0x10000291) \
1145 V(evfscfuf, EVFSCFUF, 0x10000292) \
1147 V(evfscfui, EVFSCFUI, 0x10000290) \
1149 V(evfscmpeq, EVFSCMPEQ, 0x1000028E) \
1151 V(evfscmpgt, EVFSCMPGT, 0x1000028C) \
1153 V(evfscmplt, EVFSCMPLT, 0x1000028D) \
1155 V(evfsctsf, EVFSCTSF, 0x10000297) \
1157 V(evfsctsi, EVFSCTSI, 0x10000295) \
1160 V(evfsctsiz, EVFSCTSIZ, 0x1000029A) \
1162 V(evfsctuf, EVFSCTUF, 0x10000296) \
1164 V(evfsctui, EVFSCTUI, 0x10000294) \
1167 V(evfsctuiz, EVFSCTUIZ, 0x10000298) \
1169 V(evfsdiv, EVFSDIV, 0x10000289) \
1171 V(evfsmul, EVFSMUL, 0x10000288) \
1173 V(evfsnabs, EVFSNABS, 0x10000285) \
1175 V(evfsneg, EVFSNEG, 0x10000286) \
1177 V(evfssub, EVFSSUB, 0x10000281) \
1179 V(evfststeq, EVFSTSTEQ, 0x1000029E) \
1181 V(evfststgt, EVFSTSTGT, 0x1000029C) \
1183 V(evfststlt, EVFSTSTLT, 0x1000029D)
1185#define PPC_VC_OPCODE_LIST(V) \
1187 V(vcmpbfp, VCMPBFP, 0x100003C6) \
1189 V(vcmpeqfp, VCMPEQFP, 0x100000C6) \
1191 V(vcmpequb, VCMPEQUB, 0x10000006) \
1193 V(vcmpequd, VCMPEQUD, 0x100000C7) \
1195 V(vcmpequh, VCMPEQUH, 0x10000046) \
1197 V(vcmpequw, VCMPEQUW, 0x10000086) \
1199 V(vcmpgefp, VCMPGEFP, 0x100001C6) \
1201 V(vcmpgtfp, VCMPGTFP, 0x100002C6) \
1203 V(vcmpgtsb, VCMPGTSB, 0x10000306) \
1205 V(vcmpgtsd, VCMPGTSD, 0x100003C7) \
1207 V(vcmpgtsh, VCMPGTSH, 0x10000346) \
1209 V(vcmpgtsw, VCMPGTSW, 0x10000386) \
1211 V(vcmpgtub, VCMPGTUB, 0x10000206) \
1213 V(vcmpgtud, VCMPGTUD, 0x100002C7) \
1215 V(vcmpgtuh, VCMPGTUH, 0x10000246) \
1217 V(vcmpgtuw, VCMPGTUW, 0x10000286)
1219#define PPC_X_OPCODE_A_FORM_LIST(V) \
1221 V(modsd, MODSD, 0x7C000612) \
1223 V(modud, MODUD, 0x7C000212) \
1225 V(modsw, MODSW, 0x7C000616) \
1227 V(moduw, MODUW, 0x7C000216)
1229#define PPC_X_OPCODE_B_FORM_LIST(V) \
1231 V(xor_, XORX, 0x7C000278) \
1233 V(and_, ANDX, 0x7C000038) \
1235 V(andc, ANDCX, 0x7C000078) \
1237 V(orx, ORX, 0x7C000378) \
1239 V(orc, ORC, 0x7C000338) \
1241 V(nor, NORX, 0x7C0000F8) \
1243 V(srw, SRWX, 0x7C000430) \
1245 V(slw, SLWX, 0x7C000030) \
1247 V(sraw, SRAW, 0x7C000630) \
1249 V(sld, SLDX, 0x7C000036) \
1251 V(srad, SRAD, 0x7C000634) \
1253 V(srd, SRDX, 0x7C000436)
1255#define PPC_X_OPCODE_C_FORM_LIST(V) \
1257 V(cntlzw, CNTLZWX, 0x7C000034) \
1259 V(cntlzd, CNTLZDX, 0x7C000074) \
1261 V(cnttzw, CNTTZWX, 0x7C000434) \
1263 V(cnttzd, CNTTZDX, 0x7C000474) \
1265 V(popcntb, POPCNTB, 0x7C0000F4) \
1267 V(popcntw, POPCNTW, 0x7C0002F4) \
1269 V(popcntd, POPCNTD, 0x7C0003F4) \
1271 V(extsb, EXTSB, 0x7C000774) \
1273 V(extsh, EXTSH, 0x7C000734)
1275#define PPC_X_OPCODE_D_FORM_LIST(V) \
1277 V(lhbrx, LHBRX, 0x7C00062C) \
1279 V(lwbrx, LWBRX, 0x7C00042C) \
1281 V(ldbrx, LDBRX, 0x7C000428) \
1283 V(lbzx, LBZX, 0x7C0000AE) \
1285 V(lbzux, LBZUX, 0x7C0000EE) \
1287 V(lhzx, LHZX, 0x7C00022E) \
1289 V(lhzux, LHZUX, 0x7C00026E) \
1291 V(lhax, LHAX, 0x7C0002AE) \
1293 V(lwzx, LWZX, 0x7C00002E) \
1295 V(lwzux, LWZUX, 0x7C00006E) \
1297 V(ldx, LDX, 0x7C00002A) \
1299 V(ldux, LDUX, 0x7C00006A) \
1301 V(lfdx, LFDX, 0x7C0004AE) \
1303 V(lfsx, LFSX, 0x7C00042E) \
1305 V(lfdux, LFDUX, 0x7C0004EE) \
1307 V(lfsux, LFSUX, 0x7C00046E) \
1309 V(stbux, STBUX, 0x7C0001EE) \
1311 V(stbx, STBX, 0x7C0001AE) \
1313 V(sthux, STHUX, 0x7C00036E) \
1315 V(sthx, STHX, 0x7C00032E) \
1317 V(stwux, STWUX, 0x7C00016E) \
1319 V(stwx, STWX, 0x7C00012E) \
1321 V(stdux, STDUX, 0x7C00016A) \
1323 V(stdx, STDX, 0x7C00012A) \
1325 V(stfdux, STFDUX, 0x7C0005EE) \
1327 V(stfdx, STFDX, 0x7C0005AE) \
1329 V(stfsux, STFSUX, 0x7C00056E) \
1331 V(stfsx, STFSX, 0x7C00052E) \
1333 V(stdbrx, STDBRX, 0x7C000528) \
1335 V(stwbrx, STWBRX, 0x7C00052C) \
1337 V(sthbrx, STHBRX, 0x7C00072C) \
1339 V(lvx, LVX, 0x7C0000CE) \
1341 V(stvx, STVX, 0x7C0001CE)
1343#define PPC_X_OPCODE_E_FORM_LIST(V) \
1345 V(srawi, SRAWIX, 0x7C000670)
1347#define PPC_X_OPCODE_F_FORM_LIST(V) \
1349 V(cmp, CMP, 0x7C000000) \
1351 V(cmpl, CMPL, 0x7C000040)
1353#define PPC_X_OPCODE_G_FORM_LIST(V) \
1355 V(brh, BRH, 0x7C0001B6) \
1357 V(brw, BRW, 0x7C000136) \
1359 V(brd, BRD, 0x7C000176)
1361#define PPC_X_OPCODE_EH_S_FORM_LIST(V) \
1363 V(stbcx, STBCX, 0x7C00056D) \
1365 V(sthcx, STHCX, 0x7C0005AD) \
1367 V(stwcx, STWCX, 0x7C00012D) \
1369 V(stdcx, STDCX, 0x7C0001AD)
1371#define PPC_X_OPCODE_EH_L_FORM_LIST(V) \
1373 V(lbarx, LBARX, 0x7C000068) \
1375 V(lharx, LHARX, 0x7C0000E8) \
1377 V(lwarx, LWARX, 0x7C000028) \
1379 V(ldarx, LDARX, 0x7C0000A8)
1381#define PPC_X_OPCODE_UNUSED_LIST(V) \
1383 V(bpermd, BPERMD, 0x7C0001F8) \
1385 V(extsw, EXTSW, 0x7C0007B4) \
1387 V(lwaux, LWAUX, 0x7C0002EA) \
1389 V(lwax, LWAX, 0x7C0002AA) \
1391 V(prtyd, PRTYD, 0x7C000174) \
1393 V(td, TD, 0x7C000088) \
1395 V(bctar, BCTAR, 0x4C000460) \
1397 V(cmpb, CMPB, 0x7C0003F8) \
1399 V(dcbf, DCBF, 0x7C0000AC) \
1401 V(dcbst, DCBST, 0x7C00006C) \
1403 V(dcbt, DCBT, 0x7C00022C) \
1405 V(dcbtst, DCBTST, 0x7C0001EC) \
1407 V(dcbz, DCBZ, 0x7C0007EC) \
1409 V(eqv, EQV, 0x7C000238) \
1411 V(icbi, ICBI, 0x7C0007AC) \
1413 V(nand, NAND, 0x7C0003B8) \
1415 V(prtyw, PRTYW, 0x7C000134) \
1417 V(sync, SYNC, 0x7C0004AC) \
1419 V(tw, TW, 0x7C000008) \
1421 V(xnop, XNOP, 0x68000000) \
1423 V(cbcdtd, CBCDTD, 0x7C000274) \
1425 V(cdtbcd, CDTBCD, 0x7C000234) \
1427 V(dadd, DADD, 0xEC000004) \
1429 V(daddq, DADDQ, 0xFC000004) \
1431 V(dcffix, DCFFIX, 0xEC000644) \
1433 V(dcffixq, DCFFIXQ, 0xFC000644) \
1435 V(dcmpo, DCMPO, 0xEC000104) \
1437 V(dcmpoq, DCMPOQ, 0xFC000104) \
1439 V(dcmpu, DCMPU, 0xEC000504) \
1441 V(dcmpuq, DCMPUQ, 0xFC000504) \
1443 V(dctdp, DCTDP, 0xEC000204) \
1445 V(dctfix, DCTFIX, 0xEC000244) \
1447 V(dctfixq, DCTFIXQ, 0xFC000244) \
1449 V(dctqpq, DCTQPQ, 0xFC000204) \
1451 V(ddedpd, DDEDPD, 0xEC000284) \
1453 V(ddedpdq, DDEDPDQ, 0xFC000284) \
1455 V(ddiv, DDIV, 0xEC000444) \
1457 V(ddivq, DDIVQ, 0xFC000444) \
1459 V(denbcd, DENBCD, 0xEC000684) \
1461 V(denbcdq, DENBCDQ, 0xFC000684) \
1463 V(diex, DIEX, 0xEC0006C4) \
1465 V(diexq, DIEXQ, 0xFC0006C4) \
1467 V(dmul, DMUL, 0xEC000044) \
1469 V(dmulq, DMULQ, 0xFC000044) \
1471 V(drdpq, DRDPQ, 0xFC000604) \
1473 V(drsp, DRSP, 0xEC000604) \
1475 V(dsub, DSUB, 0xEC000404) \
1477 V(dsubq, DSUBQ, 0xFC000404) \
1479 V(dtstex, DTSTEX, 0xEC000144) \
1481 V(dtstexq, DTSTEXQ, 0xFC000144) \
1483 V(dtstsf, DTSTSF, 0xEC000544) \
1485 V(dtstsfq, DTSTSFQ, 0xFC000544) \
1487 V(dxex, DXEX, 0xEC0002C4) \
1489 V(dxexq, DXEXQ, 0xFC0002C4) \
1491 V(dsn, DSN, 0x7C0003C6) \
1493 V(lbdx, LBDX, 0x7C000406) \
1495 V(lddx, LDDX, 0x7C0004C6) \
1497 V(lfddx, LFDDX, 0x7C000646) \
1499 V(lhdx, LHDX, 0x7C000446) \
1501 V(lwdx, LWDX, 0x7C000486) \
1503 V(stbdx, STBDX, 0x7C000506) \
1505 V(stddx, STDDX, 0x7C0005C6) \
1507 V(stfddx, STFDDX, 0x7C000746) \
1509 V(sthdx, STHDX, 0x7C000546) \
1511 V(stwdx, STWDX, 0x7C000586) \
1513 V(dcba, DCBA, 0x7C0005EC) \
1515 V(dcbi, DCBI, 0x7C0003AC) \
1517 V(icbt, ICBT, 0x7C00002C) \
1519 V(mcrxr, MCRXR, 0x7C000400) \
1521 V(tlbilx, TLBILX, 0x7C000024) \
1523 V(tlbivax, TLBIVAX, 0x7C000624) \
1525 V(tlbre, TLBRE, 0x7C000764) \
1527 V(tlbsx, TLBSX, 0x7C000724) \
1529 V(tlbwe, TLBWE, 0x7C0007A4) \
1531 V(wrtee, WRTEE, 0x7C000106) \
1533 V(wrteei, WRTEEI, 0x7C000146) \
1535 V(dcread, DCREAD, 0x7C00028C) \
1537 V(icread, ICREAD, 0x7C0007CC) \
1539 V(dci, DCI, 0x7C00038C) \
1541 V(ici, ICI, 0x7C00078C) \
1543 V(mfdcrux, MFDCRUX, 0x7C000246) \
1545 V(mfdcrx, MFDCRX, 0x7C000206) \
1547 V(mtdcrux, MTDCRUX, 0x7C000346) \
1549 V(mtdcrx, MTDCRX, 0x7C000306) \
1551 V(rfdi, RFDI, 0x4C00004E) \
1553 V(dcbfep, DCBFEP, 0x7C0000FE) \
1555 V(dcbstep, DCBSTEP, 0x7C00007E) \
1557 V(dcbtep, DCBTEP, 0x7C00027E) \
1559 V(dcbtstep, DCBTSTEP, 0x7C0001FE) \
1561 V(dcbzep, DCBZEP, 0x7C0007FE) \
1563 V(icbiep, ICBIEP, 0x7C0007BE) \
1565 V(lbepx, LBEPX, 0x7C0000BE) \
1567 V(lfdepx, LFDEPX, 0x7C0004BE) \
1569 V(lhepx, LHEPX, 0x7C00023E) \
1571 V(lvepx, LVEPX, 0x7C00024E) \
1573 V(lvepxl, LVEPXL, 0x7C00020E) \
1575 V(lwepx, LWEPX, 0x7C00003E) \
1577 V(stbepx, STBEPX, 0x7C0001BE) \
1579 V(stfdepx, STFDEPX, 0x7C0005BE) \
1581 V(sthepx, STHEPX, 0x7C00033E) \
1583 V(stvepx, STVEPX, 0x7C00064E) \
1585 V(stvepxl, STVEPXL, 0x7C00060E) \
1587 V(stwepx, STWEPX, 0x7C00013E) \
1589 V(ldepx, LDEPX, 0x7C00003A) \
1591 V(stdepx, STDEPX, 0x7C00013A) \
1593 V(tlbsrx, TLBSRX, 0x7C0006A5) \
1595 V(eciwx, ECIWX, 0x7C00026C) \
1597 V(ecowx, ECOWX, 0x7C00036C) \
1599 V(dcblc, DCBLC, 0x7C00030C) \
1601 V(dcblq, DCBLQ, 0x7C00034D) \
1603 V(dcbtls, DCBTLS, 0x7C00014C) \
1605 V(dcbtstls, DCBTSTLS, 0x7C00010C) \
1607 V(icblc, ICBLC, 0x7C0001CC) \
1609 V(icblq, ICBLQ, 0x7C00018D) \
1611 V(icbtls, ICBTLS, 0x7C0003CC) \
1613 V(fcmpo, FCMPO, 0xFC000040) \
1615 V(fcmpu, FCMPU, 0xFC000000) \
1617 V(ftdiv, FTDIV, 0xFC000100) \
1619 V(ftsqrt, FTSQRT, 0xFC000140) \
1621 V(lfiwax, LFIWAX, 0x7C0006AE) \
1623 V(lfiwzx, LFIWZX, 0x7C0006EE) \
1625 V(mcrfs, MCRFS, 0xFC000080) \
1627 V(stfiwx, STFIWX, 0x7C0007AE) \
1629 V(lfdpx, LFDPX, 0x7C00062E) \
1631 V(stfdpx, STFDPX, 0x7C00072E) \
1633 V(fabs, FABS, 0xFC000210) \
1635 V(fcfid, FCFID, 0xFC00069C) \
1637 V(fcfids, FCFIDS, 0xEC00069C) \
1639 V(fcfidu, FCFIDU, 0xFC00079C) \
1641 V(fcfidus, FCFIDUS, 0xEC00079C) \
1643 V(fcpsgn, FCPSGN, 0xFC000010) \
1645 V(fctid, FCTID, 0xFC00065C) \
1647 V(fctidu, FCTIDU, 0xFC00075C) \
1650 V(fctiduz, FCTIDUZ, 0xFC00075E) \
1652 V(fctidz, FCTIDZ, 0xFC00065E) \
1654 V(fctiw, FCTIW, 0xFC00001C) \
1656 V(fctiwu, FCTIWU, 0xFC00011C) \
1658 V(fctiwuz, FCTIWUZ, 0xFC00011E) \
1660 V(fctiwz, FCTIWZ, 0xFC00001E) \
1662 V(fmr, FMR, 0xFC000090) \
1664 V(fnabs, FNABS, 0xFC000110) \
1666 V(fneg, FNEG, 0xFC000050) \
1668 V(frsp, FRSP, 0xFC000018) \
1670 V(mffs, MFFS, 0xFC00048E) \
1672 V(mtfsb0, MTFSB0, 0xFC00008C) \
1674 V(mtfsb1, MTFSB1, 0xFC00004C) \
1676 V(mtfsfi, MTFSFI, 0xFC00010C) \
1678 V(frim, FRIM, 0xFC0003D0) \
1680 V(frin, FRIN, 0xFC000310) \
1682 V(frip, FRIP, 0xFC000390) \
1684 V(friz, FRIZ, 0xFC000350) \
1686 V(mulchw, MULCHW, 0x10000150) \
1688 V(mulchwu, MULCHWU, 0x10000110) \
1690 V(mulhhw, MULHHW, 0x10000050) \
1692 V(mulhhwu, MULHHWU, 0x10000010) \
1694 V(mullhw, MULLHW, 0x10000350) \
1696 V(mullhwu, MULLHWU, 0x10000310) \
1698 V(dlmzb, DLMZB, 0x7C00009C) \
1700 V(lqarx, LQARX, 0x7C000228) \
1702 V(stqcx, STQCX, 0x7C00016D) \
1704 V(lswi, LSWI, 0x7C0004AA) \
1706 V(lswx, LSWX, 0x7C00042A) \
1708 V(stswi, STSWI, 0x7C0005AA) \
1710 V(stswx, STSWX, 0x7C00052A) \
1712 V(clrbhrb, CLRBHRB, 0x7C00035C) \
1714 V(eieio, EIEIO, 0x7C0006AC) \
1716 V(lbzcix, LBZCIX, 0x7C0006AA) \
1718 V(ldcix, LDCIX, 0x7C0006EA) \
1720 V(lhzcix, LHZCIX, 0x7C00066A) \
1722 V(lwzcix, LWZCIX, 0x7C00062A) \
1724 V(mfsr, MFSR, 0x7C0004A6) \
1726 V(mfsrin, MFSRIN, 0x7C000526) \
1728 V(mtmsrd, MTMSRD, 0x7C000164) \
1730 V(mtsle, MTSLE, 0x7C000126) \
1732 V(mtsr, MTSR, 0x7C0001A4) \
1734 V(mtsrin, MTSRIN, 0x7C0001E4) \
1736 V(slbfee, SLBFEE, 0x7C0007A7) \
1738 V(slbia, SLBIA, 0x7C0003E4) \
1740 V(slbie, SLBIE, 0x7C000364) \
1742 V(slbmfee, SLBMFEE, 0x7C000726) \
1744 V(slbmfev, SLBMFEV, 0x7C0006A6) \
1746 V(slbmte, SLBMTE, 0x7C000324) \
1748 V(stbcix, STBCIX, 0x7C0007AA) \
1750 V(stdcix, STDCIX, 0x7C0007EA) \
1752 V(sthcix, STHCIX, 0x7C00076A) \
1754 V(stwcix, STWCIX, 0x7C00072A) \
1756 V(tlbia, TLBIA, 0x7C0002E4) \
1758 V(tlbie, TLBIE, 0x7C000264) \
1760 V(tlbiel, TLBIEL, 0x7C000224) \
1762 V(msgclrp, MSGCLRP, 0x7C00015C) \
1764 V(msgsndp, MSGSNDP, 0x7C00011C) \
1766 V(msgclr, MSGCLR, 0x7C0001DC) \
1768 V(msgsnd, MSGSND, 0x7C00019C) \
1770 V(mfmsr, MFMSR, 0x7C0000A6) \
1772 V(mtmsr, MTMSR, 0x7C000124) \
1774 V(tlbsync, TLBSYNC, 0x7C00046C) \
1776 V(tabort, TABORT, 0x7C00071D) \
1778 V(tabortdc, TABORTDC, 0x7C00065D) \
1780 V(tabortdci, TABORTDCI, 0x7C0006DD) \
1782 V(tabortwc, TABORTWC, 0x7C00061D) \
1784 V(tabortwci, TABORTWCI, 0x7C00069D) \
1786 V(tbegin, TBEGIN, 0x7C00051D) \
1788 V(tcheck, TCHECK, 0x7C00059C) \
1790 V(tend, TEND, 0x7C00055C) \
1792 V(trechkpt, TRECHKPT, 0x7C0007DD) \
1794 V(treclaim, TRECLAIM, 0x7C00075D) \
1796 V(tsr, TSR, 0x7C0005DC) \
1798 V(lvebx, LVEBX, 0x7C00000E) \
1800 V(lvehx, LVEHX, 0x7C00004E) \
1802 V(lvewx, LVEWX, 0x7C00008E) \
1804 V(lvsl, LVSL, 0x7C00000C) \
1806 V(lvsr, LVSR, 0x7C00004C) \
1808 V(lvxl, LVXL, 0x7C0002CE) \
1810 V(stvebx, STVEBX, 0x7C00010E) \
1812 V(stvehx, STVEHX, 0x7C00014E) \
1814 V(stvewx, STVEWX, 0x7C00018E) \
1816 V(stvxl, STVXL, 0x7C0003CE) \
1818 V(fmrgew, FMRGEW, 0xFC00078C) \
1820 V(fmrgow, FMRGOW, 0xFC00068C) \
1822 V(wait, WAIT, 0x7C00007C)
1824#define PPC_X_OPCODE_LIST(V) \
1825 PPC_X_OPCODE_A_FORM_LIST(V) \
1826 PPC_X_OPCODE_B_FORM_LIST(V) \
1827 PPC_X_OPCODE_C_FORM_LIST(V) \
1828 PPC_X_OPCODE_D_FORM_LIST(V) \
1829 PPC_X_OPCODE_E_FORM_LIST(V) \
1830 PPC_X_OPCODE_F_FORM_LIST(V) \
1831 PPC_X_OPCODE_G_FORM_LIST(V) \
1832 PPC_X_OPCODE_EH_L_FORM_LIST(V) \
1833 PPC_X_OPCODE_UNUSED_LIST(V)
1835#define PPC_EVS_OPCODE_LIST(V) \
1837 V(evsel, EVSEL, 0x10000278)
1839#define PPC_DS_OPCODE_LIST(V) \
1841 V(ld, LD, 0xE8000000) \
1843 V(ldu, LDU, 0xE8000001) \
1845 V(lwa, LWA, 0xE8000002) \
1847 V(std, STD, 0xF8000000) \
1849 V(stdu, STDU, 0xF8000001) \
1851 V(lfdp, LFDP, 0xE4000000) \
1853 V(stfdp, STFDP, 0xF4000000) \
1855 V(stq, STQ, 0xF8000002)
1857#define PPC_DQ_OPCODE_LIST(V) V(lsq, LSQ, 0xE0000000)
1859#define PPC_D_OPCODE_LIST(V) \
1861 V(tdi, TDI, 0x08000000) \
1863 V(addi, ADDI, 0x38000000) \
1865 V(addic, ADDIC, 0x30000000) \
1867 V(addicx, ADDICx, 0x34000000) \
1869 V(addis, ADDIS, 0x3C000000) \
1871 V(andix, ANDIx, 0x70000000) \
1873 V(andisx, ANDISx, 0x74000000) \
1875 V(cmpi, CMPI, 0x2C000000) \
1877 V(cmpli, CMPLI, 0x28000000) \
1879 V(lbz, LBZ, 0x88000000) \
1881 V(lbzu, LBZU, 0x8C000000) \
1883 V(lha, LHA, 0xA8000000) \
1885 V(lhau, LHAU, 0xAC000000) \
1887 V(lhz, LHZ, 0xA0000000) \
1889 V(lhzu, LHZU, 0xA4000000) \
1891 V(lmw, LMW, 0xB8000000) \
1893 V(lwz, LWZ, 0x80000000) \
1895 V(lwzu, LWZU, 0x84000000) \
1897 V(mulli, MULLI, 0x1C000000) \
1899 V(ori, ORI, 0x60000000) \
1901 V(oris, ORIS, 0x64000000) \
1903 V(stb, STB, 0x98000000) \
1905 V(stbu, STBU, 0x9C000000) \
1907 V(sth, STH, 0xB0000000) \
1909 V(sthu, STHU, 0xB4000000) \
1911 V(stmw, STMW, 0xBC000000) \
1913 V(stw, STW, 0x90000000) \
1915 V(stwu, STWU, 0x94000000) \
1917 V(subfic, SUBFIC, 0x20000000) \
1919 V(twi, TWI, 0x0C000000) \
1921 V(xori, XORI, 0x68000000) \
1923 V(xoris, XORIS, 0x6C000000) \
1925 V(lfd, LFD, 0xC8000000) \
1927 V(lfdu, LFDU, 0xCC000000) \
1929 V(lfs, LFS, 0xC0000000) \
1931 V(lfsu, LFSU, 0xC4000000) \
1933 V(stfd, STFD, 0xD8000000) \
1935 V(stfdu, STFDU, 0xDC000000) \
1937 V(stfs, STFS, 0xD0000000) \
1939 V(stfsu, STFSU, 0xD4000000)
1941#define PPC_XFL_OPCODE_LIST(V) \
1943 V(mtfsf, MTFSF, 0xFC00058E)
1945#define PPC_XFX_OPCODE_LIST(V) \
1947 V(mfcr, MFCR, 0x7C000026) \
1949 V(mfocrf, MFOCRF, 0x7C100026) \
1951 V(mfspr, MFSPR, 0x7C0002A6) \
1953 V(mtcrf, MTCRF, 0x7C000120) \
1955 V(mtocrf, MTOCRF, 0x7C100120) \
1957 V(mtspr, MTSPR, 0x7C0003A6) \
1959 V(dnh, DNH, 0x4C00018C) \
1961 V(mfdcr, MFDCR, 0x7C000286) \
1963 V(mtdcr, MTDCR, 0x7C000386) \
1965 V(mfpmr, MFPMR, 0x7C00029C) \
1967 V(mtpmr, MTPMR, 0x7C00039C) \
1969 V(mfbhrbe, MFBHRBE, 0x7C00025C) \
1971 V(mftb, MFTB, 0x7C0002E6)
1973#define PPC_MDS_OPCODE_LIST(V) \
1975 V(rldcl, RLDCL, 0x78000010) \
1977 V(rldcr, RLDCR, 0x78000012)
1979#define PPC_A_OPCODE_LIST(V) \
1981 V(isel, ISEL, 0x7C00001E) \
1983 V(fadd, FADD, 0xFC00002A) \
1985 V(fadds, FADDS, 0xEC00002A) \
1987 V(fdiv, FDIV, 0xFC000024) \
1989 V(fdivs, FDIVS, 0xEC000024) \
1991 V(fmadd, FMADD, 0xFC00003A) \
1993 V(fmadds, FMADDS, 0xEC00003A) \
1995 V(fmsub, FMSUB, 0xFC000038) \
1997 V(fmsubs, FMSUBS, 0xEC000038) \
1999 V(fmul, FMUL, 0xFC000032) \
2001 V(fmuls, FMULS, 0xEC000032) \
2003 V(fnmadd, FNMADD, 0xFC00003E) \
2005 V(fnmadds, FNMADDS, 0xEC00003E) \
2007 V(fnmsub, FNMSUB, 0xFC00003C) \
2009 V(fnmsubs, FNMSUBS, 0xEC00003C) \
2011 V(fres, FRES, 0xEC000030) \
2013 V(frsqrte, FRSQRTE, 0xFC000034) \
2015 V(fsel, FSEL, 0xFC00002E) \
2017 V(fsqrt, FSQRT, 0xFC00002C) \
2019 V(fsqrts, FSQRTS, 0xEC00002C) \
2021 V(fsub, FSUB, 0xFC000028) \
2023 V(fsubs, FSUBS, 0xEC000028) \
2025 V(fre, FRE, 0xFC000030) \
2027 V(frsqrtes, FRSQRTES, 0xEC000034)
2029#define PPC_VA_OPCODE_A_FORM_LIST(V) \
2031 V(vperm, VPERM, 0x1000002B) \
2033 V(vmladduhm, VMLADDUHM, 0x10000022) \
2035 V(vsel, VSEL, 0x1000002A) \
2037 V(vmsummbm, VMSUMMBM, 0x10000025) \
2039 V(vmsumshm, VMSUMSHM, 0x10000028) \
2041 V(vmhraddshs, VMHRADDSHS, 0x10000021)
2043#define PPC_VA_OPCODE_UNUSED_LIST(V) \
2045 V(vaddecuq, VADDECUQ, 0x1000003D) \
2047 V(vaddeuqm, VADDEUQM, 0x1000003C) \
2049 V(vmaddfp, VMADDFP, 0x1000002E) \
2051 V(vmhaddshs, VMHADDSHS, 0x10000020) \
2053 V(vmsumshs, VMSUMSHS, 0x10000029) \
2055 V(vmsumubm, VMSUMUBM, 0x10000024) \
2057 V(vmsumuhm, VMSUMUHM, 0x10000026) \
2059 V(vmsumuhs, VMSUMUHS, 0x10000027) \
2061 V(vnmsubfp, VNMSUBFP, 0x1000002F) \
2063 V(vsldoi, VSLDOI, 0x1000002C) \
2065 V(vsubecuq, VSUBECUQ, 0x1000003F) \
2067 V(vsubeuqm, VSUBEUQM, 0x1000003E) \
2069 V(vpermxor, VPERMXOR, 0x1000002D)
2071#define PPC_VA_OPCODE_LIST(V) \
2072 PPC_VA_OPCODE_A_FORM_LIST(V) \
2073 PPC_VA_OPCODE_UNUSED_LIST(V)
2075#define PPC_XX1_OPCODE_LIST(V) \
2077 V(lxsdx, LXSDX, 0x7C000498) \
2079 V(lxsiwax, LXSIWAX, 0x7C000098) \
2081 V(lxsibzx, LXSIBZX, 0x7C00061A) \
2083 V(lxsihzx, LXSIHZX, 0x7C00065A) \
2085 V(lxsiwzx, LXSIWZX, 0x7C000018) \
2087 V(lxsspx, LXSSPX, 0x7C000418) \
2089 V(lxvd, LXVD, 0x7C000698) \
2091 V(lxvx, LXVX, 0x7C000218) \
2093 V(lxvdsx, LXVDSX, 0x7C000298) \
2095 V(lxvw, LXVW, 0x7C000618) \
2097 V(mtvsrd, MTVSRD, 0x7C000166) \
2099 V(mtvsrdd, MTVSRDD, 0x7C000366) \
2101 V(mtvsrwa, MTVSRWA, 0x7C0001A6) \
2103 V(mtvsrwz, MTVSRWZ, 0x7C0001E6) \
2105 V(mfvsrd, MFVSRD, 0x7C000066) \
2107 V(mfvsrwz, MFVSRWZ, 0x7C0000E6) \
2109 V(stxsdx, STXSDX, 0x7C000598) \
2111 V(stxsiwx, STXSIWX, 0x7C000118) \
2113 V(stxsihx, STXSIHX, 0x7C00075A) \
2115 V(stxsibx, STXSIBX, 0x7C00071A) \
2117 V(stxsspx, STXSSPX, 0x7C000518) \
2119 V(stxvd, STXVD, 0x7C000798) \
2121 V(stxvx, STXVX, 0x7C000318) \
2123 V(stxvw, STXVW, 0x7C000718)
2125#define PPC_B_OPCODE_LIST(V) \
2127 V(bc, BCX, 0x40000000)
2129#define PPC_XO_OPCODE_LIST(V) \
2131 V(divd, DIVD, 0x7C0003D2) \
2133 V(divde, DIVDE, 0x7C000352) \
2135 V(divdeo, DIVDEO, 0x7C000752) \
2137 V(divdeu, DIVDEU, 0x7C000312) \
2139 V(divdeuo, DIVDEUO, 0x7C000712) \
2141 V(divdo, DIVDO, 0x7C0007D2) \
2143 V(divdu, DIVDU, 0x7C000392) \
2145 V(divduo, DIVDUO, 0x7C000792) \
2147 V(mulhd, MULHD, 0x7C000092) \
2149 V(mulhdu, MULHDU, 0x7C000012) \
2151 V(mulld, MULLD, 0x7C0001D2) \
2153 V(mulldo, MULLDO, 0x7C0005D2) \
2155 V(add, ADDX, 0x7C000214) \
2157 V(addc, ADDCX, 0x7C000014) \
2159 V(addco, ADDCO, 0x7C000414) \
2161 V(adde, ADDEX, 0x7C000114) \
2163 V(addeo, ADDEO, 0x7C000514) \
2165 V(addme, ADDME, 0x7C0001D4) \
2167 V(addmeo, ADDMEO, 0x7C0005D4) \
2169 V(addo, ADDO, 0x7C000614) \
2171 V(addze, ADDZEX, 0x7C000194) \
2173 V(addzeo, ADDZEO, 0x7C000594) \
2175 V(divw, DIVW, 0x7C0003D6) \
2177 V(divwe, DIVWE, 0x7C000356) \
2179 V(divweo, DIVWEO, 0x7C000756) \
2181 V(divweu, DIVWEU, 0x7C000316) \
2183 V(divweuo, DIVWEUO, 0x7C000716) \
2185 V(divwo, DIVWO, 0x7C0007D6) \
2187 V(divwu, DIVWU, 0x7C000396) \
2189 V(divwuo, DIVWUO, 0x7C000796) \
2191 V(mulhw, MULHWX, 0x7C000096) \
2193 V(mulhwu, MULHWUX, 0x7C000016) \
2195 V(mullw, MULLW, 0x7C0001D6) \
2197 V(mullwo, MULLWO, 0x7C0005D6) \
2199 V(neg, NEGX, 0x7C0000D0) \
2201 V(nego, NEGO, 0x7C0004D0) \
2203 V(subf, SUBFX, 0x7C000050) \
2205 V(subfc, SUBFCX, 0x7C000010) \
2207 V(subfco, SUBFCO, 0x7C000410) \
2209 V(subfe, SUBFEX, 0x7C000110) \
2211 V(subfeo, SUBFEO, 0x7C000510) \
2213 V(subfme, SUBFME, 0x7C0001D0) \
2215 V(subfmeo, SUBFMEO, 0x7C0005D0) \
2217 V(subfo, SUBFO, 0x7C000450) \
2219 V(subfze, SUBFZE, 0x7C000190) \
2221 V(subfzeo, SUBFZEO, 0x7C000590) \
2223 V(addg, ADDG, 0x7C000094) \
2225 V(macchw, MACCHW, 0x10000158) \
2227 V(macchws, MACCHWS, 0x100001D8) \
2229 V(macchwsu, MACCHWSU, 0x10000198) \
2231 V(macchwu, MACCHWU, 0x10000118) \
2233 V(machhw, MACHHW, 0x10000058) \
2235 V(machhws, MACHHWS, 0x100000D8) \
2237 V(machhwsu, MACHHWSU, 0x10000098) \
2239 V(machhwu, MACHHWU, 0x10000018) \
2241 V(maclhw, MACLHW, 0x10000358) \
2243 V(maclhws, MACLHWS, 0x100003D8) \
2245 V(maclhwsu, MACLHWSU, 0x10000398) \
2247 V(maclhwu, MACLHWU, 0x10000318) \
2249 V(nmacchw, NMACCHW, 0x1000015C) \
2251 V(nmacchws, NMACCHWS, 0x100001DC) \
2253 V(nmachhw, NMACHHW, 0x1000005C) \
2255 V(nmachhws, NMACHHWS, 0x100000DC) \
2257 V(nmaclhw, NMACLHW, 0x1000035C) \
2259 V(nmaclhws, NMACLHWS, 0x100003DC)
2261#define PPC_XL_OPCODE_LIST(V) \
2263 V(bcctr, BCCTRX, 0x4C000420) \
2265 V(bclr, BCLRX, 0x4C000020) \
2267 V(crand, CRAND, 0x4C000202) \
2269 V(crandc, CRANDC, 0x4C000102) \
2271 V(creqv, CREQV, 0x4C000242) \
2273 V(crnand, CRNAND, 0x4C0001C2) \
2275 V(crnor, CRNOR, 0x4C000042) \
2277 V(cror, CROR, 0x4C000382) \
2279 V(crorc, CRORC, 0x4C000342) \
2281 V(crxor, CRXOR, 0x4C000182) \
2283 V(isync, ISYNC, 0x4C00012C) \
2285 V(mcrf, MCRF, 0x4C000000) \
2287 V(rfci, RFCI, 0x4C000066) \
2289 V(rfi, RFI, 0x4C000064) \
2291 V(rfmci, RFMCI, 0x4C00004C) \
2293 V(ehpriv, EHPRIV, 0x7C00021C) \
2295 V(rfgi, RFGI, 0x4C0000CC) \
2297 V(doze, DOZE, 0x4C000324) \
2299 V(hrfid, HRFID, 0x4C000224) \
2301 V(nap, NAP, 0x4C000364) \
2303 V(rfebb, RFEBB, 0x4C000124) \
2305 V(rfid, RFID, 0x4C000024) \
2307 V(rvwinkle, RVWINKLE, 0x4C0003E4) \
2309 V(sleep, SLEEP, 0x4C0003A4)
2311#define PPC_XX4_OPCODE_LIST(V) \
2313 V(xxsel, XXSEL, 0xF0000030)
2315#define PPC_I_OPCODE_LIST(V) \
2317 V(b, BX, 0x48000000)
2319#define PPC_M_OPCODE_LIST(V) \
2321 V(rlwimi, RLWIMIX, 0x50000000) \
2323 V(rlwinm, RLWINMX, 0x54000000) \
2325 V(rlwnm, RLWNMX, 0x5C000000)
2327#define PPC_VX_OPCODE_A_FORM_LIST(V) \
2329 V(vspltb, VSPLTB, 0x1000020C) \
2331 V(vspltw, VSPLTW, 0x1000028C) \
2333 V(vsplth, VSPLTH, 0x1000024C) \
2335 V(vextractub, VEXTRACTUB, 0x1000020D) \
2337 V(vextractuh, VEXTRACTUH, 0x1000024D) \
2339 V(vextractuw, VEXTRACTUW, 0x1000028D) \
2341 V(vextractd, VEXTRACTD, 0x100002CD) \
2343 V(vinsertb, VINSERTB, 0x1000030D) \
2345 V(vinserth, VINSERTH, 0x1000034D) \
2347 V(vinsertw, VINSERTW, 0x1000038D) \
2349 V(vinsertd, VINSERTD, 0x100003CD)
2351#define PPC_VX_OPCODE_B_FORM_LIST(V) \
2353 V(vor, VOR, 0x10000484) \
2355 V(vxor, VXOR, 0x100004C4) \
2357 V(vnor, VNOR, 0x10000504) \
2359 V(vsro, VSRO, 0x1000044C) \
2361 V(vslo, VSLO, 0x1000040C) \
2363 V(vaddudm, VADDUDM, 0x100000C0) \
2365 V(vadduwm, VADDUWM, 0x10000080) \
2367 V(vadduhm, VADDUHM, 0x10000040) \
2369 V(vaddubm, VADDUBM, 0x10000000) \
2371 V(vaddfp, VADDFP, 0x1000000A) \
2373 V(vsubfp, VSUBFP, 0x1000004A) \
2375 V(vsubudm, VSUBUDM, 0x100004C0) \
2377 V(vsubuwm, VSUBUWM, 0x10000480) \
2379 V(vsubuhm, VSUBUHM, 0x10000440) \
2381 V(vsububm, VSUBUBM, 0x10000400) \
2383 V(vmuluwm, VMULUWM, 0x10000089) \
2385 V(vpkuhum, VPKUHUM, 0x1000000E) \
2387 V(vmulesb, VMULESB, 0x10000308) \
2389 V(vmuleub, VMULEUB, 0x10000208) \
2391 V(vmulosb, VMULOSB, 0x10000108) \
2393 V(vmuloub, VMULOUB, 0x10000008) \
2395 V(vmuleuh, VMULEUH, 0x10000248) \
2397 V(vmulesh, VMULESH, 0x10000348) \
2399 V(vmulouh, VMULOUH, 0x10000048) \
2401 V(vmulosh, VMULOSH, 0x10000148) \
2403 V(vmulesw, VMULESW, 0x10000388) \
2405 V(vmuleuw, VMULEUW, 0x10000288) \
2407 V(vmulosw, VMULOSW, 0x10000188) \
2409 V(vmulouw, VMULOUW, 0x10000088) \
2411 V(vmulld, VMULLD, 0x100001C9) \
2413 V(vsum4shs, VSUM4SHS, 0x10000648) \
2415 V(vpkuwus, VPKUWUS, 0x100000CE) \
2417 V(vsum2sws, VSUM2SWS, 0x10000688) \
2419 V(vpkudum, VPKUDUM, 0x1000044E) \
2421 V(vmaxsb, VMAXSB, 0x10000102) \
2423 V(vmaxub, VMAXUB, 0x10000002) \
2425 V(vmaxsd, VMAXSD, 0x100001C2) \
2427 V(vmaxud, VMAXUD, 0x100000C2) \
2429 V(vmaxsh, VMAXSH, 0x10000142) \
2431 V(vmaxuh, VMAXUH, 0x10000042) \
2433 V(vmaxsw, VMAXSW, 0x10000182) \
2435 V(vmaxuw, VMAXUW, 0x10000082) \
2437 V(vminsb, VMINSB, 0x10000302) \
2439 V(vminub, VMINUB, 0x10000202) \
2441 V(vminsd, VMINSD, 0x100003C2) \
2443 V(vminud, VMINUD, 0x100002C2) \
2445 V(vminsh, VMINSH, 0x10000342) \
2447 V(vminuh, VMINUH, 0x10000242) \
2449 V(vminsw, VMINSW, 0x10000382) \
2451 V(vminuw, VMINUW, 0x10000282) \
2453 V(vslb, VSLB, 0x10000104) \
2455 V(vslw, VSLW, 0x10000184) \
2457 V(vslh, VSLH, 0x10000144) \
2459 V(vsld, VSLD, 0x100005C4) \
2461 V(vsrb, VSRB, 0x10000204) \
2463 V(vsrw, VSRW, 0x10000284) \
2465 V(vsrh, VSRH, 0x10000244) \
2467 V(vsrd, VSRD, 0x100006C4) \
2469 V(vsrab, VSRAB, 0x10000304) \
2471 V(vsraw, VSRAW, 0x10000384) \
2473 V(vsrah, VSRAH, 0x10000344) \
2475 V(vsrad, VSRAD, 0x100003C4) \
2477 V(vand, VAND, 0x10000404) \
2479 V(vpkswss, VPKSWSS, 0x100001CE) \
2481 V(vpkswus, VPKSWUS, 0x1000014E) \
2483 V(vpkshss, VPKSHSS, 0x1000018E) \
2485 V(vpkshus, VPKSHUS, 0x1000010E) \
2487 V(vaddshs, VADDSHS, 0x10000340) \
2489 V(vsubshs, VSUBSHS, 0x10000740) \
2491 V(vadduhs, VADDUHS, 0x10000240) \
2493 V(vsubuhs, VSUBUHS, 0x10000640) \
2495 V(vaddsbs, VADDSBS, 0x10000300) \
2497 V(vsubsbs, VSUBSBS, 0x10000700) \
2499 V(vaddubs, VADDUBS, 0x10000200) \
2501 V(vsububs, VSUBUBS, 0x10000600) \
2503 V(vavgub, VAVGUB, 0x10000402) \
2505 V(vavguh, VAVGUH, 0x10000442) \
2507 V(vandc, VANDC, 0x10000444) \
2509 V(vminfp, VMINFP, 0x1000044A) \
2511 V(vmaxfp, VMAXFP, 0x1000040A) \
2513 V(vbpermq, VBPERMQ, 0x1000054C) \
2515 V(vmrghb, VMRGHB, 0x1000000C) \
2517 V(vmrghh, VMRGHH, 0x1000004C) \
2519 V(vmrghw, VMRGHW, 0x1000008C) \
2521 V(vmrglb, VMRGLB, 0x1000010C) \
2523 V(vmrglh, VMRGLH, 0x1000014C) \
2525 V(vmrglw, VMRGLW, 0x1000018C)
2527#define PPC_VX_OPCODE_C_FORM_LIST(V) \
2529 V(vupklsw, VUPKLSW, 0x100006CE) \
2531 V(vupkhsw, VUPKHSW, 0x1000064E) \
2533 V(vupklsh, VUPKLSH, 0x100002CE) \
2535 V(vupkhsh, VUPKHSH, 0x1000024E) \
2537 V(vupklsb, VUPKLSB, 0x1000028E) \
2539 V(vupkhsb, VUPKHSB, 0x1000020E) \
2541 V(vpopcntb, VPOPCNTB, 0x10000703)
2543#define PPC_VX_OPCODE_D_FORM_LIST(V) \
2545 V(vnegw, VNEGW, 0x10060602) \
2547 V(vnegd, VNEGD, 0x10070602)
2549#define PPC_VX_OPCODE_E_FORM_LIST(V) \
2551 V(vspltisb, VSPLTISB, 0x1000030C) \
2553 V(vspltish, VSPLTISH, 0x1000034C) \
2555 V(vspltisw, VSPLTISW, 0x1000038C)
2557#define PPC_VX_OPCODE_F_FORM_LIST(V) \
2559 V(vextractbm, VEXTRACTBM, 0x10080642) \
2561 V(vextracthm, VEXTRACTHM, 0x10090642) \
2563 V(vextractwm, VEXTRACTWM, 0x100A0642) \
2565 V(vextractdm, VEXTRACTDM, 0x100B0642)
2567#define PPC_VX_OPCODE_G_FORM_LIST(V) \
2570 V(vinsw, VINSW, 0x100000CF) \
2573 V(vinsd, VINSD, 0x100001CF)
2575#define PPC_VX_OPCODE_UNUSED_LIST(V) \
2577 V(bcdadd, BCDADD, 0xF0000400) \
2579 V(bcdsub, BCDSUB, 0xF0000440) \
2581 V(mfvscr, MFVSCR, 0x10000604) \
2583 V(mtvscr, MTVSCR, 0x10000644) \
2585 V(vaddcuq, VADDCUQ, 0x10000140) \
2587 V(vaddcuw, VADDCUW, 0x10000180) \
2589 V(vaddsws, VADDSWS, 0x10000380) \
2591 V(vadduqm, VADDUQM, 0x10000100) \
2593 V(vadduws, VADDUWS, 0x10000280) \
2595 V(vavgsb, VAVGSB, 0x10000502) \
2597 V(vavgsh, VAVGSH, 0x10000542) \
2599 V(vavgsw, VAVGSW, 0x10000582) \
2601 V(vavguw, VAVGUW, 0x10000482) \
2603 V(vcfsx, VCFSX, 0x1000034A) \
2605 V(vcfux, VCFUX, 0x1000030A) \
2607 V(vclzb, VCLZB, 0x10000702) \
2609 V(vclzd, VCLZD, 0x100007C2) \
2611 V(vclzh, VCLZH, 0x10000742) \
2613 V(vclzw, VCLZW, 0x10000782) \
2616 V(vctsxs, VCTSXS, 0x100003CA) \
2619 V(vctuxs, VCTUXS, 0x1000038A) \
2621 V(veqv, VEQV, 0x10000684) \
2623 V(vexptefp, VEXPTEFP, 0x1000018A) \
2625 V(vgbbd, VGBBD, 0x1000050C) \
2627 V(vlogefp, VLOGEFP, 0x100001CA) \
2629 V(vnand, VNAND, 0x10000584) \
2631 V(vorc, VORC, 0x10000544) \
2633 V(vpkpx, VPKPX, 0x1000030E) \
2635 V(vpksdss, VPKSDSS, 0x100005CE) \
2637 V(vpksdus, VPKSDUS, 0x1000054E) \
2639 V(vpkudus, VPKUDUS, 0x100004CE) \
2641 V(vpkuhus, VPKUHUS, 0x1000008E) \
2643 V(vpkuwum, VPKUWUM, 0x1000004E) \
2645 V(vpmsumb, VPMSUMB, 0x10000408) \
2647 V(vpmsumd, VPMSUMD, 0x100004C8) \
2649 V(vpmsumh, VPMSUMH, 0x10000448) \
2651 V(vpmsumw, VPMSUMW, 0x10000488) \
2653 V(vpopcntd, VPOPCNTD, 0x100007C3) \
2655 V(vpopcnth, VPOPCNTH, 0x10000743) \
2657 V(vpopcntw, VPOPCNTW, 0x10000783) \
2659 V(vrefp, VREFP, 0x1000010A) \
2661 V(vrfim, VRFIM, 0x100002CA) \
2663 V(vrfin, VRFIN, 0x1000020A) \
2665 V(vrfip, VRFIP, 0x1000028A) \
2667 V(vrfiz, VRFIZ, 0x1000024A) \
2669 V(vrlb, VRLB, 0x10000004) \
2671 V(vrld, VRLD, 0x100000C4) \
2673 V(vrlh, VRLH, 0x10000044) \
2675 V(vrlw, VRLW, 0x10000084) \
2677 V(vrsqrtefp, VRSQRTEFP, 0x1000014A) \
2679 V(vsl, VSL, 0x100001C4) \
2681 V(vsr, VSR, 0x100002C4) \
2683 V(vsubcuq, VSUBCUQ, 0x10000540) \
2685 V(vsubcuw, VSUBCUW, 0x10000580) \
2687 V(vsubsws, VSUBSWS, 0x10000780) \
2689 V(vsubuqm, VSUBUQM, 0x10000500) \
2691 V(vsubuws, VSUBUWS, 0x10000680) \
2693 V(vsum4sbs, VSUM4SBS, 0x10000708) \
2695 V(vsum4bus, VSUM4BUS, 0x10000608) \
2697 V(vsumsws, VSUMSWS, 0x10000788) \
2699 V(vupkhpx, VUPKHPX, 0x1000034E) \
2701 V(vupklpx, VUPKLPX, 0x100003CE) \
2703 V(vcipher, VCIPHER, 0x10000508) \
2705 V(vcipherlast, VCIPHERLAST, 0x10000509) \
2707 V(vncipher, VNCIPHER, 0x10000548) \
2709 V(vncipherlast, VNCIPHERLAST, 0x10000549) \
2711 V(vsbox, VSBOX, 0x100005C8) \
2713 V(vshasigmad, VSHASIGMAD, 0x100006C2) \
2715 V(vshasigmaw, VSHASIGMAW, 0x10000682) \
2717 V(vmrgew, VMRGEW, 0x1000078C) \
2719 V(vmrgow, VMRGOW, 0x1000068C)
2721#define PPC_VX_OPCODE_LIST(V) \
2722 PPC_VX_OPCODE_A_FORM_LIST(V) \
2723 PPC_VX_OPCODE_B_FORM_LIST(V) \
2724 PPC_VX_OPCODE_C_FORM_LIST(V) \
2725 PPC_VX_OPCODE_D_FORM_LIST(V) \
2726 PPC_VX_OPCODE_E_FORM_LIST(V) \
2727 PPC_VX_OPCODE_F_FORM_LIST(V) \
2728 PPC_VX_OPCODE_G_FORM_LIST(V) \
2729 PPC_VX_OPCODE_UNUSED_LIST(V)
2731#define PPC_XS_OPCODE_LIST(V) \
2733 V(sradi, SRADIX, 0x7C000674)
2735#define PPC_MD_OPCODE_LIST(V) \
2737 V(rldic, RLDIC, 0x78000008) \
2739 V(rldicl, RLDICL, 0x78000000) \
2741 V(rldicr, RLDICR, 0x78000004) \
2743 V(rldimi, RLDIMI, 0x7800000C)
2745#define PPC_SC_OPCODE_LIST(V) \
2747 V(sc, SC, 0x44000002)
2749#define PPC_PREFIX_OPCODE_TYPE_00_LIST(V) \
2750 V(pload_store_8ls, PLOAD_STORE_8LS, 0x4000000) \
2751 V(pplwa, PPLWA, 0xA4000000) \
2752 V(ppld, PPLD, 0xE4000000) \
2753 V(ppstd, PPSTD, 0xF4000000)
2755#define PPC_PREFIX_OPCODE_TYPE_10_LIST(V) \
2756 V(pload_store_mls, PLOAD_STORE_MLS, 0x6000000)
2758#define PPC_OPCODE_LIST(V) \
2759 PPC_X_OPCODE_LIST(V) \
2760 PPC_X_OPCODE_EH_S_FORM_LIST(V) \
2761 PPC_XO_OPCODE_LIST(V) \
2762 PPC_DS_OPCODE_LIST(V) \
2763 PPC_DQ_OPCODE_LIST(V) \
2764 PPC_MDS_OPCODE_LIST(V) \
2765 PPC_MD_OPCODE_LIST(V) \
2766 PPC_XS_OPCODE_LIST(V) \
2767 PPC_D_OPCODE_LIST(V) \
2768 PPC_I_OPCODE_LIST(V) \
2769 PPC_B_OPCODE_LIST(V) \
2770 PPC_XL_OPCODE_LIST(V) \
2771 PPC_A_OPCODE_LIST(V) \
2772 PPC_XFX_OPCODE_LIST(V) \
2773 PPC_M_OPCODE_LIST(V) \
2774 PPC_SC_OPCODE_LIST(V) \
2775 PPC_Z23_OPCODE_LIST(V) \
2776 PPC_Z22_OPCODE_LIST(V) \
2777 PPC_EVX_OPCODE_LIST(V) \
2778 PPC_XFL_OPCODE_LIST(V) \
2779 PPC_EVS_OPCODE_LIST(V) \
2780 PPC_VX_OPCODE_LIST(V) \
2781 PPC_VA_OPCODE_LIST(V) \
2782 PPC_VC_OPCODE_LIST(V) \
2783 PPC_XX1_OPCODE_LIST(V) \
2784 PPC_XX2_OPCODE_LIST(V) \
2785 PPC_XX3_OPCODE_VECTOR_LIST(V) \
2786 PPC_XX3_OPCODE_SCALAR_LIST(V) \
2787 PPC_XX4_OPCODE_LIST(V) \
2788 PPC_PREFIX_OPCODE_TYPE_00_LIST(V) \
2789 PPC_PREFIX_OPCODE_TYPE_10_LIST(V)
2792#define DECLARE_INSTRUCTION(name, opcode_name, opcode_value) \
2793 opcode_name = opcode_value,
2795#undef DECLARE_INSTRUCTION
3002#define DECLARE_STATIC_TYPED_ACCESSOR(return_type, Name) \
3003 static inline return_type Name(Instr instr) { \
3004 char* temp = reinterpret_cast<char*>(&instr); \
3005 return reinterpret_cast<Instruction*>(temp)->Name(); \
3008#define DECLARE_STATIC_ACCESSOR(Name) DECLARE_STATIC_TYPED_ACCESSOR(int, Name)
3012 return *
reinterpret_cast<const Instr*
>(
this);
3023 inline int Bits(
int hi,
int lo)
const {
3048 inline int RTValue()
const {
return Bits(25, 21); }
3053 inline int RCValue()
const {
return Bits(10, 6); }
3064#define OPCODE_CASES(name, opcode_name, opcode_value) case opcode_name:
3073 return static_cast<Opcode>(opcode);
3080 return static_cast<Opcode>(opcode);
3087 return static_cast<Opcode>(opcode);
3092 return static_cast<Opcode>(opcode);
3100 return static_cast<Opcode>(opcode);
3102 opcode = extcode |
BitField(10, 0);
3111 return static_cast<Opcode>(opcode);
3116 return static_cast<Opcode>(opcode);
3121 return static_cast<Opcode>(opcode);
3128 return static_cast<Opcode>(opcode);
3130 opcode = extcode |
BitField(10, 2);
3135 return static_cast<Opcode>(opcode);
3137 opcode = extcode |
BitField(10, 1);
3144 return static_cast<Opcode>(opcode);
3150 return static_cast<Opcode>(opcode);
3152 opcode = extcode |
BitField(10, 2);
3155 return static_cast<Opcode>(opcode);
3160 return static_cast<Opcode>(opcode);
3162 opcode = extcode |
BitField(10, 3);
3167 return static_cast<Opcode>(opcode);
3172 return static_cast<Opcode>(opcode);
3177 return static_cast<Opcode>(opcode);
3182 return static_cast<Opcode>(opcode);
3187 return static_cast<Opcode>(opcode);
3192 return static_cast<Opcode>(opcode);
3197 return static_cast<Opcode>(opcode);
3202 return static_cast<Opcode>(opcode);
3207 return static_cast<Opcode>(opcode);
3210 return static_cast<Opcode>(0);
3237 static int Number(
const char* name);
3247 static int Number(
const char* name);
static const char * names_[kNumDoubleRegisters]
Instr InstructionBits() const
int BitField(int hi, int lo) const
SoftwareInterruptCodes SvcValue() const
int Bits(int hi, int lo) const
uint32_t PrefixOpcodeField() const
Opcode OpcodeField() const
V8_EXPORT_PRIVATE void SetInstructionBits(Instr value, WritableJitAllocation *jit_allocation=nullptr)
static Instruction * At(Address pc)
Opcode OpcodeBase() const
static const char * names_[kNumRegisters]
#define DECLARE_STATIC_ACCESSOR(Name)
#define PPC_VX_OPCODE_A_FORM_LIST(V)
#define PPC_PREFIX_OPCODE_TYPE_00_LIST(V)
#define PPC_DS_OPCODE_LIST(V)
#define PPC_XX1_OPCODE_LIST(V)
#define PPC_VX_OPCODE_G_FORM_LIST(V)
#define PPC_SC_OPCODE_LIST(V)
#define PPC_VA_OPCODE_LIST(V)
#define DECLARE_INSTRUCTION(name, opcode_name, opcode_value)
static constexpr int kLrDwarfCode
#define PPC_VX_OPCODE_C_FORM_LIST(V)
#define PPC_VX_OPCODE_B_FORM_LIST(V)
#define PPC_VX_OPCODE_D_FORM_LIST(V)
#define PPC_EVS_OPCODE_LIST(V)
#define PPC_X_OPCODE_LIST(V)
#define PPC_I_OPCODE_LIST(V)
#define PPC_OPCODE_LIST(V)
static constexpr int kR0DwarfCode
static constexpr int kSpDwarfCode
#define PPC_XL_OPCODE_LIST(V)
#define PPC_XX3_OPCODE_SCALAR_LIST(V)
#define PPC_M_OPCODE_LIST(V)
#define PPC_XX2_OPCODE_VECTOR_A_FORM_LIST(V)
#define PPC_XFX_OPCODE_LIST(V)
#define PPC_XX3_OPCODE_VECTOR_B_FORM_LIST(V)
#define PPC_XX4_OPCODE_LIST(V)
#define PPC_XX3_OPCODE_VECTOR_A_FORM_LIST(V)
#define PPC_VX_OPCODE_E_FORM_LIST(V)
#define PPC_VC_OPCODE_LIST(V)
static constexpr int kFpDwarfCode
#define PPC_D_OPCODE_LIST(V)
#define PPC_VX_OPCODE_UNUSED_LIST(V)
#define PPC_X_OPCODE_EH_S_FORM_LIST(V)
#define PPC_VX_OPCODE_F_FORM_LIST(V)
#define PPC_XO_OPCODE_LIST(V)
#define PPC_B_OPCODE_LIST(V)
#define PPC_Z22_OPCODE_LIST(V)
#define PPC_DQ_OPCODE_LIST(V)
#define PPC_EVX_OPCODE_LIST(V)
#define PPC_Z23_OPCODE_LIST(V)
#define PPC_XX2_OPCODE_UNUSED_LIST(V)
#define PPC_XX2_OPCODE_B_FORM_LIST(V)
#define PPC_XX2_OPCODE_SCALAR_A_FORM_LIST(V)
#define PPC_A_OPCODE_LIST(V)
#define PPC_PREFIX_OPCODE_TYPE_10_LIST(V)
#define OPCODE_CASES(name, opcode_name, opcode_value)
#define PPC_XFL_OPCODE_LIST(V)
#define PPC_MDS_OPCODE_LIST(V)
#define PPC_MD_OPCODE_LIST(V)
#define PPC_XS_OPCODE_LIST(V)
constexpr VFPRoundingMode kRoundToNearest
const Instr kPopInstruction
constexpr uint8_t kPcLoadDelta
constexpr int32_t kDefaultStopCode
constexpr VFPRoundingMode kRoundToMinusInf
constexpr VFPRoundingMode RP
@ kUnsignedGreaterThanEqual
CheckForInexactConversion
@ kCheckForInexactConversion
@ kDontCheckForInexactConversion
constexpr SoftwareInterruptCodes kStopCode
const Instr rtCallRedirInstr
constexpr uint32_t kMaxStopCode
const int kLoadPtrMaxReachBits
const int kNumDoubleRegisters
@ kExt2OpcodeVariant2Mask
constexpr SoftwareInterruptCodes kBreakpoint
Union< Smi, HeapNumber > Number
constexpr VFPRoundingMode RM
constexpr uint8_t kInstrSizeLog2
constexpr VFPRoundingMode kRoundToPlusInf
constexpr SoftwareInterruptCodes kCallRtRedirected
const uint32_t kFPRoundingModeMask
constexpr int kNoRegister
Condition NegateCondition(Condition cond)
constexpr VFPRoundingMode RZ
constexpr size_t kMaxPCRelativeCodeRangeInMB
constexpr int kHasFunctionDescriptorBitShift
constexpr int kHasFunctionDescriptorBitMask
constexpr VFPRoundingMode kRoundToZero
constexpr VFPRoundingMode RN
constexpr uint8_t kInstrSize
constexpr int kRootRegisterBias
const Instr kPushRegPattern
const Instr kPopRegPattern
const int kLoadDoubleMaxReachBits
Condition to_condition(Condition cond)
bool is_signed(Condition cond)
constexpr uint32_t kStopCodeMask
constexpr int kNumRegisters
#define DCHECK(condition)
#define V8_EXPORT_PRIVATE
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName)