From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27391 invoked by alias); 31 Oct 2007 10:48:07 -0000 Received: (qmail 27070 invoked by uid 22791); 31 Oct 2007 10:48:04 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate6.de.ibm.com (HELO mtagate6.de.ibm.com) (195.212.29.155) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 31 Oct 2007 10:47:57 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate6.de.ibm.com (8.13.8/8.13.8) with ESMTP id l9VAlr9h192892 for ; Wed, 31 Oct 2007 10:47:53 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 l9VAlrIH2068570 for ; Wed, 31 Oct 2007 11:47:53 +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 l9VAlrR6028982 for ; Wed, 31 Oct 2007 11:47:53 +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 l9VAlqI8028950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 31 Oct 2007 11:47:53 +0100 Message-ID: <47285CEF.7010905@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 , stcarrez@nerim.fr Subject: [rfc] [12/15] Add gdbarch to register_name callback in m68hc11-tdep.c Content-Type: multipart/mixed; boundary="------------050904060202090204060609" 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/msg00857.txt.bz2 This is a multi-part message in MIME format. --------------050904060202090204060609 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1091 Hi, this patch adds gdbarch to register_name callback in m68hc11-tdep.c. Also two macros STACK_CORRECTION and USE_PAGE_REGISTER are being replaced/removed to get rid of current_gdbarch. Is this ok to commit? ChangeLog: * m68hc11-tdep.c (m68hc11_register_name): Add gdbarch parameter. (m68hc11_frame_unwind_cache): Use get_frame_arch to get at the current architecture by frame_info. (m68hc11_register_reggroup_p): Add gdbarch to m68hc11_register_name call. (STACK_CORRECTION, USE_PAGE_REGISTER): Replace M6811_TDEP macro by its expression. (M6811_TDEP): Remove. (m68hc11_register_name, m68hc11_frame_prev_register): Replace USE_PAGE_REGISTER by its expression. Replace current_gdbarch by gdbarch. (m68hc11_frame_prev_register): Use get_frame_arch to get at the current architecture by frame_info. (USE_PAGE_REGISTER): Remove. (m68hc11_frame_unwind_cache, m68hc11_push_dummy_call): Replace STACK_CORRECTION by its expression. Replace current_gdbarch by gdbarch. (STACK_CORRECTION): Remove -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com --------------050904060202090204060609 Content-Type: text/plain; name="diff-m68hc11-tdep" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff-m68hc11-tdep" Content-length: 3930 diff -urpN src/gdb/m68hc11-tdep.c dev/gdb/m68hc11-tdep.c --- src/gdb/m68hc11-tdep.c 2007-10-17 15:36:44.000000000 +0200 +++ dev/gdb/m68hc11-tdep.c 2007-10-31 09:12:06.000000000 +0100 @@ -146,10 +146,6 @@ struct gdbarch_tdep int elf_flags; }; -#define M6811_TDEP gdbarch_tdep (current_gdbarch) -#define STACK_CORRECTION (M6811_TDEP->stack_correction) -#define USE_PAGE_REGISTER (M6811_TDEP->use_page_register) - struct m68hc11_unwind_cache { /* The previous frame's inner most stack address. Used as this @@ -365,11 +361,13 @@ m68hc11_pseudo_register_write (struct gd } static const char * -m68hc11_register_name (int reg_nr) +m68hc11_register_name (struct gdbarch *gdbarch, int reg_nr) { - if (reg_nr == M68HC12_HARD_PC_REGNUM && USE_PAGE_REGISTER) + if (reg_nr == M68HC12_HARD_PC_REGNUM + && gdbarch_tdep (gdbarch)->use_page_register) return "pc"; - if (reg_nr == HARD_PC_REGNUM && USE_PAGE_REGISTER) + if (reg_nr == HARD_PC_REGNUM + && gdbarch_tdep (gdbarch)->use_page_register) return "ppc"; if (reg_nr < 0) @@ -777,6 +775,7 @@ struct m68hc11_unwind_cache * m68hc11_frame_unwind_cache (struct frame_info *next_frame, void **this_prologue_cache) { + struct gdbarch *gdbarch = get_frame_arch (next_frame); ULONGEST prev_sp; ULONGEST this_base; struct m68hc11_unwind_cache *info; @@ -816,7 +815,7 @@ m68hc11_frame_unwind_cache (struct frame info->saved_regs[HARD_PC_REGNUM].addr = info->sp_offset; this_base = frame_unwind_register_unsigned (next_frame, HARD_SP_REGNUM); prev_sp = this_base + info->sp_offset + 2; - this_base += STACK_CORRECTION; + this_base += gdbarch_tdep (gdbarch)->stack_correction; } else { @@ -824,7 +823,7 @@ m68hc11_frame_unwind_cache (struct frame to before the first saved register giving the SP. */ prev_sp = this_base + info->size + 2; - this_base += STACK_CORRECTION; + this_base += gdbarch_tdep (gdbarch)->stack_correction; if (soft_regs[SOFT_FP_REGNUM].name) info->saved_regs[SOFT_FP_REGNUM].addr = info->size - 2; } @@ -854,8 +853,8 @@ m68hc11_frame_unwind_cache (struct frame /* Adjust all the saved registers so that they contain addresses and not offsets. */ for (i = 0; - i < gdbarch_num_regs (current_gdbarch) - + gdbarch_num_pseudo_regs (current_gdbarch) - 1; + i < gdbarch_num_regs (gdbarch) + + gdbarch_num_pseudo_regs (gdbarch) - 1; i++) if (trad_frame_addr_p (info->saved_regs, i)) { @@ -915,7 +914,7 @@ m68hc11_frame_prev_register (struct fram /* Take into account the 68HC12 specific call (PC + page). */ if (info->return_kind == RETURN_RTC && *addrp >= 0x08000 && *addrp < 0x0c000 - && USE_PAGE_REGISTER) + && gdbarch_tdep (get_frame_arch (next_frame))->use_page_register) { int page_optimized; @@ -1215,7 +1214,7 @@ m68hc11_push_dummy_call (struct gdbarch write_memory (sp, buf, 2); /* Finally, update the stack pointer... */ - sp -= STACK_CORRECTION; + sp -= gdbarch_tdep (gdbarch)->stack_correction; regcache_cooked_write_unsigned (regcache, HARD_SP_REGNUM, sp); /* ...and fake a frame pointer. */ @@ -1395,13 +1394,14 @@ m68hc11_register_reggroup_p (struct gdba || regnum == SOFT_TMP_REGNUM || regnum == SOFT_ZS_REGNUM || regnum == SOFT_XY_REGNUM) - && m68hc11_register_name (regnum))); + && m68hc11_register_name (gdbarch, regnum))); } /* Group to identify gcc soft registers (d1..dN). */ if (group == m68hc11_soft_reggroup) { - return regnum >= SOFT_D1_REGNUM && m68hc11_register_name (regnum); + return regnum >= SOFT_D1_REGNUM + && m68hc11_register_name (gdbarch, regnum); } if (group == m68hc11_hard_reggroup) --------------050904060202090204060609--