aboutsummaryrefslogtreecommitdiff
path: root/test/tools/llvm-objdump/ARM
diff options
context:
space:
mode:
Diffstat (limited to 'test/tools/llvm-objdump/ARM')
-rw-r--r--test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7sbin0 -> 156 bytes
-rw-r--r--test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test3
-rw-r--r--test/tools/llvm-objdump/ARM/v5t-subarch.s10
-rw-r--r--test/tools/llvm-objdump/ARM/v5te-subarch.s10
-rw-r--r--test/tools/llvm-objdump/ARM/v5tej-subarch.s7
-rw-r--r--test/tools/llvm-objdump/ARM/v6-neg-subfeatures.s10
-rw-r--r--test/tools/llvm-objdump/ARM/v6-subarch.s9
-rw-r--r--test/tools/llvm-objdump/ARM/v6-subfeatures.s9
-rw-r--r--test/tools/llvm-objdump/ARM/v6k-subarch.s9
-rw-r--r--test/tools/llvm-objdump/ARM/v6m-subarch.s9
-rw-r--r--test/tools/llvm-objdump/ARM/v6t2-subarch.s10
-rw-r--r--test/tools/llvm-objdump/ARM/v7a-neg-subfeature.s44
-rw-r--r--test/tools/llvm-objdump/ARM/v7a-subfeature.s36
-rw-r--r--test/tools/llvm-objdump/ARM/v7m-neg-subfeatures.s18
-rw-r--r--test/tools/llvm-objdump/ARM/v7m-subarch.s10
-rw-r--r--test/tools/llvm-objdump/ARM/v7m-subfeatures.s26
-rw-r--r--test/tools/llvm-objdump/ARM/v7r-subfeatures.s20
17 files changed, 240 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s b/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s
new file mode 100644
index 000000000000..b877d2d5180d
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s
Binary files differ
diff --git a/test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test b/test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test
new file mode 100644
index 000000000000..ff7daa8c2142
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test
@@ -0,0 +1,3 @@
+@ RUN: llvm-objdump -m -d %p/Inputs/divs.macho-armv7s | FileCheck %s
+
+@ CHECK: 10 f0 10 e7 sdiv r0, r0, r0
diff --git a/test/tools/llvm-objdump/ARM/v5t-subarch.s b/test/tools/llvm-objdump/ARM/v5t-subarch.s
new file mode 100644
index 000000000000..c9ce2cf6cebd
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v5t-subarch.s
@@ -0,0 +1,10 @@
+@ RUN: llvm-mc < %s -triple armv5t-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.arch armv5t
+
+clz:
+clz r0, r1
+
+@ CHECK-LABEL: clz
+@ CHECK: 11 0f 6f e1
+
diff --git a/test/tools/llvm-objdump/ARM/v5te-subarch.s b/test/tools/llvm-objdump/ARM/v5te-subarch.s
new file mode 100644
index 000000000000..87e8548fb014
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v5te-subarch.s
@@ -0,0 +1,10 @@
+@ RUN: llvm-mc < %s -triple armv5te-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.arch armv5te
+
+strd:
+strd r0, r1, [r2, +r3]
+
+@ CHECK-LABEL strd
+@ CHECK: f3 00 82 e1 strd r0, r1, [r2, r3]
+
diff --git a/test/tools/llvm-objdump/ARM/v5tej-subarch.s b/test/tools/llvm-objdump/ARM/v5tej-subarch.s
new file mode 100644
index 000000000000..42dc87389a34
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v5tej-subarch.s
@@ -0,0 +1,7 @@
+@ RUN: llvm-mc < %s -triple armv5tej-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+bxj:
+bxj r0
+
+@ CHECK-LABEL: bxj
+@ CHECK: 20 ff 2f e1 bxj r0
diff --git a/test/tools/llvm-objdump/ARM/v6-neg-subfeatures.s b/test/tools/llvm-objdump/ARM/v6-neg-subfeatures.s
new file mode 100644
index 000000000000..1a8d8f283336
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v6-neg-subfeatures.s
@@ -0,0 +1,10 @@
+@ RUN: llvm-mc < %s -triple armv6 -mattr=+vfp2 -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.eabi_attribute Tag_FP_arch, 1 // VFP2
+
+vfp2:
+ vadd.f32 s0, s1, s2
+
+@CHECK-LABEL: vfp2
+@CHECK-NOT: 81 0a 30 ee vadd.f32 s0, s1, s2
+@CHECK: unknown
diff --git a/test/tools/llvm-objdump/ARM/v6-subarch.s b/test/tools/llvm-objdump/ARM/v6-subarch.s
new file mode 100644
index 000000000000..c70761e7c8c5
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v6-subarch.s
@@ -0,0 +1,9 @@
+@ RUN: llvm-mc < %s -triple armv6-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.arch armv6
+
+umaal:
+umaal r0, r1, r2, r3
+
+@ CHECK-LABEL:umaal
+@ CHECK: 92 03 41 e0 umaal r0, r1, r2, r3
diff --git a/test/tools/llvm-objdump/ARM/v6-subfeatures.s b/test/tools/llvm-objdump/ARM/v6-subfeatures.s
new file mode 100644
index 000000000000..e8e806740d19
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v6-subfeatures.s
@@ -0,0 +1,9 @@
+@ RUN: llvm-mc < %s -triple armv6 -mattr=+vfp2 -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.eabi_attribute Tag_FP_arch, 2 // VFP2
+
+vfp2:
+ vadd.f32 s0, s1, s2
+
+@CHECK-LABEL: vfp2
+@CHECK: 81 0a 30 ee vadd.f32 s0, s1, s2
diff --git a/test/tools/llvm-objdump/ARM/v6k-subarch.s b/test/tools/llvm-objdump/ARM/v6k-subarch.s
new file mode 100644
index 000000000000..8df4ce5e2576
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v6k-subarch.s
@@ -0,0 +1,9 @@
+@ RUN: llvm-mc < %s -triple armv6k-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.arch armv6k
+
+clrex:
+clrex
+
+@ CHECK-LABEL: clrex
+@ CHECK: 1f f0 7f f5 clrex
diff --git a/test/tools/llvm-objdump/ARM/v6m-subarch.s b/test/tools/llvm-objdump/ARM/v6m-subarch.s
new file mode 100644
index 000000000000..f4c56989c17e
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v6m-subarch.s
@@ -0,0 +1,9 @@
+@ RUN: llvm-mc < %s -triple armv6m-elf -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s
+
+.arch armv6m
+
+dmb:
+dmb
+
+@ CHECK-LABEL: dmb
+@ CHECK: bf f3 5f 8f dmb sy
diff --git a/test/tools/llvm-objdump/ARM/v6t2-subarch.s b/test/tools/llvm-objdump/ARM/v6t2-subarch.s
new file mode 100644
index 000000000000..36e134342972
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v6t2-subarch.s
@@ -0,0 +1,10 @@
+@ RUN: llvm-mc < %s -triple armv6t2-elf -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s
+
+.arch armv6t2
+
+.thumb
+umaalt2:
+umaal r0, r1, r2, r3
+
+@ CHECK-LABEL: umaalt2
+@ CHECK: e2 fb 63 01 umaal r0, r1, r2, r3
diff --git a/test/tools/llvm-objdump/ARM/v7a-neg-subfeature.s b/test/tools/llvm-objdump/ARM/v7a-neg-subfeature.s
new file mode 100644
index 000000000000..8083e5b0eee0
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v7a-neg-subfeature.s
@@ -0,0 +1,44 @@
+@ RUN: llvm-mc < %s -triple armv7a -mattr=+vfp3,+neon,+fp16,+hwdiv-arm,+hwdiv -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+@ RUN: llvm-mc < %s -triple armv7a -mattr=+vfp3,+neon,+fp16,+hwdiv-arm,+hwdiv -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s --check-prefix=CHECK-THUMB
+
+.eabi_attribute Tag_FP_arch, 0 // disallow vfp
+
+vfp2:
+ vmla.f32 s0, s1, s2
+
+@CHECK-LABEL: vfp2
+@CHECK-NOT: 81 0a 00 ee vmla.f32 s0, s1, s2
+@CHECK: unknown
+
+vfp3:
+ vmov.f32 s0, #0.5
+
+@CHECK-LABEL: vfp3
+@CHECK-NOT: 00 0a b6 ee vmov.f32 s0, #5.000000e-01
+
+neon:
+ vmla.f32 d0, d1, d2
+
+@CHECK-LABEL: neon
+@CHECK-NOT: 12 0d 01 f2 vmla.f32 d0, d1, d2
+@CHECK: unknown
+
+fp16:
+ vcvt.f32.f16 q0, d2
+
+@CHECK-LABEL: fp16
+@CHECK-NOT: 02 07 b6 f3 vcvt.f32.f16 q0, d2
+
+div_arm:
+ udiv r0, r1, r2
+
+@CHECK-LABEL: div_arm
+@CHECK-NOT: 11 f2 30 e7 udiv r0, r1, r2
+@CHECK: unknown
+
+.thumb
+div_thumb:
+ udiv r0, r1, r2
+
+@CHECK-LABEL: div_thumb
+@CHECK-THUMB-NOT: b1 fb f2 f0 udiv r0, r1, r2
diff --git a/test/tools/llvm-objdump/ARM/v7a-subfeature.s b/test/tools/llvm-objdump/ARM/v7a-subfeature.s
new file mode 100644
index 000000000000..f43554579a36
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v7a-subfeature.s
@@ -0,0 +1,36 @@
+@ RUN: llvm-mc < %s -triple armv7a -mattr=+vfp3,+neon,+fp16,+hwdiv-arm -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.eabi_attribute Tag_FP_arch, 3 // VFP3
+.eabi_attribute Tag_Advanced_SIMD_arch, 2 // SIMDv1 with fp16
+.eabi_attribute Tag_DIV_use, 2 // permitted
+
+vfp2:
+ vmla.f32 s0, s1, s2
+
+@CHECK-LABEL: vfp2
+@CHECK: 81 0a 00 ee vmla.f32 s0, s1, s2
+
+vfp3:
+ vmov.f32 s0, #0.5
+
+@CHECK-LABEL: vfp3
+@CHECK: 00 0a b6 ee vmov.f32 s0, #5.000000e-01
+
+neon:
+ vmla.f32 d0, d1, d2
+
+@CHECK-LABEL: neon
+@CHECK: 12 0d 01 f2 vmla.f32 d0, d1, d2
+
+fp16:
+ vcvt.f32.f16 q0, d2
+
+@CHECK-LABEL: fp16
+@CHECK: 02 07 b6 f3 vcvt.f32.f16 q0, d2
+
+div:
+ udiv r0, r1, r2
+
+@CHECK-LABEL: div
+@CHECK: 11 f2 30 e7 udiv r0, r1, r2
+
diff --git a/test/tools/llvm-objdump/ARM/v7m-neg-subfeatures.s b/test/tools/llvm-objdump/ARM/v7m-neg-subfeatures.s
new file mode 100644
index 000000000000..b3a79c7d5c2b
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v7m-neg-subfeatures.s
@@ -0,0 +1,18 @@
+@ RUN: llvm-mc < %s -triple armv7m -mattr=+vfp4 -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s
+
+.eabi_attribute Tag_CPU_arch, 10 // v7
+.eabi_attribute Tag_FP_arch, 0 // VFP4
+
+.thumb
+vfp2:
+ vmla.f32 s0, s1, s2
+
+@CHECK-LABEL: vfp2
+@CHECK-NOT: 00 ee 81 0a vmla.f32 s0, s1, s2
+
+.thumb
+vfp4:
+ vmov.f32 s0, #0.5
+
+@CHECK-LABEL:vfp4
+@CHECK-NOT: b6 ee 00 0a vmov.f32 s0, #5.000000e-01
diff --git a/test/tools/llvm-objdump/ARM/v7m-subarch.s b/test/tools/llvm-objdump/ARM/v7m-subarch.s
new file mode 100644
index 000000000000..8f6ff57e0ff3
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v7m-subarch.s
@@ -0,0 +1,10 @@
+@ RUN: llvm-mc < %s -triple armv7m-elf -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s
+
+.arch armv7m
+
+umlal:
+umlal r0, r1, r2, r3
+
+@ CHECK-LABEL: umlal
+@ CHECK: e2 fb 03 01 umlal r0, r1, r2, r3
+
diff --git a/test/tools/llvm-objdump/ARM/v7m-subfeatures.s b/test/tools/llvm-objdump/ARM/v7m-subfeatures.s
new file mode 100644
index 000000000000..c7a40af8ae90
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v7m-subfeatures.s
@@ -0,0 +1,26 @@
+@ RUN: llvm-mc < %s -triple armv7m -mattr=+vfp4 -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s
+
+.eabi_attribute Tag_CPU_arch, 10 // v7
+.eabi_attribute Tag_CPU_arch_profile, 0x4D // 'M' profile
+.eabi_attribute Tag_FP_arch, 5 // VFP4
+
+.thumb
+vfp2:
+ vmla.f32 s0, s1, s2
+
+@CHECK-LABEL: vfp2
+@CHECK: 00 ee 81 0a vmla.f32 s0, s1, s2
+
+.thumb
+vfp4:
+ vmov.f32 s0, #0.5
+
+@CHECK-LABEL: vfp4
+@CHECK: b6 ee 00 0a vmov.f32 s0, #5.000000e-01
+
+.thumb
+div:
+ udiv r0, r1, r2
+
+@CHECK-LABEL: div
+@CHECK: b1 fb f2 f0 udiv r0, r1, r2
diff --git a/test/tools/llvm-objdump/ARM/v7r-subfeatures.s b/test/tools/llvm-objdump/ARM/v7r-subfeatures.s
new file mode 100644
index 000000000000..bbe40a193879
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/v7r-subfeatures.s
@@ -0,0 +1,20 @@
+@ RUN: llvm-mc < %s -triple armv7r -mattr=+hwdiv-arm -filetype=obj | llvm-objdump -triple=thumb -d - | FileCheck %s
+@ RUN: llvm-mc < %s -triple armv7r -mattr=+hwdiv-arm -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s --check-prefix=CHECK-ARM
+
+.eabi_attribute Tag_CPU_arch, 10 // v7
+.eabi_attribute Tag_CPU_arch_profile, 0x52 // 'R' profile
+
+.arm
+div_arm:
+ udiv r0, r1, r2
+
+@CHECK-LABEL: div_arm
+@CHECK-NOT: udiv r0, r1, r2
+@CHECK-ARM-NOT: udiv r0, r1, r2
+
+.thumb
+div_thumb:
+ udiv r0, r1, r2
+
+@CHECK-LABEL: div_thumb
+@CHECK: b1 fb f2 f0 udiv r0, r1, r2