diff options
Diffstat (limited to 'sysdeps/alpha/soft-fp')
-rw-r--r-- | sysdeps/alpha/soft-fp/Dist | 14 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/e_sqrtl.c | 40 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_add.c | 8 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_cvtqux.c | 6 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_cvtqx.c | 6 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_cvttx.c | 10 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_cvtxq.c | 7 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_cvtxt.c | 10 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_nintxq.c | 12 | ||||
-rw-r--r-- | sysdeps/alpha/soft-fp/ots_sub.c | 8 |
11 files changed, 46 insertions, 79 deletions
diff --git a/sysdeps/alpha/soft-fp/Dist b/sysdeps/alpha/soft-fp/Dist new file mode 100644 index 0000000000..3d75ee78b5 --- /dev/null +++ b/sysdeps/alpha/soft-fp/Dist @@ -0,0 +1,14 @@ +local-soft-fp.h +ots_add.c +ots_cmp.c +ots_cmpe.c +ots_cvtqux.c +ots_cvtqx.c +ots_cvttx.c +ots_cvtxq.c +ots_cvtxt.c +ots_div.c +ots_mul.c +ots_nintxq.c +ots_sub.c +sfp-machine.h diff --git a/sysdeps/alpha/soft-fp/Makefile b/sysdeps/alpha/soft-fp/Makefile index 5410a78984..d7e7e2684a 100644 --- a/sysdeps/alpha/soft-fp/Makefile +++ b/sysdeps/alpha/soft-fp/Makefile @@ -4,7 +4,3 @@ ifeq ($(subdir),soft-fp) sysdep_routines += ots_add ots_sub ots_mul ots_div ots_cmp ots_cmpe \ ots_cvtxq ots_cvtqx ots_cvtqux ots_cvttx ots_cvtxt ots_nintxq endif - -ifeq ($(subdir),math) -CPPFLAGS += -I../soft-fp -endif diff --git a/sysdeps/alpha/soft-fp/e_sqrtl.c b/sysdeps/alpha/soft-fp/e_sqrtl.c deleted file mode 100644 index 717d170127..0000000000 --- a/sysdeps/alpha/soft-fp/e_sqrtl.c +++ /dev/null @@ -1,40 +0,0 @@ -/* long double square root in software floating-point emulation. - Copyright (C) 1997, 1999, 2006 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). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <stdlib.h> -#include <soft-fp.h> -#include <quad.h> - -long double -__ieee754_sqrtl (const long double a) -{ - FP_DECL_EX; - FP_DECL_Q(A); FP_DECL_Q(C); - long double c; - long _round = 4; /* dynamic rounding */ - - FP_INIT_ROUNDMODE; - FP_UNPACK_Q(A, a); - FP_SQRT_Q(C, A); - FP_PACK_Q(c, C); - FP_HANDLE_EXCEPTIONS; - return c; -} diff --git a/sysdeps/alpha/soft-fp/ots_add.c b/sysdeps/alpha/soft-fp/ots_add.c index acf66f316b..b4f6c28f3d 100644 --- a/sysdeps/alpha/soft-fp/ots_add.c +++ b/sysdeps/alpha/soft-fp/ots_add.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: addition. - 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). @@ -29,10 +29,10 @@ _OtsAddX(long al, long ah, long bl, long bh, long _round) FP_DECL_RETURN(c); FP_INIT_ROUNDMODE; - FP_UNPACK_SEMIRAW_Q(A, a); - FP_UNPACK_SEMIRAW_Q(B, b); + FP_UNPACK_Q(A, a); + FP_UNPACK_Q(B, b); FP_ADD_Q(C, A, B); - FP_PACK_SEMIRAW_Q(c, C); + FP_PACK_Q(c, C); FP_HANDLE_EXCEPTIONS; FP_RETURN(c); diff --git a/sysdeps/alpha/soft-fp/ots_cvtqux.c b/sysdeps/alpha/soft-fp/ots_cvtqux.c index 82c50806c4..d7ab5bae43 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtqux.c +++ b/sysdeps/alpha/soft-fp/ots_cvtqux.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: unsigned integer to float conversion. - 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). @@ -33,8 +33,8 @@ _OtsCvtQUX (unsigned long a) FP_DECL_Q(C); FP_DECL_RETURN(c); - FP_FROM_INT_Q(C, a, 64, unsigned long); - FP_PACK_RAW_Q(c, C); + FP_FROM_INT_Q(C, a, 64, long); + FP_PACK_Q(c, C); FP_RETURN(c); } diff --git a/sysdeps/alpha/soft-fp/ots_cvtqx.c b/sysdeps/alpha/soft-fp/ots_cvtqx.c index dc80291506..0e1c6bdc41 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtqx.c +++ b/sysdeps/alpha/soft-fp/ots_cvtqx.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: signed integer to float conversion. - 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). @@ -33,7 +33,7 @@ _OtsCvtQX (long a) FP_DECL_Q(C); FP_DECL_RETURN(c); - FP_FROM_INT_Q(C, a, 64, unsigned long); - FP_PACK_RAW_Q(c, C); + FP_FROM_INT_Q(C, a, 64, long); + FP_PACK_Q(c, C); FP_RETURN(c); } diff --git a/sysdeps/alpha/soft-fp/ots_cvttx.c b/sysdeps/alpha/soft-fp/ots_cvttx.c index 2d0bc9bca9..ee5ac324cd 100644 --- a/sysdeps/alpha/soft-fp/ots_cvttx.c +++ b/sysdeps/alpha/soft-fp/ots_cvttx.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: floating point extension. - 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). @@ -35,13 +35,13 @@ _OtsConvertFloatTX(double a) FP_DECL_Q(C); FP_DECL_RETURN(c); - FP_UNPACK_RAW_D(A, a); + FP_UNPACK_D(A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q - FP_EXTEND(Q,D,4,2,C,A); + FP_CONV(Q,D,4,2,C,A); #else - FP_EXTEND(Q,D,2,1,C,A); + FP_CONV(Q,D,2,1,C,A); #endif - FP_PACK_RAW_Q(c, C); + FP_PACK_Q(c, C); FP_HANDLE_EXCEPTIONS; FP_RETURN(c); diff --git a/sysdeps/alpha/soft-fp/ots_cvtxq.c b/sysdeps/alpha/soft-fp/ots_cvtxq.c index 2c9df529d5..1fd47da4f7 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtxq.c +++ b/sysdeps/alpha/soft-fp/ots_cvtxq.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: float to integer conversion. - 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,15 +26,14 @@ _OtsCvtXQ (long al, long ah, long _round) { FP_DECL_EX; FP_DECL_Q(A); - 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_RAW_Q(A, a); + FP_UNPACK_Q(A, a); FP_TO_INT_Q(r, A, 64, s); if (s > 0 && (_fex &= FP_EX_INVALID)) diff --git a/sysdeps/alpha/soft-fp/ots_cvtxt.c b/sysdeps/alpha/soft-fp/ots_cvtxt.c index 6221a2365c..2629dd9e40 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtxt.c +++ b/sysdeps/alpha/soft-fp/ots_cvtxt.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: floating point truncation. - 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). @@ -31,13 +31,13 @@ _OtsConvertFloatXT (long al, long ah, long _round) double r; FP_INIT_ROUNDMODE; - FP_UNPACK_SEMIRAW_Q(A, a); + FP_UNPACK_Q(A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q - FP_TRUNC(D,Q,2,4,R,A); + FP_CONV(D,Q,2,4,R,A); #else - FP_TRUNC(D,Q,1,2,R,A); + FP_CONV(D,Q,1,2,R,A); #endif - FP_PACK_SEMIRAW_D(r, R); + FP_PACK_D(r, R); FP_HANDLE_EXCEPTIONS; return r; 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; diff --git a/sysdeps/alpha/soft-fp/ots_sub.c b/sysdeps/alpha/soft-fp/ots_sub.c index 5147266a04..c10043f071 100644 --- a/sysdeps/alpha/soft-fp/ots_sub.c +++ b/sysdeps/alpha/soft-fp/ots_sub.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: subtraction. - 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). @@ -29,10 +29,10 @@ _OtsSubX(long al, long ah, long bl, long bh, long _round) FP_DECL_RETURN(c); FP_INIT_ROUNDMODE; - FP_UNPACK_SEMIRAW_Q(A, a); - FP_UNPACK_SEMIRAW_Q(B, b); + FP_UNPACK_Q(A, a); + FP_UNPACK_Q(B, b); FP_SUB_Q(C, A, B); - FP_PACK_SEMIRAW_Q(c, C); + FP_PACK_Q(c, C); FP_HANDLE_EXCEPTIONS; FP_RETURN(c); |