> > > There are several places that handle SP adjustment: > > > > avr.c: output_movhi, expand_prologue, expand_epilogue > > avr.md: movhi_sp_r_irq_off, movhi_sp_r_irq_on (both generated in > > epilogue/prologue) > > libgcc.S: __prologue_saves__, __epilogue_restores__ > > > > For changes in libgcc.S to take effect, appropriate builtin-defines > > must be provided so that the right multilib variants will > be generated. > > When I was patching my libgcc.a for the avrxmega7 lib, the > only place that I saw, that turned off the IRQs were the > epilogue/prologue. > Is there some reason they don't need turned off in the other contexts? > Seems like such a problem would have shown up long before now?
Do you mean on entry/exit to ISRs? Surely you wouldn't want to do that in generic prologue/epilogue code, right? On ISRs, the processor itself takes care of turning off the appropriate level of interrupts, and the RETI turns them back on. (And, yes, I know: stop calling you Shirley.) Best regards, Stu Bell DataPlay (DPHI, Inc.) _______________________________________________ AVR-libc-dev mailing list AVR-libc-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-libc-dev