From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id EC6AC3858D1E for ; Tue, 8 Nov 2022 14:57:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EC6AC3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=foss.arm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=foss.arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A7DC51FB; Tue, 8 Nov 2022 06:57:23 -0800 (PST) Received: from [10.2.78.76] (unknown [10.2.78.76]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D03273F73D; Tue, 8 Nov 2022 06:57:16 -0800 (PST) Message-ID: Date: Tue, 8 Nov 2022 14:57:15 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH 9/15] arm: Set again stack pointer as CFA reg when popping if necessary Content-Language: en-GB To: Andrea Corallo Cc: nd , Andrea Corallo via Gcc-patches , Richard Earnshaw References: From: Richard Earnshaw In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3490.0 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,NICE_REPLY_A,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 26/10/2022 09:49, Andrea Corallo via Gcc-patches wrote: > Richard Earnshaw writes: > >> On 27/09/2022 16:24, Kyrylo Tkachov via Gcc-patches wrote: >>> >>>> -----Original Message----- >>>> From: Andrea Corallo >>>> Sent: Tuesday, September 27, 2022 11:06 AM >>>> To: Kyrylo Tkachov >>>> Cc: Andrea Corallo via Gcc-patches ; Richard >>>> Earnshaw ; nd >>>> Subject: Re: [PATCH 9/15] arm: Set again stack pointer as CFA reg when >>>> popping if necessary >>>> >>>> Kyrylo Tkachov writes: >>>> >>>>> Hi Andrea, >>>>> >>>>>> -----Original Message----- >>>>>> From: Gcc-patches >>>>> bounces+kyrylo.tkachov=arm.com@gcc.gnu.org> On Behalf Of Andrea >>>>>> Corallo via Gcc-patches >>>>>> Sent: Friday, August 12, 2022 4:34 PM >>>>>> To: Andrea Corallo via Gcc-patches >>>>>> Cc: Richard Earnshaw ; nd >>>>>> Subject: [PATCH 9/15] arm: Set again stack pointer as CFA reg when >>>> popping >>>>>> if necessary >>>>>> >>>>>> Hi all, >>>>>> >>>>>> this patch enables 'arm_emit_multi_reg_pop' to set again the stack >>>>>> pointer as CFA reg when popping if this is necessary. >>>>>> >>>>> >>>>> From what I can tell from similar functions this is correct, but could you >>>> elaborate on why this change is needed for my understanding please? >>>>> Thanks, >>>>> Kyrill >>>> >>>> Hi Kyrill, >>>> >>>> sure, if the frame pointer was set, than it is the current CFA register. >>>> If we request to adjust the current CFA register offset indicating it >>>> being SP (while it's actually FP) that is indeed not correct and the >>>> incoherence we will be detected by an assertion in the dwarf emission >>>> machinery. >>> Thanks, the patch is ok >>> Kyrill >>> >>>> >>>> Best Regards >>>> >>>> Andrea >> >> Hmm, wait. Why would a multi-reg pop be updating the stack pointer? > > Hi Richard, > > not sure I understand, isn't any pop updating SP by definition? Yes, but the SP must already be the CFA before this instruction, since SP must be the base of the pop. So the reg note changing the CFA to SP can't be right. I'm thinking there must be some earlier restore of SP that's missing a frame-related note. R. > > BR > > Andrea