aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/obsolete/cacao
diff options
context:
space:
mode:
authorFrans Meulenbroeks <fransmeulenbroeks@gmail.com>2010-10-03 12:38:21 +0200
committerFrans Meulenbroeks <fransmeulenbroeks@gmail.com>2010-10-03 12:50:37 +0200
commitc973bbe10c7ae68ed392b6f5758a82a676304e2b (patch)
treec5376aacc18a5fd320b7e92275a5d53440f86138 /recipes/obsolete/cacao
parent013cde76786085d8b9c8ed602f29ee6d9b2fc4bb (diff)
downloadopenembedded-c973bbe10c7ae68ed392b6f5758a82a676304e2b.tar.gz
openembedded-c973bbe10c7ae68ed392b6f5758a82a676304e2b.tar.bz2
openembedded-c973bbe10c7ae68ed392b6f5758a82a676304e2b.zip
cacao : moved unused files to obsolete dir
Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/obsolete/cacao')
-rw-r--r--recipes/obsolete/cacao/files/cacao-0.98+svn-classpath_var.patch56
-rw-r--r--recipes/obsolete/cacao/files/cacao-codegen-arm3.patch98
2 files changed, 154 insertions, 0 deletions
diff --git a/recipes/obsolete/cacao/files/cacao-0.98+svn-classpath_var.patch b/recipes/obsolete/cacao/files/cacao-0.98+svn-classpath_var.patch
new file mode 100644
index 0000000000..255281d386
--- /dev/null
+++ b/recipes/obsolete/cacao/files/cacao-0.98+svn-classpath_var.patch
@@ -0,0 +1,56 @@
+Index: cacao-trunk/src/vm/properties.c
+===================================================================
+--- cacao-trunk.orig/src/vm/properties.c 2007-08-31 13:28:53.000000000 +0200
++++ cacao-trunk/src/vm/properties.c 2007-09-03 00:36:14.000000000 +0200
+@@ -294,14 +294,14 @@
+ len =
+ strlen(CACAO_VM_ZIP) +
+ strlen(":") +
+- strlen(CLASSPATH_CLASSES) +
++ strlen(TARGET_CLASSPATH_CLASSES) +
+ strlen("0");
+
+ boot_class_path = MNEW(char, len);
+
+ strcpy(boot_class_path, CACAO_VM_ZIP);
+ strcat(boot_class_path, ":");
+- strcat(boot_class_path, CLASSPATH_CLASSES);
++ strcat(boot_class_path, TARGET_CLASSPATH_CLASSES);
+
+ # elif defined(WITH_CLASSPATH_SUN)
+
+Index: cacao-trunk/configure.ac
+===================================================================
+--- cacao-trunk.orig/configure.ac 2007-08-31 13:22:03.000000000 +0200
++++ cacao-trunk/configure.ac 2007-08-31 13:30:44.000000000 +0200
+@@ -851,6 +851,7 @@
+ AC_CHECK_WITH_CLASSPATH
+ AC_CHECK_WITH_CLASSPATH_PREFIX
+ AC_CHECK_WITH_CLASSPATH_CLASSES
++AC_CHECK_WITH_TARGET_CLASSPATH_CLASSES
+ AC_CHECK_WITH_CLASSPATH_LIBDIR
+ AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
+
+Index: cacao-trunk/m4/classpath.m4
+===================================================================
+--- cacao-trunk.orig/m4/classpath.m4 2007-08-31 13:22:21.000000000 +0200
++++ cacao-trunk/m4/classpath.m4 2007-08-31 13:30:55.000000000 +0200
+@@ -98,6 +98,18 @@
+ AC_SUBST(CLASSPATH_CLASSES)
+ ])
+
++dnl where are Java core library classes installed on the target
++
++AC_DEFUN([AC_CHECK_WITH_TARGET_CLASSPATH_CLASSES],[
++AC_MSG_CHECKING(where Java core library classes are installed on the target)
++AC_ARG_WITH([target-classpath-classes],
++ [AS_HELP_STRING(--with-target-classpath-classes=<path>,path to Java core library classes (includes the name of the file and may be flat) [[default=/usr/local/classpath/share/classpath/glibj.zip]])],
++ [TARGET_CLASSPATH_CLASSES=${withval}],
++ [TARGET_CLASSPATH_CLASSES=${CLASSPATH_PREFIX}/share/classpath/glibj.zip])
++AC_MSG_RESULT(${TARGET_CLASSPATH_CLASSES})
++AC_DEFINE_UNQUOTED([TARGET_CLASSPATH_CLASSES], "${TARGET_CLASSPATH_CLASSES}", [Java core library classes on the target])
++AC_SUBST(TARGET_CLASSPATH_CLASSES)
++])
+
+ dnl where are Java core library native libraries installed
+
diff --git a/recipes/obsolete/cacao/files/cacao-codegen-arm3.patch b/recipes/obsolete/cacao/files/cacao-codegen-arm3.patch
new file mode 100644
index 0000000000..0480e2bf34
--- /dev/null
+++ b/recipes/obsolete/cacao/files/cacao-codegen-arm3.patch
@@ -0,0 +1,98 @@
+
+# HG changeset patch
+# User Michael Starzinger <michi@complang.tuwien.ac.at>
+# Date 1219071051 -7200
+# Node ID 560d90393144976fb3a4e25c6ab6c5bba6c24945
+# Parent 3f50e293a509895992c2781322f2199a481a87a2
+Fixed PR99 (hopefully).
+* src/vm/jit/arm/codegen.h (M_RECOMPUTE_IP): Shifted sub instructions go
+first now (order of instruction reveresed).
+* src/vm/jit/arm/md.h (md_codegen_get_pv_from_pc): Only load additional
+instructions if definitely allowed to. This was made possible by
+above change.
+
+--- a/src/vm/jit/arm/codegen.h Mon Aug 18 16:03:26 2008 -0400
++++ b/src/vm/jit/arm/codegen.h Mon Aug 18 16:50:51 2008 +0200
+@@ -1103,15 +1103,22 @@
+ /* M_RECOMPUTE_PV:
+ used to recompute our PV (we use the IP for this) out of the current PC
+ ATTENTION: if you change this, you have to look at other functions as well!
+- Following things depend on it: asm_call_jit_compiler(); codegen_findmethod();
++ Following things depend on it: md_codegen_get_pv_from_pc();
+ */
+ #define M_RECOMPUTE_PV(disp) \
+ disp += 8; /* we use PC relative addr. */ \
+ assert((disp & 0x03) == 0); \
+ assert(disp >= 0 && disp <= 0x03ffffff); \
+- M_SUB_IMM(REG_PV, REG_PC, IMM_ROTL(disp >> 2, 1)); \
+- if (disp > 0x000003ff) M_SUB_IMM(REG_PV, REG_PV, IMM_ROTL(disp >> 10, 5)); \
+- if (disp > 0x0003ffff) M_SUB_IMM(REG_PV, REG_PV, IMM_ROTL(disp >> 18, 9)); \
++ if (disp > 0x0003ffff) { \
++ M_SUB_IMM(REG_PV, REG_PC, IMM_ROTL(disp >> 18, 9)); \
++ M_SUB_IMM(REG_PV, REG_PV, IMM_ROTL(disp >> 10, 5)); \
++ M_SUB_IMM(REG_PV, REG_PV, IMM_ROTL(disp >> 2, 1)); \
++ } else if (disp > 0x000003ff) { \
++ M_SUB_IMM(REG_PV, REG_PC, IMM_ROTL(disp >> 10, 5)); \
++ M_SUB_IMM(REG_PV, REG_PV, IMM_ROTL(disp >> 2, 1)); \
++ } else { \
++ M_SUB_IMM(REG_PV, REG_PC, IMM_ROTL(disp >> 2, 1)); \
++ }
+
+ /* M_INTMOVE:
+ generates an integer-move from register a to b.
+--- a/src/vm/jit/arm/md.h Mon Aug 18 16:03:26 2008 -0400
++++ b/src/vm/jit/arm/md.h Mon Aug 18 16:50:51 2008 +0200
+@@ -68,29 +68,37 @@
+ {
+ uint32_t* pc;
+ uintptr_t pv;
+- uint32_t mcode1, mcode2, mcode3;
++ uint32_t mcode;
++ int mcode_idx;
+
+ pc = (uint32_t*) ra;
+ pv = (uintptr_t) ra;
+
+ /* this can either be a RECOMPUTE_IP in JIT code or a fake in asm_calljavafunction */
+- mcode1 = pc[0];
+- if ((mcode1 & 0xffffff00) == 0xe24fcf00 /*sub ip,pc,#__*/)
+- pv -= (uintptr_t) ((mcode1 & 0x000000ff) << 2);
+- else if ((mcode1 & 0xffffff00) == 0xe24fc000 /*sub ip,pc,#__*/)
+- pv -= (uintptr_t) (mcode1 & 0x000000ff);
++ mcode_idx = 0;
++ mcode = pc[0];
++
++ /* if this was shifted by 18 bits, we have to load additional instructions */
++ if ((mcode & 0xfff0ff00) == 0xe240c700 /*sub ip,??,#__*/) {
++ pv -= (uintptr_t) ((mcode & 0x000000ff) << 18);
++ mcode = pc[++mcode_idx];
++ }
++
++ /* if this was shifted by 10 bits, we have to load additional instructions */
++ if ((mcode & 0xfff0ff00) == 0xe240cb00 /*sub ip,??,#__*/) {
++ pv -= (uintptr_t) ((mcode & 0x000000ff) << 10);
++ mcode = pc[++mcode_idx];
++ }
++
++ /* this is the default path with just one instruction, shifted by 2 or no bits */
++ if ((mcode & 0xfff0ff00) == 0xe240cf00 /*sub ip,??,#__*/)
++ pv -= (uintptr_t) ((mcode & 0x000000ff) << 2);
++ else if ((mcode & 0xffffff00) == 0xe24fc000 /*sub ip,pc,#__*/)
++ pv -= (uintptr_t) (mcode & 0x000000ff);
+ else {
+ /* if this happens, we got an unexpected instruction at (*ra) */
+- vm_abort("Unable to find method: %p (instr=%x)", ra, mcode1);
++ vm_abort("Unable to find method: %p (instr=%x)", ra, mcode);
+ }
+-
+- /* if we have a RECOMPUTE_IP there can be more than one instruction */
+- mcode2 = pc[1];
+- mcode3 = pc[2];
+- if ((mcode2 & 0xffffff00) == 0xe24ccb00 /*sub ip,ip,#__*/)
+- pv -= (uintptr_t) ((mcode2 & 0x000000ff) << 10);
+- if ((mcode3 & 0xffffff00) == 0xe24cc700 /*sub ip,ip,#__*/)
+- pv -= (uintptr_t) ((mcode3 & 0x000000ff) << 18);
+
+ /* we used PC-relative adressing; but now it is LR-relative */
+ pv += 8;
+