Trampolines in the Kaffe JIT Compiler
sanseri at cs.pdx.edu
Tue Feb 29 16:17:22 PST 2000
Thanks for the feedback. I have added the last-update date and version
number of Kaffe to the document. This document was released today and
was intended to describe Kaffe release 1.0.5. I would like to make this
paper up-to-date, but I have not seen the anchor mentioned. Could you
give me a code location (and example architecture if this part of the
trampoline is architecture-dependent) for where to get started?
Also, I believe the case studies in the document are accurate at least to
the last release 1.0.5 of SPARC and i386. Does this mean that the code for
SPARC and i386 is broken, or am I misunderstanding something? If still
broken, how severe is this? Would it be worth fixing on SPARC and/or
i386? Thanks again.
> 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.
> - Godmar
> > 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.
> > http://www.cs.pdx.edu/~sanseri/kaffe/k2.html
> > 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.
> > Regards,
> > Samuel Sanseri
> > Computer Science Graduate Research Assistant
> > Portland State University
> > sanseri at cs.pdx.edu
More information about the kaffe