From 27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 5 Aug 2014 13:36:36 -0700 Subject: 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. --- sysdeps/alpha/soft-fp/sfp-machine.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sysdeps/alpha/soft-fp/sfp-machine.h') 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 \ -- cgit 1.4.1