[Top][All Lists]

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

RE: [avr-gcc-list] Re: [avr-libc-dev] [bug #29774] prologue/epilogue sta

From: Stu Bell
Subject: RE: [avr-gcc-list] Re: [avr-libc-dev] [bug #29774] prologue/epilogue stack pointer manipulation not interrupt safe in XMega
Date: Tue, 8 Jun 2010 12:22:56 -0600

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

reply via email to

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