summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/lh7a40x
diff options
context:
space:
mode:
authorVitaly Kuzmichev <vkuzmichev@mvista.com>2010-06-15 18:18:11 (GMT)
committerWolfgang Denk <wd@denx.de>2010-06-22 19:41:06 (GMT)
commit1a27f7d9c27671e7ae3cd0a3ee316149fa0824dc (patch)
tree4956c3b08860ad3467ac68d51ec2d2c1f190ab6d /arch/arm/cpu/lh7a40x
parent96b35730a43160afa025ac405961737dbb0682b4 (diff)
downloadu-boot-fsl-qoriq-1a27f7d9c27671e7ae3cd0a3ee316149fa0824dc.tar.xz
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/lh7a40x')
-rw-r--r--arch/arm/cpu/lh7a40x/start.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/cpu/lh7a40x/start.S b/arch/arm/cpu/lh7a40x/start.S
index a1321b1..14a1fbe 100644
--- a/arch/arm/cpu/lh7a40x/start.S
+++ b/arch/arm/cpu/lh7a40x/start.S
@@ -178,6 +178,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 */