From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22072 invoked by alias); 14 Jan 2010 17:29:32 -0000 Received: (qmail 21827 invoked by uid 48); 14 Jan 2010 17:29:06 -0000 Date: Thu, 14 Jan 2010 17:29:00 -0000 Message-ID: <20100114172906.21826.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/42248] [4.5 Regression] compat test struct-by-value-17 fails execution with -O1 -fschedule-insns In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pthaugen at gcc dot gnu dot org" 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: 2010-01/txt/msg01758.txt.bz2 ------- Comment #12 from pthaugen at gcc dot gnu dot org 2010-01-14 17:29 ------- The first patch appeared to work, resulting in correct ordering, but the second patch had some issues. It also corrected the original ordering, but introduced some new incorrect code for handling the args coming in in FPR regs. Check: .L.check: mflr 0 std 0,16(1) stdu 1,-128(1) std 3,176(1) std 4,184(1) std 5,192(1) std 6,200(1) lfd 13,184(1) lfd 0,176(1) >> std 8,112(1) >> lfd 12,112(1) >> fcmpu 7,0,12 crnot 30,30 beq 7,.L4 >> fcmpu 7,13,1 beq 7,.L1 The first compare should be comparing FP12 against FP1, not sure how the GPR8 stuff got in there, nothing is even passed in GPR8. Init: .L.init: std 5,0(3) stfd 1,8(3) blr Should just be storing FPR1/FPR2 into consecutive locations. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42248