[llvm][ARM] Treat xscale arch as an alias of armv5te
authorDavid Spickett <david.spickett@linaro.org>
Wed, 23 Jun 2021 11:15:24 +0000 (11:15 +0000)
committerDavid Spickett <david.spickett@linaro.org>
Mon, 28 Jun 2021 15:20:24 +0000 (15:20 +0000)
Previously xscale was known to everything apart
from the ELF streamer so we would crash as soon
as you tried to output an object file.

Reviewed By: nickdesaulniers

Differential Revision: https://reviews.llvm.org/D104776

llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
llvm/test/MC/ARM/directive-arch-xscale.s [new file with mode: 0644]

index 5d3342a..e294748 100644 (file)
@@ -834,6 +834,7 @@ void ARMTargetELFStreamer::emitArchDefaultAttributes() {
 
   case ARM::ArchKind::ARMV4T:
   case ARM::ArchKind::ARMV5T:
+  case ARM::ArchKind::XSCALE:
   case ARM::ArchKind::ARMV5TE:
   case ARM::ArchKind::ARMV6:
     setAttributeItem(ARM_ISA_use, Allowed, false);
diff --git a/llvm/test/MC/ARM/directive-arch-xscale.s b/llvm/test/MC/ARM/directive-arch-xscale.s
new file mode 100644 (file)
index 0000000..391b478
--- /dev/null
@@ -0,0 +1,34 @@
+@@ Test the .arch directive for xscale
+
+@@ This test case will check the default .ARM.attributes value for the
+@@ xscale architecture.
+
+@ RUN: llvm-mc -triple arm-eabi -filetype asm %s \
+@ RUN:   | FileCheck %s -check-prefix CHECK-ASM
+@ RUN: llvm-mc -triple arm-eabi -filetype obj %s \
+@ RUN:   | llvm-readobj --arch-specific - | FileCheck %s -check-prefix CHECK-ATTR
+
+       .syntax unified
+       .arch   xscale
+
+@ CHECK-ASM:   .arch   xscale
+
+@ CHECK-ATTR: FileAttributes {
+@ CHECK-ATTR:   Attribute {
+@ CHECK-ATTR:     TagName: CPU_name
+@ CHECK-ATTR:     Value: xscale
+@ CHECK-ATTR:   }
+@ CHECK-ATTR:   Attribute {
+@ CHECK-ATTR:     TagName: CPU_arch
+@ CHECK-ATTR:     Description: ARM v5TE
+@ CHECK-ATTR:   }
+@ CHECK-ATTR:   Attribute {
+@ CHECK-ATTR:     TagName: ARM_ISA_use
+@ CHECK-ATTR:     Description: Permitted
+@ CHECK-ATTR:   }
+@ CHECK-ATTR:   Attribute {
+@ CHECK-ATTR:     TagName: THUMB_ISA_use
+@ CHECK-ATTR:     Description: Thumb-1
+@ CHECK-ATTR:   }
+@ CHECK-ATTR: }
+