From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11532 invoked by alias); 2 Sep 2004 02:25:34 -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 11518 invoked from network); 2 Sep 2004 02:25:32 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 2 Sep 2004 02:25:32 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i822PWS2011462 for ; Wed, 1 Sep 2004 22:25:32 -0400 Received: from localhost.redhat.com (porkchop.devel.redhat.com [172.16.58.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i822PQ307917; Wed, 1 Sep 2004 22:25:26 -0400 Received: from gnu.org (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id ED2EF28D2; Wed, 1 Sep 2004 22:24:12 -0400 (EDT) Message-ID: <4136844C.2010601@gnu.org> Date: Thu, 02 Sep 2004 02:25:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-GB; rv:1.4.1) Gecko/20040831 MIME-Version: 1.0 To: Joel Brobecker Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] mips-tdep.c small cleanup References: <20040901234951.GN969@gnat.com> In-Reply-To: <20040901234951.GN969@gnat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-09/txt/msg00033.txt.bz2 > I removed some dead code, did some reformatting, and also did one little > code factoring, to make the code look prettier. That's actually the last > part of the change that made me choose a RFA rather than a PATCH. It > looks obvious, and tests ok, but I'd appreciate a second pair of eyes > looking at the change too. > > The idea is to clean this code up a little bit, so I can see better > how to implement Andrew's suggestion re- inlining. > > 2004-09-01 Joel Brobecker > > * mips-tdep.c (mips_insn32_frame_cache): Remove some dead code. > Minor reformatting. Some code factoring. > > tested on mips-irix 6.5. > OK to apply? Yep! Andrew > --- mips-tdep.c.new_ref 2004-09-01 17:38:33.996866250 -0400 > +++ mips-tdep.c 2004-09-01 18:27:47.336020442 -0400 > @@ -2118,28 +2118,16 @@ mips_insn32_frame_cache (struct frame_in > /* Bitmasks; set if we have found a save for the register. */ > unsigned long gen_save_found = 0; > unsigned long float_save_found = 0; > - int mips16; > > - /* If the address is odd, assume this is MIPS16 code. */ > addr = PROC_LOW_ADDR (proc_desc); > - mips16 = pc_is_mips16 (addr); > > /* Scan through this function's instructions preceding the > current PC, and look for those that save registers. */ > while (addr < frame_pc_unwind (next_frame)) > { > - if (mips16) > - { > - mips16_decode_reg_save (mips16_fetch_instruction (addr), > - &gen_save_found); > - addr += MIPS16_INSTLEN; > - } > - else > - { > - mips32_decode_reg_save (mips32_fetch_instruction (addr), > - &gen_save_found, &float_save_found); > - addr += MIPS_INSTLEN; > - } > + mips32_decode_reg_save (mips32_fetch_instruction (addr), > + &gen_save_found, &float_save_found); > + addr += MIPS_INSTLEN; > } > gen_mask = gen_save_found; > float_mask = float_save_found; > @@ -2159,48 +2147,20 @@ mips_insn32_frame_cache (struct frame_in > } > } > > - /* The MIPS16 entry instruction saves $s0 and $s1 in the reverse > - order of that normally used by gcc. Therefore, we have to fetch > - the first instruction of the function, and if it's an entry > - instruction that saves $s0 or $s1, correct their saved addresses. */ > - if (pc_is_mips16 (PROC_LOW_ADDR (proc_desc))) > - { > - ULONGEST inst = mips16_fetch_instruction (PROC_LOW_ADDR (proc_desc)); > - if ((inst & 0xf81f) == 0xe809 && (inst & 0x700) != 0x700) > - /* entry */ > - { > - int reg; > - int sreg_count = (inst >> 6) & 3; > - > - /* Check if the ra register was pushed on the stack. */ > - CORE_ADDR reg_position = (cache->base > - + PROC_REG_OFFSET (proc_desc)); > - if (inst & 0x20) > - reg_position -= mips_abi_regsize (gdbarch); > - > - /* Check if the s0 and s1 registers were pushed on the > - stack. */ > - /* NOTE: cagney/2004-02-08: Huh? This is doing no such > - check. */ > - for (reg = 16; reg < sreg_count + 16; reg++) > - { > - cache->saved_regs[NUM_REGS + reg].addr = reg_position; > - reg_position -= mips_abi_regsize (gdbarch); > - } > - } > - } > - > /* Fill in the offsets for the registers which float_mask says were > saved. */ > { > - CORE_ADDR reg_position = (cache->base > - + PROC_FREG_OFFSET (proc_desc)); > + CORE_ADDR reg_position = (cache->base + PROC_FREG_OFFSET (proc_desc)); > int ireg; > + > /* Fill in the offsets for the float registers which float_mask > says were saved. */ > for (ireg = MIPS_NUMREGS - 1; float_mask; --ireg, float_mask <<= 1) > if (float_mask & 0x80000000) > { > + const int regno = > + NUM_REGS + mips_regnum (current_gdbarch)->fp0 + ireg; > + > if (mips_abi_regsize (gdbarch) == 4 > && TARGET_BYTE_ORDER == BFD_ENDIAN_BIG) > { > @@ -2227,15 +2187,14 @@ mips_insn32_frame_cache (struct frame_in > reg_position is decremented each time through the > loop). */ > if ((ireg & 1)) > - cache->saved_regs[NUM_REGS + mips_regnum (current_gdbarch)->fp0 + ireg] > - .addr = reg_position - mips_abi_regsize (gdbarch); > + cache->saved_regs[regno].addr = > + reg_position - mips_abi_regsize (gdbarch); > else > - cache->saved_regs[NUM_REGS + mips_regnum (current_gdbarch)->fp0 + ireg] > - .addr = reg_position + mips_abi_regsize (gdbarch); > + cache->saved_regs[regno].addr = > + reg_position + mips_abi_regsize (gdbarch); > } > else > - cache->saved_regs[NUM_REGS + mips_regnum (current_gdbarch)->fp0 + ireg] > - .addr = reg_position; > + cache->saved_regs[regno].addr = reg_position; > reg_position -= mips_abi_regsize (gdbarch); > } >