aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-18 12:33:44 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-18 12:33:44 +0000
commit2827300fbe8b237b825aa29b95f24026aedd4b20 (patch)
treef66c6c4cf6daaeddfeada00735e35887ba6317b7
parent0c2b5752e3b9d82282848aa33337319ed1bc1818 (diff)
downloadglibc-2827300fbe8b237b825aa29b95f24026aedd4b20.tar
glibc-2827300fbe8b237b825aa29b95f24026aedd4b20.tar.gz
glibc-2827300fbe8b237b825aa29b95f24026aedd4b20.tar.bz2
glibc-2827300fbe8b237b825aa29b95f24026aedd4b20.zip
Update.
1998-06-18 12:29 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-i387/e_scalb.S: Fix bug in FPU stack handling. * sysdeps/libm-i387/e_scalbf.S: Likewise. * sysdeps/libm-i387/e_scalbl.S: Likewise. 1998-06-18 Ulrich Drepper <drepper@cygnus.com> * stdlib/tst-strtod.c (long_dbl): Provide receipe to regenerate longestdbl.
-rw-r--r--ChangeLog11
-rw-r--r--stdlib/tst-strtod.c17
-rw-r--r--sysdeps/libm-i387/e_scalb.S4
-rw-r--r--sysdeps/libm-i387/e_scalbf.S4
-rw-r--r--sysdeps/libm-i387/e_scalbl.S4
5 files changed, 28 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index db3e8d7dee..42651f50cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+1998-06-18 12:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-i387/e_scalb.S: Fix bug in FPU stack handling.
+ * sysdeps/libm-i387/e_scalbf.S: Likewise.
+ * sysdeps/libm-i387/e_scalbl.S: Likewise.
+
+1998-06-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/tst-strtod.c (long_dbl): Provide receipe to regenerate
+ longestdbl.
+
1998-06-18 10:26 Ulrich Drepper <drepper@cygnus.com>
* iconvdata/Makefile (modules): Add MACINTOSH.
diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
index e2c6734e56..b9158c11f9 100644
--- a/stdlib/tst-strtod.c
+++ b/stdlib/tst-strtod.c
@@ -114,12 +114,17 @@ expand (dst, c)
static int
long_dbl (void)
{
- const char longestdbl[] =
- "179769313486231570814527423731704356798070567525844996598917476"
- "803157260780028538760589558632766878171540458953514382464234321"
- "326889464182768467546703537516986049910576551282076245490090389"
- "328944075868508455133942304583236903222948165808559332123348274"
- "797826204144723168738177180919299881250404026184124858368";
+ /* Regenerate this string using
+
+ echo '(2^53-1)*2^(1024-53)' | bc | sed 's/\([^\]*\)\\*$/ "\1"/'
+
+ */
+ static const char longestdbl[] =
+ "17976931348623157081452742373170435679807056752584499659891747680315"
+ "72607800285387605895586327668781715404589535143824642343213268894641"
+ "82768467546703537516986049910576551282076245490090389328944075868508"
+ "45513394230458323690322294816580855933212334827479782620414472316873"
+ "8177180919299881250404026184124858368";
double d = strtod (longestdbl, NULL);
printf ("strtod (\"%s\", NULL) = %g\n", longestdbl, d);
diff --git a/sysdeps/libm-i387/e_scalb.S b/sysdeps/libm-i387/e_scalb.S
index b4c23ca595..7ff5541e2f 100644
--- a/sysdeps/libm-i387/e_scalb.S
+++ b/sysdeps/libm-i387/e_scalb.S
@@ -71,10 +71,10 @@ ENTRY(__ieee754_scalb)
fnstsw
movl 8(%esp), %edx
shrl $5, %eax
- fstp %st(1)
+ fstp %st
+ fstp %st
andl $0x80000000, %edx
andl $8, %eax
- fstp %st(1)
shrl $27, %edx
addl %edx, %eax
fldl MOX(zero_nan, %eax, 1)
diff --git a/sysdeps/libm-i387/e_scalbf.S b/sysdeps/libm-i387/e_scalbf.S
index c869da9b38..4222eecc97 100644
--- a/sysdeps/libm-i387/e_scalbf.S
+++ b/sysdeps/libm-i387/e_scalbf.S
@@ -73,10 +73,10 @@ ENTRY(__ieee754_scalbf)
fnstsw
movl 4(%esp), %edx
shrl $5, %eax
- fstp %st(1)
+ fstp %st
+ fstp %st
andl $0x80000000, %edx
andl $8, %eax
- fstp %st(1)
shrl $27, %edx
addl %edx, %eax
fldl MOX(zero_nan, %eax, 1)
diff --git a/sysdeps/libm-i387/e_scalbl.S b/sysdeps/libm-i387/e_scalbl.S
index 33eb7323dc..56cc833a56 100644
--- a/sysdeps/libm-i387/e_scalbl.S
+++ b/sysdeps/libm-i387/e_scalbl.S
@@ -73,10 +73,10 @@ ENTRY(__ieee754_scalbl)
fnstsw
movl 12(%esp), %edx
shrl $5, %eax
- fstp %st(1)
+ fstp %st
+ fstp %st
andl $0x8000, %edx
andl $8, %eax
- fstp %st(1)
shrl $11, %edx
addl %edx, %eax
fldl MOX(zero_nan, %eax, 1)