diff options
Diffstat (limited to 'sysdeps/alpha/soft-fp/ots_nintxq.c')
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_nintxq.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sysdeps/alpha/soft-fp/ots_nintxq.c b/sysdeps/alpha/soft-fp/ots_nintxq.c index a718372af7..2cb1ca4c2a 100644 --- a/sysdeps/alpha/soft-fp/ots_nintxq.c +++ b/sysdeps/alpha/soft-fp/ots_nintxq.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: convert to fortran nearest. - Copyright (C) 1997,1999,2004,2006 Free Software Foundation, Inc. + Copyright (C) 1997,1999,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). @@ -26,24 +26,22 @@ _OtsNintXQ (long al, long ah, long _round) { FP_DECL_EX; FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C); - unsigned long r; - long s; + long r, s; /* If bit 3 is set, then integer overflow detection is requested. */ s = _round & 8 ? 1 : -1; _round = _round & 3; FP_INIT_ROUNDMODE; - FP_UNPACK_SEMIRAW_Q(A, a); + FP_UNPACK_Q(A, a); /* Build 0.5 * sign(A) */ B_e = _FP_EXPBIAS_Q; - __FP_FRAC_SET_2 (B, 0, 0); + __FP_FRAC_SET_2 (B, _FP_IMPLBIT_Q, 0); B_s = A_s; + _FP_UNPACK_CANONICAL(Q,2,B); FP_ADD_Q(C, A, B); - _FP_FRAC_SRL_2(C, _FP_WORKBITS); - _FP_FRAC_HIGH_RAW_Q(C) &= ~(_FP_W_TYPE)_FP_IMPLBIT_Q; FP_TO_INT_Q(r, C, 64, s); if (s > 0 && (_fex &= FP_EX_INVALID)) FP_HANDLE_EXCEPTIONS; |