From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17372 invoked by alias); 6 Nov 2007 12:07:37 -0000 Received: (qmail 17303 invoked by uid 22791); 6 Nov 2007 12:07:37 -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; Tue, 06 Nov 2007 12:07:33 +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 lA6C7U3V154068 for ; Tue, 6 Nov 2007 12:07:30 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.6) with ESMTP id lA6C7UUj2101304 for ; Tue, 6 Nov 2007 13:07:30 +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 lA6C7Tts026294 for ; Tue, 6 Nov 2007 13:07:29 +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 lA6C7S05026255 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 6 Nov 2007 13:07:29 +0100 Message-ID: <47305896.70101@de.ibm.com> Date: Tue, 06 Nov 2007 12:07:00 -0000 From: Markus Deuling User-Agent: Thunderbird 2.0.0.6 (X11/20070728) MIME-Version: 1.0 To: Ulrich Weigand CC: GDB Patches Subject: Re: [rfc] [05/09] Get rid of current_gdbarch (macros in mn10300 target) References: <200711051553.lA5FrLSM021755@d12av02.megacenter.de.ibm.com> In-Reply-To: <200711051553.lA5FrLSM021755@d12av02.megacenter.de.ibm.com> Content-Type: multipart/mixed; boundary="------------000909050608060606030009" 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-11/txt/msg00093.txt.bz2 This is a multi-part message in MIME format. --------------000909050608060606030009 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1062 Ulrich Weigand schrieb: > Markus Deuling wrote: > >> * mn10300-tdep.c (set_reg_offsets,mn10300_analyze_prologue): Replace >> AM33 by its expression. Use get_frame_arch to get at the current >> architecture by frame_info. >> * mn10300-tdep.h (AM33_MODE): Remove. > > Sorry, but this is not OK. Unfortunately, the mn10300_analyze_prologue > routine is called both from within the unwinder (where we always have > a frame), *and* from mn10300_skip_prologue, where frame information is > not available. Thus "fi" may actually be NULL. Ok, I see. Your're right. I attached a patch which just replaces AM33_MODe macro to get rid of current_gdbarch in mn10300-tdep.h file. Later on I'll come up with a patch to get rid of the newly introduced current_gdbarch's in mn10300-tdep.c. Tested by building with --target=mn10300. Ok to commit? ChangeLog: * mn10300-tdep.c (set_reg_offsets,mn10300_analyze_prologue): Replace AM33 by its expression. * mn10300-tdep.h (AM33_MODE): Remove. -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com --------------000909050608060606030009 Content-Type: text/plain; name="diff-mn10300" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff-mn10300" Content-length: 1401 diff -urpN src/gdb/mn10300-tdep.c dev/gdb/mn10300-tdep.c --- src/gdb/mn10300-tdep.c 2007-11-05 05:32:22.000000000 +0100 +++ dev/gdb/mn10300-tdep.c 2007-11-06 10:37:39.000000000 +0100 @@ -328,7 +328,7 @@ set_reg_offsets (struct frame_info *fi, trad_frame_set_this_base (cache, base); - if (AM33_MODE == 2) + if (gdbarch_tdep (current_gdbarch)->am33_mode == 2) { /* If bit N is set in fpregmask, fsN is saved on the stack. The floating point registers are saved in ascending order. @@ -384,7 +384,7 @@ set_reg_offsets (struct frame_info *fi, trad_frame_set_reg_addr (cache, E_D2_REGNUM, base + offset); offset += 4; } - if (AM33_MODE) + if (gdbarch_tdep (current_gdbarch)->am33_mode) { if (movm_args & movm_exother_bit) { @@ -603,7 +603,7 @@ mn10300_analyze_prologue (struct frame_i goto finish_prologue; } - if (AM33_MODE == 2) + if (gdbarch_tdep (current_gdbarch)->am33_mode == 2) { /* Determine if any floating point registers are to be saved. Look for one of the following three prologue formats: diff -urpN src/gdb/mn10300-tdep.h dev/gdb/mn10300-tdep.h --- src/gdb/mn10300-tdep.h 2007-08-23 20:08:36.000000000 +0200 +++ dev/gdb/mn10300-tdep.h 2007-11-06 10:38:52.000000000 +0100 @@ -77,4 +77,3 @@ struct gdbarch_tdep int am33_mode; }; -#define AM33_MODE (gdbarch_tdep (current_gdbarch)->am33_mode) --------------000909050608060606030009--