diff --git a/llvm/lib/Support/ARMAttributeParser.cpp b/llvm/lib/Support/ARMAttributeParser.cpp --- a/llvm/lib/Support/ARMAttributeParser.cpp +++ b/llvm/lib/Support/ARMAttributeParser.cpp @@ -85,7 +85,7 @@ static const char *strings[] = { "Pre-v4", "ARM v4", "ARM v4T", "ARM v5T", "ARM v5TE", "ARM v5TEJ", "ARM v6", "ARM v6KZ", "ARM v6T2", "ARM v6K", "ARM v7", "ARM v6-M", "ARM v6S-M", - "ARM v7E-M", "ARM v8", nullptr, + "ARM v7E-M", "ARM v8-A", "ARM v8-R", "ARM v8-M Baseline", "ARM v8-M Mainline", nullptr, nullptr, nullptr, "ARM v8.1-M Mainline", "ARM v9-A" }; diff --git a/llvm/test/MC/ARM/directive-eabi_attribute-cpu_arch-armv8a.s b/llvm/test/MC/ARM/directive-eabi_attribute-cpu_arch-armv8a.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/ARM/directive-eabi_attribute-cpu_arch-armv8a.s @@ -0,0 +1,11 @@ +@ RUN: llvm-mc -triple arm -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple arm -filetype obj -o - %s | llvm-readobj -A - | \ +@ RUN: FileCheck %s --check-prefix=CHECK-OBJ + +.eabi_attribute Tag_CPU_arch, 14 +@ CHECK: .eabi_attribute 6, 14 @ Tag_CPU_arch +@ CHECK-OBJ: Attribute +@ CHECK-OBJ: Tag: 6 +@ CHECK-OBJ-NEXT: Value: 14 +@ CHECK-OBJ-NEXT: TagName: CPU_arch +@ CHECK-OBJ-NEXT: Description: ARM v8-A diff --git a/llvm/test/MC/ARM/directive-eabi_attribute-cpu_arch-armv8r.s b/llvm/test/MC/ARM/directive-eabi_attribute-cpu_arch-armv8r.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/ARM/directive-eabi_attribute-cpu_arch-armv8r.s @@ -0,0 +1,11 @@ +@ RUN: llvm-mc -triple arm -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple arm -filetype obj -o - %s | llvm-readobj -A - | \ +@ RUN: FileCheck %s --check-prefix=CHECK-OBJ + +.eabi_attribute Tag_CPU_arch, 15 +@ CHECK: .eabi_attribute 6, 15 @ Tag_CPU_arch +@ CHECK-OBJ: Attribute +@ CHECK-OBJ: Tag: 6 +@ CHECK-OBJ-NEXT: Value: 15 +@ CHECK-OBJ-NEXT: TagName: CPU_arch +@ CHECK-OBJ-NEXT: Description: ARM v8-R