diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-07-15 17:49:41 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-07-15 17:49:41 +0000 |
commit | d08c6f4c111d513c5090c40826f00eb31d7fa8a5 (patch) | |
tree | d02236c41ab88eb406bd62fe6c6c17b0440f2c31 /gdb/hppa-tdep.c | |
parent | 5ac7f56ee841f67ede27213a2e17f6109b049eb0 (diff) | |
download | gdb-d08c6f4c111d513c5090c40826f00eb31d7fa8a5.zip gdb-d08c6f4c111d513c5090c40826f00eb31d7fa8a5.tar.gz gdb-d08c6f4c111d513c5090c40826f00eb31d7fa8a5.tar.bz2 |
* hppa-tdep.c (pc_in_linker_stub): New function.
Diffstat (limited to 'gdb/hppa-tdep.c')
-rw-r--r-- | gdb/hppa-tdep.c | 12 |
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++) |