From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25382 invoked by alias); 31 Oct 2007 10:47:32 -0000 Received: (qmail 25355 invoked by uid 22791); 31 Oct 2007 10:47:29 -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; Wed, 31 Oct 2007 10:47:21 +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 l9VAlIFN209212 for ; Wed, 31 Oct 2007 10:47:18 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.5) with ESMTP id l9VAlIDm2232342 for ; Wed, 31 Oct 2007 11:47:18 +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 l9VAlI4U027757 for ; Wed, 31 Oct 2007 11:47:18 +0100 Received: from bbkeks.boeblingen.de.ibm.com (dyn-9-152-248-41.boeblingen.de.ibm.com [9.152.248.41]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id l9VAlDiW027639 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 31 Oct 2007 11:47:18 +0100 Message-ID: <47285CC8.80902@de.ibm.com> Date: Wed, 31 Oct 2007 10:48:00 -0000 From: Markus Deuling User-Agent: Thunderbird 2.0.0.6 (X11/20070728) MIME-Version: 1.0 To: GDB Patches CC: Ulrich Weigand Subject: [rfc] [01/15] Add gdbarch to register_name callback (prep) Content-Type: multipart/mixed; boundary="------------070602000902090009020804" 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-10/txt/msg00848.txt.bz2 This is a multi-part message in MIME format. --------------070602000902090009020804 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Content-length: 286 Hi, this patch adds gdbarch parameter for register_name call in gdbarch.{sh,c,h} Is this ok to commit? ChangeLog: * gdbarch.sh (register_name): Add gdbarch parameter. * gdbarch.{c,h}: Regenerate -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com --------------070602000902090009020804 Content-Type: text/plain; name="diff-gdbarch-register-name" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff-gdbarch-register-name" Content-length: 3368 diff -urpN src/gdb/gdbarch.c dev/gdb/gdbarch.c --- src/gdb/gdbarch.c 2007-10-19 14:26:33.000000000 +0200 +++ dev/gdb/gdbarch.c 2007-10-30 11:05:56.000000000 +0100 @@ -527,6 +527,7 @@ verify_gdbarch (struct gdbarch *current_ /* Skip verify of dwarf_reg_to_regnum, invalid_p == 0 */ /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */ /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */ + /* Skip verify of register_name, has predicate */ /* Skip verify of register_type, has predicate */ /* Skip verify of unwind_dummy_id, has predicate */ /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */ @@ -912,6 +913,9 @@ gdbarch_dump (struct gdbarch *current_gd "gdbarch_dump: read_pc = <0x%lx>\n", (long) current_gdbarch->read_pc); fprintf_unfiltered (file, + "gdbarch_dump: gdbarch_register_name_p() = %d\n", + gdbarch_register_name_p (current_gdbarch)); + fprintf_unfiltered (file, "gdbarch_dump: register_name = <0x%lx>\n", (long) current_gdbarch->register_name); fprintf_unfiltered (file, @@ -1610,6 +1614,13 @@ set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum; } +int +gdbarch_register_name_p (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + return gdbarch->register_name != NULL; +} + const char * gdbarch_register_name (struct gdbarch *gdbarch, int regnr) { @@ -1617,7 +1628,7 @@ gdbarch_register_name (struct gdbarch *g gdb_assert (gdbarch->register_name != NULL); if (gdbarch_debug >= 2) fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n"); - return gdbarch->register_name (regnr); + return gdbarch->register_name (gdbarch, regnr); } void diff -urpN src/gdb/gdbarch.h dev/gdb/gdbarch.h --- src/gdb/gdbarch.h 2007-10-19 14:26:33.000000000 +0200 +++ dev/gdb/gdbarch.h 2007-10-30 11:05:47.000000000 +0100 @@ -232,7 +232,9 @@ typedef int (gdbarch_dwarf2_reg_to_regnu extern int gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr); extern void set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum); -typedef const char * (gdbarch_register_name_ftype) (int regnr); +extern int gdbarch_register_name_p (struct gdbarch *gdbarch); + +typedef const char * (gdbarch_register_name_ftype) (struct gdbarch *gdbarch, int regnr); extern const char * gdbarch_register_name (struct gdbarch *gdbarch, int regnr); extern void set_gdbarch_register_name (struct gdbarch *gdbarch, gdbarch_register_name_ftype *register_name); diff -urpN src/gdb/gdbarch.sh dev/gdb/gdbarch.sh --- src/gdb/gdbarch.sh 2007-10-19 14:34:38.000000000 +0200 +++ dev/gdb/gdbarch.sh 2007-10-30 11:05:09.000000000 +0100 @@ -421,7 +421,7 @@ f:int:dwarf_reg_to_regnum:int dwarf_regn # Convert from an sdb register number to an internal gdb register number. f:int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr::no_op_reg_to_regnum::0 f:int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr::no_op_reg_to_regnum::0 -f:const char *:register_name:int regnr:regnr +M:const char *:register_name:int regnr:regnr # Return the type of a register specified by the architecture. Only # the register cache should call this function directly; others should --------------070602000902090009020804--