aboutsummaryrefslogtreecommitdiffstats
path: root/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch
diff options
context:
space:
mode:
authorRobert Schuster <thebohemian@gmx.net>2008-01-14 14:35:45 +0000
committerRobert Schuster <thebohemian@gmx.net>2008-01-14 14:35:45 +0000
commitc0c3fee3141e11c088a5b1f845773a12a19bb237 (patch)
tree6cd1dd5169f5703c4ded19aafec2d04cadb344ba /packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch
parent3b1747b9ce29a934e8acb9e25daac5191237f462 (diff)
downloadopenembedded-c0c3fee3141e11c088a5b1f845773a12a19bb237.tar.gz
cacao 0.98+hg20071001: Added snapshot version.
cacao-cldc: Added an include recipe. classpath: Moved versions prior 0.95 to obsolete/ . classpath-minimal: Moved versions prior 0.95 to obsolete/ . classpath-gtk: Moved to obsolete/. classpath cvs: Moved to obsolete/. classpath 0.96.1: Added new version. classpath 0.95: Added new version. classpath-minimal 0.96.1: Added new version. midpath-cldc: Removed notion of virtual/cldc-api-1.1 - install cldc1.1.jar as midpath-cldc1.1.jar to ${datadir}/midpath-cldc
Diffstat (limited to 'packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch')
-rw-r--r--packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch b/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch
new file mode 100644
index 0000000000..813cb683f6
--- /dev/null
+++ b/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch
@@ -0,0 +1,50 @@
+Index: cacao-0.98+hg7750/src/vm/jit/arm/asmpart.S
+===================================================================
+--- cacao-0.98+hg7750.orig/src/vm/jit/arm/asmpart.S 2007-11-28 10:14:51.000000000 +0100
++++ cacao-0.98+hg7750/src/vm/jit/arm/asmpart.S 2007-11-28 10:15:31.000000000 +0100
+@@ -302,35 +302,21 @@
+ * *
+ *******************************************************************************/
+
+-.equ sys_cacheflush,__ARM_NR_cacheflush /* syscall number for cache flushing */
+-
++.equ sys_cacheflush, 0x9f0002
+ asm_cacheflush:
+- add a1, a0, a1
+- mov a2, #0
+-
+-#if defined(__ARM_EABI__)
+- /* According to EABI, the syscall number should be passed via R7,
+- see "http://wiki.debian.org/ArmEabiPort" for additional details. */
+-
+- stmfd sp!, {r7}
+- mov r7, #0x0f0000
+- add r7, r7, #0x000002
+-#endif
++ add a1, a0, a1
++ mov a2, #0
+
+ #if 0
+- /* TWISTI: required on iyonix, maybe a linux-2.4 bug */
+- mov a0, #0x0
+- mov a1, #0xff000000
++ /* TWISTI: required on iyonix, maybe a linux-2.4 bug */
++ /* TODO: repeair this! */
++ /* cacheflush is messed up beyond all repair! */
++ mov a0, #0x0
++ mov a1, #0xff000000
+ #endif
+
+- swi sys_cacheflush
+-
+-#if defined(__ARM_EABI__)
+- ldmfd sp!, {r7}
+-#endif
+-
+- mov pc, lr
+-
++ swi #sys_cacheflush
++ mov pc, lr
+
+ /* disable exec-stacks ********************************************************/
+