From 2827300fbe8b237b825aa29b95f24026aedd4b20 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 18 Jun 1998 12:33:44 +0000 Subject: Update. 1998-06-18 12:29 Ulrich Drepper * 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 * stdlib/tst-strtod.c (long_dbl): Provide receipe to regenerate longestdbl. --- ChangeLog | 11 +++++++++++ stdlib/tst-strtod.c | 17 +++++++++++------ sysdeps/libm-i387/e_scalb.S | 4 ++-- sysdeps/libm-i387/e_scalbf.S | 4 ++-- sysdeps/libm-i387/e_scalbl.S | 4 ++-- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index db3e8d7..42651f5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +1998-06-18 12:29 Ulrich Drepper + + * 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 + + * stdlib/tst-strtod.c (long_dbl): Provide receipe to regenerate + longestdbl. + 1998-06-18 10:26 Ulrich Drepper * iconvdata/Makefile (modules): Add MACINTOSH. diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c index e2c6734..b9158c1 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 b4c23ca..7ff5541 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 c869da9..4222eec 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 33eb732..56cc833 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) -- cgit v1.1