diff options
author | Stu Grossman <grossman@cygnus> | 1993-09-16 19:16:19 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1993-09-16 19:16:19 +0000 |
commit | f2e21136eb745bec07065e7bb95fb971b7bb5f07 (patch) | |
tree | a5375fa0da88f84c3f07475562c6551c3065f356 | |
parent | 13998021224dd1c88142928ffa39cd94cd134f76 (diff) | |
download | gdb-f2e21136eb745bec07065e7bb95fb971b7bb5f07.zip gdb-f2e21136eb745bec07065e7bb95fb971b7bb5f07.tar.gz gdb-f2e21136eb745bec07065e7bb95fb971b7bb5f07.tar.bz2 |
* sparc-stub.c (_trap_low): Do restore/save sequence after
setting sp to ensure that we load the previous window from the
right place on the stack.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/sparc-stub.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 004cf58..a452fd7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Thu Sep 16 12:12:59 1993 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c (_trap_low): Do restore/save sequence after + setting sp to ensure that we load the previous window from the + right place on the stack. + Thu Sep 16 00:36:32 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) * mipsread.c: Many changes for alpha ecoff format: diff --git a/gdb/sparc-stub.c b/gdb/sparc-stub.c index 2688b42..689282a 100644 --- a/gdb/sparc-stub.c +++ b/gdb/sparc-stub.c @@ -220,9 +220,6 @@ recursive_trap: call _handle_exception add %sp, 24 * 4, %o0 ! Pass address of registers - restore ! Ensure that previous window is valid - save %g0, %g0, %g0 ! by causing a window_underflow trap - ! Reload all of the registers that aren't on the stack ld [%sp + (24 + 1) * 4], %g1 ! registers[Gx] @@ -237,6 +234,10 @@ recursive_trap: ldd [%sp + (24 + 64) * 4], %l0 ! Y & PSR ldd [%sp + (24 + 68) * 4], %l2 ! PC & NPC + + restore ! Ensure that previous window is valid + save %g0, %g0, %g0 ! by causing a window_underflow trap + mov %l0, %y mov %l1, %psr ! Make sure that traps are disabled ! for rett |