mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
1427abbf6b
The tests for the disassembler were adapted from the encoder tests, and for the most part, the output from the disassembler matches that encoder-test inputs. There are some places where more-informative mnemonics could be produced (notably for the branch instructions), and those cases are noted in the tests with FIXMEs. Future work includes: - Generating more-informative mnemonics when possible (this may also be done in the printer). - Remove the dependence on positional "numbered" operand-to-variable mapping (for both encoding and decoding). - Internally using 64-bit instruction variants in 64-bit mode (if this turns out to matter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197693 91177308-0d34-0410-b5e6-96231b3b80d8
510 lines
10 KiB
Plaintext
510 lines
10 KiB
Plaintext
# RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-unknown -mcpu=pwr7 | FileCheck %s
|
|
|
|
# CHECK: lvebx 2, 3, 4
|
|
0x7c 0x43 0x20 0x0e
|
|
|
|
# CHECK: lvehx 2, 3, 4
|
|
0x7c 0x43 0x20 0x4e
|
|
|
|
# CHECK: lvewx 2, 3, 4
|
|
0x7c 0x43 0x20 0x8e
|
|
|
|
# CHECK: lvx 2, 3, 4
|
|
0x7c 0x43 0x20 0xce
|
|
|
|
# CHECK: lvxl 2, 3, 4
|
|
0x7c 0x43 0x22 0xce
|
|
|
|
# CHECK: stvebx 2, 3, 4
|
|
0x7c 0x43 0x21 0x0e
|
|
|
|
# CHECK: stvehx 2, 3, 4
|
|
0x7c 0x43 0x21 0x4e
|
|
|
|
# CHECK: stvewx 2, 3, 4
|
|
0x7c 0x43 0x21 0x8e
|
|
|
|
# CHECK: stvx 2, 3, 4
|
|
0x7c 0x43 0x21 0xce
|
|
|
|
# CHECK: stvxl 2, 3, 4
|
|
0x7c 0x43 0x23 0xce
|
|
|
|
# CHECK: lvsl 2, 3, 4
|
|
0x7c 0x43 0x20 0x0c
|
|
|
|
# CHECK: lvsr 2, 3, 4
|
|
0x7c 0x43 0x20 0x4c
|
|
|
|
# CHECK: vpkpx 2, 3, 4
|
|
0x10 0x43 0x23 0x0e
|
|
|
|
# CHECK: vpkshss 2, 3, 4
|
|
0x10 0x43 0x21 0x8e
|
|
|
|
# CHECK: vpkshus 2, 3, 4
|
|
0x10 0x43 0x21 0x0e
|
|
|
|
# CHECK: vpkswss 2, 3, 4
|
|
0x10 0x43 0x21 0xce
|
|
|
|
# CHECK: vpkswus 2, 3, 4
|
|
0x10 0x43 0x21 0x4e
|
|
|
|
# CHECK: vpkuhum 2, 3, 4
|
|
0x10 0x43 0x20 0x0e
|
|
|
|
# CHECK: vpkuhus 2, 3, 4
|
|
0x10 0x43 0x20 0x8e
|
|
|
|
# CHECK: vpkuwum 2, 3, 4
|
|
0x10 0x43 0x20 0x4e
|
|
|
|
# CHECK: vpkuwus 2, 3, 4
|
|
0x10 0x43 0x20 0xce
|
|
|
|
# CHECK: vupkhpx 2, 3
|
|
0x10 0x40 0x1b 0x4e
|
|
|
|
# CHECK: vupkhsb 2, 3
|
|
0x10 0x40 0x1a 0x0e
|
|
|
|
# CHECK: vupkhsh 2, 3
|
|
0x10 0x40 0x1a 0x4e
|
|
|
|
# CHECK: vupklpx 2, 3
|
|
0x10 0x40 0x1b 0xce
|
|
|
|
# CHECK: vupklsb 2, 3
|
|
0x10 0x40 0x1a 0x8e
|
|
|
|
# CHECK: vupklsh 2, 3
|
|
0x10 0x40 0x1a 0xce
|
|
|
|
# CHECK: vmrghb 2, 3, 4
|
|
0x10 0x43 0x20 0x0c
|
|
|
|
# CHECK: vmrghh 2, 3, 4
|
|
0x10 0x43 0x20 0x4c
|
|
|
|
# CHECK: vmrghw 2, 3, 4
|
|
0x10 0x43 0x20 0x8c
|
|
|
|
# CHECK: vmrglb 2, 3, 4
|
|
0x10 0x43 0x21 0x0c
|
|
|
|
# CHECK: vmrglh 2, 3, 4
|
|
0x10 0x43 0x21 0x4c
|
|
|
|
# CHECK: vmrglw 2, 3, 4
|
|
0x10 0x43 0x21 0x8c
|
|
|
|
# CHECK: vspltb 2, 3, 1
|
|
0x10 0x41 0x1a 0x0c
|
|
|
|
# CHECK: vsplth 2, 3, 1
|
|
0x10 0x41 0x1a 0x4c
|
|
|
|
# CHECK: vspltw 2, 3, 1
|
|
0x10 0x41 0x1a 0x8c
|
|
|
|
# CHECK: vspltisb 2, 3
|
|
0x10 0x43 0x03 0x0c
|
|
|
|
# CHECK: vspltish 2, 3
|
|
0x10 0x43 0x03 0x4c
|
|
|
|
# CHECK: vspltisw 2, 3
|
|
0x10 0x43 0x03 0x8c
|
|
|
|
# CHECK: vperm 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x6b
|
|
|
|
# CHECK: vsel 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x6a
|
|
|
|
# CHECK: vsl 2, 3, 4
|
|
0x10 0x43 0x21 0xc4
|
|
|
|
# CHECK: vsldoi 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x6c
|
|
|
|
# CHECK: vslo 2, 3, 4
|
|
0x10 0x43 0x24 0x0c
|
|
|
|
# CHECK: vsr 2, 3, 4
|
|
0x10 0x43 0x22 0xc4
|
|
|
|
# CHECK: vsro 2, 3, 4
|
|
0x10 0x43 0x24 0x4c
|
|
|
|
# CHECK: vaddcuw 2, 3, 4
|
|
0x10 0x43 0x21 0x80
|
|
|
|
# CHECK: vaddsbs 2, 3, 4
|
|
0x10 0x43 0x23 0x00
|
|
|
|
# CHECK: vaddshs 2, 3, 4
|
|
0x10 0x43 0x23 0x40
|
|
|
|
# CHECK: vaddsws 2, 3, 4
|
|
0x10 0x43 0x23 0x80
|
|
|
|
# CHECK: vaddubm 2, 3, 4
|
|
0x10 0x43 0x20 0x00
|
|
|
|
# CHECK: vadduhm 2, 3, 4
|
|
0x10 0x43 0x20 0x40
|
|
|
|
# CHECK: vadduwm 2, 3, 4
|
|
0x10 0x43 0x20 0x80
|
|
|
|
# CHECK: vaddubs 2, 3, 4
|
|
0x10 0x43 0x22 0x00
|
|
|
|
# CHECK: vadduhs 2, 3, 4
|
|
0x10 0x43 0x22 0x40
|
|
|
|
# CHECK: vadduws 2, 3, 4
|
|
0x10 0x43 0x22 0x80
|
|
|
|
# CHECK: vsubcuw 2, 3, 4
|
|
0x10 0x43 0x25 0x80
|
|
|
|
# CHECK: vsubsbs 2, 3, 4
|
|
0x10 0x43 0x27 0x00
|
|
|
|
# CHECK: vsubshs 2, 3, 4
|
|
0x10 0x43 0x27 0x40
|
|
|
|
# CHECK: vsubsws 2, 3, 4
|
|
0x10 0x43 0x27 0x80
|
|
|
|
# CHECK: vsububm 2, 3, 4
|
|
0x10 0x43 0x24 0x00
|
|
|
|
# CHECK: vsubuhm 2, 3, 4
|
|
0x10 0x43 0x24 0x40
|
|
|
|
# CHECK: vsubuwm 2, 3, 4
|
|
0x10 0x43 0x24 0x80
|
|
|
|
# CHECK: vsububs 2, 3, 4
|
|
0x10 0x43 0x26 0x00
|
|
|
|
# CHECK: vsubuhs 2, 3, 4
|
|
0x10 0x43 0x26 0x40
|
|
|
|
# CHECK: vsubuws 2, 3, 4
|
|
0x10 0x43 0x26 0x80
|
|
|
|
# CHECK: vmulesb 2, 3, 4
|
|
0x10 0x43 0x23 0x08
|
|
|
|
# CHECK: vmulesh 2, 3, 4
|
|
0x10 0x43 0x23 0x48
|
|
|
|
# CHECK: vmuleub 2, 3, 4
|
|
0x10 0x43 0x22 0x08
|
|
|
|
# CHECK: vmuleuh 2, 3, 4
|
|
0x10 0x43 0x22 0x48
|
|
|
|
# CHECK: vmulosb 2, 3, 4
|
|
0x10 0x43 0x21 0x08
|
|
|
|
# CHECK: vmulosh 2, 3, 4
|
|
0x10 0x43 0x21 0x48
|
|
|
|
# CHECK: vmuloub 2, 3, 4
|
|
0x10 0x43 0x20 0x08
|
|
|
|
# CHECK: vmulouh 2, 3, 4
|
|
0x10 0x43 0x20 0x48
|
|
|
|
# CHECK: vmhaddshs 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x60
|
|
|
|
# CHECK: vmhraddshs 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x61
|
|
|
|
# CHECK: vmladduhm 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x62
|
|
|
|
# CHECK: vmsumubm 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x64
|
|
|
|
# CHECK: vmsummbm 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x65
|
|
|
|
# CHECK: vmsumshm 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x68
|
|
|
|
# CHECK: vmsumshs 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x69
|
|
|
|
# CHECK: vmsumuhm 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x66
|
|
|
|
# CHECK: vmsumuhs 2, 3, 4, 5
|
|
0x10 0x43 0x21 0x67
|
|
|
|
# CHECK: vsumsws 2, 3, 4
|
|
0x10 0x43 0x27 0x88
|
|
|
|
# CHECK: vsum2sws 2, 3, 4
|
|
0x10 0x43 0x26 0x88
|
|
|
|
# CHECK: vsum4sbs 2, 3, 4
|
|
0x10 0x43 0x27 0x08
|
|
|
|
# CHECK: vsum4shs 2, 3, 4
|
|
0x10 0x43 0x26 0x48
|
|
|
|
# CHECK: vsum4ubs 2, 3, 4
|
|
0x10 0x43 0x26 0x08
|
|
|
|
# CHECK: vavgsb 2, 3, 4
|
|
0x10 0x43 0x25 0x02
|
|
|
|
# CHECK: vavgsh 2, 3, 4
|
|
0x10 0x43 0x25 0x42
|
|
|
|
# CHECK: vavgsw 2, 3, 4
|
|
0x10 0x43 0x25 0x82
|
|
|
|
# CHECK: vavgub 2, 3, 4
|
|
0x10 0x43 0x24 0x02
|
|
|
|
# CHECK: vavguh 2, 3, 4
|
|
0x10 0x43 0x24 0x42
|
|
|
|
# CHECK: vavguw 2, 3, 4
|
|
0x10 0x43 0x24 0x82
|
|
|
|
# CHECK: vmaxsb 2, 3, 4
|
|
0x10 0x43 0x21 0x02
|
|
|
|
# CHECK: vmaxsh 2, 3, 4
|
|
0x10 0x43 0x21 0x42
|
|
|
|
# CHECK: vmaxsw 2, 3, 4
|
|
0x10 0x43 0x21 0x82
|
|
|
|
# CHECK: vmaxub 2, 3, 4
|
|
0x10 0x43 0x20 0x02
|
|
|
|
# CHECK: vmaxuh 2, 3, 4
|
|
0x10 0x43 0x20 0x42
|
|
|
|
# CHECK: vmaxuw 2, 3, 4
|
|
0x10 0x43 0x20 0x82
|
|
|
|
# CHECK: vminsb 2, 3, 4
|
|
0x10 0x43 0x23 0x02
|
|
|
|
# CHECK: vminsh 2, 3, 4
|
|
0x10 0x43 0x23 0x42
|
|
|
|
# CHECK: vminsw 2, 3, 4
|
|
0x10 0x43 0x23 0x82
|
|
|
|
# CHECK: vminub 2, 3, 4
|
|
0x10 0x43 0x22 0x02
|
|
|
|
# CHECK: vminuh 2, 3, 4
|
|
0x10 0x43 0x22 0x42
|
|
|
|
# CHECK: vminuw 2, 3, 4
|
|
0x10 0x43 0x22 0x82
|
|
|
|
# CHECK: vcmpequb 2, 3, 4
|
|
0x10 0x43 0x20 0x06
|
|
|
|
# CHECK: vcmpequb. 2, 3, 4
|
|
0x10 0x43 0x24 0x06
|
|
|
|
# CHECK: vcmpequh 2, 3, 4
|
|
0x10 0x43 0x20 0x46
|
|
|
|
# CHECK: vcmpequh. 2, 3, 4
|
|
0x10 0x43 0x24 0x46
|
|
|
|
# CHECK: vcmpequw 2, 3, 4
|
|
0x10 0x43 0x20 0x86
|
|
|
|
# CHECK: vcmpequw. 2, 3, 4
|
|
0x10 0x43 0x24 0x86
|
|
|
|
# CHECK: vcmpgtsb 2, 3, 4
|
|
0x10 0x43 0x23 0x06
|
|
|
|
# CHECK: vcmpgtsb. 2, 3, 4
|
|
0x10 0x43 0x27 0x06
|
|
|
|
# CHECK: vcmpgtsh 2, 3, 4
|
|
0x10 0x43 0x23 0x46
|
|
|
|
# CHECK: vcmpgtsh. 2, 3, 4
|
|
0x10 0x43 0x27 0x46
|
|
|
|
# CHECK: vcmpgtsw 2, 3, 4
|
|
0x10 0x43 0x23 0x86
|
|
|
|
# CHECK: vcmpgtsw. 2, 3, 4
|
|
0x10 0x43 0x27 0x86
|
|
|
|
# CHECK: vcmpgtub 2, 3, 4
|
|
0x10 0x43 0x22 0x06
|
|
|
|
# CHECK: vcmpgtub. 2, 3, 4
|
|
0x10 0x43 0x26 0x06
|
|
|
|
# CHECK: vcmpgtuh 2, 3, 4
|
|
0x10 0x43 0x22 0x46
|
|
|
|
# CHECK: vcmpgtuh. 2, 3, 4
|
|
0x10 0x43 0x26 0x46
|
|
|
|
# CHECK: vcmpgtuw 2, 3, 4
|
|
0x10 0x43 0x22 0x86
|
|
|
|
# CHECK: vcmpgtuw. 2, 3, 4
|
|
0x10 0x43 0x26 0x86
|
|
|
|
# CHECK: vand 2, 3, 4
|
|
0x10 0x43 0x24 0x04
|
|
|
|
# CHECK: vandc 2, 3, 4
|
|
0x10 0x43 0x24 0x44
|
|
|
|
# CHECK: vnor 2, 3, 4
|
|
0x10 0x43 0x25 0x04
|
|
|
|
# CHECK: vor 2, 3, 4
|
|
0x10 0x43 0x24 0x84
|
|
|
|
# CHECK: vxor 2, 3, 4
|
|
0x10 0x43 0x24 0xc4
|
|
|
|
# CHECK: vrlb 2, 3, 4
|
|
0x10 0x43 0x20 0x04
|
|
|
|
# CHECK: vrlh 2, 3, 4
|
|
0x10 0x43 0x20 0x44
|
|
|
|
# CHECK: vrlw 2, 3, 4
|
|
0x10 0x43 0x20 0x84
|
|
|
|
# CHECK: vslb 2, 3, 4
|
|
0x10 0x43 0x21 0x04
|
|
|
|
# CHECK: vslh 2, 3, 4
|
|
0x10 0x43 0x21 0x44
|
|
|
|
# CHECK: vslw 2, 3, 4
|
|
0x10 0x43 0x21 0x84
|
|
|
|
# CHECK: vsrb 2, 3, 4
|
|
0x10 0x43 0x22 0x04
|
|
|
|
# CHECK: vsrh 2, 3, 4
|
|
0x10 0x43 0x22 0x44
|
|
|
|
# CHECK: vsrw 2, 3, 4
|
|
0x10 0x43 0x22 0x84
|
|
|
|
# CHECK: vsrab 2, 3, 4
|
|
0x10 0x43 0x23 0x04
|
|
|
|
# CHECK: vsrah 2, 3, 4
|
|
0x10 0x43 0x23 0x44
|
|
|
|
# CHECK: vsraw 2, 3, 4
|
|
0x10 0x43 0x23 0x84
|
|
|
|
# CHECK: vaddfp 2, 3, 4
|
|
0x10 0x43 0x20 0x0a
|
|
|
|
# CHECK: vsubfp 2, 3, 4
|
|
0x10 0x43 0x20 0x4a
|
|
|
|
# CHECK: vmaddfp 2, 3, 4, 5
|
|
0x10 0x43 0x29 0x2e
|
|
|
|
# CHECK: vnmsubfp 2, 3, 4, 5
|
|
0x10 0x43 0x29 0x2f
|
|
|
|
# CHECK: vmaxfp 2, 3, 4
|
|
0x10 0x43 0x24 0x0a
|
|
|
|
# CHECK: vminfp 2, 3, 4
|
|
0x10 0x43 0x24 0x4a
|
|
|
|
# CHECK: vctsxs 2, 3, 4
|
|
0x10 0x44 0x1b 0xca
|
|
|
|
# CHECK: vctuxs 2, 3, 4
|
|
0x10 0x44 0x1b 0x8a
|
|
|
|
# CHECK: vcfsx 2, 3, 4
|
|
0x10 0x44 0x1b 0x4a
|
|
|
|
# CHECK: vcfux 2, 3, 4
|
|
0x10 0x44 0x1b 0x0a
|
|
|
|
# CHECK: vrfim 2, 3
|
|
0x10 0x40 0x1a 0xca
|
|
|
|
# CHECK: vrfin 2, 3
|
|
0x10 0x40 0x1a 0x0a
|
|
|
|
# CHECK: vrfip 2, 3
|
|
0x10 0x40 0x1a 0x8a
|
|
|
|
# CHECK: vrfiz 2, 3
|
|
0x10 0x40 0x1a 0x4a
|
|
|
|
# CHECK: vcmpbfp 2, 3, 4
|
|
0x10 0x43 0x23 0xc6
|
|
|
|
# CHECK: vcmpbfp. 2, 3, 4
|
|
0x10 0x43 0x27 0xc6
|
|
|
|
# CHECK: vcmpeqfp 2, 3, 4
|
|
0x10 0x43 0x20 0xc6
|
|
|
|
# CHECK: vcmpeqfp. 2, 3, 4
|
|
0x10 0x43 0x24 0xc6
|
|
|
|
# CHECK: vcmpgefp 2, 3, 4
|
|
0x10 0x43 0x21 0xc6
|
|
|
|
# CHECK: vcmpgefp. 2, 3, 4
|
|
0x10 0x43 0x25 0xc6
|
|
|
|
# CHECK: vcmpgtfp 2, 3, 4
|
|
0x10 0x43 0x22 0xc6
|
|
|
|
# CHECK: vcmpgtfp. 2, 3, 4
|
|
0x10 0x43 0x26 0xc6
|
|
|
|
# CHECK: vexptefp 2, 3
|
|
0x10 0x40 0x19 0x8a
|
|
|
|
# CHECK: vlogefp 2, 3
|
|
0x10 0x40 0x19 0xca
|
|
|
|
# CHECK: vrefp 2, 3
|
|
0x10 0x40 0x19 0x0a
|
|
|
|
# CHECK: vrsqrtefp 2, 3
|
|
0x10 0x40 0x19 0x4a
|
|
|
|
# CHECK: mtvscr 2
|
|
0x10 0x00 0x16 0x44
|
|
|
|
# CHECK: mfvscr 2
|
|
0x10 0x40 0x06 0x04
|
|
|