| // Copyright 2015 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // This contains the majority of valid opcode combinations |
| // available in cmd/internal/obj/ppc64/asm9.go with |
| // their valid instruction encodings. |
| |
| #include "../../../../../runtime/textflag.h" |
| |
| // In case of index mode instructions, usage of |
| // (Rx)(R0) is equivalent to (Rx+R0) |
| // In case of base+displacement mode instructions if |
| // the offset is 0, usage of (Rx) is equivalent to 0(Rx) |
| TEXT asmtest(SB),DUPOK|NOSPLIT,$0 |
| // move constants |
| MOVD $1, R3 // 38600001 |
| MOVD $-1, R4 // 3880ffff |
| MOVD $65535, R5 // 6005ffff |
| MOVD $65536, R6 // 3cc00001 |
| MOVD $-32767, R5 // 38a08001 |
| MOVD $-32768, R6 // 38c08000 |
| MOVD $1234567, R5 // 6405001260a5d687 or 0600001238a0d687 |
| MOVW $1, R3 // 38600001 |
| MOVW $-1, R4 // 3880ffff |
| MOVW $65535, R5 // 6005ffff |
| MOVW $65536, R6 // 3cc00001 |
| MOVW $-32767, R5 // 38a08001 |
| MOVW $-32768, R6 // 38c08000 |
| MOVW $1234567, R5 // 6405001260a5d687 or 0600001238a0d687 |
| // Hex constant 0x80000001 |
| MOVW $2147483649, R5 // 6405800060a50001 or 0600800038a00001 |
| MOVD $2147483649, R5 // 6405800060a50001 or 0600800038a00001 |
| // Hex constant 0xFFFFFFFF80000001 |
| MOVD $-2147483647, R5 // 3ca0800060a50001 or 0603800038a00001 |
| // Hex constant 0xFFFFFFFE00000002 (load of constant on < power10, pli on >= power10 |
| MOVD $-8589934590, R5 // 3ca00000e8a50000 or 0602000038a00002 |
| |
| // For backwards compatibility, MOVW $const,Rx and MOVWZ $const,Rx assemble identically |
| // and accept the same constants. |
| MOVW $2147483648, R5 // 64058000 |
| MOVWZ $-2147483648, R5 // 3ca08000 |
| |
| // TODO: These are preprocessed by the assembler into MOVD $const>>shift, R5; SLD $shift, R5. |
| // This only captures the MOVD. Should the SLD be appended to the encoding by the test? |
| // Hex constant 0x20004000000 |
| MOVD $2199090364416, R5 // 60058001 |
| // Hex constant 0xFFFFFE0004000000 |
| MOVD $-2198956146688, R5 // 38a08001 |
| // TODO: On GOPPC64={power8,power9}, this is preprocessed into MOVD $-1, R5; RLDC R5, $33, $63, R5. |
| // This only captures the MOVD. Should the RLDC be appended to the encoding by the test? |
| // Hex constant 0xFFFFFFFE00000001 |
| MOVD $-8589934591, R5 // 38a0ffff or 0602000038a00001 |
| |
| // For #66955. Verify this opcode turns into a load and assembles. |
| MOVD $-6795364578871345152, R5 // 3ca00000e8a50000 or 04100000e4a00000 |
| |
| MOVD 8(R3), R4 // e8830008 |
| MOVD (R3)(R4), R5 // 7ca4182a |
| MOVD (R3)(R0), R5 // 7ca0182a |
| MOVD (R3), R5 // e8a30000 |
| MOVW 4(R3), R4 // e8830006 |
| MOVW (R3)(R4), R5 // 7ca41aaa |
| MOVW (R3)(R0), R5 // 7ca01aaa |
| MOVW (R3), R5 // e8a30002 |
| MOVWZ 4(R3), R4 // 80830004 |
| MOVWZ (R3)(R4), R5 // 7ca4182e |
| MOVWZ (R3)(R0), R5 // 7ca0182e |
| MOVWZ (R3), R5 // 80a30000 |
| MOVH 4(R3), R4 // a8830004 |
| MOVH (R3)(R4), R5 // 7ca41aae |
| MOVH (R3)(R0), R5 // 7ca01aae |
| MOVH (R3), R5 // a8a30000 |
| |
| MOVHZ 2(R3), R4 // a0830002 |
| MOVHZ (R3)(R4), R5 // 7ca41a2e |
| MOVHZ (R3)(R0), R5 // 7ca01a2e |
| MOVHZ (R3), R5 // a0a30000 |
| MOVB 1(R3), R4 // 888300017c840774 |
| MOVB (R3)(R4), R5 // 7ca418ae7ca50774 |
| MOVB (R3)(R0), R5 // 7ca018ae7ca50774 |
| MOVB (R3), R5 // 88a300007ca50774 |
| MOVBZ 1(R3), R4 // 88830001 |
| MOVBZ (R3)(R4), R5 // 7ca418ae |
| MOVBZ (R3)(R0), R5 // 7ca018ae |
| MOVBZ (R3), R5 // 88a30000 |
| MOVDBR (R3)(R4), R5 // 7ca41c28 |
| MOVDBR (R3)(R0), R5 // 7ca01c28 |
| MOVDBR (R3), R5 // 7ca01c28 |
| MOVWBR (R3)(R4), R5 // 7ca41c2c |
| MOVWBR (R3)(R0), R5 // 7ca01c2c |
| MOVWBR (R3), R5 // 7ca01c2c |
| MOVHBR (R3)(R4), R5 // 7ca41e2c |
| MOVHBR (R3)(R0), R5 // 7ca01e2c |
| MOVHBR (R3), R5 // 7ca01e2c |
| OR $0, R0, R0 |
| MOVD $foo+4009806848(FP), R5 // 3ca1ef0138a5cc40 or 0600ef0038a1cc40 |
| MOVD $foo(SB), R5 // 3ca0000038a50000 or 0610000038a00000 |
| |
| MOVDU 8(R3), R4 // e8830009 |
| MOVDU (R3)(R4), R5 // 7ca4186a |
| MOVDU (R3)(R0), R5 // 7ca0186a |
| MOVDU (R3), R5 // e8a30001 |
| MOVWU (R3)(R4), R5 // 7ca41aea |
| MOVWU (R3)(R0), R5 // 7ca01aea |
| MOVWZU 4(R3), R4 // 84830004 |
| MOVWZU (R3)(R4), R5 // 7ca4186e |
| MOVWZU (R3)(R0), R5 // 7ca0186e |
| MOVWZU (R3), R5 // 84a30000 |
| MOVHU 2(R3), R4 // ac830002 |
| MOVHU (R3)(R4), R5 // 7ca41aee |
| MOVHU (R3)(R0), R5 // 7ca01aee |
| MOVHU (R3), R5 // aca30000 |
| MOVHZU 2(R3), R4 // a4830002 |
| MOVHZU (R3)(R4), R5 // 7ca41a6e |
| MOVHZU (R3)(R0), R5 // 7ca01a6e |
| MOVHZU (R3), R5 // a4a30000 |
| MOVBU 1(R3), R4 // 8c8300017c840774 |
| MOVBU (R3)(R4), R5 // 7ca418ee7ca50774 |
| MOVBU (R3)(R0), R5 // 7ca018ee7ca50774 |
| MOVBU (R3), R5 // 8ca300007ca50774 |
| MOVBZU 1(R3), R4 // 8c830001 |
| MOVBZU (R3)(R4), R5 // 7ca418ee |
| MOVBZU (R3)(R0), R5 // 7ca018ee |
| MOVBZU (R3), R5 // 8ca30000 |
| |
| MOVD R4, 8(R3) // f8830008 |
| MOVD R5, (R3)(R4) // 7ca4192a |
| MOVD R5, (R3)(R0) // 7ca0192a |
| MOVD R5, (R3) // f8a30000 |
| MOVW R4, 4(R3) // 90830004 |
| MOVW R5, (R3)(R4) // 7ca4192e |
| MOVW R5, (R3)(R0) // 7ca0192e |
| MOVW R5, (R3) // 90a30000 |
| MOVH R4, 2(R3) // b0830002 |
| MOVH R5, (R3)(R4) // 7ca41b2e |
| MOVH R5, (R3)(R0) // 7ca01b2e |
| MOVH R5, (R3) // b0a30000 |
| MOVB R4, 1(R3) // 98830001 |
| MOVB R5, (R3)(R4) // 7ca419ae |
| MOVB R5, (R3)(R0) // 7ca019ae |
| MOVB R5, (R3) // 98a30000 |
| MOVDBR R5, (R3)(R4) // 7ca41d28 |
| MOVDBR R5, (R3)(R0) // 7ca01d28 |
| MOVDBR R5, (R3) // 7ca01d28 |
| MOVWBR R5, (R3)(R4) // 7ca41d2c |
| MOVWBR R5, (R3)(R0) // 7ca01d2c |
| MOVWBR R5, (R3) // 7ca01d2c |
| MOVHBR R5, (R3)(R4) // 7ca41f2c |
| MOVHBR R5, (R3)(R0) // 7ca01f2c |
| MOVHBR R5, (R3) // 7ca01f2c |
| |
| MOVDU R4, 8(R3) // f8830009 |
| MOVDU R5, (R3)(R4) // 7ca4196a |
| MOVDU R5, (R3)(R0) // 7ca0196a |
| MOVDU R5, (R3) // f8a30001 |
| MOVWU R4, 4(R3) // 94830004 |
| MOVWU R5, (R3)(R4) // 7ca4196e |
| MOVWU R5, (R3)(R0) // 7ca0196e |
| MOVHU R4, 2(R3) // b4830002 |
| MOVHU R5, (R3)(R4) // 7ca41b6e |
| MOVHU R5, (R3)(R0) // 7ca01b6e |
| MOVHU R5, (R3) // b4a30000 |
| MOVBU R4, 1(R3) // 9c830001 |
| MOVBU R5, (R3)(R4) // 7ca419ee |
| MOVBU R5, (R3)(R0) // 7ca019ee |
| MOVBU R5, (R3) // 9ca30000 |
| |
| MOVB $0, R4 // 38800000 |
| MOVBZ $0, R4 // 38800000 |
| MOVH $0, R4 // 38800000 |
| MOVHZ $0, R4 // 38800000 |
| MOVW $0, R4 // 38800000 |
| MOVWZ $0, R4 // 38800000 |
| MOVD $0, R4 // 38800000 |
| MOVD $0, R0 // 38000000 |
| |
| ADD $1, R3 // 38630001 |
| ADD $1, R3, R4 // 38830001 |
| ADD $-1, R4 // 3884ffff |
| ADD $-1, R4, R5 // 38a4ffff |
| ADD $65535, R5 // 601fffff7cbf2a14 or 0600000038a5ffff |
| ADD $65535, R5, R6 // 601fffff7cdf2a14 or 0600000038c5ffff |
| ADD $65536, R6 // 3cc60001 |
| ADD $65536, R6, R7 // 3ce60001 |
| ADD $-32767, R5 // 38a58001 |
| ADD $-32767, R5, R4 // 38858001 |
| ADD $-32768, R6 // 38c68000 |
| ADD $-32768, R6, R5 // 38a68000 |
| // Hex constant 0xFFFFFFFE00000000 |
| ADD $-8589934592, R5 // 3fe0fffe600000007bff83e4600000007cbf2a14 or 0602000038a50000 |
| // Hex constant 0xFFFFFFFE00010001 |
| ADD $-8589869055, R5 // 3fe0fffe63ff00017bff83e463ff00017cbf2a14 or 0602000138a50001 |
| |
| //TODO: this compiles to add r5,r6,r0. It should be addi r5,r6,0. |
| // this is OK since r0 == $0, but the latter is preferred. |
| ADD $0, R6, R5 // 7ca60214 |
| |
| //TODO: the assembler rewrites these into ADDIS $19, R5, Rx and ADD $-10617, Rx, Rx, but the test only sees the first ADDIS |
| ADD $1234567, R5 // 3ca50013 or 0600001238a5d687 |
| ADD $1234567, R5, R6 // 3cc50013 or 0600001238c5d687 |
| |
| ADDEX R3, R5, $3, R6 // 7cc32f54 |
| ADDEX R3, $3, R5, R6 // 7cc32f54 |
| ADDIS $8, R3 // 3c630008 |
| ADD $524288, R3 // 3c630008 |
| ADDIS $1000, R3, R4 // 3c8303e8 |
| |
| ANDCC $1, R3 // 70630001 |
| ANDCC $1, R3, R4 // 70640001 |
| ANDCC $-1, R4 // 3be0ffff7fe42039 |
| ANDCC $-1, R4, R5 // 3be0ffff7fe52039 |
| ANDCC $65535, R5 // 70a5ffff |
| ANDCC $65535, R5, R6 // 70a6ffff |
| ANDCC $65536, R6 // 74c60001 |
| ANDCC $65536, R6, R7 // 74c70001 |
| ANDCC $-32767, R5 // 3be080017fe52839 |
| ANDCC $-32767, R5, R4 // 3be080017fe42839 |
| ANDCC $-32768, R6 // 3be080007fe63039 |
| ANDCC $-32768, R5, R6 // 3be080007fe62839 |
| ANDCC $1234567, R5 // 641f001263ffd6877fe52839 |
| ANDCC $1234567, R5, R6 // 641f001263ffd6877fe62839 |
| ANDISCC $1, R3 // 74630001 |
| ANDISCC $1000, R3, R4 // 746403e8 |
| ANDCC $65536000, R3, R4 // 746403e8 |
| |
| OR $1, R3 // 60630001 |
| OR $1, R3, R4 // 60640001 |
| OR $-1, R4 // 3be0ffff7fe42378 |
| OR $-1, R4, R5 // 3be0ffff7fe52378 |
| OR $65535, R5 // 60a5ffff |
| OR $65535, R5, R6 // 60a6ffff |
| OR $65536, R6 // 64c60001 |
| OR $65536, R6, R7 // 64c70001 |
| OR $-32767, R5 // 3be080017fe52b78 |
| OR $-32767, R5, R6 // 3be080017fe62b78 |
| OR $-32768, R6 // 3be080007fe63378 |
| OR $-32768, R6, R7 // 3be080007fe73378 |
| OR $1234567, R5 // 64a5001260a5d687 |
| OR $1234567, R5, R3 // 64a300126063d687 |
| OR $2147483648, R5, R3 // 64a38000 |
| OR $2147483649, R5, R3 // 64a3800060630001 |
| ORIS $255, R3, R4 // 646400ff |
| OR $16711680, R3, R4 // 646400ff |
| |
| XOR $1, R3 // 68630001 |
| XOR $1, R3, R4 // 68640001 |
| XOR $-1, R4 // 3be0ffff7fe42278 |
| XOR $-1, R4, R5 // 3be0ffff7fe52278 |
| XOR $65535, R5 // 68a5ffff |
| XOR $65535, R5, R6 // 68a6ffff |
| XOR $65536, R6 // 6cc60001 |
| XOR $65536, R6, R7 // 6cc70001 |
| XOR $-32767, R5 // 3be080017fe52a78 |
| XOR $-32767, R5, R6 // 3be080017fe62a78 |
| XOR $-32768, R6 // 3be080007fe63278 |
| XOR $-32768, R6, R7 // 3be080007fe73278 |
| XOR $1234567, R5 // 6ca5001268a5d687 |
| XOR $1234567, R5, R3 // 6ca300126863d687 |
| XORIS $15, R3, R4 // 6c64000f |
| XOR $983040, R3, R4 // 6c64000f |
| |
| // TODO: the order of CR operands don't match |
| CMP R3, R4 // 7c232000 |
| CMPU R3, R4 // 7c232040 |
| CMPW R3, R4 // 7c032000 |
| CMPWU R3, R4 // 7c032040 |
| CMPB R3,R4,R4 // 7c6423f8 |
| CMPEQB R3,R4,CR6 // 7f0321c0 |
| |
| ADD R3, R4 // 7c841a14 |
| ADD R3, R4, R5 // 7ca41a14 |
| ADDC R3, R4 // 7c841814 |
| ADDC R3, R4, R5 // 7ca41814 |
| ADDCC R3, R4, R5 // 7ca41a15 |
| ADDE R3, R4 // 7c841914 |
| ADDECC R3, R4 // 7c841915 |
| ADDEV R3, R4 // 7c841d14 |
| ADDEVCC R3, R4 // 7c841d15 |
| ADDV R3, R4 // 7c841e14 |
| ADDVCC R3, R4 // 7c841e15 |
| ADDCCC R3, R4, R5 // 7ca41815 |
| ADDCCC $65536, R4, R5 // 641f0001600000007cbf2015 |
| ADDCCC $65537, R4, R5 // 641f000163ff00017cbf2015 |
| ADDME R3, R4 // 7c8301d4 |
| ADDMECC R3, R4 // 7c8301d5 |
| ADDMEV R3, R4 // 7c8305d4 |
| ADDMEVCC R3, R4 // 7c8305d5 |
| ADDCV R3, R4 // 7c841c14 |
| ADDCVCC R3, R4 // 7c841c15 |
| ADDZE R3, R4 // 7c830194 |
| ADDZECC R3, R4 // 7c830195 |
| ADDZEV R3, R4 // 7c830594 |
| ADDZEVCC R3, R4 // 7c830595 |
| SUBME R3, R4 // 7c8301d0 |
| SUBMECC R3, R4 // 7c8301d1 |
| SUBMEV R3, R4 // 7c8305d0 |
| SUBZE R3, R4 // 7c830190 |
| SUBZECC R3, R4 // 7c830191 |
| SUBZEV R3, R4 // 7c830590 |
| SUBZEVCC R3, R4 // 7c830591 |
| |
| AND R3, R4 // 7c841838 |
| AND R3, R4, R5 // 7c851838 |
| ANDN R3, R4, R5 // 7c851878 |
| ANDCC R3, R4, R5 // 7c851839 |
| ANDNCC R3, R4, R5 // 7c851879 |
| OR R3, R4 // 7c841b78 |
| OR R3, R4, R5 // 7c851b78 |
| ORN R3, R4, R5 // 7c851b38 |
| ORCC R3, R4, R5 // 7c851b79 |
| ORNCC R3, R4, R5 // 7c851b39 |
| XOR R3, R4 // 7c841a78 |
| XOR R3, R4, R5 // 7c851a78 |
| XORCC R3, R4, R5 // 7c851a79 |
| NAND R3, R4, R5 // 7c851bb8 |
| NANDCC R3, R4, R5 // 7c851bb9 |
| EQV R3, R4, R5 // 7c851a38 |
| EQVCC R3, R4, R5 // 7c851a39 |
| NOR R3, R4, R5 // 7c8518f8 |
| NORCC R3, R4, R5 // 7c8518f9 |
| |
| SUB R3, R4 // 7c832050 |
| SUB R3, R4, R5 // 7ca32050 |
| SUBC R3, R4 // 7c832010 |
| SUBC R3, R4, R5 // 7ca32010 |
| SUBCC R3, R4, R5 // 7ca32051 |
| SUBVCC R3, R4, R5 // 7ca32451 |
| SUBCCC R3, R4, R5 // 7ca32011 |
| SUBCV R3, R4, R5 // 7ca32410 |
| SUBCVCC R3, R4, R5 // 7ca32411 |
| SUBMEVCC R3, R4 // 7c8305d1 |
| SUBV R3, R4, R5 // 7ca32450 |
| SUBE R3, R4, R5 // 7ca32110 |
| SUBECC R3, R4, R5 // 7ca32111 |
| SUBEV R3, R4, R5 // 7ca32510 |
| SUBEVCC R3, R4, R5 // 7ca32511 |
| SUBC R3, $65536, R4 // 3fe00001600000007c83f810 |
| SUBC R3, $65537, R4 // 3fe0000163ff00017c83f810 |
| |
| MULLW R3, R4 // 7c8419d6 |
| MULLW R3, R4, R5 // 7ca419d6 |
| MULLW $10, R3 // 1c63000a |
| MULLW $10000000, R3 // 641f009863ff96807c7f19d6 |
| |
| MULLWCC R3, R4, R5 // 7ca419d7 |
| MULHW R3, R4, R5 // 7ca41896 |
| |
| MULHWU R3, R4, R5 // 7ca41816 |
| MULLD R3, R4 // 7c8419d2 |
| MULLD R4, R4, R5 // 7ca421d2 |
| MULLD $20, R4 // 1c840014 |
| MULLD $200000000, R4 // 641f0beb63ffc2007c9f21d2 |
| |
| MULLDCC R3, R4, R5 // 7ca419d3 |
| MULHD R3, R4, R5 // 7ca41892 |
| MULHDCC R3, R4, R5 // 7ca41893 |
| MULHDU R3, R4, R5 // 7ca41812 |
| MULHDUCC R3, R4, R5 // 7ca41813 |
| |
| MULLWV R3, R4 // 7c841dd6 |
| MULLWV R3, R4, R5 // 7ca41dd6 |
| MULLWVCC R3, R4, R5 // 7ca41dd7 |
| MULHWUCC R3, R4, R5 // 7ca41817 |
| MULLDV R3, R4, R5 // 7ca41dd2 |
| MULLDVCC R3, R4, R5 // 7ca41dd3 |
| |
| DIVD R3,R4 // 7c841bd2 |
| DIVD R3, R4, R5 // 7ca41bd2 |
| DIVW R3, R4 // 7c841bd6 |
| DIVW R3, R4, R5 // 7ca41bd6 |
| DIVDCC R3,R4, R5 // 7ca41bd3 |
| DIVWCC R3,R4, R5 // 7ca41bd7 |
| DIVDU R3, R4, R5 // 7ca41b92 |
| DIVWU R3, R4, R5 // 7ca41b96 |
| DIVDV R3, R4, R5 // 7ca41fd2 |
| DIVWV R3, R4, R5 // 7ca41fd6 |
| DIVDUCC R3, R4, R5 // 7ca41b93 |
| DIVWUCC R3, R4, R5 // 7ca41b97 |
| DIVDVCC R3, R4, R5 // 7ca41fd3 |
| DIVWVCC R3, R4, R5 // 7ca41fd7 |
| DIVDUV R3, R4, R5 // 7ca41f92 |
| DIVDUVCC R3, R4, R5 // 7ca41f93 |
| DIVWUVCC R3, R4, R5 // 7ca41f97 |
| DIVWUV R3, R4, R5 // 7ca41f96 |
| DIVDE R3, R4, R5 // 7ca41b52 |
| DIVDECC R3, R4, R5 // 7ca41b53 |
| DIVDEU R3, R4, R5 // 7ca41b12 |
| DIVDEUCC R3, R4, R5 // 7ca41b13 |
| |
| REM R3, R4, R5 // 7fe41bd67fff19d67cbf2050 |
| REMU R3, R4, R5 // 7fe41b967fff19d67bff00287cbf2050 |
| REMD R3, R4, R5 // 7fe41bd27fff19d27cbf2050 |
| REMDU R3, R4, R5 // 7fe41b927fff19d27cbf2050 |
| |
| MADDHD R3,R4,R5,R6 // 10c32170 |
| MADDHDU R3,R4,R5,R6 // 10c32171 |
| |
| MODUD R3, R4, R5 // 7ca41a12 |
| MODUW R3, R4, R5 // 7ca41a16 |
| MODSD R3, R4, R5 // 7ca41e12 |
| MODSW R3, R4, R5 // 7ca41e16 |
| |
| SLW $8, R3, R4 // 5464402e |
| SLW R3, R4, R5 // 7c851830 |
| SLWCC R3, R4 // 7c841831 |
| SLD $16, R3, R4 // 786483e4 |
| SLD R3, R4, R5 // 7c851836 |
| SLDCC R3, R4 // 7c841837 |
| |
| SRW $8, R3, R4 // 5464c23e |
| SRW R3, R4, R5 // 7c851c30 |
| SRWCC R3, R4 // 7c841c31 |
| SRAW $8, R3, R4 // 7c644670 |
| SRAW R3, R4, R5 // 7c851e30 |
| SRAWCC R3, R4 // 7c841e31 |
| SRD $16, R3, R4 // 78648402 |
| SRD R3, R4, R5 // 7c851c36 |
| SRDCC R3, R4 // 7c841c37 |
| SRAD $16, R3, R4 // 7c648674 |
| SRAD R3, R4, R5 // 7c851e34 |
| SRDCC R3, R4 // 7c841c37 |
| ROTLW $16, R3, R4 // 5464803e |
| ROTLW R3, R4, R5 // 5c85183e |
| ROTL $16, R3, R4 // 78648000 |
| EXTSWSLI $3, R4, R5 // 7c851ef4 |
| EXTSWSLICC $16, R3, R4 // 7c6486f5 |
| EXTSB R3, R4 // 7c640774 |
| EXTSBCC R3, R4 // 7c640775 |
| EXTSH R3, R4 // 7c640734 |
| EXTSHCC R3, R4 // 7c640735 |
| EXTSW R3, R4 // 7c6407b4 |
| EXTSWCC R3, R4 // 7c6407b5 |
| RLWMI $7, R3, $4026531855, R6 // 50663f06 |
| RLWMI $7, R3, $1, R6 // 50663ffe |
| RLWMI $7, R3, $2147483648, R6 // 50663800 |
| RLWMI $7, R3, $65535, R6 // 50663c3e |
| RLWMI $7, R3, $16, $31, R6 // 50663c3e |
| RLWMICC $7, R3, $65535, R6 // 50663c3f |
| RLWMICC $7, R3, $16, $31, R6 // 50663c3f |
| RLWNM $3, R4, $7, R6 // 54861f7e |
| RLWNM $0, R4, $7, R6 // 5486077e |
| RLWNM R0, R4, $7, R6 // 5c86077e |
| RLWNM $3, R4, $29, $31, R6 // 54861f7e |
| RLWNM $0, R4, $29, $31, R6 // 5486077e |
| RLWNM R0, R4, $29, $31, R6 // 5c86077e |
| RLWNM R3, R4, $7, R6 // 5c861f7e |
| RLWNM R3, R4, $29, $31, R6 // 5c861f7e |
| RLWNMCC $3, R4, $7, R6 // 54861f7f |
| RLWNMCC $3, R4, $29, $31, R6 // 54861f7f |
| RLWNMCC R3, R4, $7, R6 // 5c861f7f |
| RLWNMCC R3, R4, $29, $31, R6 // 5c861f7f |
| RLDMI $0, R4, $7, R6 // 7886076c |
| RLDMICC $0, R4, $7, R6 // 7886076d |
| RLDIMI $0, R4, $7, R6 // 788601cc |
| RLDIMICC $0, R4, $7, R6 // 788601cd |
| RLDC $0, R4, $15, R6 // 78860728 |
| RLDC R3, $32, $12, R4 // 7864030a |
| RLDC R3, $8, $32, R4 // 78644028 |
| RLDCCC R3, $32, $12, R4 // 7864030b |
| RLDCCC R3, $8, $32, R4 // 78644029 |
| RLDCCC $0, R4, $15, R6 // 78860729 |
| RLDCL $0, R4, $7, R6 // 78860770 |
| RLDCLCC $0, R4, $15, R6 // 78860721 |
| RLDCR $0, R4, $-16, R6 // 788606f2 |
| RLDCRCC $0, R4, $-16, R6 // 788606f3 |
| RLDICL $0, R4, $15, R6 // 788603c0 |
| RLDICLCC $0, R4, $15, R6 // 788603c1 |
| RLDICR $0, R4, $15, R6 // 788603c4 |
| RLDICRCC $0, R4, $15, R6 // 788603c5 |
| RLDIC $0, R4, $15, R6 // 788603c8 |
| RLDICCC $0, R4, $15, R6 // 788603c9 |
| CLRLSLWI $16, R5, $8, R4 // 54a4422e |
| CLRLSLDI $24, R4, $2, R3 // 78831588 |
| RLDCR $1, R1, $-16, R1 // 78210ee4 |
| RLDCRCC $1, R1, $-16, R1 // 78210ee5 |
| CNTLZW R3,R4 // 7c640034 |
| CNTLZWCC R3,R4 // 7c640035 |
| CNTLZD R3, R4 // 7c640074 |
| CNTLZDCC R3, R4 // 7c640075 |
| CNTTZW R3,R4 // 7c640434 |
| CNTTZWCC R3,R4 // 7c640435 |
| CNTTZD R3,R4 // 7c640474 |
| CNTTZDCC R3,R4 // 7c640475 |
| NEG R3, R4 // 7c8300d0 |
| NEGCC R3, R4 // 7c8300d1 |
| NEGV R3, R4 // 7c8304d0 |
| NEGVCC R3, R4 // 7c8304d1 |
| |
| BEQ 0(PC) // 41820000 |
| BEQ CR1,0(PC) // 41860000 |
| BGE 0(PC) // 40800000 |
| BGE CR2,0(PC) // 40880000 |
| BGT 4(PC) // 41810010 |
| BGT CR3,4(PC) // 418d0010 |
| BLE 0(PC) // 40810000 |
| BLE CR4,0(PC) // 40910000 |
| BLT 0(PC) // 41800000 |
| BLT CR5,0(PC) // 41940000 |
| BNE 0(PC) // 40820000 |
| BLT CR6,0(PC) // 41980000 |
| BVC 0(PC) // 40830000 |
| BVS 0(PC) // 41830000 |
| JMP 8(PC) // 48000010 |
| |
| NOP |
| NOP R2 |
| NOP F2 |
| NOP $4 |
| |
| CRAND CR0GT, CR0EQ, CR0SO // 4c620a02 |
| CRANDN CR0GT, CR0EQ, CR0SO // 4c620902 |
| CREQV CR0GT, CR0EQ, CR0SO // 4c620a42 |
| CRNAND CR0GT, CR0EQ, CR0SO // 4c6209c2 |
| CRNOR CR0GT, CR0EQ, CR0SO // 4c620842 |
| CROR CR0GT, CR0EQ, CR0SO // 4c620b82 |
| CRORN CR0GT, CR0EQ, CR0SO // 4c620b42 |
| CRXOR CR0GT, CR0EQ, CR0SO // 4c620982 |
| |
| ISEL $0, R3, R4, R5 // 7ca3201e |
| ISEL $1, R3, R4, R5 // 7ca3205e |
| ISEL $2, R3, R4, R5 // 7ca3209e |
| ISEL $3, R3, R4, R5 // 7ca320de |
| ISEL $4, R3, R4, R5 // 7ca3211e |
| ISEL $31, R3, R4, R5 // 7ca327de |
| ISEL CR0LT, R3, R4, R5 // 7ca3201e |
| ISEL CR0GT, R3, R4, R5 // 7ca3205e |
| ISEL CR0EQ, R3, R4, R5 // 7ca3209e |
| ISEL CR0SO, R3, R4, R5 // 7ca320de |
| ISEL CR1LT, R3, R4, R5 // 7ca3211e |
| ISEL CR7SO, R3, R4, R5 // 7ca327de |
| POPCNTB R3, R4 // 7c6400f4 |
| POPCNTW R3, R4 // 7c6402f4 |
| POPCNTD R3, R4 // 7c6403f4 |
| |
| PASTECC R3, R4 // 7c23270d |
| COPY R3, R4 // 7c23260c |
| |
| // load-and-reserve |
| LBAR (R4)(R3*1),$1,R5 // 7ca32069 |
| LBAR (R4)(R0),$1,R5 // 7ca02069 |
| LBAR (R4),$0,R5 // 7ca02068 |
| LBAR (R3),R5 // 7ca01868 |
| LHAR (R4)(R3*1),$1,R5 // 7ca320e9 |
| LHAR (R4)(R0),$1,R5 // 7ca020e9 |
| LHAR (R4),$0,R5 // 7ca020e8 |
| LHAR (R3),R5 // 7ca018e8 |
| LWAR (R4)(R3*1),$1,R5 // 7ca32029 |
| LWAR (R4)(R0),$1,R5 // 7ca02029 |
| LWAR (R4),$0,R5 // 7ca02028 |
| LWAR (R3),R5 // 7ca01828 |
| LDAR (R4)(R3*1),$1,R5 // 7ca320a9 |
| LDAR (R4)(R0),$1,R5 // 7ca020a9 |
| LDAR (R4),$0,R5 // 7ca020a8 |
| LDAR (R3),R5 // 7ca018a8 |
| |
| LSW (R3)(R4), R5 // 7ca41c2a |
| LSW (R3)(R0), R5 // 7ca01c2a |
| LSW (R3), R5 // 7ca01c2a |
| |
| STBCCC R3, (R4)(R5) // 7c65256d |
| STBCCC R3, (R4)(R0) // 7c60256d |
| STBCCC R3, (R4) // 7c60256d |
| STWCCC R3, (R4)(R5) // 7c65212d |
| STWCCC R3, (R4)(R0) // 7c60212d |
| STWCCC R3, (R4) // 7c60212d |
| STDCCC R3, (R4)(R5) // 7c6521ad |
| STDCCC R3, (R4)(R0) // 7c6021ad |
| STDCCC R3, (R4) // 7c6021ad |
| STHCCC R3, (R4)(R5) // 7c6525ad |
| STHCCC R3, (R4)(R0) // 7c6025ad |
| STHCCC R3, (R4) // 7c6025ad |
| STSW R3, (R4)(R5) // 7c65252a |
| STSW R3, (R4)(R0) // 7c60252a |
| STSW R3, (R4) // 7c60252a |
| |
| SYNC // 7c0004ac |
| ISYNC // 4c00012c |
| LWSYNC // 7c2004ac |
| EIEIO // 7c0006ac |
| PTESYNC // 7c4004ac |
| TLBIE R3 // 7c001a64 |
| TLBIEL R3 // 7c001a24 |
| TLBSYNC // 7c00046c |
| HRFID // 4c000224 |
| SLBIA // 7c0003e4 |
| SLBIE R3 // 7c001b64 |
| SLBMFEE R3, R4 // 7c801f26 |
| SLBMFEV R3, R4 // 7c801ea6 |
| SLBMTE R3, R4 // 7c801b24 |
| |
| TW $31, R0, R0 // 7fe00008 |
| TD $31, R0, R0 // 7fe00088 |
| DARN $1, R5 // 7ca105e6 |
| |
| DCBF (R3)(R4) // 7c0418ac |
| DCBF (R3)(R0) // 7c0018ac |
| DCBF (R3) // 7c0018ac |
| |
| DCBST (R3)(R4) // 7c04186c |
| DCBST (R3)(R0) // 7c00186c |
| DCBST (R3) // 7c00186c |
| DCBZ (R3)(R4) // 7c041fec |
| DCBZ (R3)(R0) // 7c001fec |
| DCBZ (R3) // 7c001fec |
| DCBT (R3)(R4) // 7c041a2c |
| DCBT (R3)(R0) // 7c001a2c |
| DCBT (R3) // 7c001a2c |
| ICBI (R3)(R4) // 7c041fac |
| ICBI (R3)(R0) // 7c001fac |
| ICBI (R3) // 7c001fac |
| |
| // float constants |
| FMOVD $(0.0), F1 // f0210cd0 |
| FMOVD $(-0.0), F1 // f0210cd0fc200850 |
| |
| FMOVD 8(R3), F1 // c8230008 |
| FMOVD (R3)(R4), F1 // 7c241cae |
| FMOVD (R3)(R0), F1 // 7c201cae |
| FMOVD (R3), F1 // c8230000 |
| FMOVDU 8(R3), F1 // cc230008 |
| FMOVDU (R3)(R4), F1 // 7c241cee |
| FMOVDU (R3)(R0), F1 // 7c201cee |
| FMOVDU (R3), F1 // cc230000 |
| FMOVS 4(R3), F1 // c0230004 |
| FMOVS (R3)(R4), F1 // 7c241c2e |
| FMOVS (R3)(R0), F1 // 7c201c2e |
| FMOVS (R3), F1 // c0230000 |
| FMOVSU 4(R3), F1 // c4230004 |
| FMOVSU (R3)(R4), F1 // 7c241c6e |
| FMOVSU (R3)(R0), F1 // 7c201c6e |
| FMOVSU (R3), F1 // c4230000 |
| FMOVSX (R3)(R4), F1 // 7c241eae |
| FMOVSX (R3)(R0), F1 // 7c201eae |
| FMOVSX (R3), F1 // 7c201eae |
| FMOVSZ (R3)(R4), F1 // 7c241eee |
| FMOVSZ (R3)(R0), F1 // 7c201eee |
| FMOVSZ (R3), F1 // 7c201eee |
| |
| FMOVD F1, 8(R3) // d8230008 |
| FMOVD F1, (R3)(R4) // 7c241dae |
| FMOVD F1, (R3)(R0) // 7c201dae |
| FMOVD F1, (R3) // d8230000 |
| FMOVDU F1, 8(R3) // dc230008 |
| FMOVDU F1, (R3)(R4) // 7c241dee |
| FMOVDU F1, (R3)(R0) // 7c201dee |
| FMOVDU F1, (R3) // dc230000 |
| FMOVS F1, 4(R3) // d0230004 |
| FMOVS F1, (R3)(R4) // 7c241d2e |
| FMOVS F1, (R3)(R0) // 7c201d2e |
| FMOVS F1, (R3) // d0230000 |
| FMOVSU F1, 4(R3) // d4230004 |
| FMOVSU F1, (R3)(R4) // 7c241d6e |
| FMOVSU F1, (R3)(R0) // 7c201d6e |
| FMOVSU F1, (R3) // d4230000 |
| FMOVSX F1, (R3)(R4) // 7c241fae |
| FMOVSX F1, (R3)(R0) // 7c201fae |
| FMOVSX F1, (R3) // 7c201fae |
| FADD F1, F2 // fc42082a |
| FADD F1, F2, F3 // fc62082a |
| FADDCC F1, F2, F3 // fc62082b |
| FMOVDCC F1, F2 // fc400891 |
| FADDS F1, F2 // ec42082a |
| FADDS F1, F2, F3 // ec62082a |
| FADDSCC F1, F2, F3 // ec62082b |
| FSUB F1, F2 // fc420828 |
| FSUB F1, F2, F3 // fc620828 |
| FSUBCC F1, F2, F3 // fc620829 |
| FSUBS F1, F2 // ec420828 |
| FSUBS F1, F2, F3 // ec620828 |
| FSUBCC F1, F2, F3 // fc620829 |
| FSUBSCC F1, F2, F3 // ec620829 |
| FMUL F1, F2 // fc420072 |
| FMUL F1, F2, F3 // fc620072 |
| FMULCC F1, F2, F3 // fc620073 |
| FMULS F1, F2 // ec420072 |
| FMULS F1, F2, F3 // ec620072 |
| FMULSCC F1, F2, F3 // ec620073 |
| FDIV F1, F2 // fc420824 |
| FDIV F1, F2, F3 // fc620824 |
| FDIVCC F1, F2, F3 // fc620825 |
| FDIVS F1, F2 // ec420824 |
| FDIVS F1, F2, F3 // ec620824 |
| FDIVSCC F1, F2, F3 // ec620825 |
| FTDIV F1, F2, $2 // fd011100 |
| FTSQRT F1, $2 // fd000940 |
| FMADD F1, F2, F3, F4 // fc8110fa |
| FMADDCC F1, F2, F3, F4 // fc8110fb |
| FMADDS F1, F2, F3, F4 // ec8110fa |
| FMADDSCC F1, F2, F3, F4 // ec8110fb |
| FMSUB F1, F2, F3, F4 // fc8110f8 |
| FMSUBCC F1, F2, F3, F4 // fc8110f9 |
| FMSUBS F1, F2, F3, F4 // ec8110f8 |
| FMSUBSCC F1, F2, F3, F4 // ec8110f9 |
| FNMADD F1, F2, F3, F4 // fc8110fe |
| FNMADDCC F1, F2, F3, F4 // fc8110ff |
| FNMADDS F1, F2, F3, F4 // ec8110fe |
| FNMADDSCC F1, F2, F3, F4 // ec8110ff |
| FNMSUB F1, F2, F3, F4 // fc8110fc |
| FNMSUBCC F1, F2, F3, F4 // fc8110fd |
| FNMSUBS F1, F2, F3, F4 // ec8110fc |
| FNMSUBSCC F1, F2, F3, F4 // ec8110fd |
| FSEL F1, F2, F3, F4 // fc8110ee |
| FSELCC F1, F2, F3, F4 // fc8110ef |
| FABS F1, F2 // fc400a10 |
| FNABS F1, F2 // fc400910 |
| FABSCC F1, F2 // fc400a11 |
| FNABSCC F1, F2 // fc400911 |
| FNEG F1, F2 // fc400850 |
| FNEGCC F1, F2 // fc400851 |
| FABSCC F1, F2 // fc400a11 |
| FRSP F1, F2 // fc400818 |
| FRSPCC F1, F2 // fc400819 |
| FCTIW F1, F2 // fc40081c |
| FCTIWCC F1, F2 // fc40081d |
| FCTIWZ F1, F2 // fc40081e |
| FCTIWZCC F1, F2 // fc40081f |
| FCTID F1, F2 // fc400e5c |
| FCTIDCC F1, F2 // fc400e5d |
| FCTIDZ F1, F2 // fc400e5e |
| FCTIDZCC F1, F2 // fc400e5f |
| FCFID F1, F2 // fc400e9c |
| FCFIDCC F1, F2 // fc400e9d |
| FCFIDU F1, F2 // fc400f9c |
| FCFIDUCC F1, F2 // fc400f9d |
| FCFIDS F1, F2 // ec400e9c |
| FCFIDSCC F1, F2 // ec400e9d |
| FRES F1, F2 // ec400830 |
| FRESCC F1, F2 // ec400831 |
| FRIM F1, F2 // fc400bd0 |
| FRIMCC F1, F2 // fc400bd1 |
| FRIP F1, F2 // fc400b90 |
| FRIPCC F1, F2 // fc400b91 |
| FRIZ F1, F2 // fc400b50 |
| FRIZCC F1, F2 // fc400b51 |
| FRIN F1, F2 // fc400b10 |
| FRINCC F1, F2 // fc400b11 |
| FRSQRTE F1, F2 // fc400834 |
| FRSQRTECC F1, F2 // fc400835 |
| FSQRT F1, F2 // fc40082c |
| FSQRTCC F1, F2 // fc40082d |
| FSQRTS F1, F2 // ec40082c |
| FSQRTSCC F1, F2 // ec40082d |
| FCPSGN F1, F2 // fc420810 |
| FCPSGNCC F1, F2 // fc420811 |
| FCMPO F1, F2 // fc011040 |
| FCMPU F1, F2 // fc011000 |
| LVX (R3)(R4), V1 // 7c2418ce |
| LVX (R3)(R0), V1 // 7c2018ce |
| LVX (R3), V1 // 7c2018ce |
| LVXL (R3)(R4), V1 // 7c241ace |
| LVXL (R3)(R0), V1 // 7c201ace |
| LVXL (R3), V1 // 7c201ace |
| LVSL (R3)(R4), V1 // 7c24180c |
| LVSL (R3)(R0), V1 // 7c20180c |
| LVSL (R3), V1 // 7c20180c |
| LVSR (R3)(R4), V1 // 7c24184c |
| LVSR (R3)(R0), V1 // 7c20184c |
| LVSR (R3), V1 // 7c20184c |
| LVEBX (R3)(R4), V1 // 7c24180e |
| LVEBX (R3)(R0), V1 // 7c20180e |
| LVEBX (R3), V1 // 7c20180e |
| LVEHX (R3)(R4), V1 // 7c24184e |
| LVEHX (R3)(R0), V1 // 7c20184e |
| LVEHX (R3), V1 // 7c20184e |
| LVEWX (R3)(R4), V1 // 7c24188e |
| LVEWX (R3)(R0), V1 // 7c20188e |
| LVEWX (R3), V1 // 7c20188e |
| STVX V1, (R3)(R4) // 7c2419ce |
| STVX V1, (R3)(R0) // 7c2019ce |
| STVX V1, (R3) // 7c2019ce |
| STVXL V1, (R3)(R4) // 7c241bce |
| STVXL V1, (R3)(R0) // 7c201bce |
| STVXL V1, (R3) // 7c201bce |
| STVEBX V1, (R3)(R4) // 7c24190e |
| STVEBX V1, (R3)(R0) // 7c20190e |
| STVEBX V1, (R3) // 7c20190e |
| STVEHX V1, (R3)(R4) // 7c24194e |
| STVEHX V1, (R3)(R0) // 7c20194e |
| STVEHX V1, (R3) // 7c20194e |
| STVEWX V1, (R3)(R4) // 7c24198e |
| STVEWX V1, (R3)(R0) // 7c20198e |
| STVEWX V1, (R3) // 7c20198e |
| |
| VAND V1, V2, V3 // 10611404 |
| VANDC V1, V2, V3 // 10611444 |
| VNAND V1, V2, V3 // 10611584 |
| VOR V1, V2, V3 // 10611484 |
| VORC V1, V2, V3 // 10611544 |
| VXOR V1, V2, V3 // 106114c4 |
| VNOR V1, V2, V3 // 10611504 |
| VEQV V1, V2, V3 // 10611684 |
| VADDUBM V1, V2, V3 // 10611000 |
| VADDUHM V1, V2, V3 // 10611040 |
| VADDUWM V1, V2, V3 // 10611080 |
| VADDUDM V1, V2, V3 // 106110c0 |
| VADDUQM V1, V2, V3 // 10611100 |
| VADDCUQ V1, V2, V3 // 10611140 |
| VADDCUW V1, V2, V3 // 10611180 |
| VADDUBS V1, V2, V3 // 10611200 |
| VADDUHS V1, V2, V3 // 10611240 |
| VADDUWS V1, V2, V3 // 10611280 |
| VADDSBS V1, V2, V3 // 10611300 |
| VADDSHS V1, V2, V3 // 10611340 |
| VADDSWS V1, V2, V3 // 10611380 |
| VADDEUQM V1, V2, V3, V4 // 108110fc |
| VADDECUQ V1, V2, V3, V4 // 108110fd |
| VSUBUBM V1, V2, V3 // 10611400 |
| VSUBUHM V1, V2, V3 // 10611440 |
| VSUBUWM V1, V2, V3 // 10611480 |
| VSUBUDM V1, V2, V3 // 106114c0 |
| VSUBUQM V1, V2, V3 // 10611500 |
| VSUBCUQ V1, V2, V3 // 10611540 |
| VSUBCUW V1, V2, V3 // 10611580 |
| VSUBUBS V1, V2, V3 // 10611600 |
| VSUBUHS V1, V2, V3 // 10611640 |
| VSUBUWS V1, V2, V3 // 10611680 |
| VSUBSBS V1, V2, V3 // 10611700 |
| VSUBSHS V1, V2, V3 // 10611740 |
| VSUBSWS V1, V2, V3 // 10611780 |
| VSUBEUQM V1, V2, V3, V4 // 108110fe |
| VSUBECUQ V1, V2, V3, V4 // 108110ff |
| VMULESB V1, V2, V3 // 10611308 |
| VMULESW V1, V2, V3 // 10611388 |
| VMULOSB V1, V2, V3 // 10611108 |
| VMULEUB V1, V2, V3 // 10611208 |
| VMULOUB V1, V2, V3 // 10611008 |
| VMULESH V1, V2, V3 // 10611348 |
| VMULOSH V1, V2, V3 // 10611148 |
| VMULEUH V1, V2, V3 // 10611248 |
| VMULOUH V1, V2, V3 // 10611048 |
| VMULESH V1, V2, V3 // 10611348 |
| VMULOSW V1, V2, V3 // 10611188 |
| VMULEUW V1, V2, V3 // 10611288 |
| VMULOUW V1, V2, V3 // 10611088 |
| VMULUWM V1, V2, V3 // 10611089 |
| VPMSUMB V1, V2, V3 // 10611408 |
| VPMSUMH V1, V2, V3 // 10611448 |
| VPMSUMW V1, V2, V3 // 10611488 |
| VPMSUMD V1, V2, V3 // 106114c8 |
| VMSUMUDM V1, V2, V3, V4 // 108110e3 |
| VRLB V1, V2, V3 // 10611004 |
| VRLH V1, V2, V3 // 10611044 |
| VRLW V1, V2, V3 // 10611084 |
| VRLD V1, V2, V3 // 106110c4 |
| VSLB V1, V2, V3 // 10611104 |
| VSLH V1, V2, V3 // 10611144 |
| VSLW V1, V2, V3 // 10611184 |
| VSL V1, V2, V3 // 106111c4 |
| VSLO V1, V2, V3 // 1061140c |
| VSRB V1, V2, V3 // 10611204 |
| VSRH V1, V2, V3 // 10611244 |
| VSRW V1, V2, V3 // 10611284 |
| VSRD V1, V2, V3 // 106116c4 |
| VSR V1, V2, V3 // 106112c4 |
| VSRO V1, V2, V3 // 1061144c |
| VSLD V1, V2, V3 // 106115c4 |
| VSRAB V1, V2, V3 // 10611304 |
| VSRAH V1, V2, V3 // 10611344 |
| VSRAW V1, V2, V3 // 10611384 |
| VSRAD V1, V2, V3 // 106113c4 |
| VSLDOI $3, V1, V2, V3 // 106110ec |
| VCLZB V1, V2 // 10400f02 |
| VCLZH V1, V2 // 10400f42 |
| VCLZW V1, V2 // 10400f82 |
| VCLZD V1, V2 // 10400fc2 |
| VPOPCNTB V1, V2 // 10400f03 |
| VPOPCNTH V1, V2 // 10400f43 |
| VPOPCNTW V1, V2 // 10400f83 |
| VPOPCNTD V1, V2 // 10400fc3 |
| VCMPEQUB V1, V2, V3 // 10611006 |
| VCMPEQUBCC V1, V2, V3 // 10611406 |
| VCMPEQUH V1, V2, V3 // 10611046 |
| VCMPEQUHCC V1, V2, V3 // 10611446 |
| VCMPEQUW V1, V2, V3 // 10611086 |
| VCMPEQUWCC V1, V2, V3 // 10611486 |
| VCMPEQUD V1, V2, V3 // 106110c7 |
| VCMPEQUDCC V1, V2, V3 // 106114c7 |
| VCMPGTUB V1, V2, V3 // 10611206 |
| VCMPGTUBCC V1, V2, V3 // 10611606 |
| VCMPGTUH V1, V2, V3 // 10611246 |
| VCMPGTUHCC V1, V2, V3 // 10611646 |
| VCMPGTUW V1, V2, V3 // 10611286 |
| VCMPGTUWCC V1, V2, V3 // 10611686 |
| VCMPGTUD V1, V2, V3 // 106112c7 |
| VCMPGTUDCC V1, V2, V3 // 106116c7 |
| VCMPGTSB V1, V2, V3 // 10611306 |
| VCMPGTSBCC V1, V2, V3 // 10611706 |
| VCMPGTSH V1, V2, V3 // 10611346 |
| VCMPGTSHCC V1, V2, V3 // 10611746 |
| VCMPGTSW V1, V2, V3 // 10611386 |
| VCMPGTSWCC V1, V2, V3 // 10611786 |
| VCMPGTSD V1, V2, V3 // 106113c7 |
| VCMPGTSDCC V1, V2, V3 // 106117c7 |
| VCMPNEZB V1, V2, V3 // 10611107 |
| VCMPNEZBCC V1, V2, V3 // 10611507 |
| VCMPNEB V1, V2, V3 // 10611007 |
| VCMPNEBCC V1, V2, V3 // 10611407 |
| VCMPNEH V1, V2, V3 // 10611047 |
| VCMPNEHCC V1, V2, V3 // 10611447 |
| VCMPNEW V1, V2, V3 // 10611087 |
| VCMPNEWCC V1, V2, V3 // 10611487 |
| VPERM V1, V2, V3, V4 // 108110eb |
| VPERMR V1, V2, V3, V4 // 108110fb |
| VPERMXOR V1, V2, V3, V4 // 108110ed |
| VBPERMQ V1, V2, V3 // 1061154c |
| VBPERMD V1, V2, V3 // 106115cc |
| VSEL V1, V2, V3, V4 // 108110ea |
| VSPLTB $1, V1, V2 // 10410a0c |
| VSPLTH $1, V1, V2 // 10410a4c |
| VSPLTW $1, V1, V2 // 10410a8c |
| VSPLTISB $1, V1 // 1021030c |
| VSPLTISW $1, V1 // 1021038c |
| VSPLTISH $1, V1 // 1021034c |
| VCIPHER V1, V2, V3 // 10611508 |
| VCIPHERLAST V1, V2, V3 // 10611509 |
| VNCIPHER V1, V2, V3 // 10611548 |
| VNCIPHERLAST V1, V2, V3 // 10611549 |
| VSBOX V1, V2 // 104105c8 |
| VSHASIGMAW $1, V1, $15, V2 // 10418e82 |
| VSHASIGMAW $1, $15, V1, V2 // 10418e82 |
| VSHASIGMAD $2, V1, $15, V2 // 104196c2 |
| VSHASIGMAD $2, $15, V1, V2 // 104196c2 |
| |
| LXVD2X (R3)(R4), VS1 // 7c241e98 |
| LXVD2X (R3)(R0), VS1 // 7c201e98 |
| LXVD2X (R3), VS1 // 7c201e98 |
| LXVDSX (R3)(R4), VS1 // 7c241a98 |
| LXVDSX (R3)(R0), VS1 // 7c201a98 |
| LXVDSX (R3), VS1 // 7c201a98 |
| LXVH8X (R3)(R4), VS1 // 7c241e58 |
| LXVH8X (R3)(R0), VS1 // 7c201e58 |
| LXVH8X (R3), VS1 // 7c201e58 |
| LXVB16X (R3)(R4), VS1 // 7c241ed8 |
| LXVB16X (R3)(R0), VS1 // 7c201ed8 |
| LXVB16X (R3), VS1 // 7c201ed8 |
| LXVW4X (R3)(R4), VS1 // 7c241e18 |
| LXVW4X (R3)(R0), VS1 // 7c201e18 |
| LXVW4X (R3), VS1 // 7c201e18 |
| LXV 16(R3), VS1 // f4230011 |
| LXV (R3), VS1 // f4230001 |
| LXV 16(R3), VS33 // f4230019 |
| LXV (R3), VS33 // f4230009 |
| LXV 16(R3), V1 // f4230019 |
| LXV (R3), V1 // f4230009 |
| LXVL R3, R4, VS1 // 7c23221a |
| LXVLL R3, R4, VS1 // 7c23225a |
| LXVX R3, R4, VS1 // 7c232218 |
| LXSDX (R3)(R4), VS1 // 7c241c98 |
| LXSDX (R3)(R0), VS1 // 7c201c98 |
| LXSDX (R3), VS1 // 7c201c98 |
| STXVD2X VS1, (R3)(R4) // 7c241f98 |
| STXVD2X VS1, (R3)(R0) // 7c201f98 |
| STXVD2X VS1, (R3) // 7c201f98 |
| STXVW4X VS1, (R3)(R4) // 7c241f18 |
| STXVW4X VS1, (R3)(R0) // 7c201f18 |
| STXVW4X VS1, (R3) // 7c201f18 |
| STXV VS1,16(R3) // f4230015 |
| STXV VS1,(R3) // f4230005 |
| STXVL VS1, R3, R4 // 7c23231a |
| STXVLL VS1, R3, R4 // 7c23235a |
| STXVX VS1, R3, R4 // 7c232318 |
| STXVB16X VS1, (R4)(R5) // 7c2527d8 |
| STXVB16X VS1, (R4)(R0) // 7c2027d8 |
| STXVB16X VS1, (R4) // 7c2027d8 |
| STXVH8X VS1, (R4)(R5) // 7c252758 |
| STXVH8X VS1, (R4)(R0) // 7c202758 |
| STXVH8X VS1, (R4) // 7c202758 |
| STXSDX VS1, (R3)(R4) // 7c241d98 |
| STXSDX VS1, (R4)(R0) // 7c202598 |
| STXSDX VS1, (R4) // 7c202598 |
| LXSIWAX (R3)(R4), VS1 // 7c241898 |
| LXSIWAX (R3)(R0), VS1 // 7c201898 |
| LXSIWAX (R3), VS1 // 7c201898 |
| LXSIWZX (R3)(R4), VS1 // 7c241818 |
| LXSIWZX (R3)(R0), VS1 // 7c201818 |
| LXSIWZX (R3), VS1 // 7c201818 |
| STXSIWX VS1, (R3)(R4) // 7c241918 |
| STXSIWX VS1, (R3)(R0) // 7c201918 |
| STXSIWX VS1, (R3) // 7c201918 |
| MFVSRD VS1, R3 // 7c230066 |
| MTFPRD R3, F0 // 7c030166 |
| MFVRD V0, R3 // 7c030067 |
| MFVSRLD VS63,R4 // 7fe40267 |
| MFVSRLD V31,R4 // 7fe40267 |
| MFVSRWZ VS33,R4 // 7c2400e7 |
| MFVSRWZ V1,R4 // 7c2400e7 |
| MTVSRD R3, VS1 // 7c230166 |
| MTVSRDD R3, R4, VS1 // 7c232366 |
| MTVSRDD R3, R4, VS33 // 7c232367 |
| MTVSRDD R3, R4, V1 // 7c232367 |
| MTVRD R3, V13 // 7da30167 |
| MTVSRWA R4, VS31 // 7fe401a6 |
| MTVSRWS R4, VS32 // 7c040327 |
| MTVSRWZ R4, VS63 // 7fe401e7 |
| MTFSB0 $2 // fc40008c |
| MTFSB0CC $2 // fc40008d |
| MTFSB1 $2 // fc40004c |
| MTFSB1CC $2 // fc40004d |
| XXBRQ VS0, VS1 // f03f076c |
| XXBRD VS0, VS1 // f037076c |
| XXBRW VS1, VS2 // f04f0f6c |
| XXBRH VS2, VS3 // f067176c |
| XXLAND VS1, VS2, VS3 // f0611410 |
| XXLAND V1, V2, V3 // f0611417 |
| XXLAND VS33, VS34, VS35 // f0611417 |
| XXLANDC VS1, VS2, VS3 // f0611450 |
| XXLEQV VS0, VS1, VS2 // f0400dd0 |
| XXLNAND VS0, VS1, VS2 // f0400d90 |
| XXLNOR VS0, VS1, VS32 // f0000d11 |
| XXLOR VS1, VS2, VS3 // f0611490 |
| XXLORC VS1, VS2, VS3 // f0611550 |
| XXLORQ VS1, VS2, VS3 // f0611490 |
| XXLXOR VS1, VS2, VS3 // f06114d0 |
| XXSEL VS1, VS2, VS3, VS4 // f08110f0 |
| XXSEL VS33, VS34, VS35, VS36 // f08110ff |
| XXSEL V1, V2, V3, V4 // f08110ff |
| XXMRGHW VS1, VS2, VS3 // f0611090 |
| XXMRGLW VS1, VS2, VS3 // f0611190 |
| XXSPLTW VS1, $1, VS2 // f0410a90 |
| XXSPLTW VS33, $1, VS34 // f0410a93 |
| XXSPLTW V1, $1, V2 // f0410a93 |
| XXPERM VS1, VS2, VS3 // f06110d0 |
| XXSLDWI VS1, VS2, $1, VS3 // f0611110 |
| XXSLDWI V1, V2, $1, V3 // f0611117 |
| XXSLDWI V1, $1, V2, V3 // f0611117 |
| XXSLDWI VS33, VS34, $1, VS35 // f0611117 |
| XXSLDWI VS33, $1, VS34, VS35 // f0611117 |
| XXPERMDI VS33, VS34, $1, VS35 // f0611157 |
| XXPERMDI VS33, $1, VS34, VS35 // f0611157 |
| XSCVDPSP VS1, VS2 // f0400c24 |
| XVCVDPSP VS1, VS2 // f0400e24 |
| XSCVSXDDP VS1, VS2 // f0400de0 |
| XVCVDPSXDS VS1, VS2 // f0400f60 |
| XVCVSXDDP VS1, VS2 // f0400fe0 |
| XSCVDPSPN VS1,VS32 // f0000c2d |
| XSCVDPSP VS1,VS32 // f0000c25 |
| XSCVDPSXDS VS1,VS32 // f0000d61 |
| XSCVDPSXWS VS1,VS32 // f0000961 |
| XSCVDPUXDS VS1,VS32 // f0000d21 |
| XSCVDPUXWS VS1,VS32 // f0000921 |
| XSCVSPDPN VS1,VS32 // f0000d2d |
| XSCVSPDP VS1,VS32 // f0000d25 |
| XSCVSXDDP VS1,VS32 // f0000de1 |
| XSCVSXDSP VS1,VS32 // f0000ce1 |
| XSCVUXDDP VS1,VS32 // f0000da1 |
| XSCVUXDSP VS1,VS32 // f0000ca1 |
| XVCVDPSP VS1,VS32 // f0000e25 |
| XVCVDPSXDS VS1,VS32 // f0000f61 |
| XVCVDPSXWS VS1,VS32 // f0000b61 |
| XVCVDPUXDS VS1,VS32 // f0000f21 |
| XVCVDPUXWS VS1,VS32 // f0000b21 |
| XVCVSPDP VS1,VS32 // f0000f25 |
| XVCVSPSXDS VS1,VS32 // f0000e61 |
| XVCVSPSXWS VS1,VS32 // f0000a61 |
| XVCVSPUXDS VS1,VS32 // f0000e21 |
| XVCVSPUXWS VS1,VS32 // f0000a21 |
| XVCVSXDDP VS1,VS32 // f0000fe1 |
| XVCVSXDSP VS1,VS32 // f0000ee1 |
| XVCVSXWDP VS1,VS32 // f0000be1 |
| XVCVSXWSP VS1,VS32 // f0000ae1 |
| XVCVUXDDP VS1,VS32 // f0000fa1 |
| XVCVUXDSP VS1,VS32 // f0000ea1 |
| XVCVUXWDP VS1,VS32 // f0000ba1 |
| XVCVUXWSP VS1,VS32 // f0000aa1 |
| |
| MOVD R3, LR // 7c6803a6 |
| MOVD R3, CTR // 7c6903a6 |
| MOVD R3, XER // 7c6103a6 |
| MOVD LR, R3 // 7c6802a6 |
| MOVD CTR, R3 // 7c6902a6 |
| MOVD XER, R3 // 7c6102a6 |
| MOVFL CR3, CR1 // 4c8c0000 |
| |
| MOVW CR0, R1 // 7c380026 |
| MOVW CR7, R1 // 7c301026 |
| MOVW CR, R1 // 7c200026 |
| |
| MOVW R1, CR // 7c2ff120 |
| MOVFL R1, CR // 7c2ff120 |
| MOVW R1, CR2 // 7c320120 |
| MOVFL R1, CR2 // 7c320120 |
| MOVFL R1, $255 // 7c2ff120 |
| MOVFL R1, $1 // 7c301120 |
| MOVFL R1, $128 // 7c380120 |
| MOVFL R1, $3 // 7c203120 |
| MOVMW 4(R3), R4 // b8830004 |
| |
| |
| // Verify supported bdnz/bdz encodings. |
| BC 16,0,0(PC) // BC $16, CR0LT, 0(PC) // 42000000 |
| BDNZ 0(PC) // 42000000 |
| BDZ 0(PC) // 42400000 |
| BC 18,0,0(PC) // BC $18, CR0LT, 0(PC) // 42400000 |
| |
| // Verify the supported forms of bcclr[l] |
| BC $20,CR0LT,$1,LR // 4e800820 |
| BC $20,CR0LT,$0,LR // 4e800020 |
| BC $20,CR0LT,LR // 4e800020 |
| BC $20,CR0GT,LR // 4e810020 |
| BC 20,CR0LT,LR // BC $20,CR0LT,LR // 4e800020 |
| BC 20,undefined_symbol,LR // BC $20,CR0LT,LR // 4e800020 |
| BC 20,undefined_symbol+1,LR // BC $20,CR0GT,LR // 4e810020 |
| JMP LR // 4e800020 |
| BR LR // JMP LR // 4e800020 |
| BCL $20,CR0LT,$1,LR // 4e800821 |
| BCL $20,CR0LT,$0,LR // 4e800021 |
| BCL $20,CR0LT,LR // 4e800021 |
| BCL $20,CR0GT,LR // 4e810021 |
| BCL 20,CR0LT,LR // BCL $20,CR0LT,LR // 4e800021 |
| BCL 20,undefined_symbol,LR // BCL $20,CR0LT,LR // 4e800021 |
| BCL 20,undefined_symbol+1,LR // BCL $20,CR0GT,LR // 4e810021 |
| |
| // Verify the supported forms of bcctr[l] |
| BC $20,CR0LT,CTR // 4e800420 |
| BC $20,CR0GT,CTR // 4e810420 |
| BC 20,CR0LT,CTR // BC $20,CR0LT,CTR // 4e800420 |
| BC 20,undefined_symbol,CTR // BC $20,CR0LT,CTR // 4e800420 |
| BC 20,undefined_symbol+1,CTR // BC $20,CR0GT,CTR // 4e810420 |
| JMP CTR // 4e800420 |
| BR CTR // JMP CTR // 4e800420 |
| BCL $20,CR0LT,CTR // 4e800421 |
| BCL $20,CR0GT,CTR // 4e810421 |
| BCL 20,CR0LT,CTR // BCL $20,CR0LT,CTR // 4e800421 |
| BCL 20,undefined_symbol,CTR // BCL $20,CR0LT,CTR // 4e800421 |
| BCL 20,undefined_symbol+1,CTR // BCL $20,CR0GT,CTR // 4e810421 |
| |
| // Verify bc encoding (without pic enabled) |
| BC $16,CR0LT,0(PC) // 42000000 |
| BCL $16,CR0LT,0(PC) // 42000001 |
| BC $18,CR0LT,0(PC) // 42400000 |
| |
| MOVD SPR(3), 4(R1) // 7fe302a6fbe10004 |
| MOVD XER, 4(R1) // 7fe102a6fbe10004 |
| MOVD 4(R1), SPR(3) // ebe100047fe303a6 |
| MOVD 4(R1), XER // ebe100047fe103a6 |
| PNOP // 0700000000000000 |
| |
| SETB CR1,R3 // 7c640100 |
| VCLZLSBB V1,R2 // 10400e02 |
| VCTZLSBB V1,R2 // 10410e02 |
| |
| XSMAXJDP VS1,VS2,VS3 // f0611480 |
| XSMINJDP VS1,VS2,VS3 // f06114c0 |
| |
| RET |