diff options
author | Alan Modra <amodra@gmail.com> | 2014-12-25 22:15:14 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-12-25 22:22:25 +1030 |
commit | f12d1e8a660c34ce3098da788ac01d067d6ccbab (patch) | |
tree | 19fa95b46f1f7b54d6f806f7107c126e93cc4328 | |
parent | 6fd9d738c04fd1dd1d73c08f8a384ea3c8a160ab (diff) | |
download | gdb-f12d1e8a660c34ce3098da788ac01d067d6ccbab.zip gdb-f12d1e8a660c34ce3098da788ac01d067d6ccbab.tar.gz gdb-f12d1e8a660c34ce3098da788ac01d067d6ccbab.tar.bz2 |
ARM: Add support for value 3 of Tag_ABI_VFP_args attribute
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.
-rw-r--r-- | elfcpp/ChangeLog | 4 | ||||
-rw-r--r-- | elfcpp/arm.h | 18 | ||||
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/arm.cc | 12 |
4 files changed, 34 insertions, 6 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog index bc5681a..770d9c8 100644 --- a/elfcpp/ChangeLog +++ b/elfcpp/ChangeLog @@ -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 ... diff --git a/elfcpp/arm.h b/elfcpp/arm.h index 8c6b6bf..8a86595 100644 --- a/elfcpp/arm.h +++ b/elfcpp/arm.h @@ -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 diff --git a/gold/ChangeLog b/gold/ChangeLog index f4983cb..11d9f5b 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -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 diff --git a/gold/arm.cc b/gold/arm.cc index 4186a2a..8485ab3 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -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); |