------- 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

Reply via email to