patches/glibc/2.3.3/glibc-2.3.2-pr139-fix.patch
changeset 329 419d959441ed
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/2.3.3/glibc-2.3.2-pr139-fix.patch	Tue Aug 14 19:32:22 2007 +0000
     1.3 @@ -0,0 +1,104 @@
     1.4 +2004-04-29  Jakub Jelinek  <jakub@redhat.com>
     1.5 +
     1.6 +	* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c (_Qp_qtoi): Use %f31
     1.7 +	for single precision register, add it to __asm clobbers [BZ #139].
     1.8 +	* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c (_Qp_qtoui): Use %f31
     1.9 +	for single precision register, add it to __asm clobbers.
    1.10 +	* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c (_Qp_qtoux): Use fqtox
    1.11 +	instead of fqtoi in QP_HANDLE_EXCEPTIONS.
    1.12 +	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c (_Qp_qtox): Likewise.
    1.13 +	Reported by M. H. VanLeeuwen <vanl@megsinet.net>.
    1.14 +
    1.15 +See http://sources.redhat.com/bugzilla/show_bug.cgi?id=139
    1.16 +Fixes error
    1.17 +qp_qtoi.s:261: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
    1.18 +plus a couple other things vanl noticed.
    1.19 +
    1.20 +diff -ur orig/qp_qtoi.c new/qp_qtoi.c
    1.21 +--- orig/qp_qtoi.c	Sat May  1 00:40:06 2004
    1.22 ++++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c	Sat May  1 00:39:40 2004
    1.23 +@@ -1,6 +1,6 @@
    1.24 + /* Software floating-point emulation.
    1.25 +    Return (int)(*a)
    1.26 +-   Copyright (C) 1997,1999 Free Software Foundation, Inc.
    1.27 ++   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
    1.28 +    This file is part of the GNU C Library.
    1.29 +    Contributed by Richard Henderson (rth@cygnus.com) and
    1.30 + 		  Jakub Jelinek (jj@ultra.linux.cz).
    1.31 +@@ -38,9 +38,9 @@
    1.32 +   	__asm (
    1.33 + "	ldd [%1], %%f52\n"
    1.34 + "	ldd [%1+8], %%f54\n"
    1.35 +-"	fqtoi %%f52, %%f60\n"
    1.36 +-"	st %%f60, [%0]\n"
    1.37 +-"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
    1.38 ++"	fqtoi %%f52, %%f31\n"
    1.39 ++"	st %%f31, [%0]\n"
    1.40 ++"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
    1.41 + 	r = rx);
    1.42 + 
    1.43 +   return r;
    1.44 +diff -ur orig/qp_qtoui.c new/qp_qtoui.c
    1.45 +--- orig/qp_qtoui.c	Sat May  1 00:40:06 2004
    1.46 ++++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c	Sat May  1 00:39:40 2004
    1.47 +@@ -1,6 +1,6 @@
    1.48 + /* Software floating-point emulation.
    1.49 +    Return (unsigned int)(*a)
    1.50 +-   Copyright (C) 1997,1999 Free Software Foundation, Inc.
    1.51 ++   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
    1.52 +    This file is part of the GNU C Library.
    1.53 +    Contributed by Richard Henderson (rth@cygnus.com) and
    1.54 + 		  Jakub Jelinek (jj@ultra.linux.cz).
    1.55 +@@ -38,9 +38,9 @@
    1.56 +   	__asm (
    1.57 + "	ldd [%1], %%f52\n"
    1.58 + "	ldd [%1+8], %%f54\n"
    1.59 +-"	fqtoi %%f52, %%f60\n"
    1.60 +-"	st %%f60, [%0]\n"
    1.61 +-"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
    1.62 ++"	fqtoi %%f52, %%f31\n"
    1.63 ++"	st %%f31, [%0]\n"
    1.64 ++"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
    1.65 + 	r = rx);
    1.66 + 
    1.67 +   return r;
    1.68 +diff -ur orig/qp_qtoux.c new/qp_qtoux.c
    1.69 +--- orig/qp_qtoux.c	Sat May  1 00:40:06 2004
    1.70 ++++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c	Sat May  1 00:39:40 2004
    1.71 +@@ -1,6 +1,6 @@
    1.72 + /* Software floating-point emulation.
    1.73 +    Return (unsigned long)(*a)
    1.74 +-   Copyright (C) 1997,1999 Free Software Foundation, Inc.
    1.75 ++   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
    1.76 +    This file is part of the GNU C Library.
    1.77 +    Contributed by Richard Henderson (rth@cygnus.com) and
    1.78 + 		  Jakub Jelinek (jj@ultra.linux.cz).
    1.79 +@@ -38,7 +38,7 @@
    1.80 +   	__asm (
    1.81 + "	ldd [%1], %%f52\n"
    1.82 + "	ldd [%1+8], %%f54\n"
    1.83 +-"	fqtoi %%f52, %%f60\n"
    1.84 ++"	fqtox %%f52, %%f60\n"
    1.85 + "	std %%f60, [%0]\n"
    1.86 + "	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
    1.87 + 	r = rx);
    1.88 +diff -ur orig/qp_qtox.c new/qp_qtox.c
    1.89 +--- orig/qp_qtox.c	Sat May  1 00:40:06 2004
    1.90 ++++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c	Sat May  1 00:39:40 2004
    1.91 +@@ -1,6 +1,6 @@
    1.92 + /* Software floating-point emulation.
    1.93 +    Return (long)(*a)
    1.94 +-   Copyright (C) 1997,1999 Free Software Foundation, Inc.
    1.95 ++   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
    1.96 +    This file is part of the GNU C Library.
    1.97 +    Contributed by Richard Henderson (rth@cygnus.com) and
    1.98 + 		  Jakub Jelinek (jj@ultra.linux.cz).
    1.99 +@@ -38,7 +38,7 @@
   1.100 +   	__asm (
   1.101 + "	ldd [%1], %%f52\n"
   1.102 + "	ldd [%1+8], %%f54\n"
   1.103 +-"	fqtoi %%f52, %%f60\n"
   1.104 ++"	fqtox %%f52, %%f60\n"
   1.105 + "	std %%f60, [%0]\n"
   1.106 + "	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
   1.107 + 	r = rx);