[U-Boot] [PATCH] arm926ejs: 16-byte align stack to avoid LDRD/STRD problems
Simon Kagstrom
simon.kagstrom at netinsight.net
Mon Oct 5 16:40:54 CEST 2009
On Mon, 5 Oct 2009 09:30:54 -0500
Andrew Dyer <amdyer at gmail.com> wrote:
> > sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
> > #endif
> > - sub sp, r0, #12 /* leave 3 words for abort-stack */
> > + sub sp, r0, #16 /* leave 3 words for abort-stack and */
> > + /* align stack for ldrd/strd */
>
> This doesn't guarantee an alignment. Right above this code is a
> series of subtractions by constants, any one of which could throw the
> alignment out of whack and be difficult to figure out.
>
> IMHO it's much safer to do the subtraction to R0, then mask the bottom
> address bits out to guarantee alignment, then stuff the results into
> sp.
Right, new patch coming up.
Thanks,
// Simon
More information about the U-Boot
mailing list