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