From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30490 invoked by alias); 7 Jun 2007 20:57:53 -0000 Received: (qmail 30482 invoked by uid 22791); 7 Jun 2007 20:57:53 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate3.de.ibm.com (HELO mtagate3.de.ibm.com) (195.212.29.152) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 07 Jun 2007 20:57:47 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate3.de.ibm.com (8.13.8/8.13.8) with ESMTP id l57KviNe105764 for ; Thu, 7 Jun 2007 20:57:44 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.3) with ESMTP id l57KviwB4108454 for ; Thu, 7 Jun 2007 22:57:44 +0200 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 l57KvhkP019507 for ; Thu, 7 Jun 2007 22:57:43 +0200 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id l57KvhvK019504 for ; Thu, 7 Jun 2007 22:57:43 +0200 Message-Id: <200706072057.l57KvhvK019504@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Thu, 7 Jun 2007 22:57:43 +0200 Subject: [rfc][2/13] Eliminate read_register: read_register in cris/frv_stopped_data_address To: gdb-patches@sourceware.org Date: Thu, 07 Jun 2007 20:57:00 -0000 From: "Ulrich Weigand" X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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: 2007-06/txt/msg00081.txt.bz2 Hello, frv-tdep.c has an implementation of frv_stopped_data_address that accesses the current register set (using read_register) to find out watchpoint state. cris-tdep.c similarly has cris_stopped_data_address, although this is currently nowhere used. This patch replaces read_register in those instances by reading registers from the current frame, which should have the same effect at the location in infrun.c where the stopped_data_address callback is invoked. Longer term, I think these routines should go away. They are only used for the remote debugging case; and the remote protocol now has a proper mechanism to implement watchpoints ... For now this patch will allow me to complete the read_register elimination process. Bye, Ulrich ChangeLog: * cris-tdep.c (cris_stopped_data_address): Read register values from current frame instead of calling read_register. * frv-tdep.c (frv_stopped_data_address): Likewise. diff -urNp gdb-orig/gdb/cris-tdep.c gdb-head/gdb/cris-tdep.c --- gdb-orig/gdb/cris-tdep.c 2007-05-14 17:01:20.000000000 +0200 +++ gdb-head/gdb/cris-tdep.c 2007-05-15 20:18:09.083020084 +0200 @@ -535,7 +535,7 @@ CORE_ADDR cris_stopped_data_address (void) { CORE_ADDR eda; - eda = read_register (EDA_REGNUM); + eda = get_frame_register_unsigned (get_current_frame (), EDA_REGNUM); return eda; } diff -urNp gdb-orig/gdb/frv-tdep.c gdb-head/gdb/frv-tdep.c --- gdb-orig/gdb/frv-tdep.c 2007-05-14 17:01:20.000000000 +0200 +++ gdb-head/gdb/frv-tdep.c 2007-05-15 20:18:09.126013913 +0200 @@ -1291,13 +1291,14 @@ frv_check_watch_resources (int type, int int frv_stopped_data_address (CORE_ADDR *addr_p) { + struct frame_info *frame = get_current_frame (); CORE_ADDR brr, dbar0, dbar1, dbar2, dbar3; - brr = read_register (brr_regnum); - dbar0 = read_register (dbar0_regnum); - dbar1 = read_register (dbar1_regnum); - dbar2 = read_register (dbar2_regnum); - dbar3 = read_register (dbar3_regnum); + brr = get_frame_register_unsigned (frame, brr_regnum); + dbar0 = get_frame_register_unsigned (frame, dbar0_regnum); + dbar1 = get_frame_register_unsigned (frame, dbar1_regnum); + dbar2 = get_frame_register_unsigned (frame, dbar2_regnum); + dbar3 = get_frame_register_unsigned (frame, dbar3_regnum); if (brr & (1<<11)) *addr_p = dbar0; -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com