summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Object/ELFObjectFile.cpp15
-rw-r--r--llvm/test/tools/llvm-objdump/ARM/v8a-subarch.s9
-rw-r--r--llvm/test/tools/llvm-objdump/ARM/v8r-subarch.s12
3 files changed, 36 insertions, 0 deletions
diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp
index 82e9b89f13e..a10c643b3b9 100644
--- a/llvm/lib/Object/ELFObjectFile.cpp
+++ b/llvm/lib/Object/ELFObjectFile.cpp
@@ -356,6 +356,21 @@ void ELFObjectFileBase::setARMSubArch(Triple &TheTriple) const {
case ARMBuildAttrs::v7E_M:
Triple += "v7em";
break;
+ case ARMBuildAttrs::v8_A:
+ Triple += "v8a";
+ break;
+ case ARMBuildAttrs::v8_R:
+ Triple += "v8r";
+ break;
+ case ARMBuildAttrs::v8_M_Base:
+ Triple += "v8m.base";
+ break;
+ case ARMBuildAttrs::v8_M_Main:
+ Triple += "v8m.main";
+ break;
+ case ARMBuildAttrs::v8_1_M_Main:
+ Triple += "v8.1m.main";
+ break;
}
}
if (!isLittleEndian())
diff --git a/llvm/test/tools/llvm-objdump/ARM/v8a-subarch.s b/llvm/test/tools/llvm-objdump/ARM/v8a-subarch.s
new file mode 100644
index 00000000000..de3ce59a0d4
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/ARM/v8a-subarch.s
@@ -0,0 +1,9 @@
+@ RUN: llvm-mc < %s -triple armv8a-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.arch armv8a
+
+lda:
+lda r0, [r1]
+
+@ CHECK-LABEL:lda
+@ CHECK: 9f 0c 91 e1 lda r0, [r1]
diff --git a/llvm/test/tools/llvm-objdump/ARM/v8r-subarch.s b/llvm/test/tools/llvm-objdump/ARM/v8r-subarch.s
new file mode 100644
index 00000000000..fd58544b3a5
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/ARM/v8r-subarch.s
@@ -0,0 +1,12 @@
+@ RUN: llvm-mc < %s -triple armv8r-elf -filetype=obj | llvm-objdump -triple=arm -d - | FileCheck %s
+
+.eabi_attribute Tag_CPU_arch, 15 // v8_R
+.eabi_attribute Tag_CPU_arch_profile, 0x52 // 'R' profile
+
+.arch armv8
+
+lda:
+lda r0, [r1]
+
+@ CHECK-LABEL:lda
+@ CHECK: 9f 0c 91 e1 lda r0, [r1]
OpenPOWER on IntegriCloud