Explanation for trampolines
Alexandre Oliva
oliva at dcc.unicamp.br
Mon Sep 14 01:40:56 PDT 1998
Senthil Kumar <skumars at earthlink.net> writes:
> Can anyone give me a brief explanation of this
> trampoline stuff that is used in kaffe.
Trampolines are a useful concept for setting a pointer to a function
that will be generated on demand. When Kaffe (JIT) loads a class, it
creates a trampoline for each method. Whenever this trampoline is
invoked, it calls a regular function that finds out which method the
trampoline refers to, and invokes the JIT compiler to generate the
method. Then, when the compiler returns, some processor-dependent
magic obtains the address of the newly compiled method and invokes it,
as if it had been invoked in the first place.
It's a nice trick that avoids having to check whether a method has
been compiled already every time you have to call it, and does not
require you to tweak with page faults.
--
Alexandre Oliva
mailto:oliva at dcc.unicamp.br mailto:aoliva at acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil
More information about the kaffe
mailing list