diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | math/libm-test.inc | 10 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_expl.c | 10 | ||||
-rw-r--r-- | sysdeps/posix/spawni.c | 2 |
4 files changed, 24 insertions, 11 deletions
@@ -1,3 +1,16 @@ +2001-07-16 Andreas Schwab <schwab@suse.de> + + * sysdeps/posix/spawni.c: Fix typo when iterating over signal numbers. + +2001-07-16 Andreas Schwab <schwab@suse.de> + + * math/libm-test.inc (check_float_internal): Fix sign bit test of + infinities. + +2001-07-16 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/fpu/e_expl.c (__ieee754_expl): Make it PIC friendly. + 2001-07-15 Ulrich Drepper <drepper@redhat.com> * malloc/obstack.c: Define __attribute__ for non-gcc compilers. diff --git a/math/libm-test.inc b/math/libm-test.inc index bacd8d9d4e..118f00a9ba 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -460,8 +460,8 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected, else if (isinf (computed) && isinf (expected)) { /* Test for sign of infinities. */ - if (((exceptions & IGNORE_ZERO_INF_SIGN) == 0) - && (isinf (computed) != isinf (expected))) + if ((exceptions & IGNORE_ZERO_INF_SIGN) == 0 + && signbit (computed) != signbit (expected)) { ok = 0; printf ("infinity has wrong sign.\n"); @@ -482,9 +482,9 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected, ulp = diff / FUNC(ldexp) (1.0, FUNC(ilogb) (expected) - MANT_DIG); set_max_error (ulp, curr_max_error); print_diff = 1; - if (((exceptions & IGNORE_ZERO_INF_SIGN) == 0) - && (computed == 0.0 && expected == 0.0 - && signbit(computed) != signbit (expected))) + if ((exceptions & IGNORE_ZERO_INF_SIGN) == 0 + && computed == 0.0 && expected == 0.0 + && signbit(computed) != signbit (expected)) ok = 0; else if (ulp == 0.0 || (ulp <= max_ulp && !ignore_max_ulp)) ok = 1; diff --git a/sysdeps/i386/fpu/e_expl.c b/sysdeps/i386/fpu/e_expl.c index 37d8d10e2c..a090d0dabc 100644 --- a/sysdeps/i386/fpu/e_expl.c +++ b/sysdeps/i386/fpu/e_expl.c @@ -24,8 +24,8 @@ #include <math_private.h> -static long double __attribute__ ((unused)) c0 = 1.44268798828125L; -static long double __attribute__ ((unused)) c1 = 7.05260771340735992468e-6L; +static long double c0 = 1.44268798828125L; +static long double c1 = 7.05260771340735992468e-6L; long double __ieee754_expl (long double x) @@ -48,7 +48,7 @@ __ieee754_expl (long double x) "fld %%st(1)\n\t" /* 2 x */ "frndint\n\t" /* 2 xi */ "fld %%st(1)\n\t" /* 3 i */ - "fldt c0\n\t" /* 4 c0 */ + "fldt %2\n\t" /* 4 c0 */ "fld %%st(2)\n\t" /* 5 xi */ "fmul %%st(1),%%st\n\t" /* 5 c0 xi */ "fsubp %%st,%%st(2)\n\t" /* 4 f = c0 xi - i */ @@ -56,7 +56,7 @@ __ieee754_expl (long double x) "fsub %%st(3),%%st\n\t" /* 5 xf = x - xi */ "fmulp %%st,%%st(1)\n\t" /* 4 c0 xf */ "faddp %%st,%%st(1)\n\t" /* 3 f = f + c0 xf */ - "fldt c1\n\t" /* 4 */ + "fldt %3\n\t" /* 4 */ "fmul %%st(4),%%st\n\t" /* 4 c1 * x */ "faddp %%st,%%st(1)\n\t" /* 3 f = f + c1 * x */ "f2xm1\n\t" /* 3 2^(fract(x * log2(e))) - 1 */ @@ -72,6 +72,6 @@ __ieee754_expl (long double x) "fstp %%st\n\t" "fldz\n\t" /* Set result to 0. */ "2:\t\n" - : "=t" (res) : "0" (x) : "ax", "dx"); + : "=t" (res) : "0" (x), "m" (c0), "m" (c1) : "ax", "dx"); return res; } diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c index a1f3ac155b..330f2192a7 100644 --- a/sysdeps/posix/spawni.c +++ b/sysdeps/posix/spawni.c @@ -112,7 +112,7 @@ __spawni (pid_t *pid, const char *file, memset (&sa, '\0', sizeof (sa)); sa.sa_handler = SIG_DFL; - for (sig = 1; sig >= _NSIG; ++sig) + for (sig = 1; sig <= _NSIG; ++sig) if (sigismember (&attrp->__sd, sig) != 0 && __sigaction (sig, &sa, NULL) != 0) _exit (SPAWN_ERROR); |