mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-11 21:56:15 +00:00
[ARM] Add support for armv7e-m to the .arch directive
This will allow compilation of assembly files targeting armv7e-m without having to specify the Tag_CPU_arch attribute as a workaround. Differential revision: https://reviews.llvm.org/D40370 Patch by Ian Tessier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319303 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ef36801a14
commit
3aae870071
@ -847,6 +847,7 @@ void ARMTargetELFStreamer::emitArchDefaultAttributes() {
|
||||
setAttributeItem(THUMB_ISA_use, AllowThumb32, false);
|
||||
break;
|
||||
|
||||
case ARM::ArchKind::ARMV7EM:
|
||||
case ARM::ArchKind::ARMV7M:
|
||||
setAttributeItem(CPU_arch_profile, MicroControllerProfile, false);
|
||||
setAttributeItem(THUMB_ISA_use, AllowThumb32, false);
|
||||
|
@ -191,6 +191,9 @@
|
||||
; ARMv7r
|
||||
; RUN: llc < %s -mtriple=armv7r-none-linux-gnueabi -mcpu=cortex-r5 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv7r-none-linux-gnueabi -mcpu=cortex-r5 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
|
||||
; ARMv7em
|
||||
; RUN: llc < %s -mtriple=thumbv7em-none-linux-gnueabi -mcpu=cortex-m4 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=thumbv7em-none-linux-gnueabi -mcpu=cortex-m4 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
|
||||
; ARMv7m
|
||||
; RUN: llc < %s -mtriple=thumbv7m-none-linux-gnueabi -mcpu=cortex-m3 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=thumbv7m-none-linux-gnueabi -mcpu=cortex-m3 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
|
||||
|
33
test/MC/ARM/directive-arch-armv7e-m.s
Normal file
33
test/MC/ARM/directive-arch-armv7e-m.s
Normal file
@ -0,0 +1,33 @@
|
||||
@ Test the .arch directive for armv7e-m
|
||||
|
||||
@ This test case will check the default .ARM.attributes value for the
|
||||
@ armv7e-m 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 -arm-attributes | FileCheck %s -check-prefix CHECK-ATTR
|
||||
|
||||
.syntax unified
|
||||
.arch armv7e-m
|
||||
|
||||
@ CHECK-ASM: .arch armv7e-m
|
||||
|
||||
@ CHECK-ATTR: FileAttributes {
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: CPU_name
|
||||
@ CHECK-ATTR: Value: 7E-M
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: CPU_arch
|
||||
@ CHECK-ATTR: Description: ARM v7
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: CPU_arch_profile
|
||||
@ CHECK-ATTR: Description: Microcontroller
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: THUMB_ISA_use
|
||||
@ CHECK-ATTR: Description: Thumb-2
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: }
|
33
test/MC/ARM/directive-arch-armv7em.s
Normal file
33
test/MC/ARM/directive-arch-armv7em.s
Normal file
@ -0,0 +1,33 @@
|
||||
@ Test the .arch directive for armv7e-m
|
||||
|
||||
@ This test case will check the default .ARM.attributes value for the
|
||||
@ armv7e-m architecture when using the armv7em alias.
|
||||
|
||||
@ 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 -arm-attributes | FileCheck %s -check-prefix CHECK-ATTR
|
||||
|
||||
.syntax unified
|
||||
.arch armv7em
|
||||
|
||||
@ CHECK-ASM: .arch armv7e-m
|
||||
|
||||
@ CHECK-ATTR: FileAttributes {
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: CPU_name
|
||||
@ CHECK-ATTR: Value: 7E-M
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: CPU_arch
|
||||
@ CHECK-ATTR: Description: ARM v7
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: CPU_arch_profile
|
||||
@ CHECK-ATTR: Description: Microcontroller
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: Attribute {
|
||||
@ CHECK-ATTR: TagName: THUMB_ISA_use
|
||||
@ CHECK-ATTR: Description: Thumb-2
|
||||
@ CHECK-ATTR: }
|
||||
@ CHECK-ATTR: }
|
Loading…
Reference in New Issue
Block a user