From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17868 invoked by alias); 1 Sep 2004 18:47:20 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 17784 invoked from network); 1 Sep 2004 18:47:16 -0000 Received: from unknown (HELO takamaka.act-europe.fr) (142.179.108.108) by sourceware.org with SMTP; 1 Sep 2004 18:47:16 -0000 Received: by takamaka.act-europe.fr (Postfix, from userid 507) id 6624147D92; Wed, 1 Sep 2004 11:47:16 -0700 (PDT) Date: Wed, 01 Sep 2004 18:47:00 -0000 From: Joel Brobecker To: gdb-patches@sources.redhat.com Subject: [RFA] inline find_proc_desc into mips_insn32_frame_cache Message-ID: <20040901184716.GB978@gnat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="z4+8/lEcDcG5Ke9S" Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2004-09/txt/msg00017.txt.bz2 --z4+8/lEcDcG5Ke9S Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 580 Re: http://sources.redhat.com/ml/gdb-patches/2004-09/msg00009.html Implements the suggested inlining. I also removed some dead code. This doesn't fix yet the unwinder problem I reported in http://sources.redhat.com/ml/gdb-patches/2004-07/msg00319.html I'll do that separately. 2004-09-01 Joel Brobecker * 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. Tested on mips-irix 6.5, no regression. OK to apply? Thanks, -- Joel --z4+8/lEcDcG5Ke9S Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="inline.diff" Content-length: 2235 Index: mips-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/mips-tdep.c,v retrieving revision 1.310 diff -u -p -r1.310 mips-tdep.c --- mips-tdep.c 9 Aug 2004 05:45:20 -0000 1.310 +++ mips-tdep.c 1 Sep 2004 18:40:28 -0000 @@ -661,13 +661,6 @@ static unsigned int heuristic_fence_post #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_in (*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 fra } 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); --z4+8/lEcDcG5Ke9S--