[llvm] r194470 - [ARM] Add support for FP_HP_extension build attribute

Bradley Smith bradley.smith at arm.com
Tue Nov 12 02:38:05 PST 2013


Author: brasmi01
Date: Tue Nov 12 04:38:05 2013
New Revision: 194470

URL: http://llvm.org/viewvc/llvm-project?rev=194470&view=rev
Log:
[ARM] Add support for FP_HP_extension build attribute


Modified:
    llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
    llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h
    llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
    llvm/trunk/test/CodeGen/ARM/build-attributes-encoding.s

Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=194470&r1=194469&r2=194470&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp Tue Nov 12 04:38:05 2013
@@ -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);
 

Modified: llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h?rev=194470&r1=194469&r2=194470&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h (original)
+++ llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h Tue Nov 12 04:38:05 2013
@@ -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
 

Modified: llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll?rev=194470&r1=194469&r2=194470&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll Tue Nov 12 04:38:05 2013
@@ -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

Modified: llvm/trunk/test/CodeGen/ARM/build-attributes-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/build-attributes-encoding.s?rev=194470&r1=194469&r2=194470&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/build-attributes-encoding.s (original)
+++ llvm/trunk/test/CodeGen/ARM/build-attributes-encoding.s Tue Nov 12 04:38:05 2013
@@ -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:     )





More information about the llvm-commits mailing list