svn commit: r205892 - stable/6/lib/libc/sparc64/fpu
Marius Strobl
marius at FreeBSD.org
Tue Mar 30 19:03:29 UTC 2010
Author: marius
Date: Tue Mar 30 19:03:29 2010
New Revision: 205892
URL: http://svn.freebsd.org/changeset/base/205892
Log:
MFC: r205394
Ensure that __fpu_ftox() both returns the high bits and res[1] contains
the low bits also in the default case.
PR:i 144900
Obtained from: OpenBSD
Modified:
stable/6/lib/libc/sparc64/fpu/fpu_implode.c
Directory Properties:
stable/6/lib/libc/ (props changed)
Modified: stable/6/lib/libc/sparc64/fpu/fpu_implode.c
==============================================================================
--- stable/6/lib/libc/sparc64/fpu/fpu_implode.c Tue Mar 30 19:03:27 2010 (r205891)
+++ stable/6/lib/libc/sparc64/fpu/fpu_implode.c Tue Mar 30 19:03:29 2010 (r205892)
@@ -252,8 +252,8 @@ __fpu_ftox(fe, fp, res)
sign = fp->fp_sign;
switch (fp->fp_class) {
case FPC_ZERO:
- res[1] = 0;
- return (0);
+ i = 0;
+ goto done;
case FPC_NUM:
/*
@@ -277,15 +277,17 @@ __fpu_ftox(fe, fp, res)
break;
if (sign)
i = -i;
- res[1] = (int)i;
- return (i >> 32);
+ goto done;
default: /* Inf, qNaN, sNaN */
break;
}
/* overflow: replace any inexact exception with invalid */
fe->fe_cx = (fe->fe_cx & ~FSR_NX) | FSR_NV;
- return (0x7fffffffffffffffLL + sign);
+ i = 0x7fffffffffffffffLL + sign;
+done:
+ res[1] = i & 0xffffffff;
+ return (i >> 32);
}
/*
More information about the svn-src-stable-6
mailing list