diff options
author | Mark Kettenis <kettenis@gnu.org> | 2001-04-17 23:20:55 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2001-04-17 23:20:55 +0000 |
commit | ed84f6c14944278d643810232ce167b2f0c99fea (patch) | |
tree | 1b98b343c54a2395c892c840bb94e217032a1cc6 | |
parent | 514e603dc095d50008d671e6d7bbe0e975fc2aaa (diff) | |
download | gdb-ed84f6c14944278d643810232ce167b2f0c99fea.zip gdb-ed84f6c14944278d643810232ce167b2f0c99fea.tar.gz gdb-ed84f6c14944278d643810232ce167b2f0c99fea.tar.bz2 |
* i386-tdep.c (i386_saved_pc_after_call): New function.
* config/i386/tm-i386.h (SAVED_PC_AFTER_CALL): Redefine in terms
of i386_saved_pc_after_call.
(i386_saved_pc_after_call): New prototype.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/config/i386/tm-i386.h | 8 | ||||
-rw-r--r-- | gdb/i386-tdep.c | 8 |
3 files changed, 18 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f95d737..3377633 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2001-04-18 Mark Kettenis <kettenis@gnu.org> + + * i386-tdep.c (i386_saved_pc_after_call): New function. + * config/i386/tm-i386.h (SAVED_PC_AFTER_CALL): Redefine in terms + of i386_saved_pc_after_call. + (i386_saved_pc_after_call): New prototype. + 2001-04-16 Andrew Cagney <ac131313@redhat.com> * configure.host (m68030-sony-*, m68*-isi-*, m68*-sony-*): diff --git a/gdb/config/i386/tm-i386.h b/gdb/config/i386/tm-i386.h index 8370441..c4b64a5 100644 --- a/gdb/config/i386/tm-i386.h +++ b/gdb/config/i386/tm-i386.h @@ -68,12 +68,10 @@ struct type; extern int i386_skip_prologue (int); -/* Immediately after a function call, return the saved pc. Can't always go - through the frames for this because on some machines the new frame is not - set up until the new function executes some instructions. */ +/* Immediately after a function call, return the saved pc. */ -#define SAVED_PC_AFTER_CALL(frame) \ - (read_memory_unsigned_integer (read_register (SP_REGNUM), 4)) +#define SAVED_PC_AFTER_CALL(frame) i386_saved_pc_after_call (frame) +extern CORE_ADDR i386_saved_pc_after_call (struct frame_info *frame); /* Stack grows downward. */ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index f654d6f..15b261c 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -365,6 +365,14 @@ i386_frame_chain (struct frame_info *frame) return 0; } +/* Immediately after a function call, return the saved pc. */ + +CORE_ADDR +i386_saved_pc_after_call (struct frame_info *frame) +{ + return read_memory_unsigned_integer (read_register (SP_REGNUM), 4); +} + /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ |