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

Reply via email to