[kaffe] Re: kaffe for m68k/linux and m68k/netbsd
Dalibor Topic
robilad at kaffe.org
Wed May 19 03:18:05 PDT 2004
Hi Kiyo,
Kiyo Inaba wrote:
> For m68k/NetBSD, I found one fuzz which makes jit does not work.
>
> In 'config/m68k/jit.h', the struct methodTrampoline looks like
> ------------------------------------------------------------------
> typedef struct _methodTrampoline {
> unsigned short call;
> int fixup;
> struct _methods* meth;
> void** where;
> } methodTrampoline;
> ------------------------------------------------------------------
>
> And this declaration is OK for (at least) woody but not good for
> recent versions of NetBSD. The gcc on NetBSD tries to keep 4 bytes
> alignment for 'short' values.
> # BTW, fixup is the argument of call and should not have any pads.
>
> Trivial fix for this is something like,
> ------------------------------------------------------------------
> typedef struct _methodTrampoline {
> unsigned short call;
> int fixup __attribute__ ((packed));
> struct _methods* meth;
> void** where;
> } methodTrampoline;
> ------------------------------------------------------------------
Thanks a lot for spotting this one. I'll check in the fix.
> I am wondering when the behavier was changed on NetBSD, since I remember
> at least once the original code worked.
the definition of fixup in jit.h has stayed the same since it was
included, as far as I can see at
http://www.kaffe.org/cgi-bin/viewcvs.cgi/kaffe/config/m68k/jit.h?annotate=1.13
cheers,
dalibor topic
More information about the kaffe
mailing list