[kaffe] trampoline handling

Helmer Krämer hkraemer at freenet.de
Mon Aug 9 04:20:19 PDT 2004


On Sun, 08 Aug 2004 11:01:49 +0200
Guilhem Lavaux <guilhem at kaffe.org> wrote:

> Helmer Krämer wrote:
> 
> >Hi,
> >  
> >
> 
> Hi Helmer,
> 
> >the attached patch moves the handling of trampolines and method
> >calls into engine-specific files, thereby further cleaning up
> >the core vm:
> >  
> >
> 
> Great ! :)
> The patch and the new behaviour looks fine to me.

Glad to read that :) I've also fixed the MethodErrors failure now,
so the intrp passes all regression tests when the stack size is
increased somewhat.
 
> I like especially the engine_callMethod. This will potentially enable us 
> to mix jitted and interpreted code by chosing the right callMethod 
> depending on Method (but that's just an idea).

I'm currently thinking about another backend (like intrp_jit) that
would transform the bytecode into another intermediate form that can
be efficiently interpreted (for suitable definitions of "efficient"),
but is also easily translated into assembly. Exactly when a method is
translated into assembly would be decided by some sort of heuristics
and the structure of the method body.

I don't know whether an approach like this makes any sense, but it
will take some time, which makes it a perfect hobby ;)

> I had written for my engine separation patch a small amount of code to 
> remove the ifdef in soft.c concerning soft_multianewarray. This uses 
> sysdepCallMethod that I have chosen at that time to move into its own 
> include file. Here is the code:
> 
> The code is naturally for the intrp... I'll write a patch if I have some 
> time.

Yeah, it's probably best to move the soft_multianewarray out of
soft.c, since every engine seems to have it's own version anyways?!??

Regards,
Helmer




More information about the kaffe mailing list