|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
Can functions modify register 'r0' or not?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 _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
|
|
|
RE: Can functions modify register 'r0' or not?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 xiaonanln@... > > 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 _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
|
|
|
Re: Can functions modify register 'r0' or not? r0 is scratch register. Only ISR have to save it - since it may interrupt usage as scratch.
Normal functions or inline assembler do not r0 contents. The contents of r0 are not assumed to remain outside a single RTL statement (-which ultimately translates to 1 or more assembly instructions). So the lifetime of r0 is quite limited. If r0 is used in assembler, the code must be in one block. Otherwise intervening C RTL may well overwrite it. Interrupts are pushed on stack by prolog and restored afterwards. r0 is used as temporary for this process. That is to avoid using some other register that would then need to be saved prior to use. Andy ----------------------------------------------
Sent from my Dingleberry wired device. From: Stu Bell <sbell@...> To: xiaonanln@...; avr-gcc-list <avr-gcc-list@...> Sent: Tue, Aug 18, 2009 10:09 am Subject: RE: [avr-gcc-list] Can functions modify register 'r0' or not? AVR-LibC FAQ #13: _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
|
|
|
Xmega support
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
|
|
|
Re: Xmega supportThis message got buried in a thread, because you used a reply to a previous message from the list.
It's poor manners to hijack threads, and can cause some users not to reply. not much in terms of help though, writing up a quick, complete test case may help us help you. is globalbuf accessed anywhere in the ISR functions?? Steve On Aug 19, 2009, at 4:02 AM, Parthasaradhi Nayani wrote:
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
|
|
|
Re: Xmega supportOn Wed, Aug 19, 2009 at 02:23:10PM -0700, Steven Michalske wrote:
> This message got buried in a thread, because you used a reply to a > previous message from the list. > > It's poor manners to hijack threads, and can cause some users not to > reply. Same applies to top-post without trim. -- David Kelly N4HHE, dkelly@... ======================================================================== Whom computers would destroy, they must first drive mad. _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
|
|
|
Re: Xmega support
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@... http://lists.nongnu.org/mailman/listinfo/avr-gcc-list |
| Free embeddable forum powered by Nabble | Forum Help |