[ARM] Add support for FP_HP_extension build attribute

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194470 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bradley Smith 2013-11-12 10:38:05 +00:00
parent aee7825762
commit 2ca352d027
4 changed files with 31 additions and 7 deletions

View File

@ -703,6 +703,9 @@ void ARMAsmPrinter::emitAttributes() {
// FIXME: Should we signal R9 usage?
if (Subtarget->hasFP16())
ATS.emitAttribute(ARMBuildAttrs::FP_HP_extension, ARMBuildAttrs::AllowHPFP);
if (Subtarget->hasMPExtension())
ATS.emitAttribute(ARMBuildAttrs::MPextension_use, ARMBuildAttrs::AllowMP);

View File

@ -59,7 +59,7 @@ namespace ARMBuildAttrs {
ABI_FP_optimization_goals = 31,
compatibility = 32,
CPU_unaligned_access = 34,
VFP_HP_extension = 36,
FP_HP_extension = 36,
ABI_FP_16bit_format = 38,
MPextension_use = 42, // was 70, 2.08 ABI
DIV_use = 44,
@ -146,6 +146,9 @@ namespace ARMBuildAttrs {
BaseAAPCS = 0,
HardFPAAPCS = 1,
// Tag_FP_HP_extension, (=36), uleb128
AllowHPFP = 1, // Allow use of Half Precision FP
// Tag_MPextension_use, (=42), uleb128
AllowMP = 1, // Allow use of MP extensions

View File

@ -29,6 +29,7 @@
; V6: .eabi_attribute 25, 1
; V6-NOT: .eabi_attribute 27
; V6-NOT: .eabi_attribute 28
; V6-NOT: .eabi_attribute 36
; V6-NOT: .eabi_attribute 42
; V6-NOT: .eabi_attribute 68
@ -40,6 +41,7 @@
; V6M: .eabi_attribute 25, 1
; V6M-NOT: .eabi_attribute 27
; V6M-NOT: .eabi_attribute 28
; V6M-NOT: .eabi_attribute 36
; V6M-NOT: .eabi_attribute 42
; V6M-NOT: .eabi_attribute 68
@ -55,6 +57,7 @@
; ARM1156T2F-S: .eabi_attribute 25, 1
; ARM1156T2F-S-NOT: .eabi_attribute 27
; ARM1156T2F-S-NOT: .eabi_attribute 28
; ARM1156T2F-S-NOT: .eabi_attribute 36
; ARM1156T2F-S-NOT: .eabi_attribute 42
; ARM1156T2F-S-NOT: .eabi_attribute 68
@ -66,6 +69,7 @@
; V7M: .eabi_attribute 25, 1
; V7M-NOT: .eabi_attribute 27
; V7M-NOT: .eabi_attribute 28
; V7M-NOT: .eabi_attribute 36
; V7M-NOT: .eabi_attribute 42
; V7M: .eabi_attribute 44, 0
; V7M-NOT: .eabi_attribute 68
@ -79,6 +83,7 @@
; V7: .eabi_attribute 25, 1
; V7-NOT: .eabi_attribute 27
; V7-NOT: .eabi_attribute 28
; V7-NOT: .eabi_attribute 36
; V7-NOT: .eabi_attribute 42
; V7-NOT: .eabi_attribute 68
@ -120,6 +125,7 @@
; CORTEX-A9-SOFT: .eabi_attribute 25, 1
; CORTEX-A9-SOFT-NOT: .eabi_attribute 27
; CORTEX-A9-SOFT-NOT: .eabi_attribute 28
; CORTEX-A9-SOFT: .eabi_attribute 36, 1
; CORTEX-A9-SOFT-NOT: .eabi_attribute 42
; CORTEX-A9-SOFT: .eabi_attribute 68, 1
@ -136,6 +142,7 @@
; CORTEX-A9-HARD: .eabi_attribute 25, 1
; CORTEX-A9-HARD-NOT: .eabi_attribute 27
; CORTEX-A9-HARD: .eabi_attribute 28, 1
; CORTEX-A9-HARD: .eabi_attribute 36, 1
; CORTEX-A9-HARD-NOT: .eabi_attribute 42
; CORTEX-A9-HARD: .eabi_attribute 68, 1
@ -152,6 +159,7 @@
; CORTEX-A9-MP: .eabi_attribute 25, 1
; CORTEX-A9-NOT: .eabi_attribute 27
; CORTEX-A9-NOT: .eabi_attribute 28
; CORTEX-A9-MP: .eabi_attribute 36, 1
; CORTEX-A9-MP: .eabi_attribute 42, 1
; CORTEX-A9-MP: .eabi_attribute 68, 1
@ -166,10 +174,11 @@
; CORTEX-A15: .eabi_attribute 23, 3
; CORTEX-A15: .eabi_attribute 24, 1
; CORTEX-A15: .eabi_attribute 25, 1
; CORTEX-A15: .eabi_attribute 42, 1
; CORTEX-A15: .eabi_attribute 44, 2
; CORTEX-A15-NOT: .eabi_attribute 27
; CORTEX-A15-NOT: .eabi_attribute 28
; CORTEX-A15: .eabi_attribute 36, 1
; CORTEX-A15: .eabi_attribute 42, 1
; CORTEX-A15: .eabi_attribute 44, 2
; CORTEX-A15: .eabi_attribute 68, 3
; CORTEX-M0: .cpu cortex-m0
@ -181,6 +190,7 @@
; CORTEX-M0: .eabi_attribute 25, 1
; CORTEX-M0-NOT: .eabi_attribute 27
; CORTEX-M0-NOT: .eabi_attribute 28
; CORTEX-M0-NOT: .eabi_attribute 36
; CORTEX-M0-NOT: .eabi_attribute 42
; CORTEX-M0-NOT: .eabi_attribute 68
@ -197,6 +207,7 @@
; CORTEX-M4-SOFT: .eabi_attribute 25, 1
; CORTEX-M4-SOFT: .eabi_attribute 27, 1
; CORTEX-M4-SOFT-NOT: .eabi_attribute 28
; CORTEX-M4-SOFT: .eabi_attribute 36, 1
; CORTEX-M4-SOFT-NOT: .eabi_attribute 42
; CORTEX-M4-SOFT: .eabi_attribute 44, 0
; CORTEX-M4-SOFT-NOT: .eabi_attribute 68
@ -214,6 +225,7 @@
; CORTEX-M4-HARD: .eabi_attribute 25, 1
; CORTEX-M4-HARD: .eabi_attribute 27, 1
; CORTEX-M4-HARD: .eabi_attribute 28, 1
; CORTEX-M4-HARD: .eabi_attribute 36, 1
; CORTEX-M4-HARD-NOT: .eabi_attribute 42
; CORTEX-M4-HARD: .eabi_attribute 44, 0
; CORTEX-M4-HRAD-NOT: .eabi_attribute 68
@ -231,6 +243,7 @@
; CORTEX-R5: .eabi_attribute 25, 1
; CORTEX-R5: .eabi_attribute 27, 1
; CORTEX-R5-NOT: .eabi_attribute 28
; CORTEX-R5-NOT: .eabi_attribute 36
; CORTEX-R5-NOT: .eabi_attribute 42
; CORTEX-R5: .eabi_attribute 44, 2
; CORTEX-R5-NOT: .eabi_attribute 68
@ -246,6 +259,7 @@
; CORTEX-A53: .eabi_attribute 25, 1
; CORTEX-A53-NOT: .eabi_attribute 27
; CORTEX-A53-NOT: .eabi_attribute 28
; CORTEX-A53: .eabi_attribute 36, 1
; CORTEX-A53: .eabi_attribute 42, 1
; CORTEX-A53: .eabi_attribute 44, 2
; CORTEX-A53: .eabi_attribute 68, 3
@ -261,6 +275,7 @@
; CORTEX-A57: .eabi_attribute 25, 1
; CORTEX-A57-NOT: .eabi_attribute 27
; CORTEX-A57-NOT: .eabi_attribute 28
; CORTEX-A57: .eabi_attribute 36, 1
; CORTEX-A57: .eabi_attribute 42, 1
; CORTEX-A57: .eabi_attribute 44, 2
; CORTEX-A57: .eabi_attribute 68, 3

View File

@ -45,6 +45,9 @@
// Tag_ABI_VFP_args (=28)
.eabi_attribute 28, 1
// Tag_FP_HP_extension (=36)
.eabi_attribute 36, 1
// Tag_MPextension_use (=42)
.eabi_attribute 42, 1
@ -68,15 +71,15 @@
// CHECK-NEXT: ]
// CHECK-NEXT: Address: 0x0
// CHECK-NEXT: Offset: 0x34
// CHECK-NEXT: Size: 68
// CHECK-NEXT: Size: 70
// CHECK-NEXT: Link: 0
// CHECK-NEXT: Info: 0
// CHECK-NEXT: AddressAlignment: 1
// CHECK-NEXT: EntrySize: 0
// CHECK-NEXT: SectionData (
// CHECK-NEXT: 0000: 41430000 00616561 62690001 39000000
// CHECK-NEXT: 0000: 41450000 00616561 62690001 3B000000
// CHECK-NEXT: 0010: 05434F52 5445582D 41380006 0A074108
// CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119
// CHECK-NEXT: 0030: 011B001C 012A012C 0244036E A0018101
// CHECK-NEXT: 0040: 01FA0101
// CHECK-NEXT: 0030: 011B001C 0124012A 012C0244 036EA001
// CHECK-NEXT: 0040: 810101FA 0101
// CHECK-NEXT: )