aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-07-15 17:49:41 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-07-15 17:49:41 +0000
commitd08c6f4c111d513c5090c40826f00eb31d7fa8a5 (patch)
treed02236c41ab88eb406bd62fe6c6c17b0440f2c31 /gdb
parent5ac7f56ee841f67ede27213a2e17f6109b049eb0 (diff)
downloadgdb-d08c6f4c111d513c5090c40826f00eb31d7fa8a5.zip
gdb-d08c6f4c111d513c5090c40826f00eb31d7fa8a5.tar.gz
gdb-d08c6f4c111d513c5090c40826f00eb31d7fa8a5.tar.bz2
* hppa-tdep.c (pc_in_linker_stub): New function.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/hppa-tdep.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index d72e831..6d3929e 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -304,10 +304,20 @@ static int
pc_in_linker_stub (pc)
CORE_ADDR pc;
{
-
int found_magic_instruction = 0;
int i;
+ /* We are looking for something like
+
+ ; $$dyncall jams RP into this special spot in the frame (RP')
+ ; before calling the "call stub"
+ ldw -18(sp),rp
+
+ ldsid (rp),r1 ; Get space associated with RP into r1
+ mtsp r1,sp ; Move it into space register 0
+ be,n 0(sr0),rp) ; back to your regularly scheduled program
+ */
+
/* Maximum known linker stub size is 4 instructions. Search forward
from the given PC, then backward. */
for (i = 0; i < 4; i++)