aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/Disassembler/Sparc
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2014-04-23 16:57:46 -0700
committerStephen Hines <srhines@google.com>2014-04-24 15:53:16 -0700
commit36b56886974eae4f9c5ebc96befd3e7bfe5de338 (patch)
treee6cfb69fbbd937f450eeb83bfb83b9da3b01275a /test/MC/Disassembler/Sparc
parent69a8640022b04415ae9fac62f8ab090601d8f889 (diff)
downloadexternal_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.zip
external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.gz
external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.bz2
Update to LLVM 3.5a.
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
Diffstat (limited to 'test/MC/Disassembler/Sparc')
-rw-r--r--test/MC/Disassembler/Sparc/lit.local.cfg4
-rw-r--r--test/MC/Disassembler/Sparc/sparc-fp.txt148
-rw-r--r--test/MC/Disassembler/Sparc/sparc-mem.txt163
-rw-r--r--test/MC/Disassembler/Sparc/sparc.txt202
4 files changed, 517 insertions, 0 deletions
diff --git a/test/MC/Disassembler/Sparc/lit.local.cfg b/test/MC/Disassembler/Sparc/lit.local.cfg
new file mode 100644
index 0000000..4d344fa
--- /dev/null
+++ b/test/MC/Disassembler/Sparc/lit.local.cfg
@@ -0,0 +1,4 @@
+targets = set(config.root.targets_to_build.split())
+if not 'Sparc' in targets:
+ config.unsupported = True
+
diff --git a/test/MC/Disassembler/Sparc/sparc-fp.txt b/test/MC/Disassembler/Sparc/sparc-fp.txt
new file mode 100644
index 0000000..b279da8
--- /dev/null
+++ b/test/MC/Disassembler/Sparc/sparc-fp.txt
@@ -0,0 +1,148 @@
+# RUN: llvm-mc --disassemble %s -triple=sparc64-linux-gnu | FileCheck %s
+
+
+# CHECK: fitos %f0, %f4
+0x89 0xa0 0x18 0x80
+
+# CHECK: fitod %f0, %f4
+0x89 0xa0 0x19 0x00
+
+# CHECK: fitoq %f0, %f4
+0x89 0xa0 0x19 0x80
+
+# CHECK: fstoi %f0, %f4
+0x89 0xa0 0x1a 0x20
+
+# CHECK: fdtoi %f0, %f4
+0x89 0xa0 0x1a 0x40
+
+# CHECK: fqtoi %f0, %f4
+0x89 0xa0 0x1a 0x60
+
+# CHECK: fstod %f0, %f4
+0x89 0xa0 0x19 0x20
+# CHECK: fstoq %f0, %f4
+0x89 0xa0 0x19 0xa0
+
+# CHECK: fdtos %f0, %f4
+0x89 0xa0 0x18 0xc0
+
+# CHECK: fdtoq %f0, %f4
+0x89 0xa0 0x19 0xc0
+
+# CHECK: fqtos %f0, %f4
+0x89 0xa0 0x18 0xe0
+
+# CHECK: fqtod %f0, %f4
+0x89 0xa0 0x19 0x60
+
+# CHECK: fmovs %f0, %f4
+0x89 0xa0 0x00 0x20
+
+# CHECK: fmovd %f0, %f4
+0x89 0xa0 0x00 0x40
+
+# CHECK: fmovq %f0, %f4
+0x89 0xa0 0x00 0x60
+
+# CHECK: fnegs %f0, %f4
+0x89 0xa0 0x00 0xa0
+
+# CHECK: fnegd %f0, %f4
+0x89 0xa0 0x00 0xc0
+
+# CHECK: fnegq %f0, %f4
+0x89 0xa0 0x00 0xe0
+
+# CHECK: fabss %f0, %f4
+0x89 0xa0 0x01 0x20
+
+# CHECK: fabsd %f0, %f4
+0x89 0xa0 0x01 0x40
+
+# CHECK: fabsq %f0, %f4
+0x89 0xa0 0x01 0x60
+
+# CHECK: fsqrts %f0, %f4
+0x89 0xa0 0x05 0x20
+
+# CHECK: fsqrtd %f0, %f4
+0x89 0xa0 0x05 0x40
+
+# CHECK: fsqrtq %f0, %f4
+0x89 0xa0 0x05 0x60
+
+# CHECK: fadds %f0, %f4, %f8
+0x91 0xa0 0x08 0x24
+
+# CHECK: faddd %f0, %f4, %f8
+0x91 0xa0 0x08 0x44
+
+# CHECK: faddq %f0, %f4, %f8
+0x91 0xa0 0x08 0x64
+
+# CHECK: faddd %f32, %f34, %f62
+0xbf 0xa0 0x48 0x43
+
+# CHECK: faddq %f32, %f36, %f60
+0xbb 0xa0 0x48 0x65
+
+# CHECK: fsubs %f0, %f4, %f8
+0x91 0xa0 0x08 0xa4
+
+# CHECK: fsubd %f0, %f4, %f8
+0x91 0xa0 0x08 0xc4
+
+# CHECK: fsubq %f0, %f4, %f8
+0x91 0xa0 0x08 0xe4
+
+# CHECK: fmuls %f0, %f4, %f8
+0x91 0xa0 0x09 0x24
+
+# CHECK: fmuld %f0, %f4, %f8
+0x91 0xa0 0x09 0x44
+
+# CHECK: fmulq %f0, %f4, %f8
+0x91 0xa0 0x09 0x64
+
+# CHECK: fsmuld %f0, %f4, %f8
+0x91 0xa0 0x0d 0x24
+
+# CHECK: fdmulq %f0, %f4, %f8
+0x91 0xa0 0x0d 0xc4
+
+# CHECK: fdivs %f0, %f4, %f8
+0x91 0xa0 0x09 0xa4
+
+# CHECK: fdivd %f0, %f4, %f8
+0x91 0xa0 0x09 0xc4
+
+# CHECK: fdivq %f0, %f4, %f8
+0x91 0xa0 0x09 0xe4
+
+# CHECK: fcmps %fcc0, %f0, %f4
+0x81 0xa8 0x0a 0x24
+
+# CHECK: fcmpd %fcc0, %f0, %f4
+0x81 0xa8 0x0a 0x44
+
+# CHECK: fcmpq %fcc0, %f0, %f4
+0x81 0xa8 0x0a 0x64
+
+# CHECK: fxtos %f0, %f4
+0x89 0xa0 0x10 0x80
+
+# CHECK: fxtod %f0, %f4
+0x89 0xa0 0x11 0x00
+
+# CHECK: fxtoq %f0, %f4
+0x89 0xa0 0x11 0x80
+
+# CHECK: fstox %f0, %f4
+0x89 0xa0 0x10 0x20
+
+# CHECK: fdtox %f0, %f4
+0x89 0xa0 0x10 0x40
+
+# CHECK: fqtox %f0, %f4
+0x89 0xa0 0x10 0x60
diff --git a/test/MC/Disassembler/Sparc/sparc-mem.txt b/test/MC/Disassembler/Sparc/sparc-mem.txt
new file mode 100644
index 0000000..6ad4be1
--- /dev/null
+++ b/test/MC/Disassembler/Sparc/sparc-mem.txt
@@ -0,0 +1,163 @@
+# RUN: llvm-mc --disassemble %s -triple=sparcv9-unknown-linux | FileCheck %s
+
+# CHECK: ldsb [%i0+%l6], %o2
+0xd4 0x4e 0x00 0x16
+
+# CHECK: ldsb [%i0+32], %o2
+0xd4 0x4e 0x20 0x20
+
+# CHECK: ldsb [%g1], %o4
+0xd8 0x48 0x60 0x00
+
+# CHECK: ldsh [%i0+%l6], %o2
+0xd4 0x56 0x00 0x16
+
+# CHECK: ldsh [%i0+32], %o2
+0xd4 0x56 0x20 0x20
+
+# CHECK: ldsh [%g1], %o4
+0xd8 0x50 0x60 0x00
+
+# CHECK: ldub [%i0+%l6], %o2
+0xd4 0x0e 0x00 0x16
+
+# CHECK: ldub [%i0+32], %o2
+0xd4 0x0e 0x20 0x20
+
+# CHECK: ldub [%g1], %o2
+0xd4 0x08 0x60 0x00
+
+# CHECK: lduh [%i0+%l6], %o2
+0xd4 0x16 0x00 0x16
+
+# CHECK: lduh [%i0+32], %o2
+0xd4 0x16 0x20 0x20
+
+# CHECK: lduh [%g1], %o2
+0xd4 0x10 0x60 0x00
+
+# CHECK: ld [%i0+%l6], %o2
+0xd4 0x06 0x00 0x16
+
+# CHECK: ld [%i0+32], %o2
+0xd4 0x06 0x20 0x20
+
+# CHECK: ld [%g1], %o2
+0xd4 0x00 0x60 0x00
+
+# CHECK: ld [%i0+%l6], %f2
+0xc5 0x06 0x00 0x16
+
+# CHECK: ld [%i0+32], %f2
+0xc5 0x06 0x20 0x20
+
+# CHECK: ld [%g1], %f2
+0xc5 0x00 0x60 0x00
+
+# CHECK: ldd [%i0+%l6], %f2
+0xc5 0x1e 0x00 0x16
+
+# CHECK: ldd [%i0+32], %f2
+0xc5 0x1e 0x20 0x20
+
+# CHECK: ldd [%g1], %f2
+0xc5 0x18 0x60 0x00
+
+# CHECK: ldq [%i0+%l6], %f4
+0xc9 0x16 0x00 0x16
+
+# CHECK: ldq [%i0+32], %f4
+0xc9 0x16 0x20 0x20
+
+# CHECK: ldq [%g1], %f4
+0xc9 0x10 0x60 0x00
+
+# CHECK: ldx [%i0+%l6], %o2
+0xd4 0x5e 0x00 0x16
+
+# CHECK: ldx [%i0+32], %o2
+0xd4 0x5e 0x20 0x20
+
+# CHECK: ldx [%g1], %o2
+0xd4 0x58 0x60 0x00
+
+# CHECK: ldsw [%i0+%l6], %o2
+0xd4 0x46 0x00 0x16
+
+# CHECK: ldsw [%i0+32], %o2
+0xd4 0x46 0x20 0x20
+
+# CHECK: ldsw [%g1], %o2
+0xd4 0x40 0x60 0x00
+
+# CHECK: stb %o2, [%i0+%l6]
+0xd4 0x2e 0x00 0x16
+
+# CHECK: stb %o2, [%i0+32]
+0xd4 0x2e 0x20 0x20
+
+# CHECK: stb %o2, [%g1]
+0xd4 0x28 0x60 0x00
+
+# CHECK: sth %o2, [%i0+%l6]
+0xd4 0x36 0x00 0x16
+
+# CHECK: sth %o2, [%i0+32]
+0xd4 0x36 0x20 0x20
+
+# CHECK: sth %o2, [%g1]
+0xd4 0x30 0x60 0x00
+
+# CHECK: st %o2, [%i0+%l6]
+0xd4 0x26 0x00 0x16
+
+# CHECK: st %o2, [%i0+32]
+0xd4 0x26 0x20 0x20
+
+# CHECK: st %o2, [%g1]
+0xd4 0x20 0x60 0x00
+
+# CHECK: st %f2, [%i0+%l6]
+0xc5 0x26 0x00 0x16
+
+# CHECK: st %f2, [%i0+32]
+0xc5 0x26 0x20 0x20
+
+# CHECK: st %f2, [%g1]
+0xc5 0x20 0x60 0x00
+
+# CHECK: std %f2, [%i0+%l6]
+0xc5 0x3e 0x00 0x16
+
+# CHECK: std %f2, [%i0+32]
+0xc5 0x3e 0x20 0x20
+
+# CHECK: std %f2, [%g1]
+0xc5 0x38 0x60 0x00
+
+# CHECK: stq %f4, [%i0+%l6]
+0xc9 0x36 0x00 0x16
+
+# CHECK: stq %f4, [%i0+32]
+0xc9 0x36 0x20 0x20
+
+# CHECK: stq %f4, [%g1]
+0xc9 0x30 0x60 0x00
+
+# CHECK: stx %o2, [%i0+%l6]
+0xd4 0x76 0x00 0x16
+
+# CHECK: stx %o2, [%i0+32]
+0xd4 0x76 0x20 0x20
+
+# CHECK: stx %o2, [%g1]
+0xd4 0x70 0x60 0x00
+
+# CHECK: swap [%i0+%l6], %o2
+0xd4 0x7e 0x00 0x16
+
+# CHECK: swap [%i0+32], %o2
+0xd4 0x7e 0x20 0x20
+
+# CHECK: swap [%g1], %o2
+0xd4 0x78 0x60 0x00
diff --git a/test/MC/Disassembler/Sparc/sparc.txt b/test/MC/Disassembler/Sparc/sparc.txt
new file mode 100644
index 0000000..a942024
--- /dev/null
+++ b/test/MC/Disassembler/Sparc/sparc.txt
@@ -0,0 +1,202 @@
+# RUN: llvm-mc --disassemble %s -triple=sparc-unknown-linux | FileCheck %s
+
+# CHECK: add %g0, %g0, %g0
+0x80 0x00 0x00 0x00
+
+# CHECK: add %g1, %g2, %g3
+0x86 0x00 0x40 0x02
+
+# CHECK: add %o0, %o1, %l0
+0xa0 0x02 0x00 0x09
+
+# CHECK: add %o0, 10, %l0
+0xa0 0x02 0x20 0x0a
+
+# CHECK: addcc %g1, %g2, %g3
+0x86 0x80 0x40 0x02
+
+# CHECK: addxcc %g1, %g2, %g3
+0x86 0xc0 0x40 0x02
+
+# CHECK: udiv %g1, %g2, %g3
+0x86 0x70 0x40 0x02
+
+# CHECK: sdiv %g1, %g2, %g3
+0x86 0x78 0x40 0x02
+
+# CHECK: and %g1, %g2, %g3
+0x86 0x08 0x40 0x02
+
+# CHECK: andn %g1, %g2, %g3
+0x86 0x28 0x40 0x02
+
+# CHECK: or %g1, %g2, %g3
+0x86 0x10 0x40 0x02
+
+# CHECK: orn %g1, %g2, %g3
+0x86 0x30 0x40 0x02
+
+# CHECK: xor %g1, %g2, %g3
+0x86 0x18 0x40 0x02
+
+# CHECK: xnor %g1, %g2, %g3
+0x86 0x38 0x40 0x02
+
+# CHECK: umul %g1, %g2, %g3
+0x86 0x50 0x40 0x02
+
+# CHECK: smul %g1, %g2, %g3
+0x86 0x58 0x40 0x02
+
+# CHECK: nop
+0x01 0x00 0x00 0x00
+
+# CHECK: sethi 10, %l0
+0x21 0x00 0x00 0x0a
+
+# CHECK: sll %g1, %g2, %g3
+0x87 0x28 0x40 0x02
+
+# CHECK: sll %g1, 31, %g3
+0x87 0x28 0x60 0x1f
+
+# CHECK: srl %g1, %g2, %g3
+0x87 0x30 0x40 0x02
+
+# CHECK: srl %g1, 31, %g3
+0x87 0x30 0x60 0x1f
+
+# CHECK: sra %g1, %g2, %g3
+0x87 0x38 0x40 0x02
+
+# CHECK: sra %g1, 31, %g3
+0x87 0x38 0x60 0x1f
+
+# CHECK: sub %g1, %g2, %g3
+0x86 0x20 0x40 0x02
+
+# CHECK: subcc %g1, %g2, %g3
+0x86 0xa0 0x40 0x02
+
+# CHECK: subxcc %g1, %g2, %g3
+0x86 0xe0 0x40 0x02
+
+# CHECK: ba 4194303
+0x10 0xbf 0xff 0xff
+
+# CHECK: bne 4194303
+0x12 0xbf 0xff 0xff
+
+# CHECK: be 4194303
+0x02 0xbf 0xff 0xff
+
+# CHECK: bg 4194303
+0x14 0xbf 0xff 0xff
+
+# CHECK: ble 4194303
+0x04 0xbf 0xff 0xff
+
+# CHECK: bge 4194303
+0x16 0xbf 0xff 0xff
+
+# CHECK: bl 4194303
+0x06 0xbf 0xff 0xff
+
+# CHECK: bgu 4194303
+0x18 0xbf 0xff 0xff
+
+# CHECK: bleu 4194303
+0x08 0xbf 0xff 0xff
+
+# CHECK: bcc 4194303
+0x1a 0xbf 0xff 0xff
+
+# CHECK: bcs 4194303
+0x0a 0xbf 0xff 0xff
+
+# CHECK: bpos 4194303
+0x1c 0xbf 0xff 0xff
+
+# CHECK: bneg 4194303
+0x0c 0xbf 0xff 0xff
+
+# CHECK: bvc 4194303
+0x1e 0xbf 0xff 0xff
+
+# CHECK: bvs 4194303
+0x0e 0xbf 0xff 0xff
+
+# CHECK: fbu 4194303
+0x0f 0xbf 0xff 0xff
+
+# CHECK: fbg 4194303
+0x0d 0xbf 0xff 0xff
+
+# CHECK: fbug 4194303
+0x0b 0xbf 0xff 0xff
+
+# CHECK: fbl 4194303
+0x09 0xbf 0xff 0xff
+
+# CHECK: fbul 4194303
+0x07 0xbf 0xff 0xff
+
+# CHECK: fblg 4194303
+0x05 0xbf 0xff 0xff
+
+# CHECK: fbne 4194303
+0x03 0xbf 0xff 0xff
+
+# CHECK: fbe 4194303
+0x13 0xbf 0xff 0xff
+
+# CHECK: fbue 4194303
+0x15 0xbf 0xff 0xff
+
+# CHECK: fbge 4194303
+0x17 0xbf 0xff 0xff
+
+# CHECK: fbuge 4194303
+0x19 0xbf 0xff 0xff
+
+# CHECK: fble 4194303
+0x1b 0xbf 0xff 0xff
+
+# CHECK: fbule 4194303
+0x1d 0xbf 0xff 0xff
+
+# CHECK: fbo 4194303
+0x1f 0xbf 0xff 0xff
+
+# CHECK: restore
+0x81 0xe8 0x00 0x00
+
+# CHECK: call 16
+0x40 0x00 0x00 0x04
+
+# CHECK: add %g1, -10, %g2
+0x84 0x00 0x7f 0xf6
+
+# CHECK: save %sp, -196, %sp
+0x9d 0xe3 0xbf 0x3c
+
+# CHECK: cmp %g1, -2
+0x80 0xa0 0x7f 0xfe
+
+# CHECK: wr %g1, -2, %y
+0x81 0x80 0x7f 0xfe
+
+# CHECK: unimp 12
+0x00 0x00 0x00 0x0c
+
+# CHECK: jmp %g1+12
+0x81,0xc0,0x60,0x0c
+
+# CHECK: retl
+0x81 0xc3 0xe0 0x08
+
+# CHECK: ret
+0x81,0xc7,0xe0,0x08
+
+# CHECK: rett %i7+8
+0x81 0xcf 0xe0 0x08