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

Reply via email to