This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/42248] [4.5 Regression] compat test struct-by-value-17 fails execution with -O1 -fschedule-insns
- From: "pthaugen at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Jan 2010 17:29:06 -0000
- Subject: [Bug middle-end/42248] [4.5 Regression] compat test struct-by-value-17 fails execution with -O1 -fschedule-insns
- References: <bug-42248-4503@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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