public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] ARM1136: Align stack to 8 bytes
@ 2010-06-15 10:52 Vitaly Kuzmichev
  2010-06-15 11:16 ` Martin Krause
  0 siblings, 1 reply; 7+ messages in thread
From: Vitaly Kuzmichev @ 2010-06-15 10:52 UTC (permalink / raw)
  To: u-boot

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 further 'push' into the stack
overwrites first 4 bytes of VLA.

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
Signed-off-by: George G. Davis <gdavis@mvista.com>
---
 arch/arm/cpu/arm1136/start.S |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
index 957f438..d0c5717 100644
--- a/arch/arm/cpu/arm1136/start.S
+++ b/arch/arm/cpu/arm1136/start.S
@@ -185,6 +185,7 @@ stack_setup:
 #endif
 	sub	sp, r0, #12		/* leave 3 words for abort-stack    */
 #endif	/* CONFIG_PRELOADER */
+	bic	sp, sp, #7		/* 8-byte alignment                 */
 
 clear_bss:
 	ldr	r0, _bss_start		/* find start of bss segment	    */
-- 
1.6.2.3.127.gb136

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-07-05  8:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-15 10:52 [U-Boot] [PATCH] ARM1136: Align stack to 8 bytes Vitaly Kuzmichev
2010-06-15 11:16 ` Martin Krause
2010-06-15 13:16   ` Vitaly Kuzmichev
2010-06-15 18:18     ` [U-Boot] [PATCH v2] ARM: " Vitaly Kuzmichev
2010-06-22 14:47       ` Vitaly Kuzmichev
2010-06-22 20:20       ` Wolfgang Denk
2010-07-05  8:56         ` Minkyu Kang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox