diff options
author | Ulrich Drepper <drepper@redhat.com> | 2008-04-12 00:51:34 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2008-04-12 00:51:34 +0000 |
commit | 246ec411990908950e96332213bc6d11d19a17f9 (patch) | |
tree | cc0653af90aee1bedadc0f41e8688dc7fe78ef31 /sysdeps/powerpc/fpu/fraiseexcpt.c | |
parent | 2dc4a2fd9ed8d4d889d6aabd2fdd6065dd49dc39 (diff) | |
download | glibc-246ec411990908950e96332213bc6d11d19a17f9.tar.gz glibc-246ec411990908950e96332213bc6d11d19a17f9.tar.xz glibc-246ec411990908950e96332213bc6d11d19a17f9.zip |
* sysdeps/powerpc/fpu/fenv_libc.h: Add libm_hidden_proto for
__fe_nomask_env. * sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise. * sysdeps/powerpc/bits/fenv.h: Make safe for C++. * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file. * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename function from fegetexcept and make old name weak alias. * include/fenv.h: Declare __fegetexcept. * sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of fegetexcept. * sysdeps/powerpc/fpu/feenablxcpt.c: Likewise. * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call to fetestexcept. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl instead of frexpl to avoid local PLT. * math/s_significandl.c (__significandl): Use __ilogbl instead of ilogbl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl instead of ldexpl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use __roundl not roundl to avoid local PLT. * sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid local PLTs. Use __sincosl instead of separate sinl and cosl calls. * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
Diffstat (limited to 'sysdeps/powerpc/fpu/fraiseexcpt.c')
-rw-r--r-- | sysdeps/powerpc/fpu/fraiseexcpt.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sysdeps/powerpc/fpu/fraiseexcpt.c b/sysdeps/powerpc/fpu/fraiseexcpt.c index dbe36c3d5a..2d983d97c7 100644 --- a/sysdeps/powerpc/fpu/fraiseexcpt.c +++ b/sysdeps/powerpc/fpu/fraiseexcpt.c @@ -1,5 +1,5 @@ /* Raise given exceptions. - Copyright (C) 1997,99,2000,01,02 Free Software Foundation, Inc. + Copyright (C) 1997,1999-2002, 2008 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 @@ -45,12 +45,15 @@ __feraiseexcept (int excepts) triggering any appropriate exceptions. */ fesetenv_register (u.fenv); - if ((excepts & FE_INVALID) + if ((excepts & FE_INVALID)) + { /* For some reason, some PowerPC chips (the 601, in particular) don't have FE_INVALID_SOFTWARE implemented. Detect this case and raise FE_INVALID_SNAN instead. */ - && !fetestexcept (FE_INVALID)) - set_fpscr_bit (FPSCR_VXSNAN); + u.fenv = fegetenv_register (); + if ((u.l[1] & FE_INVALID) == 0) + set_fpscr_bit (FPSCR_VXSNAN); + } /* Success. */ return 0; |