[kaffe] JIT3 on M68k Platform (Amiga/Linux)
wyattaw at optushome.com.au
Thu May 8 04:41:01 PDT 2003
I thought this little gem should be shared with other M68k owners. There was
only one big problem that made the JIT3 crash on the Amiga and native m68k
Linux on my machine, and this patch fixes it.
Dalibor, I am including this for the "generic" m68k version of
"jit3-m68k.def". Later I shall produce an Amiga-specfic version.
The patch deletes the "restore registers" instruction from the "eprolog"
instruction sequence. This sequence was only executed during an exception,
and caused havoc when it "restored" rubbish into perfectly good registers,
some with return addresses in them. The "restoration" was unnecessary anyway,
so I have deleted it altogether. JIT3 now runs as well as JIT1 on both the
Amiga and Debian running natively on my m68k platform.
I still have problems with floating point in both jitters, and I am just
about to address that problem.
-------------- next part --------------
--- /Distributions/kaffe/kaffe-1.0.7/config/m68k/jit3-m68k.def Mon Jun 18 02:39:10 2001
+++ /kaffe/config/m68k/jit3-m68k.def Thu May 8 21:30:04 2003
@@ -1318,11 +1318,15 @@
l->at = (uintp)CODEPC+2;
+#if (0) // don't destroy our good registers
op_subaw_ia(SRNR * SLOTSIZE, REG_a0);
op_subal_ia(SRNR * SLOTSIZE, REG_a0);
+#endif // end no-oped section
More information about the kaffe