From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14699 invoked by alias); 12 Apr 2002 23:27: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 14689 invoked from network); 12 Apr 2002 23:27:19 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 12 Apr 2002 23:27:19 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 708813CDB; Fri, 12 Apr 2002 19:27:26 -0400 (EDT) Message-ID: <3CB76D5E.5040506@cygnus.com> Date: Fri, 12 Apr 2002 16:27:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.9) Gecko/20020328 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Michael Snyder Cc: gdb-patches@sources.redhat.com, jimb@redhat.com Subject: Re: [PATCH] d10v_make_iaddr: make it idempotent. References: <200204122239.g3CMdVB13335@reddwarf.sfbay.redhat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-04/txt/msg00477.txt.bz2 > 2002-04-12 Michael Snyder > > * d10v-tdep.c (d10v_make_iaddr): Make it idempotent, > in case it gets applied to an address that is already > in the instruction space. Michael, I don't understand this change. Why does it need to be idempotent - isn't that a bug somewhere else? And why move the code? Andrew > Index: d10v-tdep.c > =================================================================== > RCS file: /cvs/cvsfiles/devo/gdb/d10v-tdep.c,v > retrieving revision 2.88 > diff -c -3 -p -r2.88 d10v-tdep.c > *** d10v-tdep.c 2002/04/09 03:00:45 2.88 > --- d10v-tdep.c 2002/04/12 22:47:30 > *************** d10v_register_virtual_type (int reg_nr) > *** 356,373 **** > return builtin_type_int16; > } > > - static CORE_ADDR > - d10v_make_daddr (CORE_ADDR x) > - { > - return ((x) | DMEM_START); > - } > - > - static CORE_ADDR > - d10v_make_iaddr (CORE_ADDR x) > - { > - return (((x) << 2) | IMEM_START); > - } > - > static int > d10v_daddr_p (CORE_ADDR x) > { > --- 356,361 ---- > *************** d10v_iaddr_p (CORE_ADDR x) > *** 380,385 **** > --- 368,387 ---- > return (((x) & 0x3000000) == IMEM_START); > } > > + static CORE_ADDR > + d10v_make_daddr (CORE_ADDR x) > + { > + return ((x) | DMEM_START); > + } > + > + static CORE_ADDR > + d10v_make_iaddr (CORE_ADDR x) > + { > + if (d10v_iaddr_p (x)) > + return x; /* Idempotency -- x is already in the IMEM space. */ > + else > + return (((x) << 2) | IMEM_START); > + } > > static CORE_ADDR > d10v_convert_iaddr_to_raw (CORE_ADDR x) >