Questions about trampolines

Robert Dewar dewar@adacore.com
Mon Mar 14 18:15:00 GMT 2005


E. Weddington wrote:

> Basically, trampolines don't work for the AVR because it is a Harvard 
> Architecture device.

Nearly all the processors on which trampolines are implemented are
Harvard architecture, it's really standard these days. That means that
cache flushing is a standard part of implementation of trampolines on
many systems, even I believe requiring system calls in some cases, and
yes, this is horribly expensive!

> Any alternatives that would work for Harvard Architecture devices such 
> as the AVR would be welcome.

There are no alternatives that do not have an overhead in the case where
pointers to nested functions are *not* used, which seems unacceptable in
C. You could introduce some kind of pragma for a special kind of pointer
I suppose, but it seems the feature is so little used in C that this would
be overkill.



More information about the Gcc mailing list