aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-96
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-06-16 04:34:51 +0000
committerUlrich Drepper <drepper@redhat.com>2001-06-16 04:34:51 +0000
commit636ccfc8fb4c9bd450fa5b7982771912a602d2b0 (patch)
tree5661796ece5df22516e45b329d69235c40aefc72 /sysdeps/ieee754/ldbl-96
parent2e92fd3ce2ad19a5383916e59f4cf42cc69cb127 (diff)
downloadglibc-636ccfc8fb4c9bd450fa5b7982771912a602d2b0.tar
glibc-636ccfc8fb4c9bd450fa5b7982771912a602d2b0.tar.gz
glibc-636ccfc8fb4c9bd450fa5b7982771912a602d2b0.tar.bz2
glibc-636ccfc8fb4c9bd450fa5b7982771912a602d2b0.zip
Update.
2001-06-14 Roland McGrath <roland@frob.com> * configure.in: Let sysdeps Implies files in add-ons bring in sysdeps directories from the main source and other add-ons too. 2001-06-15 Jakub Jelinek <jakub@redhat.com> * math/test-misc.c (main): Add tests for nextafter and nexttoward with +-Inf as second argument. * sysdeps/generic/s_nexttowardf.c (__nexttowardf): Only check for NaN, not Inf. * sysdeps/i386/fpu/s_nextafterl.c (__nextafterl): Fix check for NaN. * sysdeps/i386/fpu/s_nexttoward.c: New. * sysdeps/i386/fpu/s_nexttowardf.c: New. * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttoward): Simplify check for NaN, optimize x==+-0 handling. * sysdeps/ieee754/ldbl-96/s_nexttowardf.c (__nexttowardf): Likewise. * sysdeps/ieee754/ldbl-96/s_nextafterl.c (__nextafterl): Simplify check for NaN, fix sign in x==+-0 case. * sysdeps/ia64/fpu/s_nexttoward.c: New. * sysdeps/ia64/fpu/s_nexttowardf.c: New. 2001-06-15 H.J. Lu <hjl@gnu.org> * rt/tst-aio2.c (do_test): Initialize cb.aio_offset to 0. * rt/tst-aio3.c (do_test): Likewise. * rt/tst-aio4.c (do_test): Likewise. * rt/tst-aio5.c (do_test): Likewise. * rt/tst-aio6.c (do_test): Likewise.
Diffstat (limited to 'sysdeps/ieee754/ldbl-96')
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nextafterl.c6
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nexttoward.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nexttowardf.c6
3 files changed, 8 insertions, 8 deletions
diff --git a/sysdeps/ieee754/ldbl-96/s_nextafterl.c b/sysdeps/ieee754/ldbl-96/s_nextafterl.c
index aea57e3086..bcbc3049dc 100644
--- a/sysdeps/ieee754/ldbl-96/s_nextafterl.c
+++ b/sysdeps/ieee754/ldbl-96/s_nextafterl.c
@@ -43,12 +43,12 @@ static char rcsid[] = "$NetBSD: $";
ix = esx&0x7fff; /* |x| */
iy = esy&0x7fff; /* |y| */
- if(((ix==0x7fff)&&((hx|lx)|-(hx|lx))!=0) || /* x is nan */
- ((iy==0x7fff)&&((hy|ly)|-(hy|ly))!=0)) /* y is nan */
+ if(((ix==0x7fff)&&((hx|lx)!=0) || /* x is nan */
+ ((iy==0x7fff)&&((hy|ly)!=0)) /* y is nan */
return x+y;
if(x==y) return y; /* x=y, return y */
if((ix|hx|lx)==0) { /* x == 0 */
- SET_LDOUBLE_WORDS(x,esx&0x8000,0,1);/* return +-minsubnormal */
+ SET_LDOUBLE_WORDS(x,esy&0x8000,0,1);/* return +-minsubnormal */
y = x*x;
if(y==x) return y; else return x; /* raise underflow flag */
}
diff --git a/sysdeps/ieee754/ldbl-96/s_nexttoward.c b/sysdeps/ieee754/ldbl-96/s_nexttoward.c
index 9df393a7bd..c29bcd146d 100644
--- a/sysdeps/ieee754/ldbl-96/s_nexttoward.c
+++ b/sysdeps/ieee754/ldbl-96/s_nexttoward.c
@@ -45,12 +45,12 @@ static char rcsid[] = "$NetBSD: $";
iy = esy&0x7fff; /* |y| */
if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */
- ((iy>=0x7fff)&&((hy|ly)|-(hy|ly))!=0)) /* y is nan */
+ ((iy>=0x7fff)&&(hy|ly)!=0)) /* y is nan */
return x+y;
if((long double) x==y) return y; /* x=y, return y */
if((ix|lx)==0) { /* x == 0 */
double x2;
- INSERT_WORDS(x,esy&0x8000?0x80000000:0,1);/* return +-minsub */
+ INSERT_WORDS(x,(esy&0x8000)<<16,1); /* return +-minsub */
x2 = x*x;
if(x2==x) return x2; else return x; /* raise underflow flag */
}
diff --git a/sysdeps/ieee754/ldbl-96/s_nexttowardf.c b/sysdeps/ieee754/ldbl-96/s_nexttowardf.c
index b7e9f00185..a1c38b5d4c 100644
--- a/sysdeps/ieee754/ldbl-96/s_nexttowardf.c
+++ b/sysdeps/ieee754/ldbl-96/s_nexttowardf.c
@@ -36,13 +36,13 @@ static char rcsid[] = "$NetBSD: $";
ix = hx&0x7fffffff; /* |x| */
iy = esy&0x7fff; /* |y| */
- if((ix>0x7f800000) || /* x is nan */
- (iy>=0x7fff&&((hy|ly)|-(hy|ly))!=0)) /* y is nan */
+ if((ix>0x7f800000) || /* x is nan */
+ (iy>=0x7fff&&((hy|ly)!=0))) /* y is nan */
return x+y;
if((long double) x==y) return y; /* x=y, return y */
if(ix==0) { /* x == 0 */
float x2;
- SET_FLOAT_WORD(x,(esy&0x8000?0x80000000:0)|1);/* return +-minsub*/
+ SET_FLOAT_WORD(x,((esy&0x8000)<<16)|1);/* return +-minsub*/
x2 = x*x;
if(x2==x) return x2; else return x; /* raise underflow flag */
}