From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20287 invoked by alias); 18 Feb 2008 15:28:21 -0000 Received: (qmail 20279 invoked by uid 22791); 18 Feb 2008 15:28:20 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate8.de.ibm.com (HELO mtagate8.de.ibm.com) (195.212.29.157) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 18 Feb 2008 15:27:58 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate8.de.ibm.com (8.13.8/8.13.8) with ESMTP id m1IFRuCe092270 for ; Mon, 18 Feb 2008 15:27:56 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id m1IFRuIG2248788 for ; Mon, 18 Feb 2008 16:27:56 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m1IFRtlc002476 for ; Mon, 18 Feb 2008 15:27:55 GMT Received: from bbkeks.de.ibm.com (dyn-9-152-248-39.boeblingen.de.ibm.com [9.152.248.39]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id m1IFRsdQ002467 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 18 Feb 2008 15:27:55 GMT Message-ID: <47B9A385.5000604@de.ibm.com> Date: Mon, 18 Feb 2008 15:28:00 -0000 From: Markus Deuling User-Agent: Thunderbird 2.0.0.9 (X11/20071031) MIME-Version: 1.0 To: Ulrich Weigand CC: Thiago Jung Bauermann , msnyder@specifix.com, GDB Patches Subject: Re: [rfc]: Replace current_gdbarch in sentinel-frame.c References: <200802151858.m1FIwvFg007698@d12av02.megacenter.de.ibm.com> In-Reply-To: <200802151858.m1FIwvFg007698@d12av02.megacenter.de.ibm.com> Content-Type: multipart/mixed; boundary="------------030803040903070505080905" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-02/txt/msg00293.txt.bz2 This is a multi-part message in MIME format. --------------030803040903070505080905 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 887 Ulrich Weigand schrieb: > Thiago Jung Bauermann wrote: >> On Fri, 2008-02-15 at 18:43 +0100, Ulrich Weigand wrote: >>> This is not OK -- as the sentinel frame is always the innermost >>> frame, next_frame will always be NULL here. >> Actually, what I observe here when running GDB is that next_frame is the >> sentinel frame, probably because sentinel frame's next field points back >> to itself. > > Ah, right, I forgot about that. Still, it seems best to try to get > rid of this hack completely ... > I tested *addrp = 0 on x86 and saw no regression. I changed the patch to remove register_offset_hack completely. Ok ? ChangeLog: * sentinel-frame.c (sentinel_frame_prev_register): Do not call register_offset_hack anymore. * regcache.{c,h} (register_offset_hack): Remove. Regards, Markus -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com --------------030803040903070505080905 Content-Type: text/plain; name="diff-sentinel" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff-sentinel" Content-length: 2180 diff -urpN src/gdb/regcache.c dev/gdb/regcache.c --- src/gdb/regcache.c 2008-01-01 23:53:12.000000000 +0100 +++ dev/gdb/regcache.c 2008-02-18 16:19:40.000000000 +0100 @@ -761,18 +761,6 @@ regcache_cooked_write_part (struct regca regcache_cooked_read, regcache_cooked_write); } -/* Hack to keep code that view the register buffer as raw bytes - working. */ - -int -register_offset_hack (struct gdbarch *gdbarch, int regnum) -{ - struct regcache_descr *descr = regcache_descr (gdbarch); - gdb_assert (regnum >= 0 && regnum < descr->nr_cooked_registers); - return descr->register_offset[regnum]; -} - - /* Supply register REGNUM, whose contents are stored in BUF, to REGCACHE. */ void diff -urpN src/gdb/regcache.h dev/gdb/regcache.h --- src/gdb/regcache.h 2008-01-01 23:53:12.000000000 +0100 +++ dev/gdb/regcache.h 2008-02-18 16:21:04.000000000 +0100 @@ -104,18 +104,6 @@ extern void regcache_raw_collect (const int regnum, void *buf); -/* The register's ``offset''. - - FIXME: cagney/2002-11-07: The frame_register() function, when - specifying the real location of a register, does so using that - registers offset in the register cache. That offset is then used - by valops.c to determine the location of the register. The code - should instead use the register's number and a location expression - to describe a value spread across multiple registers or memory. */ - -extern int register_offset_hack (struct gdbarch *gdbarch, int regnum); - - /* The type of a register. This function is slightly more efficient then its gdbarch vector counterpart since it returns a precomputed value stored in a table. */ diff -urpN src/gdb/sentinel-frame.c dev/gdb/sentinel-frame.c --- src/gdb/sentinel-frame.c 2008-01-01 23:53:12.000000000 +0100 +++ dev/gdb/sentinel-frame.c 2008-02-18 16:21:39.000000000 +0100 @@ -54,7 +54,7 @@ sentinel_frame_prev_register (struct fra onto the corresponding hardware register. */ *optimized = 0; *lvalp = lval_register; - *addrp = register_offset_hack (current_gdbarch, regnum); + *addrp = 0; *realnum = regnum; /* If needed, find and return the value of the register. */ --------------030803040903070505080905--