Reading your last commit to this file, I discovered that you added frame
sniffers, so, if I understand correctly, we can now more or less predict
the circumstances under which find_proc_desc should be called (heuristic
vs non-heuristic). Is that right?
3. mips_insn32_frame_cache
In these two cases, the call to find_proc_desc can be reduced to
the case where the heuristics have to be used. You said it can be
inline using something like this:
if (startaddr == 0)
startaddr = heuristic_proc_start (pc);
proc_desc = heuristic_proc_desc (startaddr, pc, next_frame, cur_frame);
I see that linked_proc_desc_table is never used, which explains
why we can get rid of:
/* 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;