"Stu Bell" wrote: > Hi all, > > I'm chasing down a problem with WinAVR 20080430 and my ATmega2560 code. > In generated code comparisons of an ISR between 20071221 and 20080430, I > noticed that r30 and r31 are not saved on the stack. Normally, this > wouldn't be a problem as the ISR itself does not use r30/r31. > > However, this ISR calls a function that does use r30/r31. Again, it > *should* be no problem, since the function has the responsibility to > stor r30/r31 if it uses it.
It is the callers responsibility to save r30 and r31 registers if they are needed across a function call. At least that is my reading of the following FAQ. http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_reg_usage I admit I do not know what is supposed to happen if an ISR is using a call-used register. -Preston _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list