avr-gcc-list
[Top][All Lists]
Advanced

[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:
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_reg_usage

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




reply via email to

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