Trampolines in the Kaffe JIT Compiler

Samuel Sanseri sanseri at cs.pdx.edu
Tue Feb 29 11:46:08 PST 2000



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 mailing list