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: