From 1a1a151c481c072f9b880ffc73339cd425382e25 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Thu, 28 Jul 2011 19:50:28 +0000 Subject: 2011-27-28 Till Straumann * start/start.S: Align stack and tag TOS with a NULL pointer (help terminate when walking the stack). --- c/src/lib/libbsp/powerpc/qemuppc/ChangeLog | 5 +++++ c/src/lib/libbsp/powerpc/qemuppc/start/start.S | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog b/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog index 9c0da4ebae..0d015e48fb 100644 --- a/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog @@ -1,3 +1,8 @@ +2011-27-28 Till Straumann + + * start/start.S: Align stack and tag TOS with a NULL + pointer (help terminate when walking the stack). + 2011-06-18 Ralf Corsépius * Makefile.am: Remove references to non-existing files. diff --git a/c/src/lib/libbsp/powerpc/qemuppc/start/start.S b/c/src/lib/libbsp/powerpc/qemuppc/start/start.S index 5fe24b82b9..55f4076b14 100644 --- a/c/src/lib/libbsp/powerpc/qemuppc/start/start.S +++ b/c/src/lib/libbsp/powerpc/qemuppc/start/start.S @@ -1,12 +1,24 @@ +#include +#include + +#include + #.section ".text" .section .entry_point_section,"awx",@progbits .global _start _start: - lis %r1,_stack@h - ori %r1,%r1,_stack@l - li %r3,8192 - mtmsr %r3 + lis %r1,_stack@h + ori %r1,%r1,_stack@l + /* Make sure stack is properly aligned */ + li %r3, CPU_STACK_ALIGNMENT - 1 + andc %r1, %r1, %r3 + /* NULL ptr to back chain */ + li %r3, 0 + stw %r3, 0(%r1) + + li %r3,8192 + mtmsr %r3 /* Read-only small data */ lis %r2, _SDA2_BASE_@h -- cgit v1.2.3