From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26367 invoked by alias); 31 Oct 2007 10:47:50 -0000 Received: (qmail 25887 invoked by uid 22791); 31 Oct 2007 10:47:39 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate4.de.ibm.com (HELO mtagate4.de.ibm.com) (195.212.29.153) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 31 Oct 2007 10:47:28 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate4.de.ibm.com (8.13.8/8.13.8) with ESMTP id l9VAlPlu112160 for ; Wed, 31 Oct 2007 10:47:25 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 l9VAlOge1216748 for ; Wed, 31 Oct 2007 11:47:24 +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 l9VAlO3Q028071 for ; Wed, 31 Oct 2007 11:47:24 +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 l9VAlNLQ028008 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 31 Oct 2007 11:47:24 +0100 Message-ID: <47285CD3.8090801@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] [03/15] Add gdbarch to register_name callback in different targets Content-Type: multipart/mixed; boundary="------------060109050508050602050101" 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/msg00858.txt.bz2 This is a multi-part message in MIME format. --------------060109050508050602050101 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Content-length: 2155 Hi, this patch adds gdbarch to register_name callback in different targets. Is this ok to commit? ChangeLog: * xstormy16-tdep.c (xstormy16_register_name): Add gdbarch parameter. * vax-tdep.c (vax_register_name): Add gdbarch parameter. * spu-tdep.c (spu_register_name): Add gdbarch parameter. * s390-tdep.c (s390_register_name): Add gdbarch parameter. * mt-tdep.c (mt_register_name): Add gdbarch parameter. (mt_registers_info): Replace current_gdbarch by gdbarch. (mt_register_reggroup_p): Add gdbarch to mt_register_name call. * mips-tdep.c (mips_register_name): Add gdbarch parameter. Replace current_gdbarch by gdbarch. (mips_register_name): Add gdbarch to tdesc_register_name call. * mep-tdep.c (mep_register_name): Add gdbarch parameter. Replace current_gdbarch by gdbarch. (mep_register_reggroup_p): Add gdbarch to mep_register_name call. * m32c-tdep.c (m32c_register_name): Add gdbarch parameter. Replace current_gdbarch by gdbarch. * m88k-tdep.c (m88k_register_name): Add gdbarch parameter. * m68k-tdep.c (m68k_register_name): Add gdbarch parameter. * m32r-tdep.c (m32r_register_name): Add gdbarch parameter. (m32r_frame_unwind_cache): Use get_frame_arch to get at the current architecture by frame_info. * iq2000-tdep.c (iq2000_register_name): Add gdbarch parameter. * ia64-tdep.c (ia64_register_name): Add gdbarch parameter. * hppa-tdep.c (hppa32_register_name, hppa64_register_name): Add gdbarch parameter. * h8300-tdep.c (h8300_register_name, h8300s_register_name) (h8300sx_register_name): Add gdbarch parameter. * cris-tdep.c (cris_register_name, crisv32_register_name): Add gdbarch parameter. Replace current_gdbarch by gdbarch. (cris_gdbarch_init): Replace current_gdbarch by gdbarch (comment). * avr-tdep.c (avr_register_name): Add gdbarch parameter. * arm-tdep.c (arm_register_name): Add gdbarch paramete * amd64-tdep.c (amd64_register_name): Add gdbarch parameter. Update caller. * amd64-tdep.h (amd64_register_name): Add gdbarch parameter. * amd64-linux-tdep.c (amd64_linux_register_name): Add gdbarch parameter. -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com --------------060109050508050602050101 Content-Type: text/plain; name="diff-tdeps-trivial" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff-tdeps-trivial" Content-length: 16262 diff -urpN src/gdb/amd64-linux-tdep.c dev/gdb/amd64-linux-tdep.c --- src/gdb/amd64-linux-tdep.c 2007-10-08 14:48:05.000000000 +0200 +++ dev/gdb/amd64-linux-tdep.c 2007-10-31 11:37:27.000000000 +0100 @@ -205,12 +205,12 @@ static int amd64_linux_sc_reg_offset[] = /* Replacement register functions which know about %orig_rax. */ static const char * -amd64_linux_register_name (int reg) +amd64_linux_register_name (struct gdbarch *gdbarch, int reg) { if (reg == AMD64_LINUX_ORIG_RAX_REGNUM) return "orig_rax"; - return amd64_register_name (reg); + return amd64_register_name (gdbarch, reg); } static struct type * diff -urpN src/gdb/amd64-tdep.c dev/gdb/amd64-tdep.c --- src/gdb/amd64-tdep.c 2007-10-24 22:29:14.000000000 +0200 +++ dev/gdb/amd64-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -73,7 +73,7 @@ static const char *amd64_register_names[ /* Return the name of register REGNUM. */ const char * -amd64_register_name (int regnum) +amd64_register_name (struct gdbarch *gdbarch, int regnum) { if (regnum >= 0 && regnum < AMD64_NUM_REGS) return amd64_register_names[regnum]; diff -urpN src/gdb/amd64-tdep.h dev/gdb/amd64-tdep.h --- src/gdb/amd64-tdep.h 2007-08-23 20:08:26.000000000 +0200 +++ dev/gdb/amd64-tdep.h 2007-10-31 11:36:50.000000000 +0100 @@ -65,7 +65,7 @@ extern void amd64_init_abi (struct gdbar /* Functions from amd64-tdep.c which may be needed on architectures with extra registers. */ -extern const char *amd64_register_name (int regnum); +extern const char *amd64_register_name (struct gdbarch *gdbarch, int regnum); extern struct type *amd64_register_type (struct gdbarch *gdbarch, int regnum); /* Fill register REGNUM in REGCACHE with the appropriate diff -urpN src/gdb/arm-tdep.c dev/gdb/arm-tdep.c --- src/gdb/arm-tdep.c 2007-10-31 05:54:46.000000000 +0100 +++ dev/gdb/arm-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -2596,7 +2596,7 @@ set_disassembly_style_sfunc (char *args, /* Return the ARM register name corresponding to register I. */ static const char * -arm_register_name (int i) +arm_register_name (struct gdbarch *gdbarch, int i) { if (i >= ARRAY_SIZE (arm_register_names)) /* These registers are only supported on targets which supply diff -urpN src/gdb/avr-tdep.c dev/gdb/avr-tdep.c --- src/gdb/avr-tdep.c 2007-10-31 05:54:46.000000000 +0100 +++ dev/gdb/avr-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -188,7 +188,7 @@ struct gdbarch_tdep /* Lookup the name of a register given it's number. */ static const char * -avr_register_name (int regnum) +avr_register_name (struct gdbarch *gdbarch, int regnum) { static char *register_names[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", diff -urpN src/gdb/cris-tdep.c dev/gdb/cris-tdep.c --- src/gdb/cris-tdep.c 2007-10-17 15:36:43.000000000 +0200 +++ dev/gdb/cris-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -1778,7 +1778,7 @@ cris_special_register_name (int regno) } static const char * -cris_register_name (int regno) +cris_register_name (struct gdbarch *gdbarch, int regno) { static char *cris_genreg_names[] = { "r0", "r1", "r2", "r3", \ @@ -1791,7 +1791,7 @@ cris_register_name (int regno) /* General register. */ return cris_genreg_names[regno]; } - else if (regno >= NUM_GENREGS && regno < gdbarch_num_regs (current_gdbarch)) + else if (regno >= NUM_GENREGS && regno < gdbarch_num_regs (gdbarch)) { return cris_special_register_name (regno); } @@ -1803,7 +1803,7 @@ cris_register_name (int regno) } static const char * -crisv32_register_name (int regno) +crisv32_register_name (struct gdbarch *gdbarch, int regno) { static char *crisv32_genreg_names[] = { "r0", "r1", "r2", "r3", \ @@ -1828,7 +1828,7 @@ crisv32_register_name (int regno) { return cris_special_register_name (regno); } - else if (regno == gdbarch_pc_regnum (current_gdbarch)) + else if (regno == gdbarch_pc_regnum (gdbarch)) { return "pc"; } @@ -4133,7 +4133,7 @@ cris_gdbarch_init (struct gdbarch_info i /* The total amount of space needed to store (in an array called registers) GDB's copy of the machine's register state. Note: We can not use - cris_register_size at this point, since it relies on current_gdbarch + cris_register_size at this point, since it relies on gdbarch being set. */ switch (tdep->cris_version) { diff -urpN src/gdb/h8300-tdep.c dev/gdb/h8300-tdep.c --- src/gdb/h8300-tdep.c 2007-10-09 20:19:47.000000000 +0200 +++ dev/gdb/h8300-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -947,7 +947,7 @@ h8300h_return_value (struct gdbarch *gdb static struct cmd_list_element *setmachinelist; static const char * -h8300_register_name (int regno) +h8300_register_name (struct gdbarch *gdbarch, int regno) { /* The register names change depending on which h8300 processor type is selected. */ @@ -965,7 +965,7 @@ h8300_register_name (int regno) } static const char * -h8300s_register_name (int regno) +h8300s_register_name (struct gdbarch *gdbarch, int regno) { static char *register_names[] = { "er0", "er1", "er2", "er3", "er4", "er5", "er6", @@ -983,7 +983,7 @@ h8300s_register_name (int regno) } static const char * -h8300sx_register_name (int regno) +h8300sx_register_name (struct gdbarch *gdbarch, int regno) { static char *register_names[] = { "er0", "er1", "er2", "er3", "er4", "er5", "er6", diff -urpN src/gdb/hppa-tdep.c dev/gdb/hppa-tdep.c --- src/gdb/hppa-tdep.c 2007-10-31 05:54:46.000000000 +0100 +++ dev/gdb/hppa-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -581,7 +581,7 @@ hppa_breakpoint_from_pc (CORE_ADDR *pc, /* Return the name of a register. */ static const char * -hppa32_register_name (int i) +hppa32_register_name (struct gdbarch *gdbarch, int i) { static char *names[] = { "flags", "r1", "rp", "r3", @@ -624,7 +624,7 @@ hppa32_register_name (int i) } static const char * -hppa64_register_name (int i) +hppa64_register_name (struct gdbarch *gdbarch, int i) { static char *names[] = { "flags", "r1", "rp", "r3", diff -urpN src/gdb/ia64-tdep.c dev/gdb/ia64-tdep.c --- src/gdb/ia64-tdep.c 2007-10-24 22:29:14.000000000 +0200 +++ dev/gdb/ia64-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -298,7 +298,7 @@ ia64_register_reggroup_p (struct gdbarch } static const char * -ia64_register_name (int reg) +ia64_register_name (struct gdbarch *gdbarch, int reg) { return ia64_register_names[reg]; } diff -urpN src/gdb/iq2000-tdep.c dev/gdb/iq2000-tdep.c --- src/gdb/iq2000-tdep.c 2007-10-31 05:54:46.000000000 +0100 +++ dev/gdb/iq2000-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -118,7 +118,7 @@ iq2000_address_to_pointer (struct type * Returns the name of the iq2000 register number N. */ static const char * -iq2000_register_name (int regnum) +iq2000_register_name (struct gdbarch *gdbarch, int regnum) { static const char * names[E_NUM_REGS] = { diff -urpN src/gdb/m32c-tdep.c dev/gdb/m32c-tdep.c --- src/gdb/m32c-tdep.c 2007-08-23 20:08:35.000000000 +0200 +++ dev/gdb/m32c-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -227,9 +227,9 @@ make_types (struct gdbarch *arch) /* Register set. */ static const char * -m32c_register_name (int num) +m32c_register_name (struct gdbarch *gdbarch, int num) { - return gdbarch_tdep (current_gdbarch)->regs[num].name; + return gdbarch_tdep (gdbarch)->regs[num].name; } diff -urpN src/gdb/m32r-tdep.c dev/gdb/m32r-tdep.c --- src/gdb/m32r-tdep.c 2007-10-16 08:39:30.000000000 +0200 +++ dev/gdb/m32r-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -212,7 +212,7 @@ char *m32r_register_names[] = { }; static const char * -m32r_register_name (int reg_nr) +m32r_register_name (struct gdbarch *gdbarch, int reg_nr) { if (reg_nr < 0) return NULL; @@ -623,7 +623,7 @@ m32r_frame_unwind_cache (struct frame_in /* Adjust all the saved registers so that they contain addresses and not offsets. */ - for (i = 0; i < gdbarch_num_regs (current_gdbarch) - 1; i++) + for (i = 0; i < gdbarch_num_regs (get_frame_arch (next_frame)) - 1; i++) if (trad_frame_addr_p (info->saved_regs, i)) info->saved_regs[i].addr = (info->prev_sp + info->saved_regs[i].addr); diff -urpN src/gdb/m68k-tdep.c dev/gdb/m68k-tdep.c --- src/gdb/m68k-tdep.c 2007-10-24 22:29:14.000000000 +0200 +++ dev/gdb/m68k-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -154,7 +154,7 @@ static const char *m68k_register_names[] Returns the name of the standard m68k register regnum. */ static const char * -m68k_register_name (int regnum) +m68k_register_name (struct gdbarch *gdbarch, int regnum) { if (regnum < 0 || regnum >= ARRAY_SIZE (m68k_register_names)) internal_error (__FILE__, __LINE__, diff -urpN src/gdb/m88k-tdep.c dev/gdb/m88k-tdep.c --- src/gdb/m88k-tdep.c 2007-08-23 20:08:36.000000000 +0200 +++ dev/gdb/m88k-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -49,7 +49,7 @@ m88k_fetch_instruction (CORE_ADDR pc) /* Return the name of register REGNUM. */ static const char * -m88k_register_name (int regnum) +m88k_register_name (struct gdbarch *gdbarch, int regnum) { static char *register_names[] = { diff -urpN src/gdb/mep-tdep.c dev/gdb/mep-tdep.c --- src/gdb/mep-tdep.c 2007-08-23 20:08:36.000000000 +0200 +++ dev/gdb/mep-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -928,9 +928,9 @@ current_ccr_names () static const char * -mep_register_name (int regnr) +mep_register_name (struct gdbarch *gdbarch, int regnr) { - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* General-purpose registers. */ static const char *gpr_names[] = { @@ -1031,7 +1031,7 @@ mep_register_reggroup_p (struct gdbarch { /* Filter reserved or unused register numbers. */ { - const char *name = mep_register_name (regnum); + const char *name = mep_register_name (gdbarch, regnum); if (! name || name[0] == '\0') return 0; diff -urpN src/gdb/mips-tdep.c dev/gdb/mips-tdep.c --- src/gdb/mips-tdep.c 2007-10-23 15:11:47.000000000 +0200 +++ dev/gdb/mips-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -493,9 +493,9 @@ static const char *mips_irix_reg_names[N /* Return the name of the register corresponding to REGNO. */ static const char * -mips_register_name (int regno) +mips_register_name (struct gdbarch *gdbarch, int regno) { - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* GPR names for all ABIs other than n32/n64. */ static char *mips_gpr_names[] = { "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", @@ -512,12 +512,12 @@ mips_register_name (int regno) "t8", "t9", "k0", "k1", "gp", "sp", "s8", "ra" }; - enum mips_abi abi = mips_abi (current_gdbarch); + enum mips_abi abi = mips_abi (gdbarch); /* Map [gdbarch_num_regs .. 2*gdbarch_num_regs) onto the raw registers, but then don't make the raw register names visible. */ - int rawnum = regno % gdbarch_num_regs (current_gdbarch); - if (regno < gdbarch_num_regs (current_gdbarch)) + int rawnum = regno % gdbarch_num_regs (gdbarch); + if (regno < gdbarch_num_regs (gdbarch)) return ""; /* The MIPS integer registers are always mapped from 0 to 31. The @@ -530,9 +530,9 @@ mips_register_name (int regno) else return mips_gpr_names[rawnum]; } - else if (tdesc_has_registers (gdbarch_target_desc (current_gdbarch))) - return tdesc_register_name (rawnum); - else if (32 <= rawnum && rawnum < gdbarch_num_regs (current_gdbarch)) + else if (tdesc_has_registers (gdbarch_target_desc (gdbarch))) + return tdesc_register_name (gdbarch, rawnum); + else if (32 <= rawnum && rawnum < gdbarch_num_regs (gdbarch)) { gdb_assert (rawnum - 32 < NUM_MIPS_PROCESSOR_REGS); return tdep->mips_processor_reg_names[rawnum - 32]; diff -urpN src/gdb/mt-tdep.c dev/gdb/mt-tdep.c --- src/gdb/mt-tdep.c 2007-10-17 15:36:44.000000000 +0200 +++ dev/gdb/mt-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -140,7 +140,7 @@ enum mt_gdb_regnums /* Return name of register number specified by REGNUM. */ static const char * -mt_register_name (int regnum) +mt_register_name (struct gdbarch *gdbarch, int regnum) { static const char *const register_names[] = { /* CPU regs. */ @@ -311,7 +311,7 @@ mt_register_reggroup_p (struct gdbarch * if (group == all_reggroup) return (regnum >= 0 && regnum < MT_NUM_REGS + MT_NUM_PSEUDO_REGS - && mt_register_name (regnum)[0] != '\0'); + && mt_register_name (gdbarch, regnum)[0] != '\0'); if (group == general_reggroup) return (regnum >= MT_R0_REGNUM && regnum <= MT_R15_REGNUM); @@ -619,8 +619,8 @@ mt_frame_align (struct gdbarch *gdbarch, static void mt_registers_info (struct gdbarch *gdbarch, - struct ui_file *file, - struct frame_info *frame, int regnum, int all) + struct ui_file *file, + struct frame_info *frame, int regnum, int all) { if (regnum == -1) { @@ -660,9 +660,9 @@ mt_registers_info (struct gdbarch *gdbar frame_register_read (frame, regnum, buff); fputs_filtered (gdbarch_register_name - (current_gdbarch, regnum), file); + (gdbarch, regnum), file); print_spaces_filtered (15 - strlen (gdbarch_register_name - (current_gdbarch, regnum)), + (gdbarch, regnum)), file); fputs_filtered ("0x", file); @@ -684,10 +684,10 @@ mt_registers_info (struct gdbarch *gdbar frame_register_read (frame, MT_COPRO_REGNUM, buf); /* And print. */ regnum = MT_COPRO_PSEUDOREG_REGNUM; - fputs_filtered (gdbarch_register_name (current_gdbarch, regnum), + fputs_filtered (gdbarch_register_name (gdbarch, regnum), file); print_spaces_filtered (15 - strlen (gdbarch_register_name - (current_gdbarch, regnum)), + (gdbarch, regnum)), file); val_print (register_type (gdbarch, regnum), buf, 0, 0, file, 0, 1, 0, Val_no_prettyprint); @@ -717,10 +717,10 @@ mt_registers_info (struct gdbarch *gdbar /* And print. */ regnum = MT_MAC_PSEUDOREG_REGNUM; - fputs_filtered (gdbarch_register_name (current_gdbarch, regnum), + fputs_filtered (gdbarch_register_name (gdbarch, regnum), file); print_spaces_filtered (15 - strlen (gdbarch_register_name - (current_gdbarch, regnum)), + (gdbarch, regnum)), file); fputs_filtered ("0x", file); print_longest (file, 'x', 0, newmac); diff -urpN src/gdb/s390-tdep.c dev/gdb/s390-tdep.c --- src/gdb/s390-tdep.c 2007-10-02 21:25:52.000000000 +0200 +++ dev/gdb/s390-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -65,7 +65,7 @@ struct gdbarch_tdep /* Return the name of register REGNUM. */ static const char * -s390_register_name (int regnum) +s390_register_name (struct gdbarch *gdbarch, int regnum) { static const char *register_names[S390_NUM_TOTAL_REGS] = { diff -urpN src/gdb/spu-tdep.c dev/gdb/spu-tdep.c --- src/gdb/spu-tdep.c 2007-10-02 19:34:32.000000000 +0200 +++ dev/gdb/spu-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -94,7 +94,7 @@ static struct cmd_list_element *infospuc /* Registers. */ static const char * -spu_register_name (int reg_nr) +spu_register_name (struct gdbarch *gdbarch, int reg_nr) { static char *register_names[] = { diff -urpN src/gdb/vax-tdep.c dev/gdb/vax-tdep.c --- src/gdb/vax-tdep.c 2007-08-23 20:08:47.000000000 +0200 +++ dev/gdb/vax-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -40,7 +40,7 @@ /* Return the name of register REGNUM. */ static const char * -vax_register_name (int regnum) +vax_register_name (struct gdbarch *gdbarch, int regnum) { static char *register_names[] = { diff -urpN src/gdb/xstormy16-tdep.c dev/gdb/xstormy16-tdep.c --- src/gdb/xstormy16-tdep.c 2007-08-23 20:08:47.000000000 +0200 +++ dev/gdb/xstormy16-tdep.c 2007-10-31 11:36:50.000000000 +0100 @@ -104,7 +104,7 @@ enum Returns the name of the standard Xstormy16 register N. */ static const char * -xstormy16_register_name (int regnum) +xstormy16_register_name (struct gdbarch *gdbarch, int regnum) { static char *register_names[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", --------------060109050508050602050101--