diff options
-rw-r--r-- | llvm/lib/Object/ELFObjectFile.cpp | 15 | ||||
-rw-r--r-- | llvm/test/tools/llvm-objdump/ARM/v8a-subarch.s | 9 | ||||
-rw-r--r-- | llvm/test/tools/llvm-objdump/ARM/v8r-subarch.s | 12 |
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] |