
5 Oct
2009
5 Oct
'09
4:40 p.m.
On Mon, 5 Oct 2009 09:30:54 -0500 Andrew Dyer amdyer@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