ソースを参照

powerpc: Stack Pointer not properly aligned

The code first aligns the SP to 16 then subtract 8, making it
8 bytes aligned. Furthermore the initial stack frame not
quite correct either.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Joakim Tjernlund 12 年 前
コミット
7de8a7169e
1 ファイル変更2 行追加3 行削除
  1. 2 3
      arch/powerpc/lib/board.c

+ 2 - 3
arch/powerpc/lib/board.c

@@ -521,9 +521,8 @@ void board_init_f(ulong bootflag)
 	addr_sp -= 16;
 	addr_sp -= 16;
 	addr_sp &= ~0xF;
 	addr_sp &= ~0xF;
 	s = (ulong *) addr_sp;
 	s = (ulong *) addr_sp;
-	*s-- = 0;
-	*s-- = 0;
-	addr_sp = (ulong) s;
+	*s = 0; /* Terminate back chain */
+	*++s = 0; /* NULL return address */
 	debug("Stack Pointer at: %08lx\n", addr_sp);
 	debug("Stack Pointer at: %08lx\n", addr_sp);
 
 
 	/*
 	/*