From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15113 invoked by alias); 10 Feb 2011 08:43:35 -0000 Received: (qmail 15103 invoked by uid 22791); 10 Feb 2011 08:43:35 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 10 Feb 2011 08:43:31 +0000 From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/47324] r157762 caused g++.dg/torture/stackalign failures with -O3 -g at -m32 on darwin X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Thu, 10 Feb 2011 08:57:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-02/txt/msg01284.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47324 --- Comment #31 from Jakub Jelinek 2011-02-10 08:43:02 UTC --- You really don't need to add for_eh argument to output_cfa_loc_raw, you can assume it is 1. If you need to still adjust the register numbers inside of expressions, I guess for the current targets using DWARF2_FRAME_REG_OUT (rs6000 and darwin/i386) this is solvable by passing for_eh parameter down to output_loc_sequence and output_loc_operands, in output_loc_sequence adjust for output dw_loc_opc for DW_OP_{,b}reg0 .. 31 using DWARF2_FRAME_REG_OUT (and perhaps assert that it is still <= 31; don't modify loc->dw_loc_opc though) and in output_loc_operands adjust DW_OP_{,b}regx argument and assert that size_of_uleb128 of the first argument is the same as of the adjusted argument using DWARF2_FRAME_REG_OUT. Additionally, in output_loc*raw* variants don't pass for_eh down, just use DWARF2_FRAME_REG_OUT with unconditional 1 second argument.