Author: marius
Date: Tue Mar 30 19:03:26 2010
New Revision: 205890
URL: http://svn.freebsd.org/changeset/base/205890

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:           144900
  Obtained from:        OpenBSD

Modified:
  stable/8/lib/libc/sparc64/fpu/fpu_implode.c
Directory Properties:
  stable/8/lib/libc/   (props changed)
  stable/8/lib/libc/stdtime/   (props changed)

Modified: stable/8/lib/libc/sparc64/fpu/fpu_implode.c
==============================================================================
--- stable/8/lib/libc/sparc64/fpu/fpu_implode.c Tue Mar 30 18:58:10 2010        
(r205889)
+++ stable/8/lib/libc/sparc64/fpu/fpu_implode.c Tue Mar 30 19:03:26 2010        
(r205890)
@@ -248,8 +248,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:
                /*
@@ -273,15 +273,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);
 }
 
 /*
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to