summaryrefslogtreecommitdiff
path: root/recipes/cacao/files/cacao-codegen-arm2.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/cacao/files/cacao-codegen-arm2.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/cacao/files/cacao-codegen-arm2.patch')
-rw-r--r--recipes/cacao/files/cacao-codegen-arm2.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/recipes/cacao/files/cacao-codegen-arm2.patch b/recipes/cacao/files/cacao-codegen-arm2.patch
new file mode 100644
index 0000000000..710f284345
--- /dev/null
+++ b/recipes/cacao/files/cacao-codegen-arm2.patch
@@ -0,0 +1,66 @@
+
+# HG changeset patch
+# User Christian Thalinger <twisti@complang.tuwien.ac.at>
+# Date 1221467463 -7200
+# Node ID a67fe1cb2b81b7cbfc9d824f17b440e50c7697ef
+# Parent d88bf99453b644bd2cc5c0dc5f8038f3151d897a
+* src/vm/jit/arm/codegen.c (codegen_emit) [__VFP_FP__]: Implemented
+I2F, I2D, F2I, and D2I correctly.
+
+--- a/src/vm/jit/arm/codegen.c Mon Sep 15 10:17:30 2008 +0200
++++ b/src/vm/jit/arm/codegen.c Mon Sep 15 10:31:03 2008 +0200
+@@ -1013,7 +1013,12 @@
+
+ s1 = emit_load_s1(jd, iptr, REG_ITMP1);
+ d = codegen_reg_of_dst(jd, iptr, REG_FTMP1);
++#if defined(__VFP_FP__)
++ M_FMSR(s1, d);
++ M_CVTIF(d, d);
++#else
+ M_CVTIF(s1, d);
++#endif
+ emit_store_dst(jd, iptr, d);
+ break;
+
+@@ -1021,7 +1026,12 @@
+
+ s1 = emit_load_s1(jd, iptr, REG_ITMP1);
+ d = codegen_reg_of_dst(jd, iptr, REG_FTMP1);
++#if defined(__VFP_FP__)
++ M_FMSR(s1, d);
++ M_CVTID(d, d);
++#else
+ M_CVTID(s1, d);
++#endif
+ emit_store_dst(jd, iptr, d);
+ break;
+
+@@ -1029,9 +1039,12 @@
+
+ s1 = emit_load_s1(jd, iptr, REG_FTMP1);
+ d = codegen_reg_of_dst(jd, iptr, REG_ITMP1);
++#if defined(__VFP_FP__)
++ M_CVTFI(s1, REG_FTMP2);
++ M_FMRS(REG_FTMP2, d);
++#else
+ /* this uses round towards zero, as Java likes it */
+ M_CVTFI(s1, d);
+-#if !defined(__VFP_FP__)
+ /* this checks for NaN; to return zero as Java likes it */
+ M_FCMP(s1, 0x8);
+ M_MOVVS_IMM(0, d);
+@@ -1043,9 +1056,12 @@
+
+ s1 = emit_load_s1(jd, iptr, REG_FTMP1);
+ d = codegen_reg_of_dst(jd, iptr, REG_ITMP1);
++#if defined(__VFP_FP__)
++ M_CVTDI(s1, REG_FTMP2);
++ M_FMRS(REG_FTMP2, d);
++#else
+ /* this uses round towards zero, as Java likes it */
+ M_CVTDI(s1, d);
+-#if !defined(__VFP_FP__)
+ /* this checks for NaN; to return zero as Java likes it */
+ M_DCMP(s1, 0x8);
+ M_MOVVS_IMM(0, d);
+