[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r17252 - in /fsf/trunk/libc: ./ include/ manual/ math/ sysdeps/ieee754/flt-32/



Author: eglibc
Date: Thu Feb 23 00:02:24 2012
New Revision: 17252

Log:
Import glibc-mainline for 2012-02-23

Added:
    fsf/trunk/libc/include/stdc-predef.h
Modified:
    fsf/trunk/libc/CONFORMANCE
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/Makefile
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/include/features.h
    fsf/trunk/libc/manual/arith.texi
    fsf/trunk/libc/manual/lang.texi
    fsf/trunk/libc/manual/libc.texinfo
    fsf/trunk/libc/math/libm-test.inc
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c

Modified: fsf/trunk/libc/CONFORMANCE
==============================================================================
--- fsf/trunk/libc/CONFORMANCE (original)
+++ fsf/trunk/libc/CONFORMANCE Thu Feb 23 00:02:24 2012
@@ -134,13 +134,12 @@
 ====================
 
 The macros __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__ and
-__STDC_ISO_10646__ are properly supposed to be defined by the
-compiler, and to be constant throughout the translation unit (before
-and after any library headers are included).  However, they mainly
-relate to library features, and the necessary magic has yet to be
-implemented for GCC to predefine them to the correct values for the
-library in use, so glibc defines them in <features.h>.  Programs that
-test them before including any standard headers may misbehave.
+__STDC_ISO_10646__ are properly supposed to be constant throughout the
+translation unit (before and after any library headers are included).
+However, they mainly relate to library features, and GCC only knows to
+preinclude <stdc-predef.h> to get their definitions in version 4.8 and
+later.  Programs that test them before including any standard headers
+may misbehave with older compilers.
 
 GCC doesn't support the optional imaginary types.  Nor does it
 understand the keyword _Complex before GCC 3.0.  This has the

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Feb 23 00:02:24 2012
@@ -1,3 +1,45 @@
+2012-02-22  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	[BZ #5461]
+	* manual/arith.texi (strtoll): Refer to LLONG_MAX and LLONG_MIN,
+	not LONG_LONG_MAX and LONG_LONG_MIN.
+	* manual/lang.texi (LONG_LONG_MIN): Document first as ISO
+	LLONG_MIN.  Refer to LONG_LONG_MIN only as older GCC-specific
+	name.
+	(LONG_LONG_MAX, LLONG_MAX, ULONG_LONG_MAX, ULLONG_MAX): Likewise.
+
+2012-02-22  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #2547]
+	[BZ #11365]
+	* sysdeps/ieee754/flt-32/s_nearbyintf.c (__nearbyintf): Do not
+	manipulate bits before adding and subtracting TWO23[sx].
+	* math/libm-test.inc (nearbyint_test): Add more tests.
+
+2012-02-22  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #2548]
+	* sysdeps/ieee754/flt-32/s_rintf.c (__rintf): Do not manipulate
+	bits before adding and subtracting TWO23[sx].
+	* math/libm-test.inc (rint_test): Add more tests.
+	(rint_test_tonearest): Likewise.
+	(rint_test_towardzero): Likewise.
+	(rint_test_downward): Likewise.
+	(rint_test_upward: Likewise.
+
+2012-02-22  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #10110]
+	* include/stdc-predef.h: New file.  Extracted from features.h.
+	* include/features.h: Include stdc-predef.h.
+	* Makefile (headers): Add stdc-predef.h.
+	* CONFORMANCE (Compiler limitations): Update.
+
+2012-02-22  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* manual/libc.texinfo (VERSION, UPDATED): Revert.
+
 2012-02-21  David S. Miller  <davem@xxxxxxxxxxxxx>
 
 	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: More jn test ULP updates.

Modified: fsf/trunk/libc/Makefile
==============================================================================
--- fsf/trunk/libc/Makefile (original)
+++ fsf/trunk/libc/Makefile Thu Feb 23 00:02:24 2012
@@ -60,7 +60,7 @@
 		   $(addprefix install-, no-libc.a bin lib data headers others)
 
 headers := limits.h values.h features.h gnu-versions.h bits/libc-lock.h \
-	   bits/xopen_lim.h gnu/libc-version.h
+	   bits/xopen_lim.h gnu/libc-version.h stdc-predef.h
 
 echo-headers: subdir_echo-headers
 

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Feb 23 00:02:24 2012
@@ -9,10 +9,11 @@
 
 * The following bugs are resolved with this release:
 
-  174, 350, 411, 3335, 4026, 4596, 4822, 5077, 5805, 5993, 6884, 6907, 9739,
-  9902, 10140, 10210, 11174, 11322, 11494, 12047, 13058, 13525, 13526,
-  13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552,
-  13553, 13555, 13559, 13583, 13618, 13695, 13704
+  174, 350, 411, 2547, 2548, 3335, 4026, 4596, 4822, 5077, 5461, 5805, 5993,
+  6884, 6907, 9739, 9902, 10110, 10140, 10210, 11174, 11322, 11365, 11494,
+  12047, 13058, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532,
+  13533, 13547, 13551, 13552, 13553, 13555, 13559, 13583, 13618, 13695,
+  13704
 
 * ISO C11 support:
 

Modified: fsf/trunk/libc/include/features.h
==============================================================================
--- fsf/trunk/libc/include/features.h (original)
+++ fsf/trunk/libc/include/features.h Thu Feb 23 00:02:24 2012
@@ -1,5 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
-   Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -337,12 +336,9 @@
 # define __USE_FORTIFY_LEVEL 0
 #endif
 
-/* We do support the IEC 559 math functionality, real and complex.  */
-#define __STDC_IEC_559__		1
-#define __STDC_IEC_559_COMPLEX__	1
-
-/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
-#define __STDC_ISO_10646__		200009L
+/* Get definitions of __STDC_* predefined macros, if the compiler has
+   not preincluded this header automatically.  */
+#include <stdc-predef.h>
 
 /* This macro indicates that the installed library is the GNU C Library.
    For historic reasons the value now is 6 and this will stay from now

Added: fsf/trunk/libc/include/stdc-predef.h
==============================================================================
--- fsf/trunk/libc/include/stdc-predef.h (added)
+++ fsf/trunk/libc/include/stdc-predef.h Thu Feb 23 00:02:24 2012
@@ -1,0 +1,36 @@
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef	_STDC_PREDEF_H
+#define	_STDC_PREDEF_H	1
+
+/* This header is separate from features.h so that the compiler can
+   include it implicitly at the start of every compilation.  It must
+   not itself include <features.h> or any other header that includes
+   <features.h> because the implicit include comes before any feature
+   test macros that may be defined in a source file before it first
+   explicitly includes a system header.  GCC knows the name of this
+   header in order to preinclude it.  */
+
+/* We do support the IEC 559 math functionality, real and complex.  */
+#define __STDC_IEC_559__		1
+#define __STDC_IEC_559_COMPLEX__	1
+
+/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
+#define __STDC_ISO_10646__		200009L
+
+#endif

Modified: fsf/trunk/libc/manual/arith.texi
==============================================================================
--- fsf/trunk/libc/manual/arith.texi (original)
+++ fsf/trunk/libc/manual/arith.texi Thu Feb 23 00:02:24 2012
@@ -2131,7 +2131,7 @@
 
 If the string has valid syntax for an integer but the value is not
 representable because of overflow, @code{strtoll} returns either
-@code{LONG_LONG_MAX} or @code{LONG_LONG_MIN} (@pxref{Range of Type}), as
+@code{LLONG_MAX} or @code{LLONG_MIN} (@pxref{Range of Type}), as
 appropriate for the sign of the value.  It also sets @code{errno} to
 @code{ERANGE} to indicate there was overflow.
 

Modified: fsf/trunk/libc/manual/lang.texi
==============================================================================
--- fsf/trunk/libc/manual/lang.texi (original)
+++ fsf/trunk/libc/manual/lang.texi Thu Feb 23 00:02:24 2012
@@ -827,22 +827,36 @@
 @w{@code{signed long int}} and @code{unsigned long int}, respectively.
 
 @comment limits.h
-@comment GNU
-@item LONG_LONG_MIN
+@comment ISO
+@item LLONG_MIN
 
 This is the minimum value that can be represented by a @w{@code{signed
 long long int}}.  On most machines that the GNU C system runs on,
 @w{@code{long long}} integers are 64-bit quantities.
 
 @comment limits.h
-@comment GNU
-@item LONG_LONG_MAX
-@comment limits.h
-@comment ISO
-@itemx ULONG_LONG_MAX
+@comment ISO
+@item LLONG_MAX
+@comment limits.h
+@comment ISO
+@itemx ULLONG_MAX
 
 These are the maximum values that can be represented by a @code{signed
 long long int} and @code{unsigned long long int}, respectively.
+
+@comment limits.h
+@comment GNU
+@item LONG_LONG_MIN
+@comment limits.h
+@comment GNU
+@itemx LONG_LONG_MAX
+@comment limits.h
+@comment GNU
+@itemx ULONG_LONG_MAX
+These are obsolete names for @code{LLONG_MIN}, @code{LLONG_MAX}, and
+@code{ULLONG_MAX}.  They are only available if @code{_GNU_SOURCE} is
+defined (@pxref{Feature Test Macros}).  In GCC versions prior to 3.0,
+these were the only names available.
 
 @comment limits.h
 @comment GNU

Modified: fsf/trunk/libc/manual/libc.texinfo
==============================================================================
--- fsf/trunk/libc/manual/libc.texinfo (original)
+++ fsf/trunk/libc/manual/libc.texinfo Thu Feb 23 00:02:24 2012
@@ -19,8 +19,8 @@
 
 @c sold 0.06/1.09, print run out 21may96
 @set EDITION 0.13
-@set VERSION 2.15.90
-@set UPDATED 2012-02-21
+@set VERSION 2.14
+@set UPDATED 2011-07-19
 @set ISBN 1-882114-55-8
 
 @copying

Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Thu Feb 23 00:02:24 2012
@@ -4632,6 +4632,29 @@
   TEST_f_f (nearbyint, 524286.75, 524287.0);
   TEST_f_f (nearbyint, 524288.75, 524289.0);
 
+  TEST_f_f (nearbyint, 1048576.75, 1048577.0);
+  TEST_f_f (nearbyint, 2097152.75, 2097153.0);
+  TEST_f_f (nearbyint, 2492472.75, 2492473.0);
+  TEST_f_f (nearbyint, 2886220.75, 2886221.0);
+  TEST_f_f (nearbyint, 3058792.75, 3058793.0);
+  TEST_f_f (nearbyint, -1048576.75, -1048577.0);
+  TEST_f_f (nearbyint, -2097152.75, -2097153.0);
+  TEST_f_f (nearbyint, -2492472.75, -2492473.0);
+  TEST_f_f (nearbyint, -2886220.75, -2886221.0);
+  TEST_f_f (nearbyint, -3058792.75, -3058793.0);
+#ifndef TEST_FLOAT
+  TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0);
+  TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0);
+  TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0);
+  TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0);
+  TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0);
+  TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0);
+  TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0);
+  TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0);
+  TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0);
+  TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0);
+#endif
+
   END (nearbyint);
 }
 
@@ -5037,6 +5060,22 @@
   TEST_f_f (rint, 262142.75, 262143.0);
   TEST_f_f (rint, 524286.75, 524287.0);
   TEST_f_f (rint, 524288.75, 524289.0);
+  TEST_f_f (rint, 1048576.75, 1048577.0);
+  TEST_f_f (rint, 2097152.75, 2097153.0);
+  TEST_f_f (rint, -1048576.75, -1048577.0);
+  TEST_f_f (rint, -2097152.75, -2097153.0);
+#ifndef TEST_FLOAT
+  TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
+  TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
+  TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
+  TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
+  TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
+  TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
+  TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
+  TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
+  TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
+  TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+#endif
 #ifdef TEST_LDOUBLE
   /* The result can only be represented in long double.  */
   TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
@@ -5137,6 +5176,22 @@
       TEST_f_f (rint, -0.1, -0.0);
       TEST_f_f (rint, -0.25, -0.0);
       TEST_f_f (rint, -0.625, -1.0);
+      TEST_f_f (rint, 1048576.75, 1048577.0);
+      TEST_f_f (rint, 2097152.75, 2097153.0);
+      TEST_f_f (rint, -1048576.75, -1048577.0);
+      TEST_f_f (rint, -2097152.75, -2097153.0);
+#ifndef TEST_FLOAT
+      TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
+      TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
+      TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
+      TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
+      TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
+      TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
+      TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
+      TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
+      TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
+      TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+#endif
 #ifdef TEST_LDOUBLE
       /* The result can only be represented in long double.  */
       TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
@@ -5207,6 +5262,22 @@
       TEST_f_f (rint, -0.1, -0.0);
       TEST_f_f (rint, -0.25, -0.0);
       TEST_f_f (rint, -0.625, -0.0);
+      TEST_f_f (rint, 1048576.75, 1048576.0);
+      TEST_f_f (rint, 2097152.75, 2097152.0);
+      TEST_f_f (rint, -1048576.75, -1048576.0);
+      TEST_f_f (rint, -2097152.75, -2097152.0);
+#ifndef TEST_FLOAT
+      TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
+      TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
+      TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
+      TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
+      TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
+      TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
+      TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
+      TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
+      TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
+      TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
+#endif
 #ifdef TEST_LDOUBLE
       /* The result can only be represented in long double.  */
       TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
@@ -5277,6 +5348,22 @@
       TEST_f_f (rint, -0.1, -1.0);
       TEST_f_f (rint, -0.25, -1.0);
       TEST_f_f (rint, -0.625, -1.0);
+      TEST_f_f (rint, 1048576.75, 1048576.0);
+      TEST_f_f (rint, 2097152.75, 2097152.0);
+      TEST_f_f (rint, -1048576.75, -1048577.0);
+      TEST_f_f (rint, -2097152.75, -2097153.0);
+#ifndef TEST_FLOAT
+      TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
+      TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
+      TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
+      TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
+      TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
+      TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
+      TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
+      TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
+      TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
+      TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+#endif
 #ifdef TEST_LDOUBLE
       /* The result can only be represented in long double.  */
       TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
@@ -5347,6 +5434,22 @@
       TEST_f_f (rint, -0.1, -0.0);
       TEST_f_f (rint, -0.25, -0.0);
       TEST_f_f (rint, -0.625, -0.0);
+      TEST_f_f (rint, 1048576.75, 1048577.0);
+      TEST_f_f (rint, 2097152.75, 2097153.0);
+      TEST_f_f (rint, -1048576.75, -1048576.0);
+      TEST_f_f (rint, -2097152.75, -2097152.0);
+#ifndef TEST_FLOAT
+      TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
+      TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
+      TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
+      TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
+      TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
+      TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
+      TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
+      TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
+      TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
+      TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
+#endif
 #ifdef TEST_LDOUBLE
       /* The result can only be represented in long double.  */
       TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);

Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c Thu Feb 23 00:02:24 2012
@@ -30,18 +30,12 @@
 {
 	fenv_t env;
 	int32_t i0,j0,sx;
-	u_int32_t i,i1;
 	float w,t;
 	GET_FLOAT_WORD(i0,x);
 	sx = (i0>>31)&1;
 	j0 = ((i0>>23)&0xff)-0x7f;
 	if(j0<23) {
 	    if(j0<0) {
-		if((i0&0x7fffffff)==0) return x;
-		i1 = (i0&0x07fffff);
-		i0 &= 0xfff00000;
-		i0 |= ((i1|-i1)>>9)&0x400000;
-		SET_FLOAT_WORD(x,i0);
 		libc_feholdexceptf (&env);
 		w = TWO23[sx]+x;
 		t =  w-TWO23[sx];
@@ -49,17 +43,11 @@
 		GET_FLOAT_WORD(i0,t);
 		SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
 		return t;
-	    } else {
-		i = (0x007fffff)>>j0;
-		if((i0&i)==0) return x; /* x is integral */
-		i>>=1;
-		if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
 	    }
 	} else {
 	    if(__builtin_expect(j0==0x80, 0)) return x+x;	/* inf or NaN */
 	    else return x;		/* x is integral */
 	}
-	SET_FLOAT_WORD(x,i0);
 	libc_feholdexceptf (&env);
 	w = TWO23[sx]+x;
 	t = w-TWO23[sx];

Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c Thu Feb 23 00:02:24 2012
@@ -26,34 +26,22 @@
 __rintf(float x)
 {
 	int32_t i0,j0,sx;
-	u_int32_t i,i1;
 	float w,t;
 	GET_FLOAT_WORD(i0,x);
 	sx = (i0>>31)&1;
 	j0 = ((i0>>23)&0xff)-0x7f;
 	if(j0<23) {
 	    if(j0<0) {
-		if((i0&0x7fffffff)==0) return x;
-		i1 = (i0&0x07fffff);
-		i0 &= 0xfff00000;
-		i0 |= ((i1|-i1)>>9)&0x400000;
-		SET_FLOAT_WORD(x,i0);
 		w = TWO23[sx]+x;
 		t =  w-TWO23[sx];
 		GET_FLOAT_WORD(i0,t);
 		SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
 		return t;
-	    } else {
-		i = (0x007fffff)>>j0;
-		if((i0&i)==0) return x; /* x is integral */
-		i>>=1;
-		if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
 	    }
 	} else {
 	    if(j0==0x80) return x+x;	/* inf or NaN */
 	    else return x;		/* x is integral */
 	}
-	SET_FLOAT_WORD(x,i0);
 	w = TWO23[sx]+x;
 	return w-TWO23[sx];
 }

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits