JIT on m68k?

Richard Henderson richard at atheist.tamu.edu
Sat Feb 22 16:21:02 PST 1997

> First the good news - I managed to run HelloWorldApp :-)
> It took some time to get it working - you assume that a6 is the frame
> pointer, but it is a5 on the amiga...

How odd.  I knew about the differences in returning pointers, but
I never dreamed the frmae pointer was different.

> But I have another problem, which is related to the interpreter as well:
> On the Amiga I have no way to detect NULL-pointer accesses.
> Do you have any clue?

Look at the beginning of kaffe.def.  There is a CHECK_NULL define
that is used throughout the insn definitions, except that it is
only used if HAVE_NULLPOINTER_TRAP is defined.  Presumably md.h 
would be the right place to put that.

> I have not found *any* way the softcall_xxx instructions are called (soft.c).
> How are calls to them generated?

You mean how the soft_* bits are called?  They are emitted as direct 
calls from jit/icode.c's softcall_*.

> I don't understand your assembler syntax, and gcc does not understand it as
> well, at least when *I* code like you...
> I only know the (modern) syntax
>    "move.l d0, d1"
> but not your
>    "move%.l %/d0,%/d1"
> What is the meaning of this ambigous '%'??

What version of gcc are you using? 

The "%." conditionally expands to ".", and the "%/" conditionally expands
to "%", depending on the base assembler syntax.  Using them can get you
most of the way to portability across AT&T, MOT and MIT syntaxes.


More information about the kaffe mailing list