diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-12-19 05:07:31 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-12-19 05:07:31 +0000 |
commit | cc46d0cfcf056cd46a99b6c9051291da31764c58 (patch) | |
tree | 924077ae6d01b45c0b8363d666e806268cf7d382 /sysdeps | |
parent | aa9e3c3940003135ee8d3b2e728b627930eb65b1 (diff) | |
download | glibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.tar glibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.tar.gz glibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.tar.bz2 glibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.zip |
Update.
* math/test-misc.c: Add more tests for nextafter.
* sysdeps/i386/fpu/s_nextafterl.c: Handle decrement for x<0 correctly.
* sysdeps/ieee754/ldbl-96/math_ldbl.h
(ieee_long_double_shape_type): Make sign_exponent element signed.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/fpu/s_nextafterl.c | 7 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/math_ldbl.h | 4 |
2 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/i386/fpu/s_nextafterl.c b/sysdeps/i386/fpu/s_nextafterl.c index a905858e76..2943a613e3 100644 --- a/sysdeps/i386/fpu/s_nextafterl.c +++ b/sysdeps/i386/fpu/s_nextafterl.c @@ -36,8 +36,9 @@ static char rcsid[] = "$NetBSD: $"; long double x,y; #endif { - int32_t hx,hy,ix,iy; - u_int32_t lx,ly,esx,esy; + u_int32_t hx,hy,ix,iy; + u_int32_t lx,ly; + int32_t esx,esy; GET_LDOUBLE_WORDS(esx,hx,lx,x); GET_LDOUBLE_WORDS(esy,hy,ly,y); @@ -90,7 +91,7 @@ static char rcsid[] = "$NetBSD: $"; else { esx -= 1; hx = hx - 1; - if (esx > 0) + if ((esx&0x7fff) > 0) hx |= 0x80000000; } } else diff --git a/sysdeps/ieee754/ldbl-96/math_ldbl.h b/sysdeps/ieee754/ldbl-96/math_ldbl.h index dccc4a1240..1a9b027035 100644 --- a/sysdeps/ieee754/ldbl-96/math_ldbl.h +++ b/sysdeps/ieee754/ldbl-96/math_ldbl.h @@ -13,7 +13,7 @@ typedef union struct { unsigned int sign_exponent:16; - unsigned int empty:16; + int empty:16; u_int32_t msw; u_int32_t lsw; } parts; @@ -30,7 +30,7 @@ typedef union { u_int32_t lsw; u_int32_t msw; - unsigned int sign_exponent:16; + int sign_exponent:16; unsigned int empty:16; } parts; } ieee_long_double_shape_type; |