ARM: Add support for value 3 of Tag_ABI_VFP_args attribute
authorAlan Modra <amodra@gmail.com>
Thu, 25 Dec 2014 11:45:14 +0000 (22:15 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 25 Dec 2014 11:52:25 +0000 (22:22 +1030)
Missing from 5c294fee

elfcpp/
* arm.h: Add enums for Tag_ABI_FP_number_model and Tag_ABI_VFP_args.
gold/
* arm.cc (Target_arm::do_adjust_elf_header): Provide namespace on
new enums.
(Target_arm::merge_object_attributes, ): Likewise.

elfcpp/ChangeLog
elfcpp/arm.h
gold/ChangeLog
gold/arm.cc

index bc5681a850cc4bf38f3711b1c294231975ed5ea4..770d9c88bbc84bd85920ebc90cd85df5c09cd8df 100644 (file)
@@ -1,3 +1,7 @@
+2014-12-25  Alan Modra  <amodra@gmail.com>
+
+       * arm.h: Add enums for Tag_ABI_FP_number_model and Tag_ABI_VFP_args.
+
 2014-09-17  Han Shen  <shenhan@google.com>
 
        * aarch64.h (R_AARCH64_TLS_DTPREL64): Switch enum value with ...
index 8c6b6bfd3bd36cd1fb17bae2552c19a35a0c7ec2..8a8659595168ce45086b3a5d79e4d0e81120305a 100644 (file)
@@ -340,6 +340,24 @@ enum
   AEABI_enum_forced_wide = 3
 };
 
+// Values for Tag_ABI_FP_number_model.
+enum
+{
+  AEABI_FP_number_model_none = 0,
+  AEABI_FP_number_model_ieee754_number = 1,
+  AEABI_FP_number_model_rtabi = 2,
+  AEABI_FP_number_model_ieee754_all = 3
+};
+
+// Values for Tag_ABI_VFP_args.
+enum
+{
+  AEABI_VFP_args_base = 0,
+  AEABI_VFP_args_vfp = 1,
+  AEABI_VFP_args_toolchain = 2,
+  AEABI_VFP_args_compatible = 3
+};
+
 // For Exception Index Table. (Exception handling ABI for the ARM
 // architectue, Section 5)
 enum
index f4983cba130f51534f7ce920a3cde87f6780f747..11d9f5b9f1158f1f526e73a24a8b0417713e2341 100644 (file)
@@ -1,3 +1,9 @@
+2014-12-25  Alan Modra  <amodra@gmail.com>
+
+       * arm.cc (Target_arm::do_adjust_elf_header): Provide namespace on
+       new enums.
+       (Target_arm::merge_object_attributes, ): Likewise.
+
 2014-12-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        * arm.cc (Target_arm::do_adjust_elf_header): Set e_flags in ELF header
index 4186a2a7fd587d5ff240f26480ee1e7ac1efe51b..8485ab348433d0f5c51c45c1314598244799bd41 100644 (file)
@@ -10056,7 +10056,7 @@ Target_arm<big_endian>::do_adjust_elf_header(
     if (type == elfcpp::ET_EXEC || type == elfcpp::ET_DYN)
       {
        Object_attribute* attr = this->get_aeabi_object_attribute(elfcpp::Tag_ABI_VFP_args);
-       if (attr->int_value() == AEABI_VFP_args_vfp)
+       if (attr->int_value() == elfcpp::AEABI_VFP_args_vfp)
          flags |= elfcpp::EF_ARM_ABI_FLOAT_HARD;
        else
          flags |= elfcpp::EF_ARM_ABI_FLOAT_SOFT;
@@ -10494,17 +10494,17 @@ Target_arm<big_endian>::merge_object_attributes(
     {
       // Ignore mismatches if the object doesn't use floating point.  */
       if (out_attr[elfcpp::Tag_ABI_FP_number_model].int_value()
-         == AEABI_FP_number_model_none
+         == elfcpp::AEABI_FP_number_model_none
          || (in_attr[elfcpp::Tag_ABI_FP_number_model].int_value()
-             != AEABI_FP_number_model_none
+             != elfcpp::AEABI_FP_number_model_none
              && out_attr[elfcpp::Tag_ABI_VFP_args].int_value()
-                == AEABI_VFP_args_compatible))
+                == elfcpp::AEABI_VFP_args_compatible))
        out_attr[elfcpp::Tag_ABI_VFP_args].set_int_value(
            in_attr[elfcpp::Tag_ABI_VFP_args].int_value());
       else if (in_attr[elfcpp::Tag_ABI_FP_number_model].int_value()
-              != AEABI_FP_number_model_none
+              != elfcpp::AEABI_FP_number_model_none
               && in_attr[elfcpp::Tag_ABI_VFP_args].int_value()
-                 != AEABI_VFP_args_compatible
+                 != elfcpp::AEABI_VFP_args_compatible
               && parameters->options().warn_mismatch())
        gold_error(_("%s uses VFP register arguments, output does not"),
                   name);