diff options
| author | Vitaly Kuzmichev <vkuzmichev@mvista.com> | 2010-06-15 22:18:11 +0400 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-06-22 21:41:06 +0200 | 
| commit | 1a27f7d9c27671e7ae3cd0a3ee316149fa0824dc (patch) | |
| tree | 4956c3b08860ad3467ac68d51ec2d2c1f190ab6d /arch/arm/cpu/arm720t/start.S | |
| parent | 96b35730a43160afa025ac405961737dbb0682b4 (diff) | |
| download | olio-uboot-2014.01-1a27f7d9c27671e7ae3cd0a3ee316149fa0824dc.tar.xz olio-uboot-2014.01-1a27f7d9c27671e7ae3cd0a3ee316149fa0824dc.zip | |
ARM: Align stack to 8 bytes
The ARM ABI requires that the stack be aligned to 8 bytes as it is noted
in Procedure Call Standard for the ARM Architecture:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/index.html
Unaligned SP also causes the problem with variable-length arrays
allocation when VLA address becomes less than stack pointer during
aligning of this address, so the next 'push' in the stack overwrites
first 4 bytes of VLA.
Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
Diffstat (limited to 'arch/arm/cpu/arm720t/start.S')
| -rw-r--r-- | arch/arm/cpu/arm720t/start.S | 1 | 
1 files changed, 1 insertions, 0 deletions
| diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S index 022b873e3..d6f2c165c 100644 --- a/arch/arm/cpu/arm720t/start.S +++ b/arch/arm/cpu/arm720t/start.S @@ -172,6 +172,7 @@ stack_setup:  	sub	r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)  #endif  	sub	sp, r0, #12		/* leave 3 words for abort-stack    */ +	bic	sp, sp, #7		/* 8-byte alignment for ABI compliance */  clear_bss:  	ldr	r0, _bss_start		/* find start of bss segment	    */ |