From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 105848 invoked by alias); 6 Oct 2015 18:02:12 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 105839 invoked by uid 89); 6 Oct 2015 18:02:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mailapp01.imgtec.com Received: from mailapp01.imgtec.com (HELO mailapp01.imgtec.com) (195.59.15.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 06 Oct 2015 18:02:10 +0000 Received: from KLMAIL01.kl.imgtec.org (unknown [192.168.5.35]) by Websense Email Security Gateway with ESMTPS id 981BE65FB7896; Tue, 6 Oct 2015 19:02:04 +0100 (IST) Received: from BAMAIL02.ba.imgtec.org (10.20.40.28) by KLMAIL01.kl.imgtec.org (192.168.5.35) with Microsoft SMTP Server (TLS) id 14.3.195.1; Tue, 6 Oct 2015 19:02:08 +0100 Received: from [10.20.3.58] (10.20.3.58) by bamail02.ba.imgtec.org (10.20.40.28) with Microsoft SMTP Server (TLS) id 14.3.174.1; Tue, 6 Oct 2015 11:02:03 -0700 Message-ID: <1444154522.8687.248.camel@ubuntu-sellcey> Subject: Re: RFC: Patch to allow spill slot alignment greater than the stack alignment From: Steve Ellcey Reply-To: To: Bernd Schmidt CC: "H.J. Lu" , GCC Patches Date: Tue, 06 Oct 2015 18:02:00 -0000 In-Reply-To: <5613EB22.4020505@redhat.com> References: <1443819469.8687.182.camel@ubuntu-sellcey> <561237B9.1080602@redhat.com> <1444061411.8687.207.camel@ubuntu-sellcey> <1444063572.8687.219.camel@ubuntu-sellcey> <1444145408.8687.238.camel@ubuntu-sellcey> <5613EB22.4020505@redhat.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-SW-Source: 2015-10/txt/msg00620.txt.bz2 On Tue, 2015-10-06 at 17:39 +0200, Bernd Schmidt wrote: > > Did your tag that copy as RTX_FRAME_RELATED? I'd expect dwarf2cfi would > ignore instructions with that bit unset. There's even a comment > indicating arm does something like this: Yes, I had marked it as RTX_FRAME_RELATED. When I took that out things looked better (well, maybe just different). If I remove that and I change Rule #16 to handle an AND with a register I get odd looking .cfi stuff. The AND instruction (which is marked with RTX_FRAME_RELATED) seems to generate these cfi_escape macros: .cfi_escape 0x10,0x1f,0x2,0x8e,0x7c .cfi_escape 0x10,0x1e,0x2,0x8e,0x78 .cfi_escape 0x10,0xc,0x2,0x8e,0x74 which are meaningless to me. What I found works better is to skip the dwarf2cfi.c changes and explicitly attach this note to the AND instruction: cfi_note = alloc_reg_note (REG_CFA_DEF_CFA, stack_pointer_rtx, NULL_RTX); REG_NOTES (insn) = cfi_note; When I do this the only unexpected test suite execution failures I see are ones that call the C++ set_unexpected function. FYI: The reason I was copying the stack pointer to another register was to use that other register as my argument pointer (needed after the stack pointer got aligned) and to use it to restore the stack pointer at the end of the function for normal returns. Steve Ellcey sellcey@imgtec.com