Support PowerPC single-precision float.
This commit is contained in:
parent
d72314c67b
commit
3c7b98977c
20 changed files with 119 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-07-26 Michael Eager <eager@eagercon.com>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility
|
||||
between single-float, double-float, and soft-float.
|
||||
|
||||
2008-07-24 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* elf32-mips.c (elf_backend_write_section): Define.
|
||||
|
|
|
@ -3883,10 +3883,22 @@ ppc_elf_merge_obj_attributes (bfd *ibfd, bfd *obfd)
|
|||
else if (out_attr->i == 1 && in_attr->i == 2)
|
||||
_bfd_error_handler
|
||||
(_("Warning: %B uses hard float, %B uses soft float"), obfd, ibfd);
|
||||
else if (out_attr->i == 2 && in_attr->i == 1)
|
||||
else if (out_attr->i == 1 && in_attr->i == 3)
|
||||
_bfd_error_handler
|
||||
(_("Warning: %B uses double-precision hard float, %B uses single-precision hard float"),
|
||||
obfd, ibfd);
|
||||
else if (out_attr->i == 3 && in_attr->i == 1)
|
||||
_bfd_error_handler
|
||||
(_("Warning: %B uses double-precision hard float, %B uses single-precision hard float"),
|
||||
ibfd, obfd);
|
||||
else if (out_attr->i == 3 && in_attr->i == 2)
|
||||
_bfd_error_handler
|
||||
(_("Warning: %B uses soft float, %B uses single-precision hard float"),
|
||||
ibfd, obfd);
|
||||
else if (out_attr->i == 2 && (in_attr->i == 1 || in_attr->i == 3))
|
||||
_bfd_error_handler
|
||||
(_("Warning: %B uses hard float, %B uses soft float"), ibfd, obfd);
|
||||
else if (in_attr->i > 2)
|
||||
else if (in_attr->i > 3)
|
||||
_bfd_error_handler
|
||||
(_("Warning: %B uses unknown floating point ABI %d"), ibfd,
|
||||
in_attr->i);
|
||||
|
|
|
@ -9037,6 +9037,9 @@ display_power_gnu_attribute (unsigned char *p, int tag)
|
|||
case 2:
|
||||
printf ("Soft float\n");
|
||||
break;
|
||||
case 3:
|
||||
printf ("Single-precision hard float\n");
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2008-07-26 Michael Eager <eager@eagercon.com>
|
||||
|
||||
* doc/as.texinfo: Add description of single-precision attribute.
|
||||
|
||||
2008-07-24 Jie Zhang <jie.zhang@analog.com>
|
||||
|
||||
* config/bfin-parse.y (asm_1): Error if plain symbol is used
|
||||
|
|
|
@ -6513,9 +6513,11 @@ The floating-point ABI used by this object file. The value will be:
|
|||
@item
|
||||
0 for files not affected by the floating-point ABI.
|
||||
@item
|
||||
1 for files using the hardware floating-point ABI.
|
||||
1 for files using double-precision hardware floating-point ABI.
|
||||
@item
|
||||
2 for files using the software floating-point ABI.
|
||||
@item
|
||||
3 for files using single-precision hardware floating-point ABI.
|
||||
@end itemize
|
||||
|
||||
@item Tag_GNU_Power_ABI_Vector (8)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2008-07-26 Michael Eager <eager@eagercon.com>
|
||||
|
||||
* ppc.h: Add description of single-precision.
|
||||
|
||||
2008-07-21 Luis Machado <luisgpm@br.ibm.com>
|
||||
|
||||
* common.h: Define NT_PPC_VSX.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* PPC ELF support for BFD.
|
||||
Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005
|
||||
Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
By Michael Meissner, Cygnus Support, <meissner@cygnus.com>, from information
|
||||
|
@ -177,7 +177,8 @@ enum
|
|||
{
|
||||
/* 0-3 are generic. */
|
||||
Tag_GNU_Power_ABI_FP = 4, /* Value 1 for hard-float, 2 for
|
||||
soft-float; 0 for not tagged or not
|
||||
soft-float, 3 for single=precision
|
||||
hard-float; 0 for not tagged or not
|
||||
using any ABIs affected by the
|
||||
differences. */
|
||||
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
2008-07-26 Michael Eager <eager@eagercon.com>
|
||||
|
||||
* ld-powerpc/powerpc.exp: Run new tests.
|
||||
* ld-powerpc/attr-gnu-4-03.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-14.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-23.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-24.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-32.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-33.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-34.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-41.d: New file.
|
||||
* ld-powerpc/attr-gnu-4-4.s: New file.
|
||||
* ld-powerpc/attr-gnu-4-13.d: Adjust.
|
||||
* ld-powerpc/attr-gnu-4-31.d: Adjust.
|
||||
|
||||
2008-07-26 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ld-scripts/include.exp: Don't run test for aout.
|
||||
|
|
10
ld/testsuite/ld-powerpc/attr-gnu-4-03.d
Normal file
10
ld/testsuite/ld-powerpc/attr-gnu-4-03.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#source: attr-gnu-4-0.s
|
||||
#source: attr-gnu-4-3.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#readelf: -A
|
||||
#target: powerpc*-*-*
|
||||
|
||||
Attribute Section: gnu
|
||||
File Attributes
|
||||
Tag_GNU_Power_ABI_FP: Single-precision hard float
|
|
@ -2,5 +2,5 @@
|
|||
#source: attr-gnu-4-3.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses unknown floating point ABI 3
|
||||
#warning: Warning: .* uses double-precision hard float, .* uses single-precision hard float
|
||||
#target: powerpc*-*-*
|
||||
|
|
6
ld/testsuite/ld-powerpc/attr-gnu-4-14.d
Normal file
6
ld/testsuite/ld-powerpc/attr-gnu-4-14.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#source: attr-gnu-4-1.s
|
||||
#source: attr-gnu-4-4.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses unknown floating point ABI 4
|
||||
#target: powerpc*-*-*
|
6
ld/testsuite/ld-powerpc/attr-gnu-4-23.d
Normal file
6
ld/testsuite/ld-powerpc/attr-gnu-4-23.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#source: attr-gnu-4-2.s
|
||||
#source: attr-gnu-4-3.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses hard float, .* uses soft float
|
||||
#target: powerpc*-*-*
|
6
ld/testsuite/ld-powerpc/attr-gnu-4-24.d
Normal file
6
ld/testsuite/ld-powerpc/attr-gnu-4-24.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#source: attr-gnu-4-2.s
|
||||
#source: attr-gnu-4-4.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses unknown floating point ABI 4
|
||||
#target: powerpc*-*-*
|
|
@ -2,5 +2,5 @@
|
|||
#source: attr-gnu-4-1.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses unknown floating point ABI 3
|
||||
#warning: Warning: .* uses double-precision hard float, .* uses single-precision hard float
|
||||
#target: powerpc*-*-*
|
||||
|
|
6
ld/testsuite/ld-powerpc/attr-gnu-4-32.d
Normal file
6
ld/testsuite/ld-powerpc/attr-gnu-4-32.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#source: attr-gnu-4-3.s
|
||||
#source: attr-gnu-4-2.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses soft float, .* uses single-precision hard float
|
||||
#target: powerpc*-*-*
|
10
ld/testsuite/ld-powerpc/attr-gnu-4-33.d
Normal file
10
ld/testsuite/ld-powerpc/attr-gnu-4-33.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#source: attr-gnu-4-3.s
|
||||
#source: attr-gnu-4-3.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#readelf: -A
|
||||
#target: powerpc*-*-*
|
||||
|
||||
Attribute Section: gnu
|
||||
File Attributes
|
||||
Tag_GNU_Power_ABI_FP: Single-precision hard float
|
6
ld/testsuite/ld-powerpc/attr-gnu-4-34.d
Normal file
6
ld/testsuite/ld-powerpc/attr-gnu-4-34.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#source: attr-gnu-4-3.s
|
||||
#source: attr-gnu-4-4.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses unknown floating point ABI 4
|
||||
#target: powerpc*-*-*
|
1
ld/testsuite/ld-powerpc/attr-gnu-4-4.s
Normal file
1
ld/testsuite/ld-powerpc/attr-gnu-4-4.s
Normal file
|
@ -0,0 +1 @@
|
|||
.gnu_attribute 4,4
|
6
ld/testsuite/ld-powerpc/attr-gnu-4-41.d
Normal file
6
ld/testsuite/ld-powerpc/attr-gnu-4-41.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#source: attr-gnu-4-4.s
|
||||
#source: attr-gnu-4-1.s
|
||||
#as: -a32
|
||||
#ld: -r -melf32ppc
|
||||
#warning: Warning: .* uses unknown floating point ABI 4
|
||||
#target: powerpc*-*-*
|
|
@ -1,5 +1,5 @@
|
|||
# Expect script for ld-powerpc tests
|
||||
# Copyright 2002, 2003, 2005, 2006, 2007 Free Software Foundation
|
||||
# Copyright 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
|
@ -157,14 +157,22 @@ run_dump_test "plt1"
|
|||
run_dump_test "attr-gnu-4-00"
|
||||
run_dump_test "attr-gnu-4-01"
|
||||
run_dump_test "attr-gnu-4-02"
|
||||
run_dump_test "attr-gnu-4-03"
|
||||
run_dump_test "attr-gnu-4-10"
|
||||
run_dump_test "attr-gnu-4-11"
|
||||
run_dump_test "attr-gnu-4-12"
|
||||
run_dump_test "attr-gnu-4-13"
|
||||
run_dump_test "attr-gnu-4-14"
|
||||
run_dump_test "attr-gnu-4-20"
|
||||
run_dump_test "attr-gnu-4-21"
|
||||
run_dump_test "attr-gnu-4-22"
|
||||
run_dump_test "attr-gnu-4-23"
|
||||
run_dump_test "attr-gnu-4-24"
|
||||
run_dump_test "attr-gnu-4-31"
|
||||
run_dump_test "attr-gnu-4-32"
|
||||
run_dump_test "attr-gnu-4-33"
|
||||
run_dump_test "attr-gnu-4-34"
|
||||
run_dump_test "attr-gnu-4-41"
|
||||
|
||||
run_dump_test "attr-gnu-8-11"
|
||||
run_dump_test "attr-gnu-8-23"
|
||||
|
|
Loading…
Reference in a new issue