Hi Wolfgang, On Fri, 29 Nov 2013 07:14:13 +0100, Wolfgang Denk <w...@denx.de> wrote:
> Dear Tom Rini, > > In message <1385580930-9830-1-git-send-email-tr...@ti.com> you wrote: > > The code in arch/arm/lib/board.c::board_init_f that sets > > gd->start_addr_sp has already make sure we're 8-byte aligned, so we > > don't need to do that again. > > > > Cc: Albert ARIBAUD <albert.u.b...@aribaud.net> > > Signed-off-by: Tom Rini <tr...@ti.com> > > --- > > arch/arm/lib/crt0.S | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S > > index ac54b93..6b5ec01 100644 > > --- a/arch/arm/lib/crt0.S > > +++ b/arch/arm/lib/crt0.S > > @@ -82,7 +82,6 @@ ENTRY(_main) > > */ > > > > ldr sp, [r9, #GD_START_ADDR_SP] /* sp = gd->start_addr_sp */ > > - bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ > > ldr r9, [r9, #GD_BD] /* r9 = gd->bd */ > > sub r9, r9, #GD_SIZE /* new GD is below bd */ > > I recommend to keep this instruction. It's just a bit of defensive > programming, and removing it does not save any measurable amount of > memory footprint nor execution time. I would even go further: it is the setting of SP in C code which should not be kept. I doubt the C specification mentions what should / might happen when changing the stack pointer on the fly in code which might need the stack at any point. > Best regards, > > Wolfgang Denk Amicalement, -- Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot