Print this page
11210 libm should be cstyle(1ONBLD) clean
@@ -20,10 +20,11 @@
*/
/*
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
*/
+
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,24 +32,28 @@
#pragma weak _modff = __modff
#include "libm.h"
float
-__modff(float x, float *iptr) {
+__modff(float x, float *iptr)
+{
union {
unsigned i;
float f;
} xx, yy;
+
unsigned hx, s;
xx.f = x;
hx = xx.i & ~0x80000000;
if (hx >= 0x4b000000) { /* x is NaN, infinite, or integral */
*iptr = x;
+
if (hx <= 0x7f800000)
xx.i &= 0x80000000;
+
return (xx.f);
}
if (hx < 0x3f800000) { /* |x| < 1 */
xx.i &= 0x80000000;