diff options
Diffstat (limited to 'arch/mips/math-emu/dp_flong.c')
| -rw-r--r-- | arch/mips/math-emu/dp_flong.c | 28 | 
1 files changed, 8 insertions, 20 deletions
diff --git a/arch/mips/math-emu/dp_flong.c b/arch/mips/math-emu/dp_flong.c index 14fc01ec742..a267c2e39d7 100644 --- a/arch/mips/math-emu/dp_flong.c +++ b/arch/mips/math-emu/dp_flong.c @@ -5,8 +5,6 @@   * MIPS floating point support   * Copyright (C) 1994-2000 Algorithmics Ltd.   * - * ######################################################################## - *   *  This program is free software; you can distribute it and/or modify it   *  under the terms of the GNU General Public License (Version 2) as   *  published by the Free Software Foundation. @@ -18,21 +16,18 @@   *   *  You should have received a copy of the GNU General Public License along   *  with this program; if not, write to the Free Software Foundation, Inc., - *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * ######################################################################## + *  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.   */ -  #include "ieee754dp.h" -ieee754dp ieee754dp_flong(s64 x) +union ieee754dp ieee754dp_flong(s64 x)  {  	u64 xm;  	int xe;  	int xs; -	CLEARCX; +	ieee754_clearcx();  	if (x == 0)  		return ieee754dp_zero(0); @@ -52,26 +47,19 @@ ieee754dp ieee754dp_flong(s64 x)  	}  	/* normalize */ -	xe = DP_MBITS + 3; -	if (xm >> (DP_MBITS + 1 + 3)) { +	xe = DP_FBITS + 3; +	if (xm >> (DP_FBITS + 1 + 3)) {  		/* shunt out overflow bits */ -		while (xm >> (DP_MBITS + 1 + 3)) { +		while (xm >> (DP_FBITS + 1 + 3)) {  			XDPSRSX1();  		}  	} else {  		/* normalize in grs extended double precision */ -		while ((xm >> (DP_MBITS + 3)) == 0) { +		while ((xm >> (DP_FBITS + 3)) == 0) {  			xm <<= 1;  			xe--;  		}  	} -	DPNORMRET1(xs, xe, xm, "dp_flong", x); -} -ieee754dp ieee754dp_fulong(u64 u) -{ -	if ((s64) u < 0) -		return ieee754dp_add(ieee754dp_1e63(), -				     ieee754dp_flong(u & ~(1ULL << 63))); -	return ieee754dp_flong(u); +	return ieee754dp_format(xs, xe, xm);  }  | 
