about summary refs log tree commit diff
path: root/sysdeps/alpha/soft-fp/sfp-machine.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-08-05 13:36:36 -0700
committerRichard Henderson <rth@twiddle.net>2014-08-05 13:36:36 -0700
commit27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd (patch)
tree827283a9175ea2dcf94027ebca637fd5ec83bda7 /sysdeps/alpha/soft-fp/sfp-machine.h
parentd3f364d3c79cc6cbeb0bf6f8cec90c9e4465db0f (diff)
downloadglibc-27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd.tar.gz
glibc-27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd.tar.xz
glibc-27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd.zip
alpha: Fix exception raising from soft-fp
Use the SSI_IEEE_RAISE_EXCEPTION function as from feraiseexcept,
instead of __ieee_get+set_fp_status.  Always raise the FP exceptions
from float-to-integer conversion.
Diffstat (limited to 'sysdeps/alpha/soft-fp/sfp-machine.h')
-rw-r--r--sysdeps/alpha/soft-fp/sfp-machine.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/alpha/soft-fp/sfp-machine.h b/sysdeps/alpha/soft-fp/sfp-machine.h
index e11a8dd7ca..bd78534163 100644
--- a/sysdeps/alpha/soft-fp/sfp-machine.h
+++ b/sysdeps/alpha/soft-fp/sfp-machine.h
@@ -86,13 +86,13 @@ do {								\
     }								\
 } while (0)
 
+/* We copy the libm function into libc for soft-fp.  */
+extern int __feraiseexcept (int __excepts) attribute_hidden;
+
 #define FP_HANDLE_EXCEPTIONS					\
 do {								\
   if (__builtin_expect (_fex, 0))				\
-    {								\
-      unsigned long t = __ieee_get_fp_control ();		\
-      __ieee_set_fp_control (t | _fex);				\
-    }								\
+    __feraiseexcept (_fex);					\
 } while (0)
 
 #define FP_TRAPPING_EXCEPTIONS					\