ARM: update build attributes for ABI r2.09
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sun, 19 Jan 2014 08:25:35 +0000 (08:25 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sun, 19 Jan 2014 08:25:35 +0000 (08:25 +0000)
Update names for the names as per the current ABI errata.  Mark deprecated tags
as such.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199576 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/ARMBuildAttributes.h
lib/Support/ARMBuildAttrs.cpp
lib/Target/ARM/ARMAsmPrinter.cpp
test/CodeGen/ARM/build-attributes.ll
test/MC/ARM/directive-eabi_attribute-2.s

index eef30cb2a4c01d7f5a0ee770c9afbd467977fd19..ef52ffba0859673e83900a24263559da597955b8 100644 (file)
@@ -33,8 +33,6 @@ enum SpecialAttr {
 enum AttrType {
   // Rest correspond to ELF/.ARM.attributes
   File                      = 1,
-  Section                   = 2,
-  Symbol                    = 3,
   CPU_raw_name              = 4,
   CPU_name                  = 5,
   CPU_arch                  = 6,
@@ -55,8 +53,8 @@ enum AttrType {
   ABI_FP_exceptions         = 21,
   ABI_FP_user_exceptions    = 22,
   ABI_FP_number_model       = 23,
-  ABI_align8_needed         = 24,
-  ABI_align8_preserved      = 25,
+  ABI_align_needed          = 24,
+  ABI_align_preserved       = 25,
   ABI_enum_size             = 26,
   ABI_HardFP_use            = 27,
   ABI_VFP_args              = 28,
@@ -67,14 +65,20 @@ enum AttrType {
   CPU_unaligned_access      = 34,
   FP_HP_extension           = 36,
   ABI_FP_16bit_format       = 38,
-  MPextension_use           = 42, // was 70, 2.08 ABI
+  MPextension_use           = 42, // recoded from 70 (ABI r2.08)
   DIV_use                   = 44,
-  nodefaults                = 64,
   also_compatible_with      = 65,
-  T2EE_use                  = 66,
   conformance               = 67,
   Virtualization_use        = 68,
-  MPextension_use_old       = 70
+
+  /// Legacy Tags
+  Section                   = 2,  // deprecated (ABI r2.09)
+  Symbol                    = 3,  // deprecated (ABI r2.09)
+  ABI_align8_needed         = 24, // renamed to ABI_align_needed (ABI r2.09)
+  ABI_align8_preserved      = 25, // renamed to ABI_align_preserved (ABI r2.09)
+  nodefaults                = 64, // deprecated (ABI r2.09)
+  T2EE_use                  = 66, // deprecated (ABI r2.09)
+  MPextension_use_old       = 70  // recoded to MPextension_use (ABI r2.08)
 };
 
 StringRef AttrTypeAsString(unsigned Attr, bool HasTagPrefix = true);
index 14b7b0dd31d229d2d58d9d73281b83aab40b736d..960a0f13c674eefc19bc6762964ef00413fe4c53 100644 (file)
@@ -40,8 +40,8 @@ const struct {
   { ARMBuildAttrs::ABI_FP_exceptions, "Tag_ABI_FP_exceptions" },
   { ARMBuildAttrs::ABI_FP_user_exceptions, "Tag_ABI_FP_user_exceptions" },
   { ARMBuildAttrs::ABI_FP_number_model, "Tag_ABI_FP_number_model" },
-  { ARMBuildAttrs::ABI_align8_needed, "Tag_ABI_align8_needed" },
-  { ARMBuildAttrs::ABI_align8_preserved, "Tag_ABI_align8_preserved" },
+  { ARMBuildAttrs::ABI_align_needed, "Tag_ABI_align_needed" },
+  { ARMBuildAttrs::ABI_align_preserved, "Tag_ABI_align_preserved" },
   { ARMBuildAttrs::ABI_enum_size, "Tag_ABI_enum_size" },
   { ARMBuildAttrs::ABI_HardFP_use, "Tag_ABI_HardFP_use" },
   { ARMBuildAttrs::ABI_VFP_args, "Tag_ABI_VFP_args" },
@@ -62,9 +62,9 @@ const struct {
 
   // Legacy Names
   { ARMBuildAttrs::FP_arch, "Tag_VFP_arch" },
-  { ARMBuildAttrs::ABI_align8_needed, "Tag_ABI_align_needed" },
-  { ARMBuildAttrs::ABI_align8_preserved, "Tag_ABI_align_preserved" },
   { ARMBuildAttrs::FP_HP_extension, "Tag_VFP_HP_extension" },
+  { ARMBuildAttrs::ABI_align_needed, "Tag_ABI_align8_needed" },
+  { ARMBuildAttrs::ABI_align_preserved, "Tag_ABI_align8_preserved" },
 };
 }
 
index 697ee77226f64de8126e23ccee61f714fe828090..4701cb448846fd7fe616767a10886540a49f2b72 100644 (file)
@@ -699,8 +699,8 @@ void ARMAsmPrinter::emitAttributes() {
 
   // FIXME: add more flags to ARMBuildAttributes.h
   // 8-bytes alignment stuff.
-  ATS.emitAttribute(ARMBuildAttrs::ABI_align8_needed, 1);
-  ATS.emitAttribute(ARMBuildAttrs::ABI_align8_preserved, 1);
+  ATS.emitAttribute(ARMBuildAttrs::ABI_align_needed, 1);
+  ATS.emitAttribute(ARMBuildAttrs::ABI_align_preserved, 1);
 
   // ABI_HardFP_use attribute to indicate single precision FP.
   if (Subtarget->isFPOnlySP())
index 1b735a6c278d2d2361dd155d7d550aafd9440d79..d49a70d932e20d37a416bcadb431b89131e9f7e1 100644 (file)
 ; CORTEX-A7-NOFPU: .eabi_attribute     24, 1
 ; CORTEX-A7-FPUV4: .eabi_attribute     24, 1
 
-; Tag_ABI_align8_preserved
+; Tag_ABI_align_preserved
 ; CORTEX-A7-CHECK: .eabi_attribute     25, 1
 ; CORTEX-A7-NOFPU: .eabi_attribute     25, 1
 ; CORTEX-A7-FPUV4: .eabi_attribute     25, 1
index fc8dc6149a5bb1c04129e3a29c757a1777dc185b..8f00ac80780201f0f96e400f0117d34dffbd3b9b 100644 (file)
@@ -43,9 +43,9 @@
 @ CHECK: .eabi_attribute 22, 1
        .eabi_attribute Tag_ABI_FP_number_model, 3
 @ CHECK: .eabi_attribute 23, 3
-       .eabi_attribute Tag_ABI_align8_needed, 1
+       .eabi_attribute Tag_ABI_align_needed, 1
 @ CHECK: .eabi_attribute 24, 1
-       .eabi_attribute Tag_ABI_align8_preserved, 2
+       .eabi_attribute Tag_ABI_align_preserved, 2
 @ CHECK: .eabi_attribute 25, 2
        .eabi_attribute Tag_ABI_enum_size, 3
 @ CHECK: .eabi_attribute 26, 3
        .eabi_attribute Tag_Virtualization_use, 0
 @ CHECK: .eabi_attribute 68, 0
 
+@ ===--- Compatibility Checks ---===
+
+       .eabi_attribute Tag_ABI_align8_needed, 1
+@ CHECK: .eabi_attribute 24, 1
+       .eabi_attribute Tag_ABI_align8_preserved, 2
+@ CHECK: .eabi_attribute 25, 2
+
 @ ===--- GNU AS Compatibility Checks ---===
 
        .eabi_attribute 2 * 2 + 1, "cortex-a9"