1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // This contains the majority of valid opcode combinations
6 // available in cmd/internal/obj/ppc64/asm9.go with
7 // their valid instruction encodings.
8
9 #include "../../../../../runtime/textflag.h"
10
11 // In case of index mode instructions, usage of
12 // (Rx)(R0) is equivalent to (Rx+R0)
13 // In case of base+displacement mode instructions if
14 // the offset is 0, usage of (Rx) is equivalent to 0(Rx)
15 TEXT asmtest(SB),DUPOK|NOSPLIT,$0
16 // move constants
17 MOVD $1, R3 // 38600001
18 MOVD $-1, R4 // 3880ffff
19 MOVD $65535, R5 // 6005ffff
20 MOVD $65536, R6 // 3cc00001
21 MOVD $-32767, R5 // 38a08001
22 MOVD $-32768, R6 // 38c08000
23 MOVD $1234567, R5 // 6405001260a5d687 or 0600001238a0d687
24 MOVW $1, R3 // 38600001
25 MOVW $-1, R4 // 3880ffff
26 MOVW $65535, R5 // 6005ffff
27 MOVW $65536, R6 // 3cc00001
28 MOVW $-32767, R5 // 38a08001
29 MOVW $-32768, R6 // 38c08000
30 MOVW $1234567, R5 // 6405001260a5d687 or 0600001238a0d687
31 // Hex constant 0x80000001
32 MOVW $2147483649, R5 // 6405800060a50001 or 0600800038a00001
33 MOVD $2147483649, R5 // 6405800060a50001 or 0600800038a00001
34 // Hex constant 0xFFFFFFFF80000001
35 MOVD $-2147483647, R5 // 3ca0800060a50001 or 0603800038a00001
36 // Hex constant 0xFFFFFFFE00000002 (load of constant on < power10, pli on >= power10
37 MOVD $-8589934590, R5 // 3ca00000e8a50000 or 0602000038a00002
38
39 // For backwards compatibility, MOVW $const,Rx and MOVWZ $const,Rx assemble identically
40 // and accept the same constants.
41 MOVW $2147483648, R5 // 64058000
42 MOVWZ $-2147483648, R5 // 3ca08000
43
44 // 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 0x20004000000
47 MOVD $2199090364416, R5 // 60058001
48 // Hex constant 0xFFFFFE0004000000
49 MOVD $-2198956146688, R5 // 38a08001
50 // 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 0xFFFFFFFE00000001
53 MOVD $-8589934591, R5 // 38a0ffff or 0602000038a00001
54
55 // For #66955. Verify this opcode turns into a load and assembles.
56 MOVD $-6795364578871345152, R5 // 3ca00000e8a50000 or 04100000e4a00000
57
58 MOVD 8(R3), R4 // e8830008
59 MOVD (R3)(R4), R5 // 7ca4182a
60 MOVD (R3)(R0), R5 // 7ca0182a
61 MOVD (R3), R5 // e8a30000
62 MOVW 4(R3), R4 // e8830006
63 MOVW (R3)(R4), R5 // 7ca41aaa
64 MOVW (R3)(R0), R5 // 7ca01aaa
65 MOVW (R3), R5 // e8a30002
66 MOVWZ 4(R3), R4 // 80830004
67 MOVWZ (R3)(R4), R5 // 7ca4182e
68 MOVWZ (R3)(R0), R5 // 7ca0182e
69 MOVWZ (R3), R5 // 80a30000
70 MOVH 4(R3), R4 // a8830004
71 MOVH (R3)(R4), R5 // 7ca41aae
72 MOVH (R3)(R0), R5 // 7ca01aae
73 MOVH (R3), R5 // a8a30000
74
75 MOVHZ 2(R3), R4 // a0830002
76 MOVHZ (R3)(R4), R5 // 7ca41a2e
77 MOVHZ (R3)(R0), R5 // 7ca01a2e
78 MOVHZ (R3), R5 // a0a30000
79 MOVB 1(R3), R4 // 888300017c840774
80 MOVB (R3)(R4), R5 // 7ca418ae7ca50774
81 MOVB (R3)(R0), R5 // 7ca018ae7ca50774
82 MOVB (R3), R5 // 88a300007ca50774
83 MOVBZ 1(R3), R4 // 88830001
84 MOVBZ (R3)(R4), R5 // 7ca418ae
85 MOVBZ (R3)(R0), R5 // 7ca018ae
86 MOVBZ (R3), R5 // 88a30000
87 MOVDBR (R3)(R4), R5 // 7ca41c28
88 MOVDBR (R3)(R0), R5 // 7ca01c28
89 MOVDBR (R3), R5 // 7ca01c28
90 MOVWBR (R3)(R4), R5 // 7ca41c2c
91 MOVWBR (R3)(R0), R5 // 7ca01c2c
92 MOVWBR (R3), R5 // 7ca01c2c
93 MOVHBR (R3)(R4), R5 // 7ca41e2c
94 MOVHBR (R3)(R0), R5 // 7ca01e2c
95 MOVHBR (R3), R5 // 7ca01e2c
96 OR $0, R0, R0
97 MOVD $foo+4009806848(FP), R5 // 3ca1ef0138a5cc40 or 0600ef0038a1cc40
98 MOVD $foo(SB), R5 // 3ca0000038a50000 or 0610000038a00000
99
100 MOVDU 8(R3), R4 // e8830009
101 MOVDU (R3)(R4), R5 // 7ca4186a
102 MOVDU (R3)(R0), R5 // 7ca0186a
103 MOVDU (R3), R5 // e8a30001
104 MOVWU (R3)(R4), R5 // 7ca41aea
105 MOVWU (R3)(R0), R5 // 7ca01aea
106 MOVWZU 4(R3), R4 // 84830004
107 MOVWZU (R3)(R4), R5 // 7ca4186e
108 MOVWZU (R3)(R0), R5 // 7ca0186e
109 MOVWZU (R3), R5 // 84a30000
110 MOVHU 2(R3), R4 // ac830002
111 MOVHU (R3)(R4), R5 // 7ca41aee
112 MOVHU (R3)(R0), R5 // 7ca01aee
113 MOVHU (R3), R5 // aca30000
114 MOVHZU 2(R3), R4 // a4830002
115 MOVHZU (R3)(R4), R5 // 7ca41a6e
116 MOVHZU (R3)(R0), R5 // 7ca01a6e
117 MOVHZU (R3), R5 // a4a30000
118 MOVBU 1(R3), R4 // 8c8300017c840774
119 MOVBU (R3)(R4), R5 // 7ca418ee7ca50774
120 MOVBU (R3)(R0), R5 // 7ca018ee7ca50774
121 MOVBU (R3), R5 // 8ca300007ca50774
122 MOVBZU 1(R3), R4 // 8c830001
123 MOVBZU (R3)(R4), R5 // 7ca418ee
124 MOVBZU (R3)(R0), R5 // 7ca018ee
125 MOVBZU (R3), R5 // 8ca30000
126
127 MOVD R4, 8(R3) // f8830008
128 MOVD R5, (R3)(R4) // 7ca4192a
129 MOVD R5, (R3)(R0) // 7ca0192a
130 MOVD R5, (R3) // f8a30000
131 MOVW R4, 4(R3) // 90830004
132 MOVW R5, (R3)(R4) // 7ca4192e
133 MOVW R5, (R3)(R0) // 7ca0192e
134 MOVW R5, (R3) // 90a30000
135 MOVH R4, 2(R3) // b0830002
136 MOVH R5, (R3)(R4) // 7ca41b2e
137 MOVH R5, (R3)(R0) // 7ca01b2e
138 MOVH R5, (R3) // b0a30000
139 MOVB R4, 1(R3) // 98830001
140 MOVB R5, (R3)(R4) // 7ca419ae
141 MOVB R5, (R3)(R0) // 7ca019ae
142 MOVB R5, (R3) // 98a30000
143 MOVDBR R5, (R3)(R4) // 7ca41d28
144 MOVDBR R5, (R3)(R0) // 7ca01d28
145 MOVDBR R5, (R3) // 7ca01d28
146 MOVWBR R5, (R3)(R4) // 7ca41d2c
147 MOVWBR R5, (R3)(R0) // 7ca01d2c
148 MOVWBR R5, (R3) // 7ca01d2c
149 MOVHBR R5, (R3)(R4) // 7ca41f2c
150 MOVHBR R5, (R3)(R0) // 7ca01f2c
151 MOVHBR R5, (R3) // 7ca01f2c
152
153 MOVDU R4, 8(R3) // f8830009
154 MOVDU R5, (R3)(R4) // 7ca4196a
155 MOVDU R5, (R3)(R0) // 7ca0196a
156 MOVDU R5, (R3) // f8a30001
157 MOVWU R4, 4(R3) // 94830004
158 MOVWU R5, (R3)(R4) // 7ca4196e
159 MOVWU R5, (R3)(R0) // 7ca0196e
160 MOVHU R4, 2(R3) // b4830002
161 MOVHU R5, (R3)(R4) // 7ca41b6e
162 MOVHU R5, (R3)(R0) // 7ca01b6e
163 MOVHU R5, (R3) // b4a30000
164 MOVBU R4, 1(R3) // 9c830001
165 MOVBU R5, (R3)(R4) // 7ca419ee
166 MOVBU R5, (R3)(R0) // 7ca019ee
167 MOVBU R5, (R3) // 9ca30000
168
169 MOVB $0, R4 // 38800000
170 MOVBZ $0, R4 // 38800000
171 MOVH $0, R4 // 38800000
172 MOVHZ $0, R4 // 38800000
173 MOVW $0, R4 // 38800000
174 MOVWZ $0, R4 // 38800000
175 MOVD $0, R4 // 38800000
176 MOVD $0, R0 // 38000000
177
178 ADD $1, R3 // 38630001
179 ADD $1, R3, R4 // 38830001
180 ADD $-1, R4 // 3884ffff
181 ADD $-1, R4, R5 // 38a4ffff
182 ADD $65535, R5 // 601fffff7cbf2a14 or 0600000038a5ffff
183 ADD $65535, R5, R6 // 601fffff7cdf2a14 or 0600000038c5ffff
184 ADD $65536, R6 // 3cc60001
185 ADD $65536, R6, R7 // 3ce60001
186 ADD $-32767, R5 // 38a58001
187 ADD $-32767, R5, R4 // 38858001
188 ADD $-32768, R6 // 38c68000
189 ADD $-32768, R6, R5 // 38a68000
190 // Hex constant 0xFFFFFFFE00000000
191 ADD $-8589934592, R5 // 3fe0fffe600000007bff83e4600000007cbf2a14 or 0602000038a50000
192 // Hex constant 0xFFFFFFFE00010001
193 ADD $-8589869055, R5 // 3fe0fffe63ff00017bff83e463ff00017cbf2a14 or 0602000138a50001
194
195 //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 // 7ca60214
198
199 ADD $1234567, R5 // 641f001263ffd6877cbf2a14 or 0600001238a5d687
200 ADD $1234567, R5, R6 // 641f001263ffd6877cdf2a14 or 0600001238c5d687
201 ADDEX R3, R5, $3, R6 // 7cc32f54
202 ADDEX R3, $3, R5, R6 // 7cc32f54
203 ADDIS $8, R3 // 3c630008
204 ADD $524288, R3 // 3c630008
205 ADDIS $1000, R3, R4 // 3c8303e8
206
207 ANDCC $1, R3 // 70630001
208 ANDCC $1, R3, R4 // 70640001
209 ANDCC $-1, R4 // 3be0ffff7fe42039
210 ANDCC $-1, R4, R5 // 3be0ffff7fe52039
211 ANDCC $65535, R5 // 70a5ffff
212 ANDCC $65535, R5, R6 // 70a6ffff
213 ANDCC $65536, R6 // 74c60001
214 ANDCC $65536, R6, R7 // 74c70001
215 ANDCC $-32767, R5 // 3be080017fe52839
216 ANDCC $-32767, R5, R4 // 3be080017fe42839
217 ANDCC $-32768, R6 // 3be080007fe63039
218 ANDCC $-32768, R5, R6 // 3be080007fe62839
219 ANDCC $1234567, R5 // 641f001263ffd6877fe52839
220 ANDCC $1234567, R5, R6 // 641f001263ffd6877fe62839
221 ANDISCC $1, R3 // 74630001
222 ANDISCC $1000, R3, R4 // 746403e8
223 ANDCC $65536000, R3, R4 // 746403e8
224
225 OR $1, R3 // 60630001
226 OR $1, R3, R4 // 60640001
227 OR $-1, R4 // 3be0ffff7fe42378
228 OR $-1, R4, R5 // 3be0ffff7fe52378
229 OR $65535, R5 // 60a5ffff
230 OR $65535, R5, R6 // 60a6ffff
231 OR $65536, R6 // 64c60001
232 OR $65536, R6, R7 // 64c70001
233 OR $-32767, R5 // 3be080017fe52b78
234 OR $-32767, R5, R6 // 3be080017fe62b78
235 OR $-32768, R6 // 3be080007fe63378
236 OR $-32768, R6, R7 // 3be080007fe73378
237 OR $1234567, R5 // 641f001263ffd6877fe52b78
238 OR $1234567, R5, R3 // 641f001263ffd6877fe32b78
239 OR $2147483648, R5, R3 // 64a38000
240 OR $2147483649, R5, R3 // 641f800063ff00017fe32b78
241 ORIS $255, R3, R4 // 646400ff
242 OR $16711680, R3, R4 // 646400ff
243
244 XOR $1, R3 // 68630001
245 XOR $1, R3, R4 // 68640001
246 XOR $-1, R4 // 3be0ffff7fe42278
247 XOR $-1, R4, R5 // 3be0ffff7fe52278
248 XOR $65535, R5 // 68a5ffff
249 XOR $65535, R5, R6 // 68a6ffff
250 XOR $65536, R6 // 6cc60001
251 XOR $65536, R6, R7 // 6cc70001
252 XOR $-32767, R5 // 3be080017fe52a78
253 XOR $-32767, R5, R6 // 3be080017fe62a78
254 XOR $-32768, R6 // 3be080007fe63278
255 XOR $-32768, R6, R7 // 3be080007fe73278
256 XOR $1234567, R5 // 641f001263ffd6877fe52a78
257 XOR $1234567, R5, R3 // 641f001263ffd6877fe32a78
258 XORIS $15, R3, R4 // 6c64000f
259 XOR $983040, R3, R4 // 6c64000f
260
261 // TODO: the order of CR operands don't match
262 CMP R3, R4 // 7c232000
263 CMPU R3, R4 // 7c232040
264 CMPW R3, R4 // 7c032000
265 CMPWU R3, R4 // 7c032040
266 CMPB R3,R4,R4 // 7c6423f8
267 CMPEQB R3,R4,CR6 // 7f0321c0
268
269 ADD R3, R4 // 7c841a14
270 ADD R3, R4, R5 // 7ca41a14
271 ADDC R3, R4 // 7c841814
272 ADDC R3, R4, R5 // 7ca41814
273 ADDCC R3, R4, R5 // 7ca41a15
274 ADDE R3, R4 // 7c841914
275 ADDECC R3, R4 // 7c841915
276 ADDEV R3, R4 // 7c841d14
277 ADDEVCC R3, R4 // 7c841d15
278 ADDV R3, R4 // 7c841e14
279 ADDVCC R3, R4 // 7c841e15
280 ADDCCC R3, R4, R5 // 7ca41815
281 ADDCCC $65536, R4, R5 // 641f0001600000007cbf2015
282 ADDCCC $65537, R4, R5 // 641f000163ff00017cbf2015
283 ADDME R3, R4 // 7c8301d4
284 ADDMECC R3, R4 // 7c8301d5
285 ADDMEV R3, R4 // 7c8305d4
286 ADDMEVCC R3, R4 // 7c8305d5
287 ADDCV R3, R4 // 7c841c14
288 ADDCVCC R3, R4 // 7c841c15
289 ADDZE R3, R4 // 7c830194
290 ADDZECC R3, R4 // 7c830195
291 ADDZEV R3, R4 // 7c830594
292 ADDZEVCC R3, R4 // 7c830595
293 SUBME R3, R4 // 7c8301d0
294 SUBMECC R3, R4 // 7c8301d1
295 SUBMEV R3, R4 // 7c8305d0
296 SUBZE R3, R4 // 7c830190
297 SUBZECC R3, R4 // 7c830191
298 SUBZEV R3, R4 // 7c830590
299 SUBZEVCC R3, R4 // 7c830591
300
301 AND R3, R4 // 7c841838
302 AND R3, R4, R5 // 7c851838
303 ANDN R3, R4, R5 // 7c851878
304 ANDCC R3, R4, R5 // 7c851839
305 ANDNCC R3, R4, R5 // 7c851879
306 OR R3, R4 // 7c841b78
307 OR R3, R4, R5 // 7c851b78
308 ORN R3, R4, R5 // 7c851b38
309 ORCC R3, R4, R5 // 7c851b79
310 ORNCC R3, R4, R5 // 7c851b39
311 XOR R3, R4 // 7c841a78
312 XOR R3, R4, R5 // 7c851a78
313 XORCC R3, R4, R5 // 7c851a79
314 NAND R3, R4, R5 // 7c851bb8
315 NANDCC R3, R4, R5 // 7c851bb9
316 EQV R3, R4, R5 // 7c851a38
317 EQVCC R3, R4, R5 // 7c851a39
318 NOR R3, R4, R5 // 7c8518f8
319 NORCC R3, R4, R5 // 7c8518f9
320
321 SUB R3, R4 // 7c832050
322 SUB R3, R4, R5 // 7ca32050
323 SUBC R3, R4 // 7c832010
324 SUBC R3, R4, R5 // 7ca32010
325 SUBCC R3, R4, R5 // 7ca32051
326 SUBVCC R3, R4, R5 // 7ca32451
327 SUBCCC R3, R4, R5 // 7ca32011
328 SUBCV R3, R4, R5 // 7ca32410
329 SUBCVCC R3, R4, R5 // 7ca32411
330 SUBMEVCC R3, R4 // 7c8305d1
331 SUBV R3, R4, R5 // 7ca32450
332 SUBE R3, R4, R5 // 7ca32110
333 SUBECC R3, R4, R5 // 7ca32111
334 SUBEV R3, R4, R5 // 7ca32510
335 SUBEVCC R3, R4, R5 // 7ca32511
336 SUBC R3, $65536, R4 // 3fe00001600000007c83f810
337 SUBC R3, $65537, R4 // 3fe0000163ff00017c83f810
338
339 MULLW R3, R4 // 7c8419d6
340 MULLW R3, R4, R5 // 7ca419d6
341 MULLW $10, R3 // 1c63000a
342 MULLW $10000000, R3 // 641f009863ff96807c7f19d6
343
344 MULLWCC R3, R4, R5 // 7ca419d7
345 MULHW R3, R4, R5 // 7ca41896
346
347 MULHWU R3, R4, R5 // 7ca41816
348 MULLD R3, R4 // 7c8419d2
349 MULLD R4, R4, R5 // 7ca421d2
350 MULLD $20, R4 // 1c840014
351 MULLD $200000000, R4 // 641f0beb63ffc2007c9f21d2
352
353 MULLDCC R3, R4, R5 // 7ca419d3
354 MULHD R3, R4, R5 // 7ca41892
355 MULHDCC R3, R4, R5 // 7ca41893
356 MULHDU R3, R4, R5 // 7ca41812
357 MULHDUCC R3, R4, R5 // 7ca41813
358
359 MULLWV R3, R4 // 7c841dd6
360 MULLWV R3, R4, R5 // 7ca41dd6
361 MULLWVCC R3, R4, R5 // 7ca41dd7
362 MULHWUCC R3, R4, R5 // 7ca41817
363 MULLDV R3, R4, R5 // 7ca41dd2
364 MULLDVCC R3, R4, R5 // 7ca41dd3
365
366 DIVD R3,R4 // 7c841bd2
367 DIVD R3, R4, R5 // 7ca41bd2
368 DIVW R3, R4 // 7c841bd6
369 DIVW R3, R4, R5 // 7ca41bd6
370 DIVDCC R3,R4, R5 // 7ca41bd3
371 DIVWCC R3,R4, R5 // 7ca41bd7
372 DIVDU R3, R4, R5 // 7ca41b92
373 DIVWU R3, R4, R5 // 7ca41b96
374 DIVDV R3, R4, R5 // 7ca41fd2
375 DIVWV R3, R4, R5 // 7ca41fd6
376 DIVDUCC R3, R4, R5 // 7ca41b93
377 DIVWUCC R3, R4, R5 // 7ca41b97
378 DIVDVCC R3, R4, R5 // 7ca41fd3
379 DIVWVCC R3, R4, R5 // 7ca41fd7
380 DIVDUV R3, R4, R5 // 7ca41f92
381 DIVDUVCC R3, R4, R5 // 7ca41f93
382 DIVWUVCC R3, R4, R5 // 7ca41f97
383 DIVWUV R3, R4, R5 // 7ca41f96
384 DIVDE R3, R4, R5 // 7ca41b52
385 DIVDECC R3, R4, R5 // 7ca41b53
386 DIVDEU R3, R4, R5 // 7ca41b12
387 DIVDEUCC R3, R4, R5 // 7ca41b13
388
389 REM R3, R4, R5 // 7fe41bd67fff19d67cbf2050
390 REMU R3, R4, R5 // 7fe41b967fff19d67bff00287cbf2050
391 REMD R3, R4, R5 // 7fe41bd27fff19d27cbf2050
392 REMDU R3, R4, R5 // 7fe41b927fff19d27cbf2050
393
394 MADDHD R3,R4,R5,R6 // 10c32170
395 MADDHDU R3,R4,R5,R6 // 10c32171
396
397 MODUD R3, R4, R5 // 7ca41a12
398 MODUW R3, R4, R5 // 7ca41a16
399 MODSD R3, R4, R5 // 7ca41e12
400 MODSW R3, R4, R5 // 7ca41e16
401
402 SLW $8, R3, R4 // 5464402e
403 SLW R3, R4, R5 // 7c851830
404 SLWCC R3, R4 // 7c841831
405 SLD $16, R3, R4 // 786483e4
406 SLD R3, R4, R5 // 7c851836
407 SLDCC R3, R4 // 7c841837
408
409 SRW $8, R3, R4 // 5464c23e
410 SRW R3, R4, R5 // 7c851c30
411 SRWCC R3, R4 // 7c841c31
412 SRAW $8, R3, R4 // 7c644670
413 SRAW R3, R4, R5 // 7c851e30
414 SRAWCC R3, R4 // 7c841e31
415 SRD $16, R3, R4 // 78648402
416 SRD R3, R4, R5 // 7c851c36
417 SRDCC R3, R4 // 7c841c37
418 SRAD $16, R3, R4 // 7c648674
419 SRAD R3, R4, R5 // 7c851e34
420 SRDCC R3, R4 // 7c841c37
421 ROTLW $16, R3, R4 // 5464803e
422 ROTLW R3, R4, R5 // 5c85183e
423 ROTL $16, R3, R4 // 78648000
424 EXTSWSLI $3, R4, R5 // 7c851ef4
425 EXTSWSLICC $16, R3, R4 // 7c6486f5
426 EXTSB R3, R4 // 7c640774
427 EXTSBCC R3, R4 // 7c640775
428 EXTSH R3, R4 // 7c640734
429 EXTSHCC R3, R4 // 7c640735
430 EXTSW R3, R4 // 7c6407b4
431 EXTSWCC R3, R4 // 7c6407b5
432 RLWMI $7, R3, $4026531855, R6 // 50663f06
433 RLWMI $7, R3, $1, R6 // 50663ffe
434 RLWMI $7, R3, $2147483648, R6 // 50663800
435 RLWMI $7, R3, $65535, R6 // 50663c3e
436 RLWMI $7, R3, $16, $31, R6 // 50663c3e
437 RLWMICC $7, R3, $65535, R6 // 50663c3f
438 RLWMICC $7, R3, $16, $31, R6 // 50663c3f
439 RLWNM $3, R4, $7, R6 // 54861f7e
440 RLWNM $0, R4, $7, R6 // 5486077e
441 RLWNM R0, R4, $7, R6 // 5c86077e
442 RLWNM $3, R4, $29, $31, R6 // 54861f7e
443 RLWNM $0, R4, $29, $31, R6 // 5486077e
444 RLWNM R0, R4, $29, $31, R6 // 5c86077e
445 RLWNM R3, R4, $7, R6 // 5c861f7e
446 RLWNM R3, R4, $29, $31, R6 // 5c861f7e
447 RLWNMCC $3, R4, $7, R6 // 54861f7f
448 RLWNMCC $3, R4, $29, $31, R6 // 54861f7f
449 RLWNMCC R3, R4, $7, R6 // 5c861f7f
450 RLWNMCC R3, R4, $29, $31, R6 // 5c861f7f
451 RLDMI $0, R4, $7, R6 // 7886076c
452 RLDMICC $0, R4, $7, R6 // 7886076d
453 RLDIMI $0, R4, $7, R6 // 788601cc
454 RLDIMICC $0, R4, $7, R6 // 788601cd
455 RLDC $0, R4, $15, R6 // 78860728
456 RLDC R3, $32, $12, R4 // 7864030a
457 RLDC R3, $8, $32, R4 // 78644028
458 RLDCCC R3, $32, $12, R4 // 7864030b
459 RLDCCC R3, $8, $32, R4 // 78644029
460 RLDCCC $0, R4, $15, R6 // 78860729
461 RLDCL $0, R4, $7, R6 // 78860770
462 RLDCLCC $0, R4, $15, R6 // 78860721
463 RLDCR $0, R4, $-16, R6 // 788606f2
464 RLDCRCC $0, R4, $-16, R6 // 788606f3
465 RLDICL $0, R4, $15, R6 // 788603c0
466 RLDICLCC $0, R4, $15, R6 // 788603c1
467 RLDICR $0, R4, $15, R6 // 788603c4
468 RLDICRCC $0, R4, $15, R6 // 788603c5
469 RLDIC $0, R4, $15, R6 // 788603c8
470 RLDICCC $0, R4, $15, R6 // 788603c9
471 CLRLSLWI $16, R5, $8, R4 // 54a4422e
472 CLRLSLDI $24, R4, $2, R3 // 78831588
473 RLDCR $1, R1, $-16, R1 // 78210ee4
474 RLDCRCC $1, R1, $-16, R1 // 78210ee5
475 CNTLZW R3,R4 // 7c640034
476 CNTLZWCC R3,R4 // 7c640035
477 CNTLZD R3, R4 // 7c640074
478 CNTLZDCC R3, R4 // 7c640075
479 CNTTZW R3,R4 // 7c640434
480 CNTTZWCC R3,R4 // 7c640435
481 CNTTZD R3,R4 // 7c640474
482 CNTTZDCC R3,R4 // 7c640475
483 NEG R3, R4 // 7c8300d0
484 NEGCC R3, R4 // 7c8300d1
485 NEGV R3, R4 // 7c8304d0
486 NEGVCC R3, R4 // 7c8304d1
487
488 BEQ 0(PC) // 41820000
489 BEQ CR1,0(PC) // 41860000
490 BGE 0(PC) // 40800000
491 BGE CR2,0(PC) // 40880000
492 BGT 4(PC) // 41810010
493 BGT CR3,4(PC) // 418d0010
494 BLE 0(PC) // 40810000
495 BLE CR4,0(PC) // 40910000
496 BLT 0(PC) // 41800000
497 BLT CR5,0(PC) // 41940000
498 BNE 0(PC) // 40820000
499 BLT CR6,0(PC) // 41980000
500 BVC 0(PC) // 40830000
501 BVS 0(PC) // 41830000
502 JMP 8(PC) // 48000010
503
504 NOP
505 NOP R2
506 NOP F2
507 NOP $4
508
509 CRAND CR0GT, CR0EQ, CR0SO // 4c620a02
510 CRANDN CR0GT, CR0EQ, CR0SO // 4c620902
511 CREQV CR0GT, CR0EQ, CR0SO // 4c620a42
512 CRNAND CR0GT, CR0EQ, CR0SO // 4c6209c2
513 CRNOR CR0GT, CR0EQ, CR0SO // 4c620842
514 CROR CR0GT, CR0EQ, CR0SO // 4c620b82
515 CRORN CR0GT, CR0EQ, CR0SO // 4c620b42
516 CRXOR CR0GT, CR0EQ, CR0SO // 4c620982
517
518 ISEL $0, R3, R4, R5 // 7ca3201e
519 ISEL $1, R3, R4, R5 // 7ca3205e
520 ISEL $2, R3, R4, R5 // 7ca3209e
521 ISEL $3, R3, R4, R5 // 7ca320de
522 ISEL $4, R3, R4, R5 // 7ca3211e
523 ISEL $31, R3, R4, R5 // 7ca327de
524 ISEL CR0LT, R3, R4, R5 // 7ca3201e
525 ISEL CR0GT, R3, R4, R5 // 7ca3205e
526 ISEL CR0EQ, R3, R4, R5 // 7ca3209e
527 ISEL CR0SO, R3, R4, R5 // 7ca320de
528 ISEL CR1LT, R3, R4, R5 // 7ca3211e
529 ISEL CR7SO, R3, R4, R5 // 7ca327de
530 POPCNTB R3, R4 // 7c6400f4
531 POPCNTW R3, R4 // 7c6402f4
532 POPCNTD R3, R4 // 7c6403f4
533
534 PASTECC R3, R4 // 7c23270d
535 COPY R3, R4 // 7c23260c
536
537 // load-and-reserve
538 LBAR (R4)(R3*1),$1,R5 // 7ca32069
539 LBAR (R4)(R0),$1,R5 // 7ca02069
540 LBAR (R4),$0,R5 // 7ca02068
541 LBAR (R3),R5 // 7ca01868
542 LHAR (R4)(R3*1),$1,R5 // 7ca320e9
543 LHAR (R4)(R0),$1,R5 // 7ca020e9
544 LHAR (R4),$0,R5 // 7ca020e8
545 LHAR (R3),R5 // 7ca018e8
546 LWAR (R4)(R3*1),$1,R5 // 7ca32029
547 LWAR (R4)(R0),$1,R5 // 7ca02029
548 LWAR (R4),$0,R5 // 7ca02028
549 LWAR (R3),R5 // 7ca01828
550 LDAR (R4)(R3*1),$1,R5 // 7ca320a9
551 LDAR (R4)(R0),$1,R5 // 7ca020a9
552 LDAR (R4),$0,R5 // 7ca020a8
553 LDAR (R3),R5 // 7ca018a8
554
555 LSW (R3)(R4), R5 // 7ca41c2a
556 LSW (R3)(R0), R5 // 7ca01c2a
557 LSW (R3), R5 // 7ca01c2a
558
559 STBCCC R3, (R4)(R5) // 7c65256d
560 STBCCC R3, (R4)(R0) // 7c60256d
561 STBCCC R3, (R4) // 7c60256d
562 STWCCC R3, (R4)(R5) // 7c65212d
563 STWCCC R3, (R4)(R0) // 7c60212d
564 STWCCC R3, (R4) // 7c60212d
565 STDCCC R3, (R4)(R5) // 7c6521ad
566 STDCCC R3, (R4)(R0) // 7c6021ad
567 STDCCC R3, (R4) // 7c6021ad
568 STHCCC R3, (R4)(R5) // 7c6525ad
569 STHCCC R3, (R4)(R0) // 7c6025ad
570 STHCCC R3, (R4) // 7c6025ad
571 STSW R3, (R4)(R5) // 7c65252a
572 STSW R3, (R4)(R0) // 7c60252a
573 STSW R3, (R4) // 7c60252a
574
575 SYNC // 7c0004ac
576 ISYNC // 4c00012c
577 LWSYNC // 7c2004ac
578 EIEIO // 7c0006ac
579 PTESYNC // 7c4004ac
580 TLBIE R3 // 7c001a64
581 TLBIEL R3 // 7c001a24
582 TLBSYNC // 7c00046c
583 HRFID // 4c000224
584 SLBIA // 7c0003e4
585 SLBIE R3 // 7c001b64
586 SLBMFEE R3, R4 // 7c801f26
587 SLBMFEV R3, R4 // 7c801ea6
588 SLBMTE R3, R4 // 7c801b24
589
590 TW $31, R0, R0 // 7fe00008
591 TD $31, R0, R0 // 7fe00088
592 DARN $1, R5 // 7ca105e6
593
594 DCBF (R3)(R4) // 7c0418ac
595 DCBF (R3)(R0) // 7c0018ac
596 DCBF (R3) // 7c0018ac
597
598 DCBST (R3)(R4) // 7c04186c
599 DCBST (R3)(R0) // 7c00186c
600 DCBST (R3) // 7c00186c
601 DCBZ (R3)(R4) // 7c041fec
602 DCBZ (R3)(R0) // 7c001fec
603 DCBZ (R3) // 7c001fec
604 DCBT (R3)(R4) // 7c041a2c
605 DCBT (R3)(R0) // 7c001a2c
606 DCBT (R3) // 7c001a2c
607 ICBI (R3)(R4) // 7c041fac
608 ICBI (R3)(R0) // 7c001fac
609 ICBI (R3) // 7c001fac
610
611 // float constants
612 FMOVD $(0.0), F1 // f0210cd0
613 FMOVD $(-0.0), F1 // f0210cd0fc200850
614
615 FMOVD 8(R3), F1 // c8230008
616 FMOVD (R3)(R4), F1 // 7c241cae
617 FMOVD (R3)(R0), F1 // 7c201cae
618 FMOVD (R3), F1 // c8230000
619 FMOVDU 8(R3), F1 // cc230008
620 FMOVDU (R3)(R4), F1 // 7c241cee
621 FMOVDU (R3)(R0), F1 // 7c201cee
622 FMOVDU (R3), F1 // cc230000
623 FMOVS 4(R3), F1 // c0230004
624 FMOVS (R3)(R4), F1 // 7c241c2e
625 FMOVS (R3)(R0), F1 // 7c201c2e
626 FMOVS (R3), F1 // c0230000
627 FMOVSU 4(R3), F1 // c4230004
628 FMOVSU (R3)(R4), F1 // 7c241c6e
629 FMOVSU (R3)(R0), F1 // 7c201c6e
630 FMOVSU (R3), F1 // c4230000
631 FMOVSX (R3)(R4), F1 // 7c241eae
632 FMOVSX (R3)(R0), F1 // 7c201eae
633 FMOVSX (R3), F1 // 7c201eae
634 FMOVSZ (R3)(R4), F1 // 7c241eee
635 FMOVSZ (R3)(R0), F1 // 7c201eee
636 FMOVSZ (R3), F1 // 7c201eee
637
638 FMOVD F1, 8(R3) // d8230008
639 FMOVD F1, (R3)(R4) // 7c241dae
640 FMOVD F1, (R3)(R0) // 7c201dae
641 FMOVD F1, (R3) // d8230000
642 FMOVDU F1, 8(R3) // dc230008
643 FMOVDU F1, (R3)(R4) // 7c241dee
644 FMOVDU F1, (R3)(R0) // 7c201dee
645 FMOVDU F1, (R3) // dc230000
646 FMOVS F1, 4(R3) // d0230004
647 FMOVS F1, (R3)(R4) // 7c241d2e
648 FMOVS F1, (R3)(R0) // 7c201d2e
649 FMOVS F1, (R3) // d0230000
650 FMOVSU F1, 4(R3) // d4230004
651 FMOVSU F1, (R3)(R4) // 7c241d6e
652 FMOVSU F1, (R3)(R0) // 7c201d6e
653 FMOVSU F1, (R3) // d4230000
654 FMOVSX F1, (R3)(R4) // 7c241fae
655 FMOVSX F1, (R3)(R0) // 7c201fae
656 FMOVSX F1, (R3) // 7c201fae
657 FADD F1, F2 // fc42082a
658 FADD F1, F2, F3 // fc62082a
659 FADDCC F1, F2, F3 // fc62082b
660 FMOVDCC F1, F2 // fc400891
661 FADDS F1, F2 // ec42082a
662 FADDS F1, F2, F3 // ec62082a
663 FADDSCC F1, F2, F3 // ec62082b
664 FSUB F1, F2 // fc420828
665 FSUB F1, F2, F3 // fc620828
666 FSUBCC F1, F2, F3 // fc620829
667 FSUBS F1, F2 // ec420828
668 FSUBS F1, F2, F3 // ec620828
669 FSUBCC F1, F2, F3 // fc620829
670 FSUBSCC F1, F2, F3 // ec620829
671 FMUL F1, F2 // fc420072
672 FMUL F1, F2, F3 // fc620072
673 FMULCC F1, F2, F3 // fc620073
674 FMULS F1, F2 // ec420072
675 FMULS F1, F2, F3 // ec620072
676 FMULSCC F1, F2, F3 // ec620073
677 FDIV F1, F2 // fc420824
678 FDIV F1, F2, F3 // fc620824
679 FDIVCC F1, F2, F3 // fc620825
680 FDIVS F1, F2 // ec420824
681 FDIVS F1, F2, F3 // ec620824
682 FDIVSCC F1, F2, F3 // ec620825
683 FTDIV F1, F2, $2 // fd011100
684 FTSQRT F1, $2 // fd000940
685 FMADD F1, F2, F3, F4 // fc8110fa
686 FMADDCC F1, F2, F3, F4 // fc8110fb
687 FMADDS F1, F2, F3, F4 // ec8110fa
688 FMADDSCC F1, F2, F3, F4 // ec8110fb
689 FMSUB F1, F2, F3, F4 // fc8110f8
690 FMSUBCC F1, F2, F3, F4 // fc8110f9
691 FMSUBS F1, F2, F3, F4 // ec8110f8
692 FMSUBSCC F1, F2, F3, F4 // ec8110f9
693 FNMADD F1, F2, F3, F4 // fc8110fe
694 FNMADDCC F1, F2, F3, F4 // fc8110ff
695 FNMADDS F1, F2, F3, F4 // ec8110fe
696 FNMADDSCC F1, F2, F3, F4 // ec8110ff
697 FNMSUB F1, F2, F3, F4 // fc8110fc
698 FNMSUBCC F1, F2, F3, F4 // fc8110fd
699 FNMSUBS F1, F2, F3, F4 // ec8110fc
700 FNMSUBSCC F1, F2, F3, F4 // ec8110fd
701 FSEL F1, F2, F3, F4 // fc8110ee
702 FSELCC F1, F2, F3, F4 // fc8110ef
703 FABS F1, F2 // fc400a10
704 FNABS F1, F2 // fc400910
705 FABSCC F1, F2 // fc400a11
706 FNABSCC F1, F2 // fc400911
707 FNEG F1, F2 // fc400850
708 FNEGCC F1, F2 // fc400851
709 FABSCC F1, F2 // fc400a11
710 FRSP F1, F2 // fc400818
711 FRSPCC F1, F2 // fc400819
712 FCTIW F1, F2 // fc40081c
713 FCTIWCC F1, F2 // fc40081d
714 FCTIWZ F1, F2 // fc40081e
715 FCTIWZCC F1, F2 // fc40081f
716 FCTID F1, F2 // fc400e5c
717 FCTIDCC F1, F2 // fc400e5d
718 FCTIDZ F1, F2 // fc400e5e
719 FCTIDZCC F1, F2 // fc400e5f
720 FCFID F1, F2 // fc400e9c
721 FCFIDCC F1, F2 // fc400e9d
722 FCFIDU F1, F2 // fc400f9c
723 FCFIDUCC F1, F2 // fc400f9d
724 FCFIDS F1, F2 // ec400e9c
725 FCFIDSCC F1, F2 // ec400e9d
726 FRES F1, F2 // ec400830
727 FRESCC F1, F2 // ec400831
728 FRIM F1, F2 // fc400bd0
729 FRIMCC F1, F2 // fc400bd1
730 FRIP F1, F2 // fc400b90
731 FRIPCC F1, F2 // fc400b91
732 FRIZ F1, F2 // fc400b50
733 FRIZCC F1, F2 // fc400b51
734 FRIN F1, F2 // fc400b10
735 FRINCC F1, F2 // fc400b11
736 FRSQRTE F1, F2 // fc400834
737 FRSQRTECC F1, F2 // fc400835
738 FSQRT F1, F2 // fc40082c
739 FSQRTCC F1, F2 // fc40082d
740 FSQRTS F1, F2 // ec40082c
741 FSQRTSCC F1, F2 // ec40082d
742 FCPSGN F1, F2 // fc420810
743 FCPSGNCC F1, F2 // fc420811
744 FCMPO F1, F2 // fc011040
745 FCMPU F1, F2 // fc011000
746 LVX (R3)(R4), V1 // 7c2418ce
747 LVX (R3)(R0), V1 // 7c2018ce
748 LVX (R3), V1 // 7c2018ce
749 LVXL (R3)(R4), V1 // 7c241ace
750 LVXL (R3)(R0), V1 // 7c201ace
751 LVXL (R3), V1 // 7c201ace
752 LVSL (R3)(R4), V1 // 7c24180c
753 LVSL (R3)(R0), V1 // 7c20180c
754 LVSL (R3), V1 // 7c20180c
755 LVSR (R3)(R4), V1 // 7c24184c
756 LVSR (R3)(R0), V1 // 7c20184c
757 LVSR (R3), V1 // 7c20184c
758 LVEBX (R3)(R4), V1 // 7c24180e
759 LVEBX (R3)(R0), V1 // 7c20180e
760 LVEBX (R3), V1 // 7c20180e
761 LVEHX (R3)(R4), V1 // 7c24184e
762 LVEHX (R3)(R0), V1 // 7c20184e
763 LVEHX (R3), V1 // 7c20184e
764 LVEWX (R3)(R4), V1 // 7c24188e
765 LVEWX (R3)(R0), V1 // 7c20188e
766 LVEWX (R3), V1 // 7c20188e
767 STVX V1, (R3)(R4) // 7c2419ce
768 STVX V1, (R3)(R0) // 7c2019ce
769 STVX V1, (R3) // 7c2019ce
770 STVXL V1, (R3)(R4) // 7c241bce
771 STVXL V1, (R3)(R0) // 7c201bce
772 STVXL V1, (R3) // 7c201bce
773 STVEBX V1, (R3)(R4) // 7c24190e
774 STVEBX V1, (R3)(R0) // 7c20190e
775 STVEBX V1, (R3) // 7c20190e
776 STVEHX V1, (R3)(R4) // 7c24194e
777 STVEHX V1, (R3)(R0) // 7c20194e
778 STVEHX V1, (R3) // 7c20194e
779 STVEWX V1, (R3)(R4) // 7c24198e
780 STVEWX V1, (R3)(R0) // 7c20198e
781 STVEWX V1, (R3) // 7c20198e
782
783 VAND V1, V2, V3 // 10611404
784 VANDC V1, V2, V3 // 10611444
785 VNAND V1, V2, V3 // 10611584
786 VOR V1, V2, V3 // 10611484
787 VORC V1, V2, V3 // 10611544
788 VXOR V1, V2, V3 // 106114c4
789 VNOR V1, V2, V3 // 10611504
790 VEQV V1, V2, V3 // 10611684
791 VADDUBM V1, V2, V3 // 10611000
792 VADDUHM V1, V2, V3 // 10611040
793 VADDUWM V1, V2, V3 // 10611080
794 VADDUDM V1, V2, V3 // 106110c0
795 VADDUQM V1, V2, V3 // 10611100
796 VADDCUQ V1, V2, V3 // 10611140
797 VADDCUW V1, V2, V3 // 10611180
798 VADDUBS V1, V2, V3 // 10611200
799 VADDUHS V1, V2, V3 // 10611240
800 VADDUWS V1, V2, V3 // 10611280
801 VADDSBS V1, V2, V3 // 10611300
802 VADDSHS V1, V2, V3 // 10611340
803 VADDSWS V1, V2, V3 // 10611380
804 VADDEUQM V1, V2, V3, V4 // 108110fc
805 VADDECUQ V1, V2, V3, V4 // 108110fd
806 VSUBUBM V1, V2, V3 // 10611400
807 VSUBUHM V1, V2, V3 // 10611440
808 VSUBUWM V1, V2, V3 // 10611480
809 VSUBUDM V1, V2, V3 // 106114c0
810 VSUBUQM V1, V2, V3 // 10611500
811 VSUBCUQ V1, V2, V3 // 10611540
812 VSUBCUW V1, V2, V3 // 10611580
813 VSUBUBS V1, V2, V3 // 10611600
814 VSUBUHS V1, V2, V3 // 10611640
815 VSUBUWS V1, V2, V3 // 10611680
816 VSUBSBS V1, V2, V3 // 10611700
817 VSUBSHS V1, V2, V3 // 10611740
818 VSUBSWS V1, V2, V3 // 10611780
819 VSUBEUQM V1, V2, V3, V4 // 108110fe
820 VSUBECUQ V1, V2, V3, V4 // 108110ff
821 VMULESB V1, V2, V3 // 10611308
822 VMULESW V1, V2, V3 // 10611388
823 VMULOSB V1, V2, V3 // 10611108
824 VMULEUB V1, V2, V3 // 10611208
825 VMULOUB V1, V2, V3 // 10611008
826 VMULESH V1, V2, V3 // 10611348
827 VMULOSH V1, V2, V3 // 10611148
828 VMULEUH V1, V2, V3 // 10611248
829 VMULOUH V1, V2, V3 // 10611048
830 VMULESH V1, V2, V3 // 10611348
831 VMULOSW V1, V2, V3 // 10611188
832 VMULEUW V1, V2, V3 // 10611288
833 VMULOUW V1, V2, V3 // 10611088
834 VMULUWM V1, V2, V3 // 10611089
835 VPMSUMB V1, V2, V3 // 10611408
836 VPMSUMH V1, V2, V3 // 10611448
837 VPMSUMW V1, V2, V3 // 10611488
838 VPMSUMD V1, V2, V3 // 106114c8
839 VMSUMUDM V1, V2, V3, V4 // 108110e3
840 VRLB V1, V2, V3 // 10611004
841 VRLH V1, V2, V3 // 10611044
842 VRLW V1, V2, V3 // 10611084
843 VRLD V1, V2, V3 // 106110c4
844 VSLB V1, V2, V3 // 10611104
845 VSLH V1, V2, V3 // 10611144
846 VSLW V1, V2, V3 // 10611184
847 VSL V1, V2, V3 // 106111c4
848 VSLO V1, V2, V3 // 1061140c
849 VSRB V1, V2, V3 // 10611204
850 VSRH V1, V2, V3 // 10611244
851 VSRW V1, V2, V3 // 10611284
852 VSRD V1, V2, V3 // 106116c4
853 VSR V1, V2, V3 // 106112c4
854 VSRO V1, V2, V3 // 1061144c
855 VSLD V1, V2, V3 // 106115c4
856 VSRAB V1, V2, V3 // 10611304
857 VSRAH V1, V2, V3 // 10611344
858 VSRAW V1, V2, V3 // 10611384
859 VSRAD V1, V2, V3 // 106113c4
860 VSLDOI $3, V1, V2, V3 // 106110ec
861 VCLZB V1, V2 // 10400f02
862 VCLZH V1, V2 // 10400f42
863 VCLZW V1, V2 // 10400f82
864 VCLZD V1, V2 // 10400fc2
865 VPOPCNTB V1, V2 // 10400f03
866 VPOPCNTH V1, V2 // 10400f43
867 VPOPCNTW V1, V2 // 10400f83
868 VPOPCNTD V1, V2 // 10400fc3
869 VCMPEQUB V1, V2, V3 // 10611006
870 VCMPEQUBCC V1, V2, V3 // 10611406
871 VCMPEQUH V1, V2, V3 // 10611046
872 VCMPEQUHCC V1, V2, V3 // 10611446
873 VCMPEQUW V1, V2, V3 // 10611086
874 VCMPEQUWCC V1, V2, V3 // 10611486
875 VCMPEQUD V1, V2, V3 // 106110c7
876 VCMPEQUDCC V1, V2, V3 // 106114c7
877 VCMPGTUB V1, V2, V3 // 10611206
878 VCMPGTUBCC V1, V2, V3 // 10611606
879 VCMPGTUH V1, V2, V3 // 10611246
880 VCMPGTUHCC V1, V2, V3 // 10611646
881 VCMPGTUW V1, V2, V3 // 10611286
882 VCMPGTUWCC V1, V2, V3 // 10611686
883 VCMPGTUD V1, V2, V3 // 106112c7
884 VCMPGTUDCC V1, V2, V3 // 106116c7
885 VCMPGTSB V1, V2, V3 // 10611306
886 VCMPGTSBCC V1, V2, V3 // 10611706
887 VCMPGTSH V1, V2, V3 // 10611346
888 VCMPGTSHCC V1, V2, V3 // 10611746
889 VCMPGTSW V1, V2, V3 // 10611386
890 VCMPGTSWCC V1, V2, V3 // 10611786
891 VCMPGTSD V1, V2, V3 // 106113c7
892 VCMPGTSDCC V1, V2, V3 // 106117c7
893 VCMPNEZB V1, V2, V3 // 10611107
894 VCMPNEZBCC V1, V2, V3 // 10611507
895 VCMPNEB V1, V2, V3 // 10611007
896 VCMPNEBCC V1, V2, V3 // 10611407
897 VCMPNEH V1, V2, V3 // 10611047
898 VCMPNEHCC V1, V2, V3 // 10611447
899 VCMPNEW V1, V2, V3 // 10611087
900 VCMPNEWCC V1, V2, V3 // 10611487
901 VPERM V1, V2, V3, V4 // 108110eb
902 VPERMR V1, V2, V3, V4 // 108110fb
903 VPERMXOR V1, V2, V3, V4 // 108110ed
904 VBPERMQ V1, V2, V3 // 1061154c
905 VBPERMD V1, V2, V3 // 106115cc
906 VSEL V1, V2, V3, V4 // 108110ea
907 VSPLTB $1, V1, V2 // 10410a0c
908 VSPLTH $1, V1, V2 // 10410a4c
909 VSPLTW $1, V1, V2 // 10410a8c
910 VSPLTISB $1, V1 // 1021030c
911 VSPLTISW $1, V1 // 1021038c
912 VSPLTISH $1, V1 // 1021034c
913 VCIPHER V1, V2, V3 // 10611508
914 VCIPHERLAST V1, V2, V3 // 10611509
915 VNCIPHER V1, V2, V3 // 10611548
916 VNCIPHERLAST V1, V2, V3 // 10611549
917 VSBOX V1, V2 // 104105c8
918 VSHASIGMAW $1, V1, $15, V2 // 10418e82
919 VSHASIGMAW $1, $15, V1, V2 // 10418e82
920 VSHASIGMAD $2, V1, $15, V2 // 104196c2
921 VSHASIGMAD $2, $15, V1, V2 // 104196c2
922
923 LXVD2X (R3)(R4), VS1 // 7c241e98
924 LXVD2X (R3)(R0), VS1 // 7c201e98
925 LXVD2X (R3), VS1 // 7c201e98
926 LXVDSX (R3)(R4), VS1 // 7c241a98
927 LXVDSX (R3)(R0), VS1 // 7c201a98
928 LXVDSX (R3), VS1 // 7c201a98
929 LXVH8X (R3)(R4), VS1 // 7c241e58
930 LXVH8X (R3)(R0), VS1 // 7c201e58
931 LXVH8X (R3), VS1 // 7c201e58
932 LXVB16X (R3)(R4), VS1 // 7c241ed8
933 LXVB16X (R3)(R0), VS1 // 7c201ed8
934 LXVB16X (R3), VS1 // 7c201ed8
935 LXVW4X (R3)(R4), VS1 // 7c241e18
936 LXVW4X (R3)(R0), VS1 // 7c201e18
937 LXVW4X (R3), VS1 // 7c201e18
938 LXV 16(R3), VS1 // f4230011
939 LXV (R3), VS1 // f4230001
940 LXV 16(R3), VS33 // f4230019
941 LXV (R3), VS33 // f4230009
942 LXV 16(R3), V1 // f4230019
943 LXV (R3), V1 // f4230009
944 LXVL R3, R4, VS1 // 7c23221a
945 LXVLL R3, R4, VS1 // 7c23225a
946 LXVX R3, R4, VS1 // 7c232218
947 LXSDX (R3)(R4), VS1 // 7c241c98
948 LXSDX (R3)(R0), VS1 // 7c201c98
949 LXSDX (R3), VS1 // 7c201c98
950 STXVD2X VS1, (R3)(R4) // 7c241f98
951 STXVD2X VS1, (R3)(R0) // 7c201f98
952 STXVD2X VS1, (R3) // 7c201f98
953 STXVW4X VS1, (R3)(R4) // 7c241f18
954 STXVW4X VS1, (R3)(R0) // 7c201f18
955 STXVW4X VS1, (R3) // 7c201f18
956 STXV VS1,16(R3) // f4230015
957 STXV VS1,(R3) // f4230005
958 STXVL VS1, R3, R4 // 7c23231a
959 STXVLL VS1, R3, R4 // 7c23235a
960 STXVX VS1, R3, R4 // 7c232318
961 STXVB16X VS1, (R4)(R5) // 7c2527d8
962 STXVB16X VS1, (R4)(R0) // 7c2027d8
963 STXVB16X VS1, (R4) // 7c2027d8
964 STXVH8X VS1, (R4)(R5) // 7c252758
965 STXVH8X VS1, (R4)(R0) // 7c202758
966 STXVH8X VS1, (R4) // 7c202758
967 STXSDX VS1, (R3)(R4) // 7c241d98
968 STXSDX VS1, (R4)(R0) // 7c202598
969 STXSDX VS1, (R4) // 7c202598
970 LXSIWAX (R3)(R4), VS1 // 7c241898
971 LXSIWAX (R3)(R0), VS1 // 7c201898
972 LXSIWAX (R3), VS1 // 7c201898
973 LXSIWZX (R3)(R4), VS1 // 7c241818
974 LXSIWZX (R3)(R0), VS1 // 7c201818
975 LXSIWZX (R3), VS1 // 7c201818
976 STXSIWX VS1, (R3)(R4) // 7c241918
977 STXSIWX VS1, (R3)(R0) // 7c201918
978 STXSIWX VS1, (R3) // 7c201918
979 MFVSRD VS1, R3 // 7c230066
980 MTFPRD R3, F0 // 7c030166
981 MFVRD V0, R3 // 7c030067
982 MFVSRLD VS63,R4 // 7fe40267
983 MFVSRLD V31,R4 // 7fe40267
984 MFVSRWZ VS33,R4 // 7c2400e7
985 MFVSRWZ V1,R4 // 7c2400e7
986 MTVSRD R3, VS1 // 7c230166
987 MTVSRDD R3, R4, VS1 // 7c232366
988 MTVSRDD R3, R4, VS33 // 7c232367
989 MTVSRDD R3, R4, V1 // 7c232367
990 MTVRD R3, V13 // 7da30167
991 MTVSRWA R4, VS31 // 7fe401a6
992 MTVSRWS R4, VS32 // 7c040327
993 MTVSRWZ R4, VS63 // 7fe401e7
994 MTFSB0 $2 // fc40008c
995 MTFSB0CC $2 // fc40008d
996 MTFSB1 $2 // fc40004c
997 MTFSB1CC $2 // fc40004d
998 XXBRQ VS0, VS1 // f03f076c
999 XXBRD VS0, VS1 // f037076c
1000 XXBRW VS1, VS2 // f04f0f6c
1001 XXBRH VS2, VS3 // f067176c
1002 XXLAND VS1, VS2, VS3 // f0611410
1003 XXLAND V1, V2, V3 // f0611417
1004 XXLAND VS33, VS34, VS35 // f0611417
1005 XXLANDC VS1, VS2, VS3 // f0611450
1006 XXLEQV VS0, VS1, VS2 // f0400dd0
1007 XXLNAND VS0, VS1, VS2 // f0400d90
1008 XXLNOR VS0, VS1, VS32 // f0000d11
1009 XXLOR VS1, VS2, VS3 // f0611490
1010 XXLORC VS1, VS2, VS3 // f0611550
1011 XXLORQ VS1, VS2, VS3 // f0611490
1012 XXLXOR VS1, VS2, VS3 // f06114d0
1013 XXSEL VS1, VS2, VS3, VS4 // f08110f0
1014 XXSEL VS33, VS34, VS35, VS36 // f08110ff
1015 XXSEL V1, V2, V3, V4 // f08110ff
1016 XXMRGHW VS1, VS2, VS3 // f0611090
1017 XXMRGLW VS1, VS2, VS3 // f0611190
1018 XXSPLTW VS1, $1, VS2 // f0410a90
1019 XXSPLTW VS33, $1, VS34 // f0410a93
1020 XXSPLTW V1, $1, V2 // f0410a93
1021 XXPERM VS1, VS2, VS3 // f06110d0
1022 XXSLDWI VS1, VS2, $1, VS3 // f0611110
1023 XXSLDWI V1, V2, $1, V3 // f0611117
1024 XXSLDWI V1, $1, V2, V3 // f0611117
1025 XXSLDWI VS33, VS34, $1, VS35 // f0611117
1026 XXSLDWI VS33, $1, VS34, VS35 // f0611117
1027 XXPERMDI VS33, VS34, $1, VS35 // f0611157
1028 XXPERMDI VS33, $1, VS34, VS35 // f0611157
1029 XSCVDPSP VS1, VS2 // f0400c24
1030 XVCVDPSP VS1, VS2 // f0400e24
1031 XSCVSXDDP VS1, VS2 // f0400de0
1032 XVCVDPSXDS VS1, VS2 // f0400f60
1033 XVCVSXDDP VS1, VS2 // f0400fe0
1034 XSCVDPSPN VS1,VS32 // f0000c2d
1035 XSCVDPSP VS1,VS32 // f0000c25
1036 XSCVDPSXDS VS1,VS32 // f0000d61
1037 XSCVDPSXWS VS1,VS32 // f0000961
1038 XSCVDPUXDS VS1,VS32 // f0000d21
1039 XSCVDPUXWS VS1,VS32 // f0000921
1040 XSCVSPDPN VS1,VS32 // f0000d2d
1041 XSCVSPDP VS1,VS32 // f0000d25
1042 XSCVSXDDP VS1,VS32 // f0000de1
1043 XSCVSXDSP VS1,VS32 // f0000ce1
1044 XSCVUXDDP VS1,VS32 // f0000da1
1045 XSCVUXDSP VS1,VS32 // f0000ca1
1046 XVCVDPSP VS1,VS32 // f0000e25
1047 XVCVDPSXDS VS1,VS32 // f0000f61
1048 XVCVDPSXWS VS1,VS32 // f0000b61
1049 XVCVDPUXDS VS1,VS32 // f0000f21
1050 XVCVDPUXWS VS1,VS32 // f0000b21
1051 XVCVSPDP VS1,VS32 // f0000f25
1052 XVCVSPSXDS VS1,VS32 // f0000e61
1053 XVCVSPSXWS VS1,VS32 // f0000a61
1054 XVCVSPUXDS VS1,VS32 // f0000e21
1055 XVCVSPUXWS VS1,VS32 // f0000a21
1056 XVCVSXDDP VS1,VS32 // f0000fe1
1057 XVCVSXDSP VS1,VS32 // f0000ee1
1058 XVCVSXWDP VS1,VS32 // f0000be1
1059 XVCVSXWSP VS1,VS32 // f0000ae1
1060 XVCVUXDDP VS1,VS32 // f0000fa1
1061 XVCVUXDSP VS1,VS32 // f0000ea1
1062 XVCVUXWDP VS1,VS32 // f0000ba1
1063 XVCVUXWSP VS1,VS32 // f0000aa1
1064
1065 MOVD R3, LR // 7c6803a6
1066 MOVD R3, CTR // 7c6903a6
1067 MOVD R3, XER // 7c6103a6
1068 MOVD LR, R3 // 7c6802a6
1069 MOVD CTR, R3 // 7c6902a6
1070 MOVD XER, R3 // 7c6102a6
1071 MOVFL CR3, CR1 // 4c8c0000
1072
1073 MOVW CR0, R1 // 7c380026
1074 MOVW CR7, R1 // 7c301026
1075 MOVW CR, R1 // 7c200026
1076
1077 MOVW R1, CR // 7c2ff120
1078 MOVFL R1, CR // 7c2ff120
1079 MOVW R1, CR2 // 7c320120
1080 MOVFL R1, CR2 // 7c320120
1081 MOVFL R1, $255 // 7c2ff120
1082 MOVFL R1, $1 // 7c301120
1083 MOVFL R1, $128 // 7c380120
1084 MOVFL R1, $3 // 7c203120
1085 MOVMW 4(R3), R4 // b8830004
1086
1087
1088 // Verify supported bdnz/bdz encodings.
1089 BC 16,0,0(PC) // BC $16, CR0LT, 0(PC) // 42000000
1090 BDNZ 0(PC) // 42000000
1091 BDZ 0(PC) // 42400000
1092 BC 18,0,0(PC) // BC $18, CR0LT, 0(PC) // 42400000
1093
1094 // Verify the supported forms of bcclr[l]
1095 BC $20,CR0LT,$1,LR // 4e800820
1096 BC $20,CR0LT,$0,LR // 4e800020
1097 BC $20,CR0LT,LR // 4e800020
1098 BC $20,CR0GT,LR // 4e810020
1099 BC 20,CR0LT,LR // BC $20,CR0LT,LR // 4e800020
1100 BC 20,undefined_symbol,LR // BC $20,CR0LT,LR // 4e800020
1101 BC 20,undefined_symbol+1,LR // BC $20,CR0GT,LR // 4e810020
1102 JMP LR // 4e800020
1103 BR LR // JMP LR // 4e800020
1104 BCL $20,CR0LT,$1,LR // 4e800821
1105 BCL $20,CR0LT,$0,LR // 4e800021
1106 BCL $20,CR0LT,LR // 4e800021
1107 BCL $20,CR0GT,LR // 4e810021
1108 BCL 20,CR0LT,LR // BCL $20,CR0LT,LR // 4e800021
1109 BCL 20,undefined_symbol,LR // BCL $20,CR0LT,LR // 4e800021
1110 BCL 20,undefined_symbol+1,LR // BCL $20,CR0GT,LR // 4e810021
1111
1112 // Verify the supported forms of bcctr[l]
1113 BC $20,CR0LT,CTR // 4e800420
1114 BC $20,CR0GT,CTR // 4e810420
1115 BC 20,CR0LT,CTR // BC $20,CR0LT,CTR // 4e800420
1116 BC 20,undefined_symbol,CTR // BC $20,CR0LT,CTR // 4e800420
1117 BC 20,undefined_symbol+1,CTR // BC $20,CR0GT,CTR // 4e810420
1118 JMP CTR // 4e800420
1119 BR CTR // JMP CTR // 4e800420
1120 BCL $20,CR0LT,CTR // 4e800421
1121 BCL $20,CR0GT,CTR // 4e810421
1122 BCL 20,CR0LT,CTR // BCL $20,CR0LT,CTR // 4e800421
1123 BCL 20,undefined_symbol,CTR // BCL $20,CR0LT,CTR // 4e800421
1124 BCL 20,undefined_symbol+1,CTR // BCL $20,CR0GT,CTR // 4e810421
1125
1126 // Verify bc encoding (without pic enabled)
1127 BC $16,CR0LT,0(PC) // 42000000
1128 BCL $16,CR0LT,0(PC) // 42000001
1129 BC $18,CR0LT,0(PC) // 42400000
1130
1131 MOVD SPR(3), 4(R1) // 7fe302a6fbe10004
1132 MOVD XER, 4(R1) // 7fe102a6fbe10004
1133 MOVD 4(R1), SPR(3) // ebe100047fe303a6
1134 MOVD 4(R1), XER // ebe100047fe103a6
1135 PNOP // 0700000000000000
1136
1137 SETB CR1,R3 // 7c640100
1138 VCLZLSBB V1, R2 // 10400e02
1139 VCTZLSBB V1, R2 // 10410e02
1140
1141 RET
1142
View as plain text