diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp @@ -834,6 +834,7 @@ 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 --- /dev/null +++ b/llvm/test/MC/ARM/directive-arch-xscale.s @@ -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: } +