diff options
Diffstat (limited to 'test/tools/llvm-objdump/ARM')
-rw-r--r-- | test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s | bin | 0 -> 156 bytes | |||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test | 3 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v5t-subarch.s | 10 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v5te-subarch.s | 10 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v5tej-subarch.s | 7 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v6-neg-subfeatures.s | 10 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v6-subarch.s | 9 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v6-subfeatures.s | 9 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v6k-subarch.s | 9 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v6m-subarch.s | 9 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v6t2-subarch.s | 10 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v7a-neg-subfeature.s | 44 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v7a-subfeature.s | 36 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v7m-neg-subfeatures.s | 18 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v7m-subarch.s | 10 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v7m-subfeatures.s | 26 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/v7r-subfeatures.s | 20 |
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 Binary files differnew file mode 100644 index 000000000000..b877d2d5180d --- /dev/null +++ b/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s 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 |