From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21047 invoked by alias); 8 Jun 2007 23:22:41 -0000 Received: (qmail 21039 invoked by uid 22791); 8 Jun 2007 23:22:40 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate5.de.ibm.com (HELO mtagate5.de.ibm.com) (195.212.29.154) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 08 Jun 2007 23:22:38 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate5.de.ibm.com (8.13.8/8.13.8) with ESMTP id l58NMaBd568036 for ; Fri, 8 Jun 2007 23:22:36 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 l58NMZen3960956 for ; Sat, 9 Jun 2007 01:22:35 +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 l58NMZY3019418 for ; Sat, 9 Jun 2007 01:22:35 +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 l58NMZAD019415 for ; Sat, 9 Jun 2007 01:22:35 +0200 Message-Id: <200706082322.l58NMZAD019415@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Sat, 9 Jun 2007 01:22:35 +0200 Subject: [1/3] Remove gdbarch-swapping of remote_address_masked To: gdb-patches@sourceware.org Date: Fri, 08 Jun 2007 23:22: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/msg00125.txt.bz2 Hello, remote.c contains a gdbarch-swapped variable "remote_address_masked". The swap function in fact re-sets the variable to the default address size of the target. This patch attempts to decouple changes to the variable by the user (via "set remoteaddresssize") from changes due to architecture switches: - If the user sets the variable, that value is subsequently used (even if the architecture switches). - If the user never used "set remoteaddresssize" (i.e. the variable reads 0), remote_address_masked implicitly uses the current target's address size instead. Now this is certainly a change in behaviour, but I'd think the new way should actually be more useful ... Any comments from users of that functionality? Does this make sense? Bye, Ulrich ChangeLog: * remote.c (remote_address_masked): If remote_address_size is zero, default to target address size. (build_remote_gdbarch_data): Remove. (_initialize_remote): Do not swap remote_address_size. diff -urNp gdb-orig/gdb/remote.c gdb-head/gdb/remote.c --- gdb-orig/gdb/remote.c 2007-06-08 13:48:41.294606000 +0200 +++ gdb-head/gdb/remote.c 2007-06-08 20:15:01.825476499 +0200 @@ -3919,13 +3919,18 @@ hexnumnstr (char *buf, ULONGEST num, int static CORE_ADDR remote_address_masked (CORE_ADDR addr) { - if (remote_address_size > 0 - && remote_address_size < (sizeof (ULONGEST) * 8)) + int address_size = remote_address_size; + /* If "remoteaddresssize" was not set, default to target address size. */ + if (!address_size) + address_size = TARGET_ADDR_BIT; + + if (address_size > 0 + && address_size < (sizeof (ULONGEST) * 8)) { /* Only create a mask when that mask can safely be constructed in a ULONGEST variable. */ ULONGEST mask = 1; - mask = (mask << remote_address_size) - 1; + mask = (mask << address_size) - 1; addr &= mask; } return addr; @@ -6347,12 +6352,6 @@ show_remote_cmd (char *args, int from_tt do_cleanups (showlist_chain); } -static void -build_remote_gdbarch_data (void) -{ - remote_address_size = TARGET_ADDR_BIT; -} - /* Function to be called whenever a new objfile (shlib) is detected. */ static void remote_new_objfile (struct objfile *objfile) @@ -6372,11 +6371,6 @@ _initialize_remote (void) remote_g_packet_data_handle = gdbarch_data_register_pre_init (remote_g_packet_data_init); - /* Old tacky stuff. NOTE: This comes after the remote protocol so - that the remote protocol has been initialized. */ - DEPRECATED_REGISTER_GDBARCH_SWAP (remote_address_size); - deprecated_register_gdbarch_swap (NULL, 0, build_remote_gdbarch_data); - /* Initialize the per-target state. At the moment there is only one of these, not one per target. Only one target is active at a time. The default buffer size is unimportant; it will be expanded -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com