aboutsummaryrefslogtreecommitdiff
path: root/gdb/mips-tdep.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2004-09-01 20:42:45 +0000
committerJoel Brobecker <brobecker@gnat.com>2004-09-01 20:42:45 +0000
commita343eb3cbf1cc22fbe14108bd1c5408aaf241d2c (patch)
treed90d74b4d751ea7908c98a60aea0b62ef68944e4 /gdb/mips-tdep.c
parent3bdcad15ba585931bd2b6a415c0b82ff36d3e4cc (diff)
downloadgdb-a343eb3cbf1cc22fbe14108bd1c5408aaf241d2c.zip
gdb-a343eb3cbf1cc22fbe14108bd1c5408aaf241d2c.tar.gz
gdb-a343eb3cbf1cc22fbe14108bd1c5408aaf241d2c.tar.bz2
* mips-tdep.c (linked_proc_desc_table): Delete, not used.
(mips_insn32_frame_cache): Inline call to find_proc_desc. (find_proc_desc): Remove dead code.
Diffstat (limited to 'gdb/mips-tdep.c')
-rw-r--r--gdb/mips-tdep.c33
1 files changed, 12 insertions, 21 deletions
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 99718a7..5c82630 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -661,13 +661,6 @@ static unsigned int heuristic_fence_post = 0;
#define PROC_DESC_IS_DUMMY(proc) ((proc)->pdr.isym == _PROC_MAGIC_)
#define SET_PROC_DESC_IS_DUMMY(proc) ((proc)->pdr.isym = _PROC_MAGIC_)
-struct linked_proc_info
-{
- struct mips_extra_func_info info;
- struct linked_proc_info *next;
-}
- *linked_proc_desc_table = NULL;
-
/* Number of bytes of storage in the actual machine representation for
register N. NOTE: This defines the pseudo register type so need to
rebuild the architecture vector. */
@@ -2080,8 +2073,18 @@ mips_insn32_frame_cache (struct frame_info *next_frame, void **this_cache)
(*this_cache) = cache;
cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
- /* Get the mdebug proc descriptor. */
- proc_desc = find_proc_desc (frame_pc_unwind (next_frame), next_frame, 1);
+ /* Synthesize a proc descriptor. */
+ {
+ const CORE_ADDR pc = frame_pc_unwind (next_frame);
+ CORE_ADDR start_addr;
+
+ find_pc_partial_function (pc, NULL, &start_addr, NULL);
+ if (start_addr == 0)
+ start_addr = heuristic_proc_start (pc);
+
+ proc_desc = heuristic_proc_desc (start_addr, pc, next_frame, 1);
+ }
+
if (proc_desc == NULL)
/* I'm not sure how/whether this can happen. Normally when we
can't find a proc_desc, we "synthesize" one using
@@ -3186,18 +3189,6 @@ find_proc_desc (CORE_ADDR pc, struct frame_info *next_frame, int cur_frame)
}
else
{
- /* Is linked_proc_desc_table really necessary? It only seems to be used
- by procedure call dummys. However, the procedures being called ought
- to have their own proc_descs, and even if they don't,
- heuristic_proc_desc knows how to create them! */
-
- struct linked_proc_info *link;
-
- for (link = linked_proc_desc_table; link; link = link->next)
- if (PROC_LOW_ADDR (&link->info) <= pc
- && PROC_HIGH_ADDR (&link->info) > pc)
- return &link->info;
-
if (startaddr == 0)
startaddr = heuristic_proc_start (pc);