Questions about trampolines

Robert Dewar dewar@adacore.com
Wed Mar 16 21:58:00 GMT 2005


Joern RENNECKE wrote:

> In a single-threaded environment, you treat the trampoline pool as a 
> stack, and
> when you allocate a new one, check first if there are any trampolines 
> left at the
> top that have a static chain pointer that points into deallocated data 
> stack.

Yes, but that avoids the difficulty, that's obvious so far.

The problem is to know exactly when to pop the stack, and that is
not trivial (longjmp, exceptions, non local gotos).
> 
> In (possibly) multithreaded environments, you could treat the 
> trampolines as objects
> with a destructor.  Exception handling already knows how to call 
> destructors while
> unwinding the stack.
>  

That's possible but expensive




More information about the Gcc mailing list