[llvm-objdump] Add the missing ARMv8 subarch detection
authorYi Kong <yikong@google.com>
Wed, 28 Aug 2019 06:37:22 +0000 (06:37 +0000)
committerYi Kong <yikong@google.com>
Wed, 28 Aug 2019 06:37:22 +0000 (06:37 +0000)
Differential Revision: https://reviews.llvm.org/D66849

llvm-svn: 370163

llvm/lib/Object/ELFObjectFile.cpp
llvm/test/tools/llvm-objdump/ARM/v8a-subarch.s [new file with mode: 0644]
llvm/test/tools/llvm-objdump/ARM/v8r-subarch.s [new file with mode: 0644]

index 82e9b89f13e6430aba35817e8cbd783a4f1e76b6..a10c643b3b9731d1bbd95819c5e11e41f2745784 100644 (file)
@@ -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 (file)
index 0000000..de3ce59
--- /dev/null
@@ -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 (file)
index 0000000..fd58544
--- /dev/null
@@ -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]