[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: java support



On Thu, Aug 22, 2002 at 07:23:34PM -0400, R.A. wrote:
> How's the support for the java sdk (or any compiler, like jikes) on 
> m68k? is it available? how does it perform?

I have done some little testing of gcj and kaffe. gcj should work
out of the box with gcc-3.2 release but doesn't have complete
library support.
Kaffe 1.06 required appended patch, didn't check if it was accepted
for 1.0.7 yet. It did feel pretty sluggish on a 68060 but that may 
have been because of a gcc issue with long long arithmetic on this
CPU.


Richard


--- kaffe-1.0.6/config/m68k/jit.h.rz	Mon Oct 18 07:14:27 1999
+++ kaffe-1.0.6/config/m68k/jit.h	Fri Dec 28 22:12:04 2001
@@ -61,19 +61,22 @@
         unsigned short call;
 	int fixup;
 	struct _methods* meth;
+	void** where;
 } methodTrampoline;
 
 extern void m68k_do_fixup_trampoline(void);
 
-#define FILL_IN_TRAMPOLINE(t,m)                                         \
+#define FILL_IN_TRAMPOLINE(t,m,w)                                         \
         do {                                                            \
                 (t)->call = 0x4eb9;	/* jsr abs.l */			\
                 (t)->fixup = (int)m68k_do_fixup_trampoline;		\
                 (t)->meth = (m);                                        \
+                (t)->where = (w);                                        \
         } while (0)
 
-#define FIXUP_TRAMPOLINE_DECL   Method** _pmeth
-#define FIXUP_TRAMPOLINE_INIT   (meth = *_pmeth)
+#define FIXUP_TRAMPOLINE_DECL   void** _data
+#define FIXUP_TRAMPOLINE_INIT  	(meth = (Method*)_data[0], \
+				 where = (void**)_data[1]) 
 
 /**/
 /* Register management information. */
--- kaffe-1.0.6/config/m68k/jit-m68k.def.rz	Mon Oct 11 19:46:53 1999
+++ kaffe-1.0.6/config/m68k/jit-m68k.def	Fri Dec 28 22:10:24 2001
@@ -290,15 +290,16 @@
 	debug(("cmpl %s, %s\n", regname(src1), regname(src2)));
 	assert_areg(src1);
 	assert_areg(src2);
+	/* src2 should be &7 but the next bit is set anyway */
 	WOUT = 0xB1C0 | (src2 << 9) | (MODE_a << 3) | (src1 & 7);
 }
 
 static inline void
 op_cmpil_ia(int imm, int src2)
 {
-	debug(("cmpil #%d, %s\n", imm, regname(src2)));
+	debug(("cmpal #%d, %s\n", imm, regname(src2)));
 	assert_areg(src2);
-	WOUT = 0x0C80 | (MODE_a << 3) | (src2 & 7);
+	WOUT = 0xb000 | 0x3c /* MODE_src_imm */ | 0x1c0 /* long */ | ((src2 & 7)<<9);
 	LOUT = imm;
 }
 
--- kaffe-1.0.6/config/m68k/jit3-m68k.def.rz	Fri Dec 28 21:03:39 2001
+++ kaffe-1.0.6/config/m68k/jit3-m68k.def	Fri Dec 28 22:07:52 2001
@@ -361,15 +361,17 @@
 	debug(("cmpl %s, %s\n", regname(src1), regname(src2)));
 	assert_areg(src1);
 	assert_areg(src2);
+	/* src2 should be &7 but the next bit is set anyway */
 	WOUT = 0xB1C0 | (src2 << 9) | (MODE_a << 3) | (src1 & 7);
 }
 
 static inline void
 op_cmpil_ia(int imm, int src2)
 {
+	long geni;
 	debug(("cmpil #%d, %s\n", imm, regname(src2)));
 	assert_areg(src2);
-	WOUT = 0x0C80 | (MODE_a << 3) | (src2 & 7);
+	WOUT = 0xb000 | 0x3c /* MODE_src_imm */ | 0x1c0 /* long */ | ((src2 & 7)<<9);
 	LOUT = imm;
 }
 
--- kaffe-1.0.6/kaffe/scripts/kaffe.in.rz	Sun Oct 17 07:45:25 1999
+++ kaffe-1.0.6/kaffe/scripts/kaffe.in	Fri Dec 28 20:01:35 2001
@@ -88,7 +88,7 @@
 	} >/tmp/.gdbinit.$$
 	exec "$KAFFE_DEBUG" -command /tmp/.gdbinit.$$ $KAFFE_LIBEXECDIR/@Kaffe_TRANSF@
 	rm -f /tmp/.gdbinit.$$;;
-    DDD*)
+    *DDD*)
 	# Tell DDD to start gdb within the correct working directory,
 	# and set up the specified argument list
 	{



Reply to: