summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/openjdk-6/cacao-vfp-compat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/openjdk/openjdk-6/cacao-vfp-compat.patch')
-rw-r--r--recipes-core/openjdk/openjdk-6/cacao-vfp-compat.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/recipes-core/openjdk/openjdk-6/cacao-vfp-compat.patch b/recipes-core/openjdk/openjdk-6/cacao-vfp-compat.patch
new file mode 100644
index 0000000..09ba984
--- /dev/null
+++ b/recipes-core/openjdk/openjdk-6/cacao-vfp-compat.patch
@@ -0,0 +1,37 @@
1Index: cacao/cacao/src/vm/jit/arm/codegen.c
2===================================================================
3--- cacao/cacao/src/vm/jit/arm/codegen.c 2008-10-01 16:23:21.439856241 +0200
4+++ cacao/cacao/src/vm/jit/arm/codegen.c 2008-10-01 16:41:24.278841537 +0200
5@@ -2353,10 +2353,12 @@
6
7 d = md->returntype.type;
8
9-#if !defined(__SOFTFP__)
10+#if !defined(__SOFTFP__) && !defined(__VFP_FP__)
11 /* TODO: this is only a hack, since we use R0/R1 for float
12 return! this depends on gcc; it is independent from
13- our ENABLE_SOFTFLOAT define */
14+ our ENABLE_SOFTFLOAT define
15+ It is only needed for -mfpu=fpa -mfloat-abi=hard!
16+ */
17 if (iptr->opc == ICMD_BUILTIN && d != TYPE_VOID && IS_FLT_DBL_TYPE(d)) {
18 #if 0 && !defined(NDEBUG)
19 dolog("BUILTIN that returns float or double (%s.%s)", m->clazz->name->text, m->name->text);
20@@ -3019,7 +3021,7 @@
21 s1 = (s4) (cd->mcodeptr - cd->mcodebase);
22 M_RECOMPUTE_PV(s1);
23
24-#if !defined(__SOFTFP__)
25+#if !defined(__SOFTFP__) && !defined(__VFP_FP__)
26 /* TODO: this is only a hack, since we use R0/R1 for float return! */
27 /* this depends on gcc; it is independent from our ENABLE_SOFTFLOAT define */
28 if (md->returntype.type != TYPE_VOID && IS_FLT_DBL_TYPE(md->returntype.type)) {
29@@ -3030,7 +3032,7 @@
30 /* M_CAST_FLT_TO_INT_TYPED(md->returntype.type, REG_FRESULT, REG_RESULT_TYPED(md->returntype.type)); */
31 if (IS_2_WORD_TYPE(md->returntype.type)) {
32 DCD(0xed2d8102); /* stfd f0, [sp, #-8]! */
33- M_LDRD_UPDATE(REG_RESULT_PACKED, REG_SP, 8);
34+ M_LDRD_UPDATE(REG_RESULT_PACKED, REG_SP, 8);
35 } else {
36 DCD(0xed2d0101); /* stfs f0, [sp, #-4]!*/
37 M_LDR_UPDATE(REG_RESULT, REG_SP, 4);