diff options
Diffstat (limited to 'sysdeps/sparc/fpu')
-rw-r--r-- | sysdeps/sparc/fpu/feholdexcpt.c | 6 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/fraiseexcpt.c | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/sysdeps/sparc/fpu/feholdexcpt.c b/sysdeps/sparc/fpu/feholdexcpt.c index 729637ad1b..424855e761 100644 --- a/sysdeps/sparc/fpu/feholdexcpt.c +++ b/sysdeps/sparc/fpu/feholdexcpt.c @@ -1,5 +1,5 @@ /* Store current floating-point environment and clear exceptions. - Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2005, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,8 +26,8 @@ feholdexcept (fenv_t *envp) __fenv_stfsr (*envp); - /* Set all exceptions to non-stop. */ - tmp = *envp & ~(0x1f << 23); + /* Set all exceptions to non-stop and clear all exceptions. */ + tmp = *envp & ~((0x1f << 23) | FE_ALL_EXCEPT); __fenv_ldfsr (tmp); diff --git a/sysdeps/sparc/fpu/fraiseexcpt.c b/sysdeps/sparc/fpu/fraiseexcpt.c index cbb8be80ec..b96eeaed28 100644 --- a/sysdeps/sparc/fpu/fraiseexcpt.c +++ b/sysdeps/sparc/fpu/fraiseexcpt.c @@ -1,5 +1,5 @@ /* Raise given exceptions. - Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2000, 2002, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,9 +26,9 @@ int __feraiseexcept (int excepts) { static const struct { - double zero, one, max, min, sixteen, pi; + double zero, one, max, min, pi; } c = { - 0.0, 1.0, DBL_MAX, DBL_MIN, 16.0, M_PI + 0.0, 1.0, DBL_MAX, DBL_MIN, M_PI }; double d; @@ -66,7 +66,7 @@ __feraiseexcept (int excepts) if ((FE_UNDERFLOW & excepts) != 0) { __asm ("" : "=e" (d) : "0" (c.min)); - d /= c.sixteen; + d *= d; __asm __volatile ("" : : "e" (d)); } |