2000-01-31 Scott Bambrough <scottb@netwinder.org>
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Feb 2000 06:46:30 +0000 (06:46 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Feb 2000 06:46:30 +0000 (06:46 +0000)
* gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
(java_float_finite): Convert to use union Word from javaop.h.
(java_double_finite): Convert to use union DWord from javaop.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31768 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/gjavah.c

index 3e41ae5..e9807e4 100644 (file)
@@ -1,3 +1,10 @@
+2000-01-31  Scott Bambrough  <scottb@netwinder.org>
+
+       * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
+       HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
+       (java_float_finite): Convert to use union Word from javaop.h.
+       (java_double_finite): Convert to use union DWord from javaop.h.
+
 2000-02-02  Tom Tromey  <tromey@cygnus.com>
 
        * gjavah.c (options): Added `jni' entry.
index a9d3ae9..6f97a64 100644 (file)
@@ -30,6 +30,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
 
 #include "jcf.h"
 #include "tree.h"
+#include "javaop.h"
 #include "java-tree.h"
 #include "java-opcodes.h"
 
@@ -204,17 +205,18 @@ static int decompiled = 0;
 
 /* Some useful constants.  */
 #define F_NAN_MASK 0x7f800000
+#if (1 == HOST_FLOAT_WORDS_BIG_ENDIAN)
+#define D_NAN_MASK 0x000000007ff00000LL
+#else
 #define D_NAN_MASK 0x7ff0000000000000LL
+#endif
 
 /* Return 1 if F is not Inf or NaN.  */
 static int
 java_float_finite (f)
      jfloat f;
 {
-  union {
-    jfloat f;
-    int32 i;
-  } u;
+  union Word u;
   u.f = f;
 
   /* We happen to know that F_NAN_MASK will match all NaN values, and
@@ -228,14 +230,11 @@ static int
 java_double_finite (d)
      jdouble d;
 {
-  union {
-    jdouble d;
-    int64 i;
-  } u;
+  union DWord u;
   u.d = d;
 
   /* Now check for all NaNs.  */
-  return (u.i & D_NAN_MASK) != D_NAN_MASK;
+  return (u.l & D_NAN_MASK) != D_NAN_MASK;
 }
 
 static void