------- 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