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 {