[Bug target/41077] [avr] excessive prologue/epilogue for interrupt handler

hutchinsonandy at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Nov 26 17:12:00 GMT 2009



------- Comment #1 from hutchinsonandy at gcc dot gnu dot org  2009-11-26 17:12 -------
R1 and R0 are used at assembler level outside of compiler scope.
R1 is always expected to contain as a zero value - to avoid using a register to
load this common value. R1 maybe used in assembler for other purposes - but
must be restored to zero.

R0 is used as a temporary - to get around awkward situation created by compiler
like a = *a;

Thus any ISR will always save these values - and clear r1. Gcc cannot "see"
either r1 or r0 or otherwise track usage.


While we may debate the merits of this approach. It has been this way from day
one and will not change.

:-(


-- 

hutchinsonandy at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41077



More information about the Gcc-bugs mailing list