From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30351 invoked by alias); 12 Apr 2002 22:51:37 -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 30327 invoked from network); 12 Apr 2002 22:51:32 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 12 Apr 2002 22:51:32 -0000 Received: from reddwarf.sfbay.redhat.com (reddwarf.sfbay.redhat.com [172.16.24.50]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id PAA10223; Fri, 12 Apr 2002 15:51:31 -0700 (PDT) Received: (from msnyder@localhost) by reddwarf.sfbay.redhat.com (8.11.2/8.11.2) id g3CMdVB13335; Fri, 12 Apr 2002 15:39:31 -0700 Date: Fri, 12 Apr 2002 15:51:00 -0000 From: Michael Snyder Message-Id: <200204122239.g3CMdVB13335@reddwarf.sfbay.redhat.com> To: gdb-patches@sources.redhat.com Subject: [PATCH] d10v_make_iaddr: make it idempotent. Cc: jimb@redhat.com X-SW-Source: 2002-04/txt/msg00474.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. 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)