summaryrefslogtreecommitdiffstats
path: root/patches
diff options
context:
space:
mode:
authorRobert Schwebel <r.schwebel@pengutronix.de>2007-01-02 11:55:08 +0000
committerRobert Schwebel <r.schwebel@pengutronix.de>2007-01-02 11:55:08 +0000
commit93f7df24b75dfb26296986f78d6183c204a55900 (patch)
tree70c3a2b3bcef5da91a0f167a381505e603aeb9d9 /patches
parentcfec5ab54a66ddea03167e58508465cac26ebd09 (diff)
downloadptxdist-93f7df24b75dfb26296986f78d6183c204a55900.tar.gz
ptxdist-93f7df24b75dfb26296986f78d6183c204a55900.tar.xz
* kaffe: added jit fix patch; removed broken in and make files.
Merged from branches/ptxdist-trunk-mkl by rsc. git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@6595 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'patches')
-rw-r--r--patches/kaffe-1.1.7/generic/kaffe-1.1.7-arm-fix-jit.diff67
1 files changed, 67 insertions, 0 deletions
diff --git a/patches/kaffe-1.1.7/generic/kaffe-1.1.7-arm-fix-jit.diff b/patches/kaffe-1.1.7/generic/kaffe-1.1.7-arm-fix-jit.diff
index 377248627..2dac87c53 100644
--- a/patches/kaffe-1.1.7/generic/kaffe-1.1.7-arm-fix-jit.diff
+++ b/patches/kaffe-1.1.7/generic/kaffe-1.1.7-arm-fix-jit.diff
@@ -11,3 +11,70 @@ Index: kaffe-1.1.7/config/arm/linux/md.c
"swi " __sys1(__ARM_NR_cacheflush) "\n"
: /* no return value */
: "r" ((long)start), "r" ((long)end)
+Index: kaffe-1.1.7/libraries/clib/native/java_lang_VMDouble.c
+===================================================================
+--- kaffe-1.1.7.orig/libraries/clib/native/java_lang_VMDouble.c
++++ kaffe-1.1.7/libraries/clib/native/java_lang_VMDouble.c
+@@ -42,6 +42,7 @@ exception statement from your version. *
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <endian.h>
+
+ #include "mprec.h"
+ #include "fdlibm.h"
+@@ -55,6 +56,18 @@ static jdouble NEGATIVE_INFINITY;
+ static jdouble POSITIVE_INFINITY;
+ static jdouble NaN;
+
++#ifdef __FLOAT_WORD_ORDER != __BYTE_ORDER
++#define dtoh(_d) \
++ (((_d & 0x00000000ffffffffLL) << 32) | \
++ ((_d & 0xffffffff00000000LL) >> 32 ))
++#define htod(_d) \
++ (((_d & 0x00000000ffffffffLL) << 32) | \
++ ((_d & 0xffffffff00000000LL) >> 32 ))
++#else
++#define dtoh(_d) (_d)
++#define htod(_d) (_d)
++#endif
++
+ /*
+ * Class: java_lang_VMDouble
+ * Method: initIDs
+@@ -119,13 +132,13 @@ Java_java_lang_VMDouble_doubleToLongBits
+ jlong e, f;
+ val.d = doubleValue;
+
+- e = val.j & 0x7ff0000000000000LL;
+- f = val.j & 0x000fffffffffffffLL;
++ e = dtoh(val.j) & 0x7ff0000000000000LL;
++ f = dtoh(val.j) & 0x000fffffffffffffLL;
+
+ if (e == 0x7ff0000000000000LL && f != 0L)
+- val.j = 0x7ff8000000000000LL;
++ val.j = htod(0x7ff8000000000000LL);
+
+- return val.j;
++ return dtoh(val.j);
+ }
+
+ /*
+@@ -140,7 +153,7 @@ Java_java_lang_VMDouble_doubleToRawLongB
+ {
+ jvalue val;
+ val.d = doubleValue;
+- return val.j;
++ return dtoh(val.j);
+ }
+
+ /*
+@@ -154,7 +167,7 @@ Java_java_lang_VMDouble_longBitsToDouble
+ jclass cls __attribute__ ((__unused__)), jlong longValue)
+ {
+ jvalue val;
+- val.j = longValue;
++ val.j = htod(longValue);
+ return val.d;
+ }
+