Trampolines in the Kaffe JIT Compiler
gback at cs.utah.edu
Tue Feb 29 13:36:27 PST 2000
That's great. I think Tim has someone redesign the kaffe.org website,
and I'm sure this could be included or at least linked to.
Only problem I have is that it describes the old, broken form of
trampolines. The fixed trampolines I put in last year take an additional
parameter for what I call the anchor of the trampoline ("w" or `where'.)
In general, please always date your paper and say to which versions of the
software you're describing the information applies.
> On the Kaffe website, particularly in relation to porting Kaffe to new
> architectures, it states "that documentation would be welcome here."
> I have documented the trampoline system of the Kaffe JIT compiler in a
> document entitled "Trampolines in the Kaffe JIT Compiler." Please see
> the abstract below. I think this paper will help others who are porting
> Kaffe to rapidly learn this element of Kaffe's JIT compiler.
> Abstract: Trampolines are springboards for just-in-time (JIT) compilation.
> Every time a method is invoked, the caller looks in a dispatch table for
> the address of the method's native code. If the method has not been
> translated yet, the dispatch table entry points to the method's trampoline
> function. When invoked, the trampoline function invokes the translator for
> the method and fixes up the dispatch table to point to the newly-loaded
> native code. This paper explains how trampolines work and describes the
> requirements for implementing trampolines when porting Kaffe. Detailed
> case studies are given of how the trampoline systems in the SPARC and i386
> architectures meet these requirements.
> The paper is found on my kaffe page in HTML format.
> I would appreciate comments on this document. Please feel free to post
> a copy of this paper or a link to it on the Kaffe website. Hope it helps.
> Samuel Sanseri
> Computer Science Graduate Research Assistant
> Portland State University
> sanseri at cs.pdx.edu
More information about the kaffe