------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-20 
06:37 -------
The corresponding asm for the tcb:
        cmpw cr7,r3,r4
        mr r11,r3
        li r10,0
        li r3,1
        beqlr- cr7
        lwz r0,0(r11)
        lwz r2,0(r4)
        slwi r9,r0,2
        cmpw cr7,r2,r0
        ble- cr7,L7
        lwz r2,4(r4)
        lwzx r0,r9,r2
        xor r10,r11,r0
        subfic r2,r10,0
        adde r10,r2,r10
L7:
        mr r3,r10
        blr

the mainline (which is much worse):
        cmpw cr7,r3,r4
        li r10,0
        beq- cr7,L2
        lwz r0,0(r3)
        li r11,1
        lwz r2,0(r4)
        slwi r9,r0,2
        cmpw cr7,r2,r0
        bgt- cr7,L12
L4:
        li r11,0
L7:
        cmpwi cr7,r11,0
        bne- cr7,L2
        mr r3,r10
        blr
L12:
        lwz r2,4(r4)
        lwzx r0,r9,r2
        cmpw cr7,r3,r0
        bne+ cr7,L4
        b L7
L2:
        li r10,1
        mr r3,r10
        blr

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18576

Reply via email to