From patchwork Fri Jan 19 07:49:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikola Prica X-Patchwork-Id: 25450 Received: (qmail 53635 invoked by alias); 19 Jan 2018 07:49:35 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 53620 invoked by uid 89); 19 Jan 2018 07:49:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=H*Ad:D*cisco.com X-HELO: mail.rt-rk.com Received: from mx2.rt-rk.com (HELO mail.rt-rk.com) (89.216.37.149) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 19 Jan 2018 07:49:32 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.rt-rk.com (Postfix) with ESMTP id 308191A471C; Fri, 19 Jan 2018 08:49:29 +0100 (CET) Received: from [10.10.13.119] (rtrkw512-lin.domain.local [10.10.13.119]) by mail.rt-rk.com (Postfix) with ESMTPSA id 12A9C1A4714; Fri, 19 Jan 2018 08:49:29 +0100 (CET) Subject: Re: [PING][PATCH] Fix for prologue processing on PowerPC From: Nikola Prica To: Pedro Franco de Carvalho , Kevin Buettner Cc: gdb-patches@sourceware.org, "Ananthakrishna Sowda (asowda)" , "Ivan Baev (ibaev)" , 'Nemanja Popov' , Djordje Todorovic , Ulrich.Weigand@de.ibm.com References: <20171108095850.394a48ca@pinnacle.lan> <8bf0014c-e83c-5988-4d06-173572f21186@rt-rk.com> <7ba16b14-9384-34d9-937e-531a2192842a@linux.vnet.ibm.com> <87608p4dgr.fsf@linux.vnet.ibm.com> <87r2qx4oit.fsf@linux.vnet.ibm.com> <20038806-69e5-b7ce-479b-54185089145b@rt-rk.com> Message-ID: <90e3f502-7d22-d22e-4bf0-3b0db43347d6@rt-rk.com> Date: Fri, 19 Jan 2018 08:49:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20038806-69e5-b7ce-479b-54185089145b@rt-rk.com> Hi Pedro, I've just seen that changed version of patch was not attached. Best regards, Nikola Prica From 3564cd3be620bb39ca615919148fa0d949284d35 Mon Sep 17 00:00:00 2001 From: Prica Date: Thu, 9 Nov 2017 13:10:48 +0100 Subject: [PATCH] Fix for prologue processing on PowerPC One of conditions in skip_prologue() is never visited because it expects non shifted `lr_reg`. That condition is supposed to set PC offset. When body of this condition is visited PC offset is set and there will be no need to look for it in next frames nor to use frame unwind directives. gdb/ChangeLog: *rs6000-tdep.c (skip_prologue): Remove shifting for lr_reg and assign shifted lr_reg to fdata->lr_register when lr_reg is set. If iteration do not hit lim_pc lr_register is set as -1. --- gdb/rs6000-tdep.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 6c44995..6f05ef5 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -1655,9 +1655,12 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc, remember just the first one, but skip over additional ones. */ if (lr_reg == -1) - lr_reg = (op & 0x03e00000) >> 21; - if (lr_reg == 0) - r0_contains_arg = 0; + { + lr_reg = (op & 0x03e00000); + fdata->lr_register = lr_reg >> 21; + if (lr_reg == 0) + r0_contains_arg = 0; + } continue; } else if ((op & 0xfc1fffff) == 0x7c000026) @@ -2180,8 +2183,8 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc, } #endif /* 0 */ - if (pc == lim_pc && lr_reg >= 0) - fdata->lr_register = lr_reg; + if (pc != lim_pc) + fdata->lr_register = -1; fdata->offset = -fdata->offset; return last_prologue_pc; -- 2.7.4