* elf32-arm.h (elf32_arm_merge_private_bfd_data): Handle
EF_ARM_VFP_FLOAT. (elf32_arm_print_private_bfd_data): Likewise.
This commit is contained in:
parent
ca4ebd1e04
commit
96a846ea23
|
@ -1,3 +1,9 @@
|
||||||
|
2002-01-16 Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
|
||||||
|
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Handle
|
||||||
|
EF_ARM_VFP_FLOAT.
|
||||||
|
(elf32_arm_print_private_bfd_data): Likewise.
|
||||||
|
|
||||||
2002-01-16 Nick Clifton <nickc@cambridge.redhat.com>
|
2002-01-16 Nick Clifton <nickc@cambridge.redhat.com>
|
||||||
|
|
||||||
* po/tr.po: Import new version.
|
* po/tr.po: Import new version.
|
||||||
|
|
|
@ -2297,8 +2297,32 @@ Error: %s passes floats in integer registers, whereas %s passes them in FP regis
|
||||||
flags_compatible = false;
|
flags_compatible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((in_flags & EF_ARM_VFP_FLOAT) != (out_flags & EF_ARM_VFP_FLOAT))
|
||||||
|
{
|
||||||
|
if (in_flags & EF_ARM_VFP_FLOAT)
|
||||||
|
_bfd_error_handler (_("\
|
||||||
|
Error: %s uses VFP instructions, whereas %s FPA instructions"),
|
||||||
|
bfd_archive_filename (ibfd),
|
||||||
|
bfd_get_filename (obfd));
|
||||||
|
else
|
||||||
|
_bfd_error_handler (_("\
|
||||||
|
Error: %s uses FPA instructions, whereas %s VFP instructions"),
|
||||||
|
bfd_archive_filename (ibfd),
|
||||||
|
bfd_get_filename (obfd));
|
||||||
|
|
||||||
|
flags_compatible = false;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef EF_ARM_SOFT_FLOAT
|
#ifdef EF_ARM_SOFT_FLOAT
|
||||||
if ((in_flags & EF_ARM_SOFT_FLOAT) != (out_flags & EF_ARM_SOFT_FLOAT))
|
if ((in_flags & EF_ARM_SOFT_FLOAT) != (out_flags & EF_ARM_SOFT_FLOAT))
|
||||||
|
{
|
||||||
|
/* We can allow interworking between code that is VFP format
|
||||||
|
layout, and uses either soft float or integer regs for
|
||||||
|
passing floating point arguments and results. We already
|
||||||
|
know that the APCS_FLOAT flags match; similarly for VFP
|
||||||
|
flags. */
|
||||||
|
if ((in_flags & EF_ARM_APCS_FLOAT) != 0
|
||||||
|
|| (in_flags & EF_ARM_VFP_FLOAT) == 0)
|
||||||
{
|
{
|
||||||
if (in_flags & EF_ARM_SOFT_FLOAT)
|
if (in_flags & EF_ARM_SOFT_FLOAT)
|
||||||
_bfd_error_handler (_ ("\
|
_bfd_error_handler (_ ("\
|
||||||
|
@ -2313,6 +2337,7 @@ Error: %s uses hardware FP, whereas %s uses software FP"),
|
||||||
|
|
||||||
flags_compatible = false;
|
flags_compatible = false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Interworking mismatch is only a warning. */
|
/* Interworking mismatch is only a warning. */
|
||||||
|
@ -2374,6 +2399,11 @@ elf32_arm_print_private_bfd_data (abfd, ptr)
|
||||||
else
|
else
|
||||||
fprintf (file, _(" [APCS-32]"));
|
fprintf (file, _(" [APCS-32]"));
|
||||||
|
|
||||||
|
if (flags & EF_ARM_VFP_FLOAT)
|
||||||
|
fprintf (file, _(" [VFP float format]"));
|
||||||
|
else
|
||||||
|
fprintf (file, _(" [FPA float format]"));
|
||||||
|
|
||||||
if (flags & EF_ARM_APCS_FLOAT)
|
if (flags & EF_ARM_APCS_FLOAT)
|
||||||
fprintf (file, _(" [floats passed in float registers]"));
|
fprintf (file, _(" [floats passed in float registers]"));
|
||||||
|
|
||||||
|
@ -2389,8 +2419,9 @@ elf32_arm_print_private_bfd_data (abfd, ptr)
|
||||||
if (flags & EF_ARM_SOFT_FLOAT)
|
if (flags & EF_ARM_SOFT_FLOAT)
|
||||||
fprintf (file, _(" [software FP]"));
|
fprintf (file, _(" [software FP]"));
|
||||||
|
|
||||||
flags &= ~(EF_ARM_INTERWORK | EF_ARM_APCS_26 | EF_ARM_APCS_FLOAT | EF_ARM_PIC
|
flags &= ~(EF_ARM_INTERWORK | EF_ARM_APCS_26 | EF_ARM_APCS_FLOAT
|
||||||
| EF_ARM_NEW_ABI | EF_ARM_OLD_ABI | EF_ARM_SOFT_FLOAT);
|
| EF_ARM_PIC | EF_ARM_NEW_ABI | EF_ARM_OLD_ABI
|
||||||
|
| EF_ARM_SOFT_FLOAT | EF_ARM_VFP_FLOAT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EF_ARM_EABI_VER1:
|
case EF_ARM_EABI_VER1:
|
||||||
|
|
Loading…
Reference in New Issue