[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [avr-gcc-list] Can functions modify register 'r0' or not?

From: Stu Bell
Subject: RE: [avr-gcc-list] Can functions modify register 'r0' or not?
Date: Tue, 18 Aug 2009 08:09:27 -0600

AVR-LibC FAQ #13:

R0 is a temp register, available for use in any function.  The compiler
gurus will know if it needs to be pushed at the beginning of the
function and restored at the end.

My guess is that you are doing something funky with an Interrupt Service
Routine, but that's just a guess.  Perhaps you can post the code you
think is bad.

Best regards, 

Stu Bell 
DataPlay (DPHI, Inc.) 


> -----Original Message-----
> On Behalf Of address@hidden
> Hi all,
> In my code, I found that the global interrupts is disabled 
> after one function is called. By reading the assembly code I 
> found that this function uses register 'r0' to save the 
> global interrupts in the prologue and restore it in the end.  
> One of the functions been called in this function modified 
> the register 'r0' and caused this problem.
> I wonder whether or 'r0' can be clobbered in functions. If 
> so, why register 'r0' is used to save the global interrupts 
> in that function.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]