1// Copyright 2015 The Go Authors. All rights reserved.2// Use of this source code is governed by a BSD-style3// license that can be found in the LICENSE file.45// This contains the majority of valid opcode combinations6// available in cmd/internal/obj/ppc64/asm9.go with7// their valid instruction encodings.89#include "../../../../../runtime/textflag.h"1011// In case of index mode instructions, usage of12// (Rx)(R0) is equivalent to (Rx+R0)13// In case of base+displacement mode instructions if14// the offset is 0, usage of (Rx) is equivalent to 0(Rx)15TEXT asmtest(SB),DUPOK|NOSPLIT,$016 // move constants17 MOVD $1, R3 // 3860000118 MOVD $-1, R4 // 3880ffff19 MOVD $65535, R5 // 6005ffff20 MOVD $65536, R6 // 3cc0000121 MOVD $-32767, R5 // 38a0800122 MOVD $-32768, R6 // 38c0800023 MOVD $1234567, R5 // 6405001260a5d687 or 0600001238a0d68724 MOVW $1, R3 // 3860000125 MOVW $-1, R4 // 3880ffff26 MOVW $65535, R5 // 6005ffff27 MOVW $65536, R6 // 3cc0000128 MOVW $-32767, R5 // 38a0800129 MOVW $-32768, R6 // 38c0800030 MOVW $1234567, R5 // 6405001260a5d687 or 0600001238a0d68731 // Hex constant 0x8000000132 MOVW $2147483649, R5 // 6405800060a50001 or 0600800038a0000133 MOVD $2147483649, R5 // 6405800060a50001 or 0600800038a0000134 // Hex constant 0xFFFFFFFF8000000135 MOVD $-2147483647, R5 // 3ca0800060a50001 or 0603800038a0000136 // Hex constant 0xFFFFFFFE00000002 (load of constant on < power10, pli on >= power1037 MOVD $-8589934590, R5 // 3ca00000e8a50000 or 0602000038a000023839 // For backwards compatibility, MOVW $const,Rx and MOVWZ $const,Rx assemble identically40 // and accept the same constants.41 MOVW $2147483648, R5 // 6405800042 MOVWZ $-2147483648, R5 // 3ca080004344 // TODO: These are preprocessed by the assembler into MOVD $const>>shift, R5; SLD $shift, R5.45 // This only captures the MOVD. Should the SLD be appended to the encoding by the test?46 // Hex constant 0x2000400000047 MOVD $2199090364416, R5 // 6005800148 // Hex constant 0xFFFFFE000400000049 MOVD $-2198956146688, R5 // 38a0800150 // TODO: On GOPPC64={power8,power9}, this is preprocessed into MOVD $-1, R5; RLDC R5, $33, $63, R5.51 // This only captures the MOVD. Should the RLDC be appended to the encoding by the test?52 // Hex constant 0xFFFFFFFE0000000153 MOVD $-8589934591, R5 // 38a0ffff or 0602000038a000015455 // For #66955. Verify this opcode turns into a load and assembles.56 MOVD $-6795364578871345152, R5 // 3ca00000e8a50000 or 04100000e4a000005758 MOVD 8(R3), R4 // e883000859 MOVD (R3)(R4), R5 // 7ca4182a60 MOVD (R3)(R0), R5 // 7ca0182a61 MOVD (R3), R5 // e8a3000062 MOVW 4(R3), R4 // e883000663 MOVW (R3)(R4), R5 // 7ca41aaa64 MOVW (R3)(R0), R5 // 7ca01aaa65 MOVW (R3), R5 // e8a3000266 MOVWZ 4(R3), R4 // 8083000467 MOVWZ (R3)(R4), R5 // 7ca4182e68 MOVWZ (R3)(R0), R5 // 7ca0182e69 MOVWZ (R3), R5 // 80a3000070 MOVH 4(R3), R4 // a883000471 MOVH (R3)(R4), R5 // 7ca41aae72 MOVH (R3)(R0), R5 // 7ca01aae73 MOVH (R3), R5 // a8a300007475 MOVHZ 2(R3), R4 // a083000276 MOVHZ (R3)(R4), R5 // 7ca41a2e77 MOVHZ (R3)(R0), R5 // 7ca01a2e78 MOVHZ (R3), R5 // a0a3000079 MOVB 1(R3), R4 // 888300017c84077480 MOVB (R3)(R4), R5 // 7ca418ae7ca5077481 MOVB (R3)(R0), R5 // 7ca018ae7ca5077482 MOVB (R3), R5 // 88a300007ca5077483 MOVBZ 1(R3), R4 // 8883000184 MOVBZ (R3)(R4), R5 // 7ca418ae85 MOVBZ (R3)(R0), R5 // 7ca018ae86 MOVBZ (R3), R5 // 88a3000087 MOVDBR (R3)(R4), R5 // 7ca41c2888 MOVDBR (R3)(R0), R5 // 7ca01c2889 MOVDBR (R3), R5 // 7ca01c2890 MOVWBR (R3)(R4), R5 // 7ca41c2c91 MOVWBR (R3)(R0), R5 // 7ca01c2c92 MOVWBR (R3), R5 // 7ca01c2c93 MOVHBR (R3)(R4), R5 // 7ca41e2c94 MOVHBR (R3)(R0), R5 // 7ca01e2c95 MOVHBR (R3), R5 // 7ca01e2c96 OR $0, R0, R097 MOVD $foo+4009806848(FP), R5 // 3ca1ef0138a5cc40 or 0600ef0038a1cc4098 MOVD $foo(SB), R5 // 3ca0000038a50000 or 0610000038a0000099100 MOVDU 8(R3), R4 // e8830009101 MOVDU (R3)(R4), R5 // 7ca4186a102 MOVDU (R3)(R0), R5 // 7ca0186a103 MOVDU (R3), R5 // e8a30001104 MOVWU (R3)(R4), R5 // 7ca41aea105 MOVWU (R3)(R0), R5 // 7ca01aea106 MOVWZU 4(R3), R4 // 84830004107 MOVWZU (R3)(R4), R5 // 7ca4186e108 MOVWZU (R3)(R0), R5 // 7ca0186e109 MOVWZU (R3), R5 // 84a30000110 MOVHU 2(R3), R4 // ac830002111 MOVHU (R3)(R4), R5 // 7ca41aee112 MOVHU (R3)(R0), R5 // 7ca01aee113 MOVHU (R3), R5 // aca30000114 MOVHZU 2(R3), R4 // a4830002115 MOVHZU (R3)(R4), R5 // 7ca41a6e116 MOVHZU (R3)(R0), R5 // 7ca01a6e117 MOVHZU (R3), R5 // a4a30000118 MOVBU 1(R3), R4 // 8c8300017c840774119 MOVBU (R3)(R4), R5 // 7ca418ee7ca50774120 MOVBU (R3)(R0), R5 // 7ca018ee7ca50774121 MOVBU (R3), R5 // 8ca300007ca50774122 MOVBZU 1(R3), R4 // 8c830001123 MOVBZU (R3)(R4), R5 // 7ca418ee124 MOVBZU (R3)(R0), R5 // 7ca018ee125 MOVBZU (R3), R5 // 8ca30000126127 MOVD R4, 8(R3) // f8830008128 MOVD R5, (R3)(R4) // 7ca4192a129 MOVD R5, (R3)(R0) // 7ca0192a130 MOVD R5, (R3) // f8a30000131 MOVW R4, 4(R3) // 90830004132 MOVW R5, (R3)(R4) // 7ca4192e133 MOVW R5, (R3)(R0) // 7ca0192e134 MOVW R5, (R3) // 90a30000135 MOVH R4, 2(R3) // b0830002136 MOVH R5, (R3)(R4) // 7ca41b2e137 MOVH R5, (R3)(R0) // 7ca01b2e138 MOVH R5, (R3) // b0a30000139 MOVB R4, 1(R3) // 98830001140 MOVB R5, (R3)(R4) // 7ca419ae141 MOVB R5, (R3)(R0) // 7ca019ae142 MOVB R5, (R3) // 98a30000143 MOVDBR R5, (R3)(R4) // 7ca41d28144 MOVDBR R5, (R3)(R0) // 7ca01d28145 MOVDBR R5, (R3) // 7ca01d28146 MOVWBR R5, (R3)(R4) // 7ca41d2c147 MOVWBR R5, (R3)(R0) // 7ca01d2c148 MOVWBR R5, (R3) // 7ca01d2c149 MOVHBR R5, (R3)(R4) // 7ca41f2c150 MOVHBR R5, (R3)(R0) // 7ca01f2c151 MOVHBR R5, (R3) // 7ca01f2c152153 MOVDU R4, 8(R3) // f8830009154 MOVDU R5, (R3)(R4) // 7ca4196a155 MOVDU R5, (R3)(R0) // 7ca0196a156 MOVDU R5, (R3) // f8a30001157 MOVWU R4, 4(R3) // 94830004158 MOVWU R5, (R3)(R4) // 7ca4196e159 MOVWU R5, (R3)(R0) // 7ca0196e160 MOVHU R4, 2(R3) // b4830002161 MOVHU R5, (R3)(R4) // 7ca41b6e162 MOVHU R5, (R3)(R0) // 7ca01b6e163 MOVHU R5, (R3) // b4a30000164 MOVBU R4, 1(R3) // 9c830001165 MOVBU R5, (R3)(R4) // 7ca419ee166 MOVBU R5, (R3)(R0) // 7ca019ee167 MOVBU R5, (R3) // 9ca30000168169 MOVB $0, R4 // 38800000170 MOVBZ $0, R4 // 38800000171 MOVH $0, R4 // 38800000172 MOVHZ $0, R4 // 38800000173 MOVW $0, R4 // 38800000174 MOVWZ $0, R4 // 38800000175 MOVD $0, R4 // 38800000176 MOVD $0, R0 // 38000000177178 ADD $1, R3 // 38630001179 ADD $1, R3, R4 // 38830001180 ADD $-1, R4 // 3884ffff181 ADD $-1, R4, R5 // 38a4ffff182 ADD $65535, R5 // 601fffff7cbf2a14 or 0600000038a5ffff183 ADD $65535, R5, R6 // 601fffff7cdf2a14 or 0600000038c5ffff184 ADD $65536, R6 // 3cc60001185 ADD $65536, R6, R7 // 3ce60001186 ADD $-32767, R5 // 38a58001187 ADD $-32767, R5, R4 // 38858001188 ADD $-32768, R6 // 38c68000189 ADD $-32768, R6, R5 // 38a68000190 // Hex constant 0xFFFFFFFE00000000191 ADD $-8589934592, R5 // 3fe0fffe600000007bff83e4600000007cbf2a14 or 0602000038a50000192 // Hex constant 0xFFFFFFFE00010001193 ADD $-8589869055, R5 // 3fe0fffe63ff00017bff83e463ff00017cbf2a14 or 0602000138a50001194195 //TODO: this compiles to add r5,r6,r0. It should be addi r5,r6,0.196 // this is OK since r0 == $0, but the latter is preferred.197 ADD $0, R6, R5 // 7ca60214198199 //TODO: the assembler rewrites these into ADDIS $19, R5, Rx and ADD $-10617, Rx, Rx, but the test only sees the first ADDIS200 ADD $1234567, R5 // 3ca50013 or 0600001238a5d687201 ADD $1234567, R5, R6 // 3cc50013 or 0600001238c5d687202203 ADDEX R3, R5, $3, R6 // 7cc32f54204 ADDEX R3, $3, R5, R6 // 7cc32f54205 ADDIS $8, R3 // 3c630008206 ADD $524288, R3 // 3c630008207 ADDIS $1000, R3, R4 // 3c8303e8208209 ANDCC $1, R3 // 70630001210 ANDCC $1, R3, R4 // 70640001211 ANDCC $-1, R4 // 3be0ffff7fe42039212 ANDCC $-1, R4, R5 // 3be0ffff7fe52039213 ANDCC $65535, R5 // 70a5ffff214 ANDCC $65535, R5, R6 // 70a6ffff215 ANDCC $65536, R6 // 74c60001216 ANDCC $65536, R6, R7 // 74c70001217 ANDCC $-32767, R5 // 3be080017fe52839218 ANDCC $-32767, R5, R4 // 3be080017fe42839219 ANDCC $-32768, R6 // 3be080007fe63039220 ANDCC $-32768, R5, R6 // 3be080007fe62839221 ANDCC $1234567, R5 // 641f001263ffd6877fe52839222 ANDCC $1234567, R5, R6 // 641f001263ffd6877fe62839223 ANDISCC $1, R3 // 74630001224 ANDISCC $1000, R3, R4 // 746403e8225 ANDCC $65536000, R3, R4 // 746403e8226227 OR $1, R3 // 60630001228 OR $1, R3, R4 // 60640001229 OR $-1, R4 // 3be0ffff7fe42378230 OR $-1, R4, R5 // 3be0ffff7fe52378231 OR $65535, R5 // 60a5ffff232 OR $65535, R5, R6 // 60a6ffff233 OR $65536, R6 // 64c60001234 OR $65536, R6, R7 // 64c70001235 OR $-32767, R5 // 3be080017fe52b78236 OR $-32767, R5, R6 // 3be080017fe62b78237 OR $-32768, R6 // 3be080007fe63378238 OR $-32768, R6, R7 // 3be080007fe73378239 OR $1234567, R5 // 64a5001260a5d687240 OR $1234567, R5, R3 // 64a300126063d687241 OR $2147483648, R5, R3 // 64a38000242 OR $2147483649, R5, R3 // 64a3800060630001243 ORIS $255, R3, R4 // 646400ff244 OR $16711680, R3, R4 // 646400ff245246 XOR $1, R3 // 68630001247 XOR $1, R3, R4 // 68640001248 XOR $-1, R4 // 3be0ffff7fe42278249 XOR $-1, R4, R5 // 3be0ffff7fe52278250 XOR $65535, R5 // 68a5ffff251 XOR $65535, R5, R6 // 68a6ffff252 XOR $65536, R6 // 6cc60001253 XOR $65536, R6, R7 // 6cc70001254 XOR $-32767, R5 // 3be080017fe52a78255 XOR $-32767, R5, R6 // 3be080017fe62a78256 XOR $-32768, R6 // 3be080007fe63278257 XOR $-32768, R6, R7 // 3be080007fe73278258 XOR $1234567, R5 // 6ca5001268a5d687259 XOR $1234567, R5, R3 // 6ca300126863d687260 XORIS $15, R3, R4 // 6c64000f261 XOR $983040, R3, R4 // 6c64000f262263 // TODO: cleanup inconsistency of printing CMPx opcodes with explicit CR arguments.264 CMP R3, R4 // 7c232000265 CMP R3, R0 // 7c230000266 CMP R3, R0, CR1 // CMP R3,CR1,R0 // 7ca30000267 CMPU R3, R4 // 7c232040268 CMPU R3, R0 // 7c230040269 CMPU R3, R0, CR2 // CMPU R3,CR2,R0 // 7d230040270 CMPW R3, R4 // 7c032000271 CMPW R3, R0 // 7c030000272 CMPW R3, R0, CR3 // CMPW R3,CR3,R0 // 7d830000273 CMPWU R3, R4 // 7c032040274 CMPWU R3, R0 // 7c030040275 CMPWU R3, R0, CR4 // CMPWU R3,CR4,R0 // 7e030040276 CMP R3, $0 // 2c230000277 CMPU R3, $0 // 28230000278 CMPW R3, $0 // 2c030000279 CMPWU R3, $0 // 28030000280 CMP R3, $0, CR0 // CMP R3,CR0,$0 // 2c230000281 CMPU R3, $0, CR1 // CMPU R3,CR1,$0 // 28a30000282 CMPW R3, $0, CR2 // CMPW R3,CR2,$0 // 2d030000283 CMPW R3, $-32768, CR2 // CMPW R3,CR2,$-32768 // 2d038000284 CMPWU R3, $0, CR3 // CMPWU R3,CR3,$0 // 29830000285 CMPWU R3, $0x8008, CR3 // CMPWU R3,CR3,$32776 // 29838008286287 CMPEQB R3,R4,CR6 // 7f0321c0288 CMPB R3,R4,R4 // 7c6423f8289290 ADD R3, R4 // 7c841a14291 ADD R3, R4, R5 // 7ca41a14292 ADDC R3, R4 // 7c841814293 ADDC R3, R4, R5 // 7ca41814294 ADDCC R3, R4, R5 // 7ca41a15295 ADDE R3, R4 // 7c841914296 ADDECC R3, R4 // 7c841915297 ADDEV R3, R4 // 7c841d14298 ADDEVCC R3, R4 // 7c841d15299 ADDV R3, R4 // 7c841e14300 ADDVCC R3, R4 // 7c841e15301 ADDCCC R3, R4, R5 // 7ca41815302 ADDCCC $65536, R4, R5 // 641f0001600000007cbf2015303 ADDCCC $65537, R4, R5 // 641f000163ff00017cbf2015304 ADDME R3, R4 // 7c8301d4305 ADDMECC R3, R4 // 7c8301d5306 ADDMEV R3, R4 // 7c8305d4307 ADDMEVCC R3, R4 // 7c8305d5308 ADDCV R3, R4 // 7c841c14309 ADDCVCC R3, R4 // 7c841c15310 ADDZE R3, R4 // 7c830194311 ADDZECC R3, R4 // 7c830195312 ADDZEV R3, R4 // 7c830594313 ADDZEVCC R3, R4 // 7c830595314 SUBME R3, R4 // 7c8301d0315 SUBMECC R3, R4 // 7c8301d1316 SUBMEV R3, R4 // 7c8305d0317 SUBZE R3, R4 // 7c830190318 SUBZECC R3, R4 // 7c830191319 SUBZEV R3, R4 // 7c830590320 SUBZEVCC R3, R4 // 7c830591321322 AND R3, R4 // 7c841838323 AND R3, R4, R5 // 7c851838324 ANDN R3, R4, R5 // 7c851878325 ANDCC R3, R4, R5 // 7c851839326 ANDNCC R3, R4, R5 // 7c851879327 OR R3, R4 // 7c841b78328 OR R3, R4, R5 // 7c851b78329 ORN R3, R4, R5 // 7c851b38330 ORCC R3, R4, R5 // 7c851b79331 ORNCC R3, R4, R5 // 7c851b39332 XOR R3, R4 // 7c841a78333 XOR R3, R4, R5 // 7c851a78334 XORCC R3, R4, R5 // 7c851a79335 NAND R3, R4, R5 // 7c851bb8336 NANDCC R3, R4, R5 // 7c851bb9337 EQV R3, R4, R5 // 7c851a38338 EQVCC R3, R4, R5 // 7c851a39339 NOR R3, R4, R5 // 7c8518f8340 NORCC R3, R4, R5 // 7c8518f9341342 SUB R3, R4 // 7c832050343 SUB R3, R4, R5 // 7ca32050344 SUBC R3, R4 // 7c832010345 SUBC R3, R4, R5 // 7ca32010346 SUBCC R3, R4, R5 // 7ca32051347 SUBVCC R3, R4, R5 // 7ca32451348 SUBCCC R3, R4, R5 // 7ca32011349 SUBCV R3, R4, R5 // 7ca32410350 SUBCVCC R3, R4, R5 // 7ca32411351 SUBMEVCC R3, R4 // 7c8305d1352 SUBV R3, R4, R5 // 7ca32450353 SUBE R3, R4, R5 // 7ca32110354 SUBECC R3, R4, R5 // 7ca32111355 SUBEV R3, R4, R5 // 7ca32510356 SUBEVCC R3, R4, R5 // 7ca32511357 SUBC R3, $65536, R4 // 3fe00001600000007c83f810358 SUBC R3, $65537, R4 // 3fe0000163ff00017c83f810359360 MULLW R3, R4 // 7c8419d6361 MULLW R3, R4, R5 // 7ca419d6362 MULLW $10, R3 // 1c63000a363 MULLW $10000000, R3 // 641f009863ff96807c7f19d6364365 MULLWCC R3, R4, R5 // 7ca419d7366 MULHW R3, R4, R5 // 7ca41896367368 MULHWU R3, R4, R5 // 7ca41816369 MULLD R3, R4 // 7c8419d2370 MULLD R4, R4, R5 // 7ca421d2371 MULLD $20, R4 // 1c840014372 MULLD $200000000, R4 // 641f0beb63ffc2007c9f21d2373374 MULLDCC R3, R4, R5 // 7ca419d3375 MULHD R3, R4, R5 // 7ca41892376 MULHDCC R3, R4, R5 // 7ca41893377 MULHDU R3, R4, R5 // 7ca41812378 MULHDUCC R3, R4, R5 // 7ca41813379380 MULLWV R3, R4 // 7c841dd6381 MULLWV R3, R4, R5 // 7ca41dd6382 MULLWVCC R3, R4, R5 // 7ca41dd7383 MULHWUCC R3, R4, R5 // 7ca41817384 MULLDV R3, R4, R5 // 7ca41dd2385 MULLDVCC R3, R4, R5 // 7ca41dd3386387 DIVD R3,R4 // 7c841bd2388 DIVD R3, R4, R5 // 7ca41bd2389 DIVW R3, R4 // 7c841bd6390 DIVW R3, R4, R5 // 7ca41bd6391 DIVDCC R3,R4, R5 // 7ca41bd3392 DIVWCC R3,R4, R5 // 7ca41bd7393 DIVDU R3, R4, R5 // 7ca41b92394 DIVWU R3, R4, R5 // 7ca41b96395 DIVDV R3, R4, R5 // 7ca41fd2396 DIVWV R3, R4, R5 // 7ca41fd6397 DIVDUCC R3, R4, R5 // 7ca41b93398 DIVWUCC R3, R4, R5 // 7ca41b97399 DIVDVCC R3, R4, R5 // 7ca41fd3400 DIVWVCC R3, R4, R5 // 7ca41fd7401 DIVDUV R3, R4, R5 // 7ca41f92402 DIVDUVCC R3, R4, R5 // 7ca41f93403 DIVWUVCC R3, R4, R5 // 7ca41f97404 DIVWUV R3, R4, R5 // 7ca41f96405 DIVDE R3, R4, R5 // 7ca41b52406 DIVDECC R3, R4, R5 // 7ca41b53407 DIVDEU R3, R4, R5 // 7ca41b12408 DIVDEUCC R3, R4, R5 // 7ca41b13409410 REM R3, R4, R5 // 7fe41bd67fff19d67cbf2050411 REMU R3, R4, R5 // 7fe41b967fff19d67bff00287cbf2050412 REMD R3, R4, R5 // 7fe41bd27fff19d27cbf2050413 REMDU R3, R4, R5 // 7fe41b927fff19d27cbf2050414415 MADDHD R3,R4,R5,R6 // 10c32170416 MADDHDU R3,R4,R5,R6 // 10c32171417418 MODUD R3, R4, R5 // 7ca41a12419 MODUW R3, R4, R5 // 7ca41a16420 MODSD R3, R4, R5 // 7ca41e12421 MODSW R3, R4, R5 // 7ca41e16422423 SLW $8, R3, R4 // 5464402e424 SLW R3, R4, R5 // 7c851830425 SLWCC R3, R4 // 7c841831426 SLD $16, R3, R4 // 786483e4427 SLD R3, R4, R5 // 7c851836428 SLDCC R3, R4 // 7c841837429430 SRW $8, R3, R4 // 5464c23e431 SRW R3, R4, R5 // 7c851c30432 SRWCC R3, R4 // 7c841c31433 SRAW $8, R3, R4 // 7c644670434 SRAW R3, R4, R5 // 7c851e30435 SRAWCC R3, R4 // 7c841e31436 SRD $16, R3, R4 // 78648402437 SRD R3, R4, R5 // 7c851c36438 SRDCC R3, R4 // 7c841c37439 SRAD $16, R3, R4 // 7c648674440 SRAD R3, R4, R5 // 7c851e34441 SRDCC R3, R4 // 7c841c37442 ROTLW $16, R3, R4 // 5464803e443 ROTLW R3, R4, R5 // 5c85183e444 ROTL $16, R3, R4 // 78648000445 EXTSWSLI $3, R4, R5 // 7c851ef4446 EXTSWSLICC $16, R3, R4 // 7c6486f5447 EXTSB R3, R4 // 7c640774448 EXTSBCC R3, R4 // 7c640775449 EXTSH R3, R4 // 7c640734450 EXTSHCC R3, R4 // 7c640735451 EXTSW R3, R4 // 7c6407b4452 EXTSWCC R3, R4 // 7c6407b5453 RLWMI $7, R3, $4026531855, R6 // 50663f06454 RLWMI $7, R3, $1, R6 // 50663ffe455 RLWMI $7, R3, $2147483648, R6 // 50663800456 RLWMI $7, R3, $65535, R6 // 50663c3e457 RLWMI $7, R3, $16, $31, R6 // 50663c3e458 RLWMICC $7, R3, $65535, R6 // 50663c3f459 RLWMICC $7, R3, $16, $31, R6 // 50663c3f460 RLWNM $3, R4, $7, R6 // 54861f7e461 RLWNM $0, R4, $7, R6 // 5486077e462 RLWNM R0, R4, $7, R6 // 5c86077e463 RLWNM $3, R4, $29, $31, R6 // 54861f7e464 RLWNM $0, R4, $29, $31, R6 // 5486077e465 RLWNM R0, R4, $29, $31, R6 // 5c86077e466 RLWNM R3, R4, $7, R6 // 5c861f7e467 RLWNM R3, R4, $29, $31, R6 // 5c861f7e468 RLWNMCC $3, R4, $7, R6 // 54861f7f469 RLWNMCC $3, R4, $29, $31, R6 // 54861f7f470 RLWNMCC R3, R4, $7, R6 // 5c861f7f471 RLWNMCC R3, R4, $29, $31, R6 // 5c861f7f472 RLDMI $0, R4, $7, R6 // 7886076c473 RLDMICC $0, R4, $7, R6 // 7886076d474 RLDIMI $0, R4, $7, R6 // 788601cc475 RLDIMICC $0, R4, $7, R6 // 788601cd476 RLDC $0, R4, $15, R6 // 78860728477 RLDC R3, $32, $12, R4 // 7864030a478 RLDC R3, $8, $32, R4 // 78644028479 RLDCCC R3, $32, $12, R4 // 7864030b480 RLDCCC R3, $8, $32, R4 // 78644029481 RLDCCC $0, R4, $15, R6 // 78860729482 RLDCL $0, R4, $7, R6 // 78860770483 RLDCLCC $0, R4, $15, R6 // 78860721484 RLDCR $0, R4, $-16, R6 // 788606f2485 RLDCRCC $0, R4, $-16, R6 // 788606f3486 RLDICL $0, R4, $15, R6 // 788603c0487 RLDICLCC $0, R4, $15, R6 // 788603c1488 RLDICR $0, R4, $15, R6 // 788603c4489 RLDICRCC $0, R4, $15, R6 // 788603c5490 RLDIC $0, R4, $15, R6 // 788603c8491 RLDICCC $0, R4, $15, R6 // 788603c9492 CLRLSLWI $16, R5, $8, R4 // 54a4422e493 CLRLSLDI $24, R4, $2, R3 // 78831588494 RLDCR $1, R1, $-16, R1 // 78210ee4495 RLDCRCC $1, R1, $-16, R1 // 78210ee5496 CNTLZW R3,R4 // 7c640034497 CNTLZWCC R3,R4 // 7c640035498 CNTLZD R3, R4 // 7c640074499 CNTLZDCC R3, R4 // 7c640075500 CNTTZW R3,R4 // 7c640434501 CNTTZWCC R3,R4 // 7c640435502 CNTTZD R3,R4 // 7c640474503 CNTTZDCC R3,R4 // 7c640475504 NEG R3, R4 // 7c8300d0505 NEGCC R3, R4 // 7c8300d1506 NEGV R3, R4 // 7c8304d0507 NEGVCC R3, R4 // 7c8304d1508509 BEQ 0(PC) // 41820000510 BEQ CR1,0(PC) // 41860000511 BEQ CR0, LR // 4d820020512 BEQ CR7, LR // 4d9e0020513 BGE 0(PC) // 40800000514 BGE CR2,0(PC) // 40880000515 BGE CR6,LR // 4c980020516 BGT 4(PC) // 41810010517 BGT CR3,4(PC) // 418d0010518 BGT CR6, LR // 4d990020519 BLE 0(PC) // 40810000520 BLE CR4,0(PC) // 40910000521 BLE CR6, LR // 4c990020522 BLT 0(PC) // 41800000523 BLT CR5,0(PC) // 41940000524 BNE 0(PC) // 40820000525 BNE CR6, LR // 4c9a0020526 BLT CR6,0(PC) // 41980000527 BLT CR6, LR // 4d980020528 BVC 0(PC) // 40830000529 BVC CR6, LR // 4c9b0020530 BVS CR6, LR // 4d9b0020531 BVS 0(PC) // 41830000532 JMP 8(PC) // 48000010533534 NOP535 NOP R2536 NOP F2537 NOP $4538539 CRAND CR0GT, CR0EQ, CR0SO // 4c620a02540 CRANDN CR0GT, CR0EQ, CR0SO // 4c620902541 CREQV CR0GT, CR0EQ, CR0SO // 4c620a42542 CRNAND CR0GT, CR0EQ, CR0SO // 4c6209c2543 CRNOR CR0GT, CR0EQ, CR0SO // 4c620842544 CROR CR0GT, CR0EQ, CR0SO // 4c620b82545 CRORN CR0GT, CR0EQ, CR0SO // 4c620b42546 CRXOR CR0GT, CR0EQ, CR0SO // 4c620982547548 ISEL $0, R3, R4, R5 // 7ca3201e549 ISEL $1, R3, R4, R5 // 7ca3205e550 ISEL $2, R3, R4, R5 // 7ca3209e551 ISEL $3, R3, R4, R5 // 7ca320de552 ISEL $4, R3, R4, R5 // 7ca3211e553 ISEL $31, R3, R4, R5 // 7ca327de554 ISEL CR0LT, R3, R4, R5 // 7ca3201e555 ISEL CR0GT, R3, R4, R5 // 7ca3205e556 ISEL CR0EQ, R3, R4, R5 // 7ca3209e557 ISEL CR0SO, R3, R4, R5 // 7ca320de558 ISEL CR1LT, R3, R4, R5 // 7ca3211e559 ISEL CR7SO, R3, R4, R5 // 7ca327de560 POPCNTB R3, R4 // 7c6400f4561 POPCNTW R3, R4 // 7c6402f4562 POPCNTD R3, R4 // 7c6403f4563564 PASTECC R3, R4 // 7c23270d565 COPY R3, R4 // 7c23260c566567 // load-and-reserve568 LBAR (R4)(R3*1),$1,R5 // 7ca32069569 LBAR (R4)(R0),$1,R5 // 7ca02069570 LBAR (R4),$0,R5 // 7ca02068571 LBAR (R3),R5 // 7ca01868572 LHAR (R4)(R3*1),$1,R5 // 7ca320e9573 LHAR (R4)(R0),$1,R5 // 7ca020e9574 LHAR (R4),$0,R5 // 7ca020e8575 LHAR (R3),R5 // 7ca018e8576 LWAR (R4)(R3*1),$1,R5 // 7ca32029577 LWAR (R4)(R0),$1,R5 // 7ca02029578 LWAR (R4),$0,R5 // 7ca02028579 LWAR (R3),R5 // 7ca01828580 LDAR (R4)(R3*1),$1,R5 // 7ca320a9581 LDAR (R4)(R0),$1,R5 // 7ca020a9582 LDAR (R4),$0,R5 // 7ca020a8583 LDAR (R3),R5 // 7ca018a8584585 LSW (R3)(R4), R5 // 7ca41c2a586 LSW (R3)(R0), R5 // 7ca01c2a587 LSW (R3), R5 // 7ca01c2a588589 STBCCC R3, (R4)(R5) // 7c65256d590 STBCCC R3, (R4)(R0) // 7c60256d591 STBCCC R3, (R4) // 7c60256d592 STWCCC R3, (R4)(R5) // 7c65212d593 STWCCC R3, (R4)(R0) // 7c60212d594 STWCCC R3, (R4) // 7c60212d595 STDCCC R3, (R4)(R5) // 7c6521ad596 STDCCC R3, (R4)(R0) // 7c6021ad597 STDCCC R3, (R4) // 7c6021ad598 STHCCC R3, (R4)(R5) // 7c6525ad599 STHCCC R3, (R4)(R0) // 7c6025ad600 STHCCC R3, (R4) // 7c6025ad601 STSW R3, (R4)(R5) // 7c65252a602 STSW R3, (R4)(R0) // 7c60252a603 STSW R3, (R4) // 7c60252a604605 SYNC // 7c0004ac606 ISYNC // 4c00012c607 LWSYNC // 7c2004ac608 EIEIO // 7c0006ac609 PTESYNC // 7c4004ac610 TLBIE R3 // 7c001a64611 TLBIEL R3 // 7c001a24612 TLBSYNC // 7c00046c613 HRFID // 4c000224614 SLBIA // 7c0003e4615 SLBIE R3 // 7c001b64616 SLBMFEE R3, R4 // 7c801f26617 SLBMFEV R3, R4 // 7c801ea6618 SLBMTE R3, R4 // 7c801b24619620 TW $31, R0, R0 // 7fe00008621 TD $31, R0, R0 // 7fe00088622 DARN $1, R5 // 7ca105e6623624 DCBF (R3)(R4) // 7c0418ac625 DCBF (R3)(R0) // 7c0018ac626 DCBF (R3) // 7c0018ac627628 DCBST (R3)(R4) // 7c04186c629 DCBST (R3)(R0) // 7c00186c630 DCBST (R3) // 7c00186c631 DCBZ (R3)(R4) // 7c041fec632 DCBZ (R3)(R0) // 7c001fec633 DCBZ (R3) // 7c001fec634 DCBT (R3)(R4) // 7c041a2c635 DCBT (R3)(R0) // 7c001a2c636 DCBT (R3) // 7c001a2c637 ICBI (R3)(R4) // 7c041fac638 ICBI (R3)(R0) // 7c001fac639 ICBI (R3) // 7c001fac640641 // float constants642 FMOVD $(0.0), F1 // f0210cd0643 FMOVD $(-0.0), F1 // f0210cd0fc200850644645 FMOVD 8(R3), F1 // c8230008646 FMOVD (R3)(R4), F1 // 7c241cae647 FMOVD (R3)(R0), F1 // 7c201cae648 FMOVD (R3), F1 // c8230000649 FMOVDU 8(R3), F1 // cc230008650 FMOVDU (R3)(R4), F1 // 7c241cee651 FMOVDU (R3)(R0), F1 // 7c201cee652 FMOVDU (R3), F1 // cc230000653 FMOVS 4(R3), F1 // c0230004654 FMOVS (R3)(R4), F1 // 7c241c2e655 FMOVS (R3)(R0), F1 // 7c201c2e656 FMOVS (R3), F1 // c0230000657 FMOVSU 4(R3), F1 // c4230004658 FMOVSU (R3)(R4), F1 // 7c241c6e659 FMOVSU (R3)(R0), F1 // 7c201c6e660 FMOVSU (R3), F1 // c4230000661 FMOVSX (R3)(R4), F1 // 7c241eae662 FMOVSX (R3)(R0), F1 // 7c201eae663 FMOVSX (R3), F1 // 7c201eae664 FMOVSZ (R3)(R4), F1 // 7c241eee665 FMOVSZ (R3)(R0), F1 // 7c201eee666 FMOVSZ (R3), F1 // 7c201eee667668 FMOVD F1, 8(R3) // d8230008669 FMOVD F1, (R3)(R4) // 7c241dae670 FMOVD F1, (R3)(R0) // 7c201dae671 FMOVD F1, (R3) // d8230000672 FMOVDU F1, 8(R3) // dc230008673 FMOVDU F1, (R3)(R4) // 7c241dee674 FMOVDU F1, (R3)(R0) // 7c201dee675 FMOVDU F1, (R3) // dc230000676 FMOVS F1, 4(R3) // d0230004677 FMOVS F1, (R3)(R4) // 7c241d2e678 FMOVS F1, (R3)(R0) // 7c201d2e679 FMOVS F1, (R3) // d0230000680 FMOVSU F1, 4(R3) // d4230004681 FMOVSU F1, (R3)(R4) // 7c241d6e682 FMOVSU F1, (R3)(R0) // 7c201d6e683 FMOVSU F1, (R3) // d4230000684 FMOVSX F1, (R3)(R4) // 7c241fae685 FMOVSX F1, (R3)(R0) // 7c201fae686 FMOVSX F1, (R3) // 7c201fae687 FADD F1, F2 // fc42082a688 FADD F1, F2, F3 // fc62082a689 FADDCC F1, F2, F3 // fc62082b690 FMOVDCC F1, F2 // fc400891691 FADDS F1, F2 // ec42082a692 FADDS F1, F2, F3 // ec62082a693 DADD F1, F2 // ec420804694 DADD F1, F2, F3 // ec620804695 DADDQ F2, F4 // fc841004696 DADDQ F2, F4, F6 // fcc41004697 FADDSCC F1, F2, F3 // ec62082b698 FSUB F1, F2 // fc420828699 FSUB F1, F2, F3 // fc620828700 DSUB F1, F2 // ec420c04701 DSUB F1, F2, F3 // ec620c04702 DSUBQ F2, F4 // fc841404703 DSUBQ F2, F4, F6 // fcc41404704 FSUBCC F1, F2, F3 // fc620829705 FSUBS F1, F2 // ec420828706 FSUBS F1, F2, F3 // ec620828707 FSUBCC F1, F2, F3 // fc620829708 FSUBSCC F1, F2, F3 // ec620829709 FMUL F1, F2 // fc420072710 FMUL F1, F2, F3 // fc620072711 DMUL F1, F2 // ec420044712 DMUL F1, F2, F3 // ec620044713 DMULQ F2, F4 // fc8400c4714 DMULQ F2, F4, F6 // fcc400c4715 FMULCC F1, F2, F3 // fc620073716 FMULS F1, F2 // ec420072717 FMULS F1, F2, F3 // ec620072718 FMULSCC F1, F2, F3 // ec620073719 FDIV F1, F2 // fc420824720 FDIV F1, F2, F3 // fc620824721 DDIV F1, F2 // ec420c44722 DDIV F1, F2, F3 // ec620c44723 DDIVQ F2, F4 // fc841444724 DDIVQ F2, F4, F6 // fcc41444725 FDIVCC F1, F2, F3 // fc620825726 FDIVS F1, F2 // ec420824727 FDIVS F1, F2, F3 // ec620824728 FDIVSCC F1, F2, F3 // ec620825729 FTDIV F1, F2, $2 // fd011100730 FTSQRT F1, $2 // fd000940731 FMADD F1, F2, F3, F4 // fc8110fa732 FMADDCC F1, F2, F3, F4 // fc8110fb733 FMADDS F1, F2, F3, F4 // ec8110fa734 FMADDSCC F1, F2, F3, F4 // ec8110fb735 FMSUB F1, F2, F3, F4 // fc8110f8736 FMSUBCC F1, F2, F3, F4 // fc8110f9737 FMSUBS F1, F2, F3, F4 // ec8110f8738 FMSUBSCC F1, F2, F3, F4 // ec8110f9739 FNMADD F1, F2, F3, F4 // fc8110fe740 FNMADDCC F1, F2, F3, F4 // fc8110ff741 FNMADDS F1, F2, F3, F4 // ec8110fe742 FNMADDSCC F1, F2, F3, F4 // ec8110ff743 FNMSUB F1, F2, F3, F4 // fc8110fc744 FNMSUBCC F1, F2, F3, F4 // fc8110fd745 FNMSUBS F1, F2, F3, F4 // ec8110fc746 FNMSUBSCC F1, F2, F3, F4 // ec8110fd747 FSEL F1, F2, F3, F4 // fc8110ee748 FSELCC F1, F2, F3, F4 // fc8110ef749 FABS F1, F2 // fc400a10750 FNABS F1, F2 // fc400910751 FABSCC F1, F2 // fc400a11752 FNABSCC F1, F2 // fc400911753 FNEG F1, F2 // fc400850754 FNEGCC F1, F2 // fc400851755 FABSCC F1, F2 // fc400a11756 FRSP F1, F2 // fc400818757 FRSPCC F1, F2 // fc400819758 FCTIW F1, F2 // fc40081c759 FCTIWCC F1, F2 // fc40081d760 FCTIWZ F1, F2 // fc40081e761 FCTIWZCC F1, F2 // fc40081f762 FCTID F1, F2 // fc400e5c763 FCTIDCC F1, F2 // fc400e5d764 FCTIDZ F1, F2 // fc400e5e765 FCTIDZCC F1, F2 // fc400e5f766 FCFID F1, F2 // fc400e9c767 FCFIDCC F1, F2 // fc400e9d768 FCFIDU F1, F2 // fc400f9c769 FCFIDUCC F1, F2 // fc400f9d770 FCFIDS F1, F2 // ec400e9c771 FCFIDSCC F1, F2 // ec400e9d772 FRES F1, F2 // ec400830773 FRESCC F1, F2 // ec400831774 FRIM F1, F2 // fc400bd0775 FRIMCC F1, F2 // fc400bd1776 FRIP F1, F2 // fc400b90777 FRIPCC F1, F2 // fc400b91778 FRIZ F1, F2 // fc400b50779 FRIZCC F1, F2 // fc400b51780 FRIN F1, F2 // fc400b10781 FRINCC F1, F2 // fc400b11782 FRSQRTE F1, F2 // fc400834783 FRSQRTECC F1, F2 // fc400835784 FSQRT F1, F2 // fc40082c785 FSQRTCC F1, F2 // fc40082d786 FSQRTS F1, F2 // ec40082c787 FSQRTSCC F1, F2 // ec40082d788 FCPSGN F1, F2 // fc420810789 FCPSGNCC F1, F2 // fc420811790 FCMPO F1, F2 // fc011040791 FCMPO F1, F2, CR0 // FCMPO F1,CR0,F2 // fc011040792 FCMPU F1, F2 // fc011000793 FCMPU F1, F2, CR0 // FCMPU F1,CR0,F2 // fc011000794 DCMPO F1, F2 // ec011104795 DCMPO F1, F2, CR0 // DCMPO F1,CR0,F2 // ec011104796 DCMPOQ F2, F4 // fc022104797 DCMPOQ F2,F4, CR0 // DCMPOQ F2,CR0,F4 // fc022104798 DCMPU F1, F2 // ec011504799 DCMPU F1, F2, CR0 // DCMPU F1,CR0,F2 // ec011504800 DCMPUQ F2, F4 // fc022504801 DCMPUQ F2,F4, CR0 // DCMPUQ F2,CR0,F4 // fc022504802 LVX (R3)(R4), V1 // 7c2418ce803 LVX (R3)(R0), V1 // 7c2018ce804 LVX (R3), V1 // 7c2018ce805 LVXL (R3)(R4), V1 // 7c241ace806 LVXL (R3)(R0), V1 // 7c201ace807 LVXL (R3), V1 // 7c201ace808 LVSL (R3)(R4), V1 // 7c24180c809 LVSL (R3)(R0), V1 // 7c20180c810 LVSL (R3), V1 // 7c20180c811 LVSR (R3)(R4), V1 // 7c24184c812 LVSR (R3)(R0), V1 // 7c20184c813 LVSR (R3), V1 // 7c20184c814 LVEBX (R3)(R4), V1 // 7c24180e815 LVEBX (R3)(R0), V1 // 7c20180e816 LVEBX (R3), V1 // 7c20180e817 LVEHX (R3)(R4), V1 // 7c24184e818 LVEHX (R3)(R0), V1 // 7c20184e819 LVEHX (R3), V1 // 7c20184e820 LVEWX (R3)(R4), V1 // 7c24188e821 LVEWX (R3)(R0), V1 // 7c20188e822 LVEWX (R3), V1 // 7c20188e823 STVX V1, (R3)(R4) // 7c2419ce824 STVX V1, (R3)(R0) // 7c2019ce825 STVX V1, (R3) // 7c2019ce826 STVXL V1, (R3)(R4) // 7c241bce827 STVXL V1, (R3)(R0) // 7c201bce828 STVXL V1, (R3) // 7c201bce829 STVEBX V1, (R3)(R4) // 7c24190e830 STVEBX V1, (R3)(R0) // 7c20190e831 STVEBX V1, (R3) // 7c20190e832 STVEHX V1, (R3)(R4) // 7c24194e833 STVEHX V1, (R3)(R0) // 7c20194e834 STVEHX V1, (R3) // 7c20194e835 STVEWX V1, (R3)(R4) // 7c24198e836 STVEWX V1, (R3)(R0) // 7c20198e837 STVEWX V1, (R3) // 7c20198e838839 VAND V1, V2, V3 // 10611404840 VANDC V1, V2, V3 // 10611444841 VNAND V1, V2, V3 // 10611584842 VOR V1, V2, V3 // 10611484843 VORC V1, V2, V3 // 10611544844 VXOR V1, V2, V3 // 106114c4845 VNOR V1, V2, V3 // 10611504846 VEQV V1, V2, V3 // 10611684847 VADDUBM V1, V2, V3 // 10611000848 VADDUHM V1, V2, V3 // 10611040849 VADDUWM V1, V2, V3 // 10611080850 VADDUDM V1, V2, V3 // 106110c0851 VADDUQM V1, V2, V3 // 10611100852 VADDCUQ V1, V2, V3 // 10611140853 VADDCUW V1, V2, V3 // 10611180854 VADDUBS V1, V2, V3 // 10611200855 VADDUHS V1, V2, V3 // 10611240856 VADDUWS V1, V2, V3 // 10611280857 VADDSBS V1, V2, V3 // 10611300858 VADDSHS V1, V2, V3 // 10611340859 VADDSWS V1, V2, V3 // 10611380860 VADDEUQM V1, V2, V3, V4 // 108110fc861 VADDECUQ V1, V2, V3, V4 // 108110fd862 VSUBUBM V1, V2, V3 // 10611400863 VSUBUHM V1, V2, V3 // 10611440864 VSUBUWM V1, V2, V3 // 10611480865 VSUBUDM V1, V2, V3 // 106114c0866 VSUBUQM V1, V2, V3 // 10611500867 VSUBCUQ V1, V2, V3 // 10611540868 VSUBCUW V1, V2, V3 // 10611580869 VSUBUBS V1, V2, V3 // 10611600870 VSUBUHS V1, V2, V3 // 10611640871 VSUBUWS V1, V2, V3 // 10611680872 VSUBSBS V1, V2, V3 // 10611700873 VSUBSHS V1, V2, V3 // 10611740874 VSUBSWS V1, V2, V3 // 10611780875 VSUBEUQM V1, V2, V3, V4 // 108110fe876 VSUBECUQ V1, V2, V3, V4 // 108110ff877 VMULESB V1, V2, V3 // 10611308878 VMULESW V1, V2, V3 // 10611388879 VMULOSB V1, V2, V3 // 10611108880 VMULEUB V1, V2, V3 // 10611208881 VMULOUB V1, V2, V3 // 10611008882 VMULESH V1, V2, V3 // 10611348883 VMULOSH V1, V2, V3 // 10611148884 VMULEUH V1, V2, V3 // 10611248885 VMULOUH V1, V2, V3 // 10611048886 VMULESH V1, V2, V3 // 10611348887 VMULOSW V1, V2, V3 // 10611188888 VMULEUW V1, V2, V3 // 10611288889 VMULOUW V1, V2, V3 // 10611088890 VMULUWM V1, V2, V3 // 10611089891 VPMSUMB V1, V2, V3 // 10611408892 VPMSUMH V1, V2, V3 // 10611448893 VPMSUMW V1, V2, V3 // 10611488894 VPMSUMD V1, V2, V3 // 106114c8895 VMSUMUDM V1, V2, V3, V4 // 108110e3896 VRLB V1, V2, V3 // 10611004897 VRLH V1, V2, V3 // 10611044898 VRLW V1, V2, V3 // 10611084899 VRLD V1, V2, V3 // 106110c4900 VSLB V1, V2, V3 // 10611104901 VSLH V1, V2, V3 // 10611144902 VSLW V1, V2, V3 // 10611184903 VSL V1, V2, V3 // 106111c4904 VSLO V1, V2, V3 // 1061140c905 VSRB V1, V2, V3 // 10611204906 VSRH V1, V2, V3 // 10611244907 VSRW V1, V2, V3 // 10611284908 VSRD V1, V2, V3 // 106116c4909 VSR V1, V2, V3 // 106112c4910 VSRO V1, V2, V3 // 1061144c911 VSLD V1, V2, V3 // 106115c4912 VSRAB V1, V2, V3 // 10611304913 VSRAH V1, V2, V3 // 10611344914 VSRAW V1, V2, V3 // 10611384915 VSRAD V1, V2, V3 // 106113c4916 VSLDOI $3, V1, V2, V3 // 106110ec917 VCLZB V1, V2 // 10400f02918 VCLZH V1, V2 // 10400f42919 VCLZW V1, V2 // 10400f82920 VCLZD V1, V2 // 10400fc2921 VPOPCNTB V1, V2 // 10400f03922 VPOPCNTH V1, V2 // 10400f43923 VPOPCNTW V1, V2 // 10400f83924 VPOPCNTD V1, V2 // 10400fc3925 VCMPEQUB V1, V2, V3 // 10611006926 VCMPEQUBCC V1, V2, V3 // 10611406927 VCMPEQUH V1, V2, V3 // 10611046928 VCMPEQUHCC V1, V2, V3 // 10611446929 VCMPEQUW V1, V2, V3 // 10611086930 VCMPEQUWCC V1, V2, V3 // 10611486931 VCMPEQUD V1, V2, V3 // 106110c7932 VCMPEQUDCC V1, V2, V3 // 106114c7933 VCMPGTUB V1, V2, V3 // 10611206934 VCMPGTUBCC V1, V2, V3 // 10611606935 VCMPGTUH V1, V2, V3 // 10611246936 VCMPGTUHCC V1, V2, V3 // 10611646937 VCMPGTUW V1, V2, V3 // 10611286938 VCMPGTUWCC V1, V2, V3 // 10611686939 VCMPGTUD V1, V2, V3 // 106112c7940 VCMPGTUDCC V1, V2, V3 // 106116c7941 VCMPGTSB V1, V2, V3 // 10611306942 VCMPGTSBCC V1, V2, V3 // 10611706943 VCMPGTSH V1, V2, V3 // 10611346944 VCMPGTSHCC V1, V2, V3 // 10611746945 VCMPGTSW V1, V2, V3 // 10611386946 VCMPGTSWCC V1, V2, V3 // 10611786947 VCMPGTSD V1, V2, V3 // 106113c7948 VCMPGTSDCC V1, V2, V3 // 106117c7949 VCMPNEZB V1, V2, V3 // 10611107950 VCMPNEZBCC V1, V2, V3 // 10611507951 VCMPNEB V1, V2, V3 // 10611007952 VCMPNEBCC V1, V2, V3 // 10611407953 VCMPNEH V1, V2, V3 // 10611047954 VCMPNEHCC V1, V2, V3 // 10611447955 VCMPNEW V1, V2, V3 // 10611087956 VCMPNEWCC V1, V2, V3 // 10611487957 VPERM V1, V2, V3, V4 // 108110eb958 VPERMR V1, V2, V3, V4 // 108110fb959 VPERMXOR V1, V2, V3, V4 // 108110ed960 VBPERMQ V1, V2, V3 // 1061154c961 VBPERMD V1, V2, V3 // 106115cc962 VSEL V1, V2, V3, V4 // 108110ea963 VSPLTB $1, V1, V2 // 10410a0c964 VSPLTH $1, V1, V2 // 10410a4c965 VSPLTW $1, V1, V2 // 10410a8c966 VSPLTISB $1, V1 // 1021030c967 VSPLTISW $1, V1 // 1021038c968 VSPLTISH $1, V1 // 1021034c969 VCIPHER V1, V2, V3 // 10611508970 VCIPHERLAST V1, V2, V3 // 10611509971 VNCIPHER V1, V2, V3 // 10611548972 VNCIPHERLAST V1, V2, V3 // 10611549973 VSBOX V1, V2 // 104105c8974 VSHASIGMAW $1, V1, $15, V2 // 10418e82975 VSHASIGMAW $1, $15, V1, V2 // 10418e82976 VSHASIGMAD $2, V1, $15, V2 // 104196c2977 VSHASIGMAD $2, $15, V1, V2 // 104196c2978979 LXVD2X (R3)(R4), VS1 // 7c241e98980 LXVD2X (R3)(R0), VS1 // 7c201e98981 LXVD2X (R3), VS1 // 7c201e98982 LXVDSX (R3)(R4), VS1 // 7c241a98983 LXVDSX (R3)(R0), VS1 // 7c201a98984 LXVDSX (R3), VS1 // 7c201a98985 LXVH8X (R3)(R4), VS1 // 7c241e58986 LXVH8X (R3)(R0), VS1 // 7c201e58987 LXVH8X (R3), VS1 // 7c201e58988 LXVB16X (R3)(R4), VS1 // 7c241ed8989 LXVB16X (R3)(R0), VS1 // 7c201ed8990 LXVB16X (R3), VS1 // 7c201ed8991 LXVW4X (R3)(R4), VS1 // 7c241e18992 LXVW4X (R3)(R0), VS1 // 7c201e18993 LXVW4X (R3), VS1 // 7c201e18994 LXV 16(R3), VS1 // f4230011995 LXV (R3), VS1 // f4230001996 LXV 16(R3), VS33 // f4230019997 LXV (R3), VS33 // f4230009998 LXV 16(R3), V1 // f4230019999 LXV (R3), V1 // f42300091000 LXVL R3, R4, VS1 // 7c23221a1001 LXVLL R3, R4, VS1 // 7c23225a1002 LXVX R3, R4, VS1 // 7c2322181003 LXSDX (R3)(R4), VS1 // 7c241c981004 LXSDX (R3)(R0), VS1 // 7c201c981005 LXSDX (R3), VS1 // 7c201c981006 STXVD2X VS1, (R3)(R4) // 7c241f981007 STXVD2X VS1, (R3)(R0) // 7c201f981008 STXVD2X VS1, (R3) // 7c201f981009 STXVW4X VS1, (R3)(R4) // 7c241f181010 STXVW4X VS1, (R3)(R0) // 7c201f181011 STXVW4X VS1, (R3) // 7c201f181012 STXV VS1,16(R3) // f42300151013 STXV VS1,(R3) // f42300051014 STXVL VS1, R3, R4 // 7c23231a1015 STXVLL VS1, R3, R4 // 7c23235a1016 STXVX VS1, R3, R4 // 7c2323181017 STXVB16X VS1, (R4)(R5) // 7c2527d81018 STXVB16X VS1, (R4)(R0) // 7c2027d81019 STXVB16X VS1, (R4) // 7c2027d81020 STXVH8X VS1, (R4)(R5) // 7c2527581021 STXVH8X VS1, (R4)(R0) // 7c2027581022 STXVH8X VS1, (R4) // 7c2027581023 STXSDX VS1, (R3)(R4) // 7c241d981024 STXSDX VS1, (R4)(R0) // 7c2025981025 STXSDX VS1, (R4) // 7c2025981026 LXSIWAX (R3)(R4), VS1 // 7c2418981027 LXSIWAX (R3)(R0), VS1 // 7c2018981028 LXSIWAX (R3), VS1 // 7c2018981029 LXSIWZX (R3)(R4), VS1 // 7c2418181030 LXSIWZX (R3)(R0), VS1 // 7c2018181031 LXSIWZX (R3), VS1 // 7c2018181032 STXSIWX VS1, (R3)(R4) // 7c2419181033 STXSIWX VS1, (R3)(R0) // 7c2019181034 STXSIWX VS1, (R3) // 7c2019181035 MFVSRD VS1, R3 // 7c2300661036 MTFPRD R3, F0 // 7c0301661037 MFVRD V0, R3 // 7c0300671038 MFVSRLD VS63,R4 // 7fe402671039 MFVSRLD V31,R4 // 7fe402671040 MFVSRWZ VS33,R4 // 7c2400e71041 MFVSRWZ V1,R4 // 7c2400e71042 MTVSRD R3, VS1 // 7c2301661043 MTVSRDD R3, R4, VS1 // 7c2323661044 MTVSRDD R3, R4, VS33 // 7c2323671045 MTVSRDD R3, R4, V1 // 7c2323671046 MTVRD R3, V13 // 7da301671047 MTVSRWA R4, VS31 // 7fe401a61048 MTVSRWS R4, VS32 // 7c0403271049 MTVSRWZ R4, VS63 // 7fe401e71050 MTFSB0 $2 // fc40008c1051 MTFSB0CC $2 // fc40008d1052 MTFSB1 $2 // fc40004c1053 MTFSB1CC $2 // fc40004d1054 XXBRQ VS0, VS1 // f03f076c1055 XXBRD VS0, VS1 // f037076c1056 XXBRW VS1, VS2 // f04f0f6c1057 XXBRH VS2, VS3 // f067176c1058 XXLAND VS1, VS2, VS3 // f06114101059 XXLAND V1, V2, V3 // f06114171060 XXLAND VS33, VS34, VS35 // f06114171061 XXLANDC VS1, VS2, VS3 // f06114501062 XXLEQV VS0, VS1, VS2 // f0400dd01063 XXLNAND VS0, VS1, VS2 // f0400d901064 XXLNOR VS0, VS1, VS32 // f0000d111065 XXLOR VS1, VS2, VS3 // f06114901066 XXLORC VS1, VS2, VS3 // f06115501067 XXLORQ VS1, VS2, VS3 // f06114901068 XXLXOR VS1, VS2, VS3 // f06114d01069 XXSEL VS1, VS2, VS3, VS4 // f08110f01070 XXSEL VS33, VS34, VS35, VS36 // f08110ff1071 XXSEL V1, V2, V3, V4 // f08110ff1072 XXMRGHW VS1, VS2, VS3 // f06110901073 XXMRGLW VS1, VS2, VS3 // f06111901074 XXSPLTW VS1, $1, VS2 // f0410a901075 XXSPLTW VS33, $1, VS34 // f0410a931076 XXSPLTW V1, $1, V2 // f0410a931077 XXPERM VS1, VS2, VS3 // f06110d01078 XXSLDWI VS1, VS2, $1, VS3 // f06111101079 XXSLDWI V1, V2, $1, V3 // f06111171080 XXSLDWI V1, $1, V2, V3 // f06111171081 XXSLDWI VS33, VS34, $1, VS35 // f06111171082 XXSLDWI VS33, $1, VS34, VS35 // f06111171083 XXPERMDI VS33, VS34, $1, VS35 // f06111571084 XXPERMDI VS33, $1, VS34, VS35 // f06111571085 XSCVDPSP VS1, VS2 // f0400c241086 XVCVDPSP VS1, VS2 // f0400e241087 XSCVSXDDP VS1, VS2 // f0400de01088 XVCVDPSXDS VS1, VS2 // f0400f601089 XVCVSXDDP VS1, VS2 // f0400fe01090 XSCVDPSPN VS1,VS32 // f0000c2d1091 XSCVDPSP VS1,VS32 // f0000c251092 XSCVDPSXDS VS1,VS32 // f0000d611093 XSCVDPSXWS VS1,VS32 // f00009611094 XSCVDPUXDS VS1,VS32 // f0000d211095 XSCVDPUXWS VS1,VS32 // f00009211096 XSCVSPDPN VS1,VS32 // f0000d2d1097 XSCVSPDP VS1,VS32 // f0000d251098 XSCVSXDDP VS1,VS32 // f0000de11099 XSCVSXDSP VS1,VS32 // f0000ce11100 XSCVUXDDP VS1,VS32 // f0000da11101 XSCVUXDSP VS1,VS32 // f0000ca11102 XVCVDPSP VS1,VS32 // f0000e251103 XVCVDPSXDS VS1,VS32 // f0000f611104 XVCVDPSXWS VS1,VS32 // f0000b611105 XVCVDPUXDS VS1,VS32 // f0000f211106 XVCVDPUXWS VS1,VS32 // f0000b211107 XVCVSPDP VS1,VS32 // f0000f251108 XVCVSPSXDS VS1,VS32 // f0000e611109 XVCVSPSXWS VS1,VS32 // f0000a611110 XVCVSPUXDS VS1,VS32 // f0000e211111 XVCVSPUXWS VS1,VS32 // f0000a211112 XVCVSXDDP VS1,VS32 // f0000fe11113 XVCVSXDSP VS1,VS32 // f0000ee11114 XVCVSXWDP VS1,VS32 // f0000be11115 XVCVSXWSP VS1,VS32 // f0000ae11116 XVCVUXDDP VS1,VS32 // f0000fa11117 XVCVUXDSP VS1,VS32 // f0000ea11118 XVCVUXWDP VS1,VS32 // f0000ba11119 XVCVUXWSP VS1,VS32 // f0000aa111201121 MOVD R3, LR // 7c6803a61122 MOVD R3, CTR // 7c6903a61123 MOVD R3, XER // 7c6103a61124 MOVD LR, R3 // 7c6802a61125 MOVD CTR, R3 // 7c6902a61126 MOVD XER, R3 // 7c6102a61127 MOVFL CR3, CR1 // 4c8c000011281129 MOVW CR0, R1 // 7c3800261130 MOVW CR7, R1 // 7c3010261131 MOVW CR, R1 // 7c20002611321133 MOVW R1, CR // 7c2ff1201134 MOVFL R1, CR // 7c2ff1201135 MOVW R1, CR2 // 7c3201201136 MOVFL R1, CR2 // 7c3201201137 MOVFL R1, $255 // 7c2ff1201138 MOVFL R1, $1 // 7c3011201139 MOVFL R1, $128 // 7c3801201140 MOVFL R1, $3 // 7c2031201141 MOVMW 4(R3), R4 // b8830004114211431144 // Verify supported bdnz/bdz encodings.1145 BC 16,0,0(PC) // BC $16, CR0LT, 0(PC) // 420000001146 BDNZ 0(PC) // 420000001147 BDZ 0(PC) // 424000001148 BC 18,0,0(PC) // BC $18, CR0LT, 0(PC) // 4240000011491150 // Verify the supported forms of bcclr[l]1151 BC $20,CR0LT,$1,LR // 4e8008201152 BC $20,CR0LT,$0,LR // 4e8000201153 BC $20,CR0LT,LR // 4e8000201154 BC $20,CR0GT,LR // 4e8100201155 BC 20,CR0LT,LR // BC $20,CR0LT,LR // 4e8000201156 BC 20,undefined_symbol,LR // BC $20,CR0LT,LR // 4e8000201157 BC 20,undefined_symbol+1,LR // BC $20,CR0GT,LR // 4e8100201158 JMP LR // 4e8000201159 BR LR // JMP LR // 4e8000201160 BCL $20,CR0LT,$1,LR // 4e8008211161 BCL $20,CR0LT,$0,LR // 4e8000211162 BCL $20,CR0LT,LR // 4e8000211163 BCL $20,CR0GT,LR // 4e8100211164 BCL 20,CR0LT,LR // BCL $20,CR0LT,LR // 4e8000211165 BCL 20,undefined_symbol,LR // BCL $20,CR0LT,LR // 4e8000211166 BCL 20,undefined_symbol+1,LR // BCL $20,CR0GT,LR // 4e81002111671168 // Verify the supported forms of bcctr[l]1169 BC $20,CR0LT,CTR // 4e8004201170 BC $20,CR0GT,CTR // 4e8104201171 BC 20,CR0LT,CTR // BC $20,CR0LT,CTR // 4e8004201172 BC 20,undefined_symbol,CTR // BC $20,CR0LT,CTR // 4e8004201173 BC 20,undefined_symbol+1,CTR // BC $20,CR0GT,CTR // 4e8104201174 JMP CTR // 4e8004201175 BR CTR // JMP CTR // 4e8004201176 BCL $20,CR0LT,CTR // 4e8004211177 BCL $20,CR0GT,CTR // 4e8104211178 BCL 20,CR0LT,CTR // BCL $20,CR0LT,CTR // 4e8004211179 BCL 20,undefined_symbol,CTR // BCL $20,CR0LT,CTR // 4e8004211180 BCL 20,undefined_symbol+1,CTR // BCL $20,CR0GT,CTR // 4e81042111811182 // Verify bc encoding (without pic enabled)1183 BC $16,CR0LT,0(PC) // 420000001184 BCL $16,CR0LT,0(PC) // 420000011185 BC $18,CR0LT,0(PC) // 4240000011861187 MOVD SPR(3), 4(R1) // 7fe302a6fbe100041188 MOVD XER, 4(R1) // 7fe102a6fbe100041189 MOVD 4(R1), SPR(3) // ebe100047fe303a61190 MOVD 4(R1), XER // ebe100047fe103a61191 OR $0, R0, R0 // 6000000011921193 PCALIGN $161194 PNOP // 070000000000000011951196 SETB CR1,R3 // 7c6401001197 VCLZLSBB V1,R2 // 10400e021198 VCTZLSBB V1,R2 // 10410e0211991200 XSMAXJDP VS1,VS2,VS3 // f06114801201 XSMINJDP VS1,VS2,VS3 // f06114c012021203 RET
Findings
✓ No findings reported for this file.