From b6e3ee54231a23b1418b316ea44237e349f4a370 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Thu, 3 Nov 2005 22:13:43 +0000 Subject: 2005-11-03 straumanatslacdotstanforddotedu * shared/vectors/vectors.S: when returning from an exception, reload stack pointer with value from exception frame instead of adding a fixed value. -- maybe the exception handler modified the frame with good reason (e.g., gdb pushed a dummy frame). --- c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S index 8d5c76521d..6eee3f7136 100644 --- a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S +++ b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S @@ -152,6 +152,10 @@ SYM (push_normalized_frame): mtsrr0 r3 lwz r3, GPR3_OFFSET(r1) - addi r1,r1, EXCEPTION_FRAME_END + /* DONT add back the frame size but reload the value + * stored in the frame -- maybe the exception handler + * changed it with good reason (e.g., gdb pushed a dummy frame) + */ + lwz r1, GPR1_OFFSET(r1) SYNC rfi -- cgit v1.2.3