mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-29 02:20:51 +00:00
ARM: Add support for value 3 of Tag_ABI_VFP_args attribute
*** bfd/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new Tag_ABI_VFP_args value and replace hardcoded values by enum values. (elf32_arm_post_process_headers): Set e_flags in ELF header as hard float only when Tag_ABI_VFP_args is 1, using new enum value AEABI_VFP_args_vfp to check that. *** binutils/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * readelf.c (arm_attr_tag_ABI_VFP_args): Add "compatible". *** gdb/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * arm-tdep.c (arm_gdbarch_init): Explicitely handle value 3 of Tag_ABI_VFP_args. Also replace hardcoded values by enum values in the switch handling the different values of Tag_ABI_VFP_args. *** gold/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * arm.cc (Target_arm::do_adjust_elf_header): Set e_flags in ELF header as hard float only when Tag_ABI_VFP_args is 1, using new enum value AEABI_VFP_args_vfp to check that. (Target_arm::merge_object_attributes): Handle new Tag_ABI_VFP_args value and replace hardcoded values by enum values. *** include/elf/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * arm.h: New AEABI_FP_number_model_* and AEABI_VFP_args_* enum values. *** ld/testsuite/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * ld-arm/attr-merge-2a.s: Add Tag_ABI_VFP_args. * ld-arm/attr-merge-2b.s: Likewise. * ld-arm/attr-merge-2.attr: Likewise. * ld-arm/attr-merge-4a.s: Add Tag_ABI_FP_number_model and Tag_ABI_VFP_args. * ld-arm/attr-merge-4b.s: Likewise. * ld-arm/attr-merge-4.attr: Likewise. * ld-arm/attr-merge-6a.s: Likewise. * ld-arm/attr-merge-6b.s: Likewise. * ld-arm/attr-merge-6.attr: Add Tag_ABI_FP_number_model.
This commit is contained in:
@@ -9968,27 +9968,34 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
OBJ_ATTR_PROC,
|
||||
Tag_ABI_VFP_args))
|
||||
{
|
||||
case 0:
|
||||
case (int) AEABI_VFP_args_base:
|
||||
/* "The user intended FP parameter/result
|
||||
passing to conform to AAPCS, base
|
||||
variant". */
|
||||
fp_model = ARM_FLOAT_SOFT_VFP;
|
||||
break;
|
||||
case 1:
|
||||
case (int) AEABI_VFP_args_vfp:
|
||||
/* "The user intended FP parameter/result
|
||||
passing to conform to AAPCS, VFP
|
||||
variant". */
|
||||
fp_model = ARM_FLOAT_VFP;
|
||||
break;
|
||||
case 2:
|
||||
case (int) AEABI_VFP_args_toolchain:
|
||||
/* "The user intended FP parameter/result
|
||||
passing to conform to tool chain-specific
|
||||
conventions" - we don't know any such
|
||||
conventions, so leave it as "auto". */
|
||||
break;
|
||||
case (int) AEABI_VFP_args_compatible:
|
||||
/* "Code is compatible with both the base
|
||||
and VFP variants; the user did not permit
|
||||
non-variadic functions to pass FP
|
||||
parameters/results" - leave it as
|
||||
"auto". */
|
||||
break;
|
||||
default:
|
||||
/* Attribute value not mentioned in the
|
||||
October 2008 ABI, so leave it as
|
||||
November 2012 ABI, so leave it as
|
||||
"auto". */
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user