summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/Disassembler/ARC
diff options
context:
space:
mode:
authorPete Couperus <petecoup@synopsys.com>2017-08-24 15:40:33 +0000
committerPete Couperus <petecoup@synopsys.com>2017-08-24 15:40:33 +0000
commit2d1f6d67c56e56a33ec8f49d584d2352d33a4081 (patch)
tree162897c05802dd0219a882da43ffdd4a39574b4b /llvm/test/MC/Disassembler/ARC
parent719f97cf65db83a0bfd72b7e5ce91300314d24bc (diff)
downloadbcm5719-llvm-2d1f6d67c56e56a33ec8f49d584d2352d33a4081.tar.gz
bcm5719-llvm-2d1f6d67c56e56a33ec8f49d584d2352d33a4081.zip
[ARC] Add ARC backend.
Add the ARC backend as an experimental target to lib/Target. Reviewed at: https://reviews.llvm.org/D36331 llvm-svn: 311667
Diffstat (limited to 'llvm/test/MC/Disassembler/ARC')
-rw-r--r--llvm/test/MC/Disassembler/ARC/alu.txt75
-rw-r--r--llvm/test/MC/Disassembler/ARC/br.txt29
-rw-r--r--llvm/test/MC/Disassembler/ARC/ldst.txt47
-rw-r--r--llvm/test/MC/Disassembler/ARC/lit.local.cfg3
-rw-r--r--llvm/test/MC/Disassembler/ARC/misc.txt42
5 files changed, 196 insertions, 0 deletions
diff --git a/llvm/test/MC/Disassembler/ARC/alu.txt b/llvm/test/MC/Disassembler/ARC/alu.txt
new file mode 100644
index 00000000000..b4461c73829
--- /dev/null
+++ b/llvm/test/MC/Disassembler/ARC/alu.txt
@@ -0,0 +1,75 @@
+# RUN: llvm-mc -triple=arc -disassemble %s | FileCheck %s
+
+# CHECK: add %r0, %r0, %r0
+0x00 0x20 0x00 0x00
+
+# CHECK: add %r4, %r0, %r0
+0x00 0x20 0x04 0x00
+
+# CHECK: add %r2, %r0, %r3
+0x00 0x20 0xc2 0x00
+
+# CHECK: add %r2, %r0, %r4
+0x00 0x20 0x02 0x01
+
+# CHECK: add %r2, %r7, %r4
+0x00 0x27 0x02 0x01
+
+# CHECK: and %r2, %r7, %r4
+0x04 0x27 0x02 0x01
+
+# CHECK: and %r2, %r7, 4
+0x44 0x27 0x02 0x01
+
+# CHECK: and %r1, %r1, 255
+0x84 0x21 0xc3 0x0f
+
+# CHECK: asl %r1, %r1, 2
+0x40 0x29 0x81 0x00
+
+# CHECK: asl %r0, %r0, %r0
+0x00 0x28 0x00 0x00
+
+# CHECK: asr %r1, %r2, 31
+0x42 0x2a 0xc1 0x07
+
+# CHECK: asr %r1, %r3, 7
+0x42 0x2b 0xc1 0x01
+
+# CHECK: asr %r1, %r1, %r2
+0x02 0x29 0x81 0x00
+
+# CHECK: max %r0, %r2, %r1
+0x08 0x22 0x40 0x00
+
+# CHECK: max %r0, %r1, 15
+0x48 0x21 0xc0 0x03
+
+# CHECK: max %r0, %r2, 4000
+0x08 0x22 0x80 0x0f 0x00 0x00 0xa0 0x0f
+
+# CHECK: max %r2, %r2, 255
+0x88 0x22 0xc3 0x0f
+
+# CHECK: or %r18, %r16, 61440
+0x05 0x20 0x92 0x2f 0x00 0x00 0x00 0xf0
+
+# CHECK: or %r1, %r1, %r14
+0x05 0x21 0x81 0x03
+
+# CHECK: or %r1, %r14, %r1
+0x05 0x26 0x41 0x10
+
+# CHECK: or %r1, %r1, 128
+0x85 0x21 0x02 0x00
+
+# CHECK: sub %sp, %fp, 92
+0x02 0x23 0x9c 0x3f 0x00 0x00 0x5c 0x00
+
+# CHECK: sub %r2, %r7, %r4
+0x02 0x27 0x02 0x01
+
+# CHECK: sub %r0, %r22, %r0
+0x02 0x26 0x00 0x20
+
+
diff --git a/llvm/test/MC/Disassembler/ARC/br.txt b/llvm/test/MC/Disassembler/ARC/br.txt
new file mode 100644
index 00000000000..741084bc8ca
--- /dev/null
+++ b/llvm/test/MC/Disassembler/ARC/br.txt
@@ -0,0 +1,29 @@
+# RUN: llvm-mc -triple=arc -disassemble %s | FileCheck %s
+
+# CHECK: brlt %r2, 0, 60
+0x3d 0x0a 0x12 0x00
+
+# CHECK: brlo %r10, %r4, -112
+0x91 0x0a 0x04 0x91
+
+# CHECK: breq %r2, %r1, 44
+0x2d 0x0a 0x40 0x00
+
+# CHECK: brne %r0, 0, -16
+0xf1 0x08 0x11 0x80
+
+# CHECK: brhs %r2, %r8, 38
+0x27 0x0a 0x05 0x02
+
+# CHECK: bne 304
+0x30 0x01 0x02 0x00
+
+# CHECK: beq 268
+0x0c 0x01 0x01 0x00
+
+# CHECK: bhi 416
+0xa0 0x01 0x0d 0x00
+
+# CHECK: b -68
+0xbd 0x07 0xcf 0xff
+
diff --git a/llvm/test/MC/Disassembler/ARC/ldst.txt b/llvm/test/MC/Disassembler/ARC/ldst.txt
new file mode 100644
index 00000000000..51080b54697
--- /dev/null
+++ b/llvm/test/MC/Disassembler/ARC/ldst.txt
@@ -0,0 +1,47 @@
+# RUN: llvm-mc -triple=arc -disassemble %s | FileCheck %s
+
+# CHECK: ld %r0, [%r0,0]
+0x00 0x10 0x00 0x00
+
+# CHECK: ldh %r0, [%r0,0]
+0x00 0x10 0x00 0x01
+
+# CHECK: ldb %r0, [%r0,0]
+0x00 0x10 0x80 0x00
+
+# CHECK: ld %r1, [%r0,12]
+0x0c 0x10 0x01 0x00
+
+# CHECK: ld %r14, [%fp,-12]
+0xf4 0x13 0x0e 0xb0
+
+# CHECK: ld %r3, [%r0,-12]
+0xf4 0x10 0x03 0x80
+
+# CHECK: ld %r0, [%r0,244]
+0xf4 0x10 0x00 0x00
+
+# CHECK: ld %r0, [%r0,-12]
+0xf4 0x10 0x00 0x80
+
+# CHECK: ldh.x %r3, [%r1,0]
+0x00 0x11 0x43 0x01
+
+# CHECK: ldh.x %r2, [%r1,2]
+0x02 0x11 0x42 0x01
+
+# CHECK: ldh.x %r2, [%fp,-132]
+0x7c 0x13 0x42 0xb1
+
+# CHECK: ld %r0, [%r0,64000]
+0x30 0x20 0x80 0x0f 0x00 0x00 0x00 0xfa
+
+# CHECK: ld %r6, [63920]
+0x00 0x16 0x06 0x70 0x00 0x00 0xb0 0xf9
+
+# CHECK: stb %r2, [%sp,35]
+0x23 0x1c 0x82 0x30
+
+# CHECK: st %r7, [63920]
+0x00 0x1e 0xc0 0x71 0x00 0x00 0xb0 0xf9
+
diff --git a/llvm/test/MC/Disassembler/ARC/lit.local.cfg b/llvm/test/MC/Disassembler/ARC/lit.local.cfg
new file mode 100644
index 00000000000..9070deb0db5
--- /dev/null
+++ b/llvm/test/MC/Disassembler/ARC/lit.local.cfg
@@ -0,0 +1,3 @@
+if not 'ARC' in config.root.targets:
+ config.unsupported = True
+
diff --git a/llvm/test/MC/Disassembler/ARC/misc.txt b/llvm/test/MC/Disassembler/ARC/misc.txt
new file mode 100644
index 00000000000..e5ab6957421
--- /dev/null
+++ b/llvm/test/MC/Disassembler/ARC/misc.txt
@@ -0,0 +1,42 @@
+# RUN: llvm-mc -triple=arc -disassemble %s | FileCheck %s
+
+# CHECK: mov %r0, -1
+0x8a 0x20 0xff 0x0f
+
+# 32767 == 0x7fff
+# CHECK: mov %r4, 32767
+0x0a 0x24 0x80 0x0f 0x00 0x00 0xff 0x7f
+
+# CHECK: mov.eq %r2, %r6
+0xca 0x22 0x81 0x01
+
+# CHECK: mov %r13, %r2
+0x0a 0x25 0x80 0x10
+
+# CHECK: mov %r1, 20
+0x4a 0x21 0x00 0x05
+
+# CHECK: st.aw %fp, [%sp,-4]
+0xfc 0x1c 0xc8 0xb6
+
+# CHECK: ld.ab %fp, [%sp,4]
+0x04 0x14 0x1b 0x34
+
+# CHECK: bl -2028
+0x16 0x08 0xcf 0xff
+
+# CHECK: cmp %r13, %r10
+0x0c 0x25 0x80 0x92
+
+# CHECK: cmp %r14, 0
+0x4c 0x26 0x00 0x90
+
+# CHECK: cmp %r23, 1
+0x4c 0x27 0x40 0xa0
+
+# CHECK: jl [%r21]
+0x22 0x20 0x40 0x05
+
+# CHECK: j [%r3]
+0x20 0x20 0xc0 0x00
+
OpenPOWER on IntegriCloud