mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-30 04:35:00 +00:00
Recommit modified r167540.
Improve ARM build attribute emission for architectures types. This also changes the default architecture emitted for a generic CPU to "v7". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167574 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
be02a90de1
commit
214fd3d244
@ -749,13 +749,28 @@ void ARMAsmPrinter::emitAttributes() {
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::THUMB_ISA_use,
|
||||
ARMBuildAttrs::Allowed);
|
||||
} else if (CPUString == "generic") {
|
||||
// FIXME: Why these defaults?
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v4T);
|
||||
// For a generic CPU, we assume a standard v7a architecture in Subtarget.
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v7);
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch_profile,
|
||||
ARMBuildAttrs::ApplicationProfile);
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::ARM_ISA_use,
|
||||
ARMBuildAttrs::Allowed);
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::THUMB_ISA_use,
|
||||
ARMBuildAttrs::Allowed);
|
||||
}
|
||||
ARMBuildAttrs::AllowThumb32);
|
||||
} else if (Subtarget->hasV7Ops()) {
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v7);
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::THUMB_ISA_use,
|
||||
ARMBuildAttrs::AllowThumb32);
|
||||
} else if (Subtarget->hasV6T2Ops())
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v6T2);
|
||||
else if (Subtarget->hasV6Ops())
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v6);
|
||||
else if (Subtarget->hasV5TEOps())
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v5TE);
|
||||
else if (Subtarget->hasV5TOps())
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v5T);
|
||||
else if (Subtarget->hasV4TOps())
|
||||
AttrEmitter->EmitAttribute(ARMBuildAttrs::CPU_arch, ARMBuildAttrs::v4T);
|
||||
|
||||
if (Subtarget->hasNEON() && emitFPU) {
|
||||
/* NEON is not exactly a VFP architecture, but GAS emit one of
|
||||
|
@ -13,12 +13,12 @@
|
||||
; BASIC-NEXT: 0x00000000
|
||||
; BASIC-NEXT: 0x00000000
|
||||
; BASIC-NEXT: 0x0000003c
|
||||
; BASIC-NEXT: 0x00000020
|
||||
; BASIC-NEXT: 0x00000022
|
||||
; BASIC-NEXT: 0x00000000
|
||||
; BASIC-NEXT: 0x00000000
|
||||
; BASIC-NEXT: 0x00000001
|
||||
; BASIC-NEXT: 0x00000000
|
||||
; BASIC-NEXT: '411f0000 00616561 62690001 15000000 06020801 09011401 15011703 18011901'
|
||||
; BASIC-NEXT: '41210000 00616561 62690001 17000000 060a0741 08010902 14011501 17031801 1901'
|
||||
|
||||
; CORTEXA8: .ARM.attributes
|
||||
; CORTEXA8-NEXT: 0x70000003
|
||||
|
Loading…
x
Reference in New Issue
Block a user