diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2005-11-03 22:13:43 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2005-11-03 22:13:43 +0000 |
commit | b6e3ee54231a23b1418b316ea44237e349f4a370 (patch) | |
tree | 4e33a73c90ba82d36a8e834dcfdc1a1ba6a4f5a1 | |
parent | 2005-11-03 straumanatslacdotstanforddotedu (diff) | |
download | rtems-b6e3ee54231a23b1418b316ea44237e349f4a370.tar.bz2 |
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).
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 6 |
1 files changed, 5 insertions, 1 deletions
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 |