summaryrefslogtreecommitdiff
path: root/packages/cacao/files/cacao-codegen-arm1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cacao/files/cacao-codegen-arm1.patch')
-rw-r--r--packages/cacao/files/cacao-codegen-arm1.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/cacao/files/cacao-codegen-arm1.patch b/packages/cacao/files/cacao-codegen-arm1.patch
new file mode 100644
index 0000000000..b4d9db8eb1
--- /dev/null
+++ b/packages/cacao/files/cacao-codegen-arm1.patch
@@ -0,0 +1,49 @@
+
+# HG changeset patch
+# User Christian Thalinger <twisti@complang.tuwien.ac.at>
+# Date 1221466650 -7200
+# Node ID d88bf99453b644bd2cc5c0dc5f8038f3151d897a
+# Parent b567fffd0ff7b8330b172a3f12325c731bee67bb
+* src/vm/jit/arm/codegen.h [__VFP_FP__] (M_CVTFI, M_CVTDI): Use signed
+conversion functions.
+
+--- a/src/vm/jit/arm/codegen.h Sat Sep 13 15:00:00 2008 +0200
++++ b/src/vm/jit/arm/codegen.h Mon Sep 15 10:17:30 2008 +0200
+@@ -643,6 +643,7 @@
+ #if !defined(ENABLE_SOFTFLOAT)
+
+ #if defined(__VFP_FP__)
++
+ #define M_FADD(a,b,d) M_CPDP(UNCOND,0,1,1,0,10,0,0,0,d,a,b)/* d = a + b */
+ #define M_FSUB(a,b,d) M_CPDP(UNCOND,0,1,1,1,10,0,0,0,d,a,b)/* d = a - b */
+ #define M_FMUL(a,b,d) M_CPDP(UNCOND,0,1,0,0,10,0,0,0,d,a,b)/* d = a * b */
+@@ -664,8 +665,8 @@
+ #define M_CVTFD(a,d) M_CPDP(UNCOND,1,1,1,1,10,0,1,0,d,0x7,a)
+ #define M_CVTIF(a,d) M_CPDP(UNCOND,1,1,1,1,10,0,1,0,d,0x8,a)
+ #define M_CVTID(a,d) M_CPDP(UNCOND,1,1,1,1,11,0,1,0,d,0x8,a)
+-#define M_CVTFI(a,d) M_CPDP(UNCOND,1,1,1,1,10,0,1,0,d,0xc,a)
+-#define M_CVTDI(a,d) M_CPDP(UNCOND,1,1,1,1,11,0,1,0,d,0xc,a)
++#define M_CVTFI(a,d) M_CPDP(UNCOND,1,1,1,1,10,0,1,0,d,0xd,a) // ftosis
++#define M_CVTDI(a,d) M_CPDP(UNCOND,1,1,1,1,11,0,1,0,d,0xd,a) // ftosid
+
+ #define M_FMSTAT M_CPRT(UNCOND,0x07,1,10,0,0x1,0xf)
+
+@@ -675,7 +676,9 @@
+ #define M_FMRDL(Fa,b) M_CPRT(UNCOND,0x00,1,11,0,Fa,b)
+ #define M_FMDHR(a,Fb) M_CPRT(UNCOND,0x01,0,11,0,Fb,a)
+ #define M_FMRDH(Fa,b) M_CPRT(UNCOND,0x01,1,11,0,Fa,b)
++
+ #else
++
+ #define M_FADD(a,b,d) M_CPDOS(UNCOND,0x00,0,d,a,b) /* d = a + b */
+ #define M_FSUB(a,b,d) M_CPDOS(UNCOND,0x02,0,d,a,b) /* d = a - b */
+ #define M_FMUL(a,b,d) M_CPDOS(UNCOND,0x01,0,d,a,b) /* d = a * b */
+@@ -701,6 +704,7 @@
+ #define M_CVTID(a,d) M_CPRTD(UNCOND,0,a,d,0) /* d = (float) a */
+ #define M_CVTFI(a,d) M_CPRTI(UNCOND,1,d,0,a) /* d = (int) a */
+ #define M_CVTDI(a,d) M_CPRTI(UNCOND,1,d,0,a) /* d = (int) a */
++
+ #endif
+
+
+