[PPC] Disassemble little endian ppc instructions in the right byte order
[oota-llvm.git] / test / MC / Disassembler / PowerPC / ppc64le-encoding.txt
1 # RUN: llvm-mc --disassemble %s -triple powerpc64le-unknown-unknown -mcpu=pwr7 | FileCheck %s
2
3 # FIXME: test b target
4
5 # FIXME: test ba target
6
7 # FIXME: test bl target
8
9 # FIXME: test bla target
10
11 # FIXME: test bc 4, 10, target
12
13 # FIXME: test bca 4, 10, target
14
15 # FIXME: test bcl 4, 10, target
16
17 # FIXME: test bcla 4, 10, target
18
19 # CHECK: bclr 4, 10, 3
20 0x20 0x18 0x8a 0x4c
21
22 # CHECK: bclr 4, 10
23 0x20 0x00 0x8a 0x4c
24
25 # CHECK: bclrl 4, 10, 3
26 0x21 0x18 0x8a 0x4c
27
28 # CHECK: bclrl 4, 10
29 0x21 0x00 0x8a 0x4c
30
31 # CHECK: bcctr 4, 10, 3
32 0x20 0x1c 0x8a 0x4c
33
34 # CHECK: bcctr 4, 10
35 0x20 0x04 0x8a 0x4c
36
37 # CHECK: bcctrl 4, 10, 3
38 0x21 0x1c 0x8a 0x4c
39
40 # CHECK: bcctrl 4, 10
41 0x21 0x04 0x8a 0x4c
42
43 # CHECK: crand 2, 3, 4
44 0x02 0x22 0x43 0x4c
45
46 # CHECK: crnand 2, 3, 4
47 0xc2 0x21 0x43 0x4c
48
49 # CHECK: cror 2, 3, 4
50 0x82 0x23 0x43 0x4c
51
52 # CHECK: crxor 2, 3, 4
53 0x82 0x21 0x43 0x4c
54
55 # CHECK: crnor 2, 3, 4
56 0x42 0x20 0x43 0x4c
57
58 # CHECK: creqv 2, 3, 4
59 0x42 0x22 0x43 0x4c
60
61 # CHECK: crandc 2, 3, 4
62 0x02 0x21 0x43 0x4c
63
64 # CHECK: crorc 2, 3, 4
65 0x42 0x23 0x43 0x4c
66
67 # CHECK: mcrf 2, 3
68 0x00 0x00 0x0c 0x4d
69
70 # CHECK: sc 1
71 0x22 0x00 0x00 0x44
72
73 # CHECK: sc
74 0x02 0x00 0x00 0x44
75
76 # CHECK: clrbhrb
77 0x5c 0x03 0x00 0x7c
78
79 # CHECK: mfbhrbe 9, 983
80 0x5c 0xba 0x3e 0x7d
81
82 # CHECK: rfebb 1
83 0x24 0x09 0x00 0x4c
84
85 # CHECK: lbz 2, 128(4)
86 0x80 0x00 0x44 0x88
87
88 # CHECK: lbzx 2, 3, 4
89 0xae 0x20 0x43 0x7c
90
91 # CHECK: lbzu 2, 128(4)
92 0x80 0x00 0x44 0x8c
93
94 # CHECK: lbzux 2, 3, 4
95 0xee 0x20 0x43 0x7c
96
97 # CHECK: lhz 2, 128(4)
98 0x80 0x00 0x44 0xa0
99
100 # CHECK: lhzx 2, 3, 4
101 0x2e 0x22 0x43 0x7c
102
103 # CHECK: lhzu 2, 128(4)
104 0x80 0x00 0x44 0xa4
105
106 # CHECK: lhzux 2, 3, 4
107 0x6e 0x22 0x43 0x7c
108
109 # CHECK: lha 2, 128(4)
110 0x80 0x00 0x44 0xa8
111
112 # CHECK: lhax 2, 3, 4
113 0xae 0x22 0x43 0x7c
114
115 # CHECK: lhau 2, 128(4)
116 0x80 0x00 0x44 0xac
117
118 # CHECK: lhaux 2, 3, 4
119 0xee 0x22 0x43 0x7c
120
121 # CHECK: lwz 2, 128(4)
122 0x80 0x00 0x44 0x80
123
124 # CHECK: lwzx 2, 3, 4
125 0x2e 0x20 0x43 0x7c
126
127 # CHECK: lwzu 2, 128(4)
128 0x80 0x00 0x44 0x84
129
130 # CHECK: lwzux 2, 3, 4
131 0x6e 0x20 0x43 0x7c
132
133 # CHECK: lwa 2, 128(4)
134 0x82 0x00 0x44 0xe8
135
136 # CHECK: lwax 2, 3, 4
137 0xaa 0x22 0x43 0x7c
138
139 # CHECK: lwaux 2, 3, 4
140 0xea 0x22 0x43 0x7c
141
142 # CHECK: ld 2, 128(4)
143 0x80 0x00 0x44 0xe8
144
145 # CHECK: ldx 2, 3, 4
146 0x2a 0x20 0x43 0x7c
147
148 # CHECK: ldu 2, 128(4)
149 0x81 0x00 0x44 0xe8
150
151 # CHECK: ldux 2, 3, 4
152 0x6a 0x20 0x43 0x7c
153
154 # CHECK: stb 2, 128(4)
155 0x80 0x00 0x44 0x98
156
157 # CHECK: stbx 2, 3, 4
158 0xae 0x21 0x43 0x7c
159
160 # CHECK: stbu 2, 128(4)
161 0x80 0x00 0x44 0x9c
162
163 # CHECK: stbux 2, 3, 4
164 0xee 0x21 0x43 0x7c
165
166 # CHECK: sth 2, 128(4)
167 0x80 0x00 0x44 0xb0
168
169 # CHECK: sthx 2, 3, 4
170 0x2e 0x23 0x43 0x7c
171
172 # CHECK: sthu 2, 128(4)
173 0x80 0x00 0x44 0xb4
174
175 # CHECK: sthux 2, 3, 4
176 0x6e 0x23 0x43 0x7c
177
178 # CHECK: stw 2, 128(4)
179 0x80 0x00 0x44 0x90
180
181 # CHECK: stwx 2, 3, 4
182 0x2e 0x21 0x43 0x7c
183
184 # CHECK: stwu 2, 128(4)
185 0x80 0x00 0x44 0x94
186
187 # CHECK: stwux 2, 3, 4
188 0x6e 0x21 0x43 0x7c
189
190 # CHECK: std 2, 128(4)
191 0x80 0x00 0x44 0xf8
192
193 # CHECK: stdx 2, 3, 4
194 0x2a 0x21 0x43 0x7c
195
196 # CHECK: stdu 2, 128(4)
197 0x81 0x00 0x44 0xf8
198
199 # CHECK: stdux 2, 3, 4
200 0x6a 0x21 0x43 0x7c
201
202 # CHECK: lhbrx 2, 3, 4
203 0x2c 0x26 0x43 0x7c
204
205 # CHECK: sthbrx 2, 3, 4
206 0x2c 0x27 0x43 0x7c
207
208 # CHECK: lwbrx 2, 3, 4
209 0x2c 0x24 0x43 0x7c
210
211 # CHECK: stwbrx 2, 3, 4
212 0x2c 0x25 0x43 0x7c
213
214 # CHECK: ldbrx 2, 3, 4
215 0x28 0x24 0x43 0x7c
216
217 # CHECK: stdbrx 2, 3, 4
218 0x28 0x25 0x43 0x7c
219
220 # CHECK: lmw 2, 128(1)
221 0x80 0x00 0x41 0xb8
222
223 # CHECK: stmw 2, 128(1)
224 0x80 0x00 0x41 0xbc
225
226 # CHECK: addi 2, 3, 128
227 0x80 0x00 0x43 0x38
228
229 # CHECK: addis 2, 3, 128
230 0x80 0x00 0x43 0x3c
231
232 # CHECK: add 2, 3, 4
233 0x14 0x22 0x43 0x7c
234
235 # CHECK: add. 2, 3, 4
236 0x15 0x22 0x43 0x7c
237
238 # CHECK: subf 2, 3, 4
239 0x50 0x20 0x43 0x7c
240
241 # CHECK: subf. 2, 3, 4
242 0x51 0x20 0x43 0x7c
243
244 # CHECK: addic 2, 3, 128
245 0x80 0x00 0x43 0x30
246
247 # CHECK: addic. 2, 3, 128
248 0x80 0x00 0x43 0x34
249
250 # CHECK: subfic 2, 3, 4
251 0x04 0x00 0x43 0x20
252
253 # CHECK: addc 2, 3, 4
254 0x14 0x20 0x43 0x7c
255
256 # CHECK: addc. 2, 3, 4
257 0x15 0x20 0x43 0x7c
258
259 # CHECK: subfc 2, 3, 4
260 0x10 0x20 0x43 0x7c
261
262 # CHECK: subfc 2, 3, 4
263 0x10 0x20 0x43 0x7c
264
265 # CHECK: adde 2, 3, 4
266 0x14 0x21 0x43 0x7c
267
268 # CHECK: adde. 2, 3, 4
269 0x15 0x21 0x43 0x7c
270
271 # CHECK: subfe 2, 3, 4
272 0x10 0x21 0x43 0x7c
273
274 # CHECK: subfe. 2, 3, 4
275 0x11 0x21 0x43 0x7c
276
277 # CHECK: addme 2, 3
278 0xd4 0x01 0x43 0x7c
279
280 # CHECK: addme. 2, 3
281 0xd5 0x01 0x43 0x7c
282
283 # CHECK: subfme 2, 3
284 0xd0 0x01 0x43 0x7c
285
286 # CHECK: subfme. 2, 3
287 0xd1 0x01 0x43 0x7c
288
289 # CHECK: addze 2, 3
290 0x94 0x01 0x43 0x7c
291
292 # CHECK: addze. 2, 3
293 0x95 0x01 0x43 0x7c
294
295 # CHECK: subfze 2, 3
296 0x90 0x01 0x43 0x7c
297
298 # CHECK: subfze. 2, 3
299 0x91 0x01 0x43 0x7c
300
301 # CHECK: neg 2, 3
302 0xd0 0x00 0x43 0x7c
303
304 # CHECK: neg. 2, 3
305 0xd1 0x00 0x43 0x7c
306
307 # CHECK: mulli 2, 3, 128
308 0x80 0x00 0x43 0x1c
309
310 # CHECK: mulhw 2, 3, 4
311 0x96 0x20 0x43 0x7c
312
313 # CHECK: mulhw. 2, 3, 4
314 0x97 0x20 0x43 0x7c
315
316 # CHECK: mullw 2, 3, 4
317 0xd6 0x21 0x43 0x7c
318
319 # CHECK: mullw. 2, 3, 4
320 0xd7 0x21 0x43 0x7c
321
322 # CHECK: mulhwu 2, 3, 4
323 0x16 0x20 0x43 0x7c
324
325 # CHECK: mulhwu. 2, 3, 4
326 0x17 0x20 0x43 0x7c
327
328 # CHECK: divw 2, 3, 4
329 0xd6 0x23 0x43 0x7c
330
331 # CHECK: divw. 2, 3, 4
332 0xd7 0x23 0x43 0x7c
333
334 # CHECK: divwu 2, 3, 4
335 0x96 0x23 0x43 0x7c
336
337 # CHECK: divwu. 2, 3, 4
338 0x97 0x23 0x43 0x7c
339
340 # CHECK: divwe 2, 3, 4
341 0x56 0x23 0x43 0x7c
342
343 # CHECK: divwe. 2, 3, 4
344 0x57 0x23 0x43 0x7c
345
346 # CHECK: divweu 2, 3, 4
347 0x16 0x23 0x43 0x7c
348
349 # CHECK: divweu. 2, 3, 4
350 0x17 0x23 0x43 0x7c
351
352 # CHECK: mulld 2, 3, 4
353 0xd2 0x21 0x43 0x7c
354
355 # CHECK: mulld. 2, 3, 4
356 0xd3 0x21 0x43 0x7c
357
358 # CHECK: mulhd 2, 3, 4
359 0x92 0x20 0x43 0x7c
360
361 # CHECK: mulhd. 2, 3, 4
362 0x93 0x20 0x43 0x7c
363
364 # CHECK: mulhdu 2, 3, 4
365 0x12 0x20 0x43 0x7c
366
367 # CHECK: mulhdu. 2, 3, 4
368 0x13 0x20 0x43 0x7c
369
370 # CHECK: divd 2, 3, 4
371 0xd2 0x23 0x43 0x7c
372
373 # CHECK: divd. 2, 3, 4
374 0xd3 0x23 0x43 0x7c
375
376 # CHECK: divdu 2, 3, 4
377 0x92 0x23 0x43 0x7c
378
379 # CHECK: divdu. 2, 3, 4
380 0x93 0x23 0x43 0x7c
381
382 # CHECK: divde 2, 3, 4
383 0x52 0x23 0x43 0x7c
384
385 # CHECK: divde. 2, 3, 4
386 0x53 0x23 0x43 0x7c
387
388 # CHECK: divdeu 2, 3, 4
389 0x12 0x23 0x43 0x7c
390
391 # CHECK: divdeu. 2, 3, 4
392 0x13 0x23 0x43 0x7c
393
394 # CHECK: cmpdi 2, 3, 128
395 0x80 0x00 0x23 0x2d
396
397 # CHECK: cmpd 2, 3, 4
398 0x00 0x20 0x23 0x7d
399
400 # CHECK: cmpldi 2, 3, 128
401 0x80 0x00 0x23 0x29
402
403 # CHECK: cmpld 2, 3, 4
404 0x40 0x20 0x23 0x7d
405
406 # CHECK: cmpwi 2, 3, 128
407 0x80 0x00 0x03 0x2d
408
409 # CHECK: cmpw 2, 3, 4
410 0x00 0x20 0x03 0x7d
411
412 # CHECK: cmplwi 2, 3, 128
413 0x80 0x00 0x03 0x29
414
415 # CHECK: cmplw 2, 3, 4
416 0x40 0x20 0x03 0x7d
417
418 # CHECK: twllti 3, 4
419 0x04 0x00 0x43 0x0c
420
421 # CHECK: twllt 3, 4
422 0x08 0x20 0x43 0x7c
423
424 # CHECK: tdllti 3, 4
425 0x04 0x00 0x43 0x08
426
427 # CHECK: tdllt 3, 4
428 0x88 0x20 0x43 0x7c
429
430 # CHECK: isel 2, 3, 4, 5
431 0x5e 0x21 0x43 0x7c
432
433 # CHECK: andi. 2, 3, 128
434 0x80 0x00 0x62 0x70
435
436 # CHECK: andis. 2, 3, 128
437 0x80 0x00 0x62 0x74
438
439 # CHECK: ori 2, 3, 128
440 0x80 0x00 0x62 0x60
441
442 # CHECK: oris 2, 3, 128
443 0x80 0x00 0x62 0x64
444
445 # CHECK: xori 2, 3, 128
446 0x80 0x00 0x62 0x68
447
448 # CHECK: xoris 2, 3, 128
449 0x80 0x00 0x62 0x6c
450
451 # CHECK: and 2, 3, 4
452 0x38 0x20 0x62 0x7c
453
454 # CHECK: and. 2, 3, 4
455 0x39 0x20 0x62 0x7c
456
457 # CHECK: xor 2, 3, 4
458 0x78 0x22 0x62 0x7c
459
460 # CHECK: xor. 2, 3, 4
461 0x79 0x22 0x62 0x7c
462
463 # CHECK: nand 2, 3, 4
464 0xb8 0x23 0x62 0x7c
465
466 # CHECK: nand. 2, 3, 4
467 0xb9 0x23 0x62 0x7c
468
469 # CHECK: or 2, 3, 4
470 0x78 0x23 0x62 0x7c
471
472 # CHECK: or. 2, 3, 4
473 0x79 0x23 0x62 0x7c
474
475 # CHECK: nor 2, 3, 4
476 0xf8 0x20 0x62 0x7c
477
478 # CHECK: nor. 2, 3, 4
479 0xf9 0x20 0x62 0x7c
480
481 # CHECK: eqv 2, 3, 4
482 0x38 0x22 0x62 0x7c
483
484 # CHECK: eqv. 2, 3, 4
485 0x39 0x22 0x62 0x7c
486
487 # CHECK: andc 2, 3, 4
488 0x78 0x20 0x62 0x7c
489
490 # CHECK: andc. 2, 3, 4
491 0x79 0x20 0x62 0x7c
492
493 # CHECK: orc 2, 3, 4
494 0x38 0x23 0x62 0x7c
495
496 # CHECK: orc. 2, 3, 4
497 0x39 0x23 0x62 0x7c
498
499 # CHECK: extsb 2, 3
500 0x74 0x07 0x62 0x7c
501
502 # CHECK: extsb. 2, 3
503 0x75 0x07 0x62 0x7c
504
505 # CHECK: extsh 2, 3
506 0x34 0x07 0x62 0x7c
507
508 # CHECK: extsh. 2, 3
509 0x35 0x07 0x62 0x7c
510
511 # CHECK: cntlz 2, 3
512 0x34 0x00 0x62 0x7c
513
514 # CHECK: cntlz. 2, 3
515 0x35 0x00 0x62 0x7c
516
517 # CHECK: popcntw 2, 3
518 0xf4 0x02 0x62 0x7c
519
520 # CHECK: extsw 2, 3
521 0xb4 0x07 0x62 0x7c
522
523 # CHECK: extsw. 2, 3
524 0xb5 0x07 0x62 0x7c
525
526 # CHECK: cntlzd 2, 3
527 0x74 0x00 0x62 0x7c
528
529 # CHECK: cntlzd. 2, 3
530 0x75 0x00 0x62 0x7c
531
532 # CHECK: popcntd 2, 3
533 0xf4 0x03 0x62 0x7c
534
535 # CHECK: bpermd 2, 3, 4
536 0xf8 0x21 0x62 0x7c
537
538 # CHECK: cmpb 7, 21, 4
539 0xf8 0x23 0xa7 0x7e
540
541 # CHECK: rlwinm 2, 3, 4, 5, 6
542 0x4c 0x21 0x62 0x54
543
544 # CHECK: rlwinm. 2, 3, 4, 5, 6
545 0x4d 0x21 0x62 0x54
546
547 # CHECK: rlwnm 2, 3, 4, 5, 6
548 0x4c 0x21 0x62 0x5c
549
550 # CHECK: rlwnm. 2, 3, 4, 5, 6
551 0x4d 0x21 0x62 0x5c
552
553 # CHECK: rlwimi 2, 3, 4, 5, 6
554 0x4c 0x21 0x62 0x50
555
556 # CHECK: rlwimi. 2, 3, 4, 5, 6
557 0x4d 0x21 0x62 0x50
558
559 # CHECK: rldicl 2, 3, 4, 5
560 0x40 0x21 0x62 0x78
561
562 # CHECK: rldicl. 2, 3, 4, 5
563 0x41 0x21 0x62 0x78
564
565 # CHECK: rldicr 2, 3, 4, 5
566 0x44 0x21 0x62 0x78
567
568 # CHECK: rldicr. 2, 3, 4, 5
569 0x45 0x21 0x62 0x78
570
571 # CHECK: rldic 2, 3, 4, 5
572 0x48 0x21 0x62 0x78
573
574 # CHECK: rldic. 2, 3, 4, 5
575 0x49 0x21 0x62 0x78
576
577 # CHECK: rldcl 2, 3, 4, 5
578 0x50 0x21 0x62 0x78
579
580 # CHECK: rldcl. 2, 3, 4, 5
581 0x51 0x21 0x62 0x78
582
583 # CHECK: rldcr 2, 3, 4, 5
584 0x52 0x21 0x62 0x78
585
586 # CHECK: rldcr. 2, 3, 4, 5
587 0x53 0x21 0x62 0x78
588
589 # CHECK: rldimi 2, 3, 4, 5
590 0x4c 0x21 0x62 0x78
591
592 # CHECK: rldimi. 2, 3, 4, 5
593 0x4d 0x21 0x62 0x78
594
595 # CHECK: slw 2, 3, 4
596 0x30 0x20 0x62 0x7c
597
598 # CHECK: slw. 2, 3, 4
599 0x31 0x20 0x62 0x7c
600
601 # CHECK: srw 2, 3, 4
602 0x30 0x24 0x62 0x7c
603
604 # CHECK: srw. 2, 3, 4
605 0x31 0x24 0x62 0x7c
606
607 # CHECK: srawi 2, 3, 4
608 0x70 0x26 0x62 0x7c
609
610 # CHECK: srawi. 2, 3, 4
611 0x71 0x26 0x62 0x7c
612
613 # CHECK: sraw 2, 3, 4
614 0x30 0x26 0x62 0x7c
615
616 # CHECK: sraw. 2, 3, 4
617 0x31 0x26 0x62 0x7c
618
619 # CHECK: sld 2, 3, 4
620 0x36 0x20 0x62 0x7c
621
622 # CHECK: sld. 2, 3, 4
623 0x37 0x20 0x62 0x7c
624
625 # CHECK: srd 2, 3, 4
626 0x36 0x24 0x62 0x7c
627
628 # CHECK: srd. 2, 3, 4
629 0x37 0x24 0x62 0x7c
630
631 # CHECK: sradi 2, 3, 4
632 0x74 0x26 0x62 0x7c
633
634 # CHECK: sradi. 2, 3, 4
635 0x75 0x26 0x62 0x7c
636
637 # CHECK: srad 2, 3, 4
638 0x34 0x26 0x62 0x7c
639
640 # CHECK: srad. 2, 3, 4
641 0x35 0x26 0x62 0x7c
642
643 # CHECK: mtspr 600, 2
644 0xa6 0x93 0x58 0x7c
645
646 # CHECK: mfspr 2, 600
647 0xa6 0x92 0x58 0x7c
648
649 # CHECK: mtcrf 123, 2
650 0x20 0xb1 0x47 0x7c
651
652 # CHECK: mfcr 2
653 0x26 0x00 0x40 0x7c
654
655 # CHECK: mtocrf 16, 2
656 0x20 0x01 0x51 0x7c
657
658 # CHECK: mfocrf 16, 8
659 0x26 0x80 0x10 0x7e
660
661 # CHECK: mtsrin 10, 12
662 0xe4 0x61 0x40 0x7d
663 # CHECK: mfsrin 10, 12
664 0x26 0x65 0x40 0x7d