[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r19297 - in /fsf/glibc-2_15-branch/libc: ./ sysdeps/i386/i686/multiarch/ sysdeps/ieee754/dbl-64/wordsize-64/ sysdeps/ieee754...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r19297 - in /fsf/glibc-2_15-branch/libc: ./ sysdeps/i386/i686/multiarch/ sysdeps/ieee754/dbl-64/wordsize-64/ sysdeps/ieee754...
- From: eglibc@xxxxxxxxxx
- Date: Tue, 26 Jun 2012 00:02:31 -0000
Author: eglibc
Date: Tue Jun 26 00:02:30 2012
New Revision: 19297
Log:
Import glibc-2.15 for 2012-06-26
Modified:
fsf/glibc-2_15-branch/libc/ChangeLog
fsf/glibc-2_15-branch/libc/NEWS
fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcmp.S
fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c
fsf/glibc-2_15-branch/libc/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c
fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
Modified: fsf/glibc-2_15-branch/libc/ChangeLog
==============================================================================
--- fsf/glibc-2_15-branch/libc/ChangeLog (original)
+++ fsf/glibc-2_15-branch/libc/ChangeLog Tue Jun 26 00:02:30 2012
@@ -15,6 +15,24 @@
* sysdeps/ia64/configure: Likewise.
* sysdeps/mach/configure: Likewise.
* sysdeps/mach/hurd/configure: Likewise.
+
+2012-06-05 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
+
+ * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c: Fix for wrong ldbl128-ibm
+ fmodl commit.
+
+2012-06-04 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
+
+ * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl): Fix
+ subnormal exponent extraction and add some __builtin_expect.
+ * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h (ldbl_extract_mantissa):
+ Fix for subnormal mantissa calculation.
+
+2012-06-01 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #14048]
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c (__ieee754_fmod):
+ Use int64_t for variable i.
2012-05-17 Andreas Jaeger <aj@xxxxxxx>
Carlos O'Donell <carlos_odonell@xxxxxxxxxx>
@@ -61,6 +79,18 @@
define.
* sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (__branred): Don't
define.
+
+2012-02-29 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #13786]
+ * sysdeps/i386/i686/multiarch/strcmp.S [USE_AS_STRCASECMP_L]: Do
+ not include ../strcmp.S.
+ [USE_AS_STRNCASECMP_L]: Likewise.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
+ (__strcasecmp_l_ia32): Define as alias to __strcasecmp_l_nonascii.
+ * sysdeps/i386/i686/multiarch/strncase_l-c.c
+ (__strncasecmp_l_ia32): Define as alias to
+ __strncasecmp_l_nonascii.
2012-02-27 David S. Miller <davem@xxxxxxxxxxxxx>
Modified: fsf/glibc-2_15-branch/libc/NEWS
==============================================================================
--- fsf/glibc-2_15-branch/libc/NEWS (original)
+++ fsf/glibc-2_15-branch/libc/NEWS Tue Jun 26 00:02:30 2012
@@ -10,7 +10,7 @@
* The following bugs are resolved with this release:
411, 2547, 2548, 11365, 11494, 13583, 13731, 13732, 13733, 13747, 13748,
- 13749, 13753, 13771, 13774, 14059, 14167
+ 13749, 13753, 13771, 13774, 13786, 14048, 14059, 14167
Version 2.15
Modified: fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
==============================================================================
--- fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c (original)
+++ fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c Tue Jun 26 00:02:30 2012
@@ -6,6 +6,8 @@
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include <string/strcasecmp.c>
+strong_alias (__strcasecmp_l_nonascii, __strcasecmp_l_ia32)
+
/* The needs of strcasecmp in libc are minimal, no need to go through
the IFUNC. */
strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l)
Modified: fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcmp.S
==============================================================================
--- fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcmp.S (original)
+++ fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strcmp.S Tue Jun 26 00:02:30 2012
@@ -122,6 +122,7 @@
# endif
#endif
-#ifndef USE_AS_STRNCMP
+#if !defined USE_AS_STRNCMP && !defined USE_AS_STRCASECMP_L \
+ && !defined USE_AS_STRNCASECMP_L
# include "../strcmp.S"
#endif
Modified: fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c
==============================================================================
--- fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c (original)
+++ fsf/glibc-2_15-branch/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c Tue Jun 26 00:02:30 2012
@@ -6,6 +6,8 @@
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include <string/strncase.c>
+strong_alias (__strncasecmp_l_nonascii, __strncasecmp_l_ia32)
+
/* The needs of strcasecmp in libc are minimal, no need to go through
the IFUNC. */
strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l)
Modified: fsf/glibc-2_15-branch/libc/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
==============================================================================
--- fsf/glibc-2_15-branch/libc/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c (original)
+++ fsf/glibc-2_15-branch/libc/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c Tue Jun 26 00:02:30 2012
@@ -24,8 +24,8 @@
double
__ieee754_fmod (double x, double y)
{
- int32_t n,i,ix,iy;
- int64_t hx,hy,hz,sx;
+ int32_t n,ix,iy;
+ int64_t hx,hy,hz,sx,i;
EXTRACT_WORDS64(hx,x);
EXTRACT_WORDS64(hy,y);
Modified: fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c
==============================================================================
--- fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (original)
+++ fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c Tue Jun 26 00:02:30 2012
@@ -27,7 +27,7 @@
long double
__ieee754_fmodl (long double x, long double y)
{
- int64_t n,hx,hy,hz,ix,iy,sx,i;
+ int64_t n,hx,hy,hz,ix,iy,sx, i;
u_int64_t lx,ly,lz;
int temp;
@@ -38,41 +38,42 @@
hy &= 0x7fffffffffffffffLL; /* |y| */
/* purge off exception values */
- if((hy|(ly&0x7fffffffffffffff))==0||(hx>=0x7ff0000000000000LL)|| /* y=0,or x not finite */
- (hy>0x7ff0000000000000LL)) /* or y is NaN */
+ if(__builtin_expect((hy|(ly&0x7fffffffffffffff))==0 ||
+ (hx>=0x7ff0000000000000LL)|| /* y=0,or x not finite */
+ (hy>0x7ff0000000000000LL),0)) /* or y is NaN */
return (x*y)/(x*y);
- if(hx<=hy) {
+ if(__builtin_expect(hx<=hy,0)) {
if((hx<hy)||(lx<ly)) return x; /* |x|<|y| return x */
if(lx==ly)
return Zero[(u_int64_t)sx>>63]; /* |x|=|y| return x*0*/
}
/* determine ix = ilogb(x) */
- if(hx<0x0010000000000000LL) { /* subnormal x */
+ if(__builtin_expect(hx<0x0010000000000000LL,0)) { /* subnormal x */
if(hx==0) {
for (ix = -1043, i=lx; i>0; i<<=1) ix -=1;
} else {
- for (ix = -1022, i=hx<<19; i>0; i<<=1) ix -=1;
+ for (ix = -1022, i=(hx<<11); i>0; i<<=1) ix -=1;
}
} else ix = (hx>>52)-0x3ff;
/* determine iy = ilogb(y) */
- if(hy<0x0010000000000000LL) { /* subnormal y */
+ if(__builtin_expect(hy<0x0010000000000000LL,0)) { /* subnormal y */
if(hy==0) {
for (iy = -1043, i=ly; i>0; i<<=1) iy -=1;
} else {
- for (iy = -1022, i=hy<<19; i>0; i<<=1) iy -=1;
+ for (iy = -1022, i=(hy<<11); i>0; i<<=1) iy -=1;
}
} else iy = (hy>>52)-0x3ff;
/* Make the IBM extended format 105 bit mantissa look like the ieee854 112
- bit mantissa so the following operatations will give the correct
+ bit mantissa so the following operations will give the correct
result. */
ldbl_extract_mantissa(&hx, &lx, &temp, x);
ldbl_extract_mantissa(&hy, &ly, &temp, y);
/* set up {hx,lx}, {hy,ly} and align y to x */
- if(ix >= -1022)
+ if(__builtin_expect(ix >= -1022, 1))
hx = 0x0001000000000000LL|(0x0000ffffffffffffLL&hx);
else { /* subnormal x, shift x to normal */
n = -1022-ix;
@@ -84,7 +85,7 @@
lx = 0;
}
}
- if(iy >= -1022)
+ if(__builtin_expect(iy >= -1022, 1))
hy = 0x0001000000000000LL|(0x0000ffffffffffffLL&hy);
else { /* subnormal y, shift y to normal */
n = -1022-iy;
@@ -118,7 +119,7 @@
hx = hx+hx+(lx>>63); lx = lx+lx;
iy -= 1;
}
- if(iy>= -1022) { /* normalize output */
+ if(__builtin_expect(iy>= -1022,0)) { /* normalize output */
x = ldbl_insert_mantissa((sx>>63), iy, hx, lx);
} else { /* subnormal output */
n = -1022 - iy;
Modified: fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
==============================================================================
--- fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h (original)
+++ fsf/glibc-2_15-branch/libc/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h Tue Jun 26 00:02:30 2012
@@ -6,20 +6,20 @@
#include <ieee754.h>
static inline void
-ldbl_extract_mantissa (int64_t *hi64, u_int64_t *lo64, int *exp, long double x)
+ldbl_extract_mantissa (int64_t *hi64, uint64_t *lo64, int *exp, long double x)
{
/* We have 105 bits of mantissa plus one implicit digit. Since
106 bits are representable we use the first implicit digit for
the number before the decimal point and the second implicit bit
as bit 53 of the mantissa. */
- unsigned long long hi, lo;
+ uint64_t hi, lo;
int ediff;
union ibm_extended_long_double eldbl;
eldbl.d = x;
*exp = eldbl.ieee.exponent - IBM_EXTENDED_LONG_DOUBLE_BIAS;
- lo = ((long long)eldbl.ieee.mantissa2 << 32) | eldbl.ieee.mantissa3;
- hi = ((long long)eldbl.ieee.mantissa0 << 32) | eldbl.ieee.mantissa1;
+ lo = ((int64_t)eldbl.ieee.mantissa2 << 32) | eldbl.ieee.mantissa3;
+ hi = ((int64_t)eldbl.ieee.mantissa0 << 32) | eldbl.ieee.mantissa1;
/* If the lower double is not a denomal or zero then set the hidden
53rd bit. */
if (eldbl.ieee.exponent2 > 0x001)
@@ -31,8 +31,8 @@
ediff = eldbl.ieee.exponent - eldbl.ieee.exponent2;
if (ediff > 53)
lo = lo >> (ediff-53);
+ hi |= (1ULL << 52);
}
- hi |= (1ULL << 52);
if ((eldbl.ieee.negative != eldbl.ieee.negative2)
&& ((eldbl.ieee.exponent2 != 0) && (lo != 0LL)))
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits