PatchSet 7746 Date: 2008/02/14 23:42:20 Author: robilad Branch: HEAD Tag: (none) Log: statified longToDouble
2008-02-15 Dalibor Topic <[EMAIL PROTECTED]> * kaffe/kaffevm/fp.h (DNANBITS, longToDouble): Removed. * kaffe/kaffevm/fp.c (longToDouble): Simplified collapsing of NaNs. Made function static. Members: ChangeLog:1.5246->1.5247 kaffe/kaffevm/fp.c:1.9->1.10 kaffe/kaffevm/fp.h:1.6->1.7 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.5246 kaffe/ChangeLog:1.5247 --- kaffe/ChangeLog:1.5246 Thu Feb 14 23:31:38 2008 +++ kaffe/ChangeLog Thu Feb 14 23:42:20 2008 @@ -1,5 +1,12 @@ 2008-02-15 Dalibor Topic <[EMAIL PROTECTED]> + * kaffe/kaffevm/fp.h (DNANBITS, longToDouble): Removed. + + * kaffe/kaffevm/fp.c (longToDouble): Simplified collapsing of NaNs. + Made function static. + +2008-02-15 Dalibor Topic <[EMAIL PROTECTED]> + * kaffe/kaffevm/fp.c (doubleAdd, doubleSubtract, doubleMultiply) (doubleDivide): Use KAFFE_JDOUBLE_NAN. Index: kaffe/kaffe/kaffevm/fp.c diff -u kaffe/kaffe/kaffevm/fp.c:1.9 kaffe/kaffe/kaffevm/fp.c:1.10 --- kaffe/kaffe/kaffevm/fp.c:1.9 Thu Feb 14 23:31:41 2008 +++ kaffe/kaffe/kaffevm/fp.c Thu Feb 14 23:42:22 2008 @@ -48,15 +48,12 @@ /* * Convert jlong to double. */ +static jdouble longToDouble(jlong val) { jvalue d; - /* Force all possible NaN values into the canonical NaN value */ - if ((val & DEXPMASK) == DEXPMASK && (val & DMANMASK) != 0) - val = DNANBITS; - /* Convert value */ d.j = val; #if defined(DOUBLE_ORDER_OPPOSITE) @@ -68,7 +65,12 @@ *s = r; } #endif - return d.d; + + /* Collapse NaNs */ + if (isnan(d.d)) + return KAFFE_JDOUBLE_NAN; + else + return d.d; } /* Index: kaffe/kaffe/kaffevm/fp.h diff -u kaffe/kaffe/kaffevm/fp.h:1.6 kaffe/kaffe/kaffevm/fp.h:1.7 --- kaffe/kaffe/kaffevm/fp.h:1.6 Thu Feb 14 22:24:41 2008 +++ kaffe/kaffe/kaffevm/fp.h Thu Feb 14 23:42:22 2008 @@ -22,7 +22,6 @@ #define DMANMASK ((((uint64)0x000fffff)<<32)|((uint64)0xffffffff)) #define DSIGNBIT (((uint64)0x80000000)<<32) #define DINFBITS (((uint64)0x7ff00000)<<32) -#define DNANBITS (((uint64)0x7ff80000)<<32) #define FEXPMASK 0x7f800000 #define FMANMASK 0x007fffff @@ -40,7 +39,6 @@ extern jdouble doubleDivide(jdouble v1, jdouble v2); extern jlong doubleToLong(jdouble val); -extern jdouble longToDouble(jlong val); extern jint floatToInt(jfloat val); extern float intToFloat(jint val); _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe