------- Comment #1 from law at redhat dot com  2010-02-26 01:04 -------
Trunk produces:

mid_pred:
        movem.l #14336,-(%sp)
        move.l 16(%sp),%d1
        move.l 20(%sp),%d0
        move.l %d1,%d3
        sub.l %d0,%d3
        move.l %d3,%d2
        add.l %d2,%d2
        subx.l %d2,%d2
        and.l %d3,%d2
        add.l %d2,%d0
        move.l %d0,%d4
        sub.l 24(%sp),%d4
        move.l %d4,%d3
        add.l %d3,%d3
        subx.l %d3,%d3
        and.l %d4,%d3
        sub.l %d3,%d0
        sub.l %d2,%d1
        sub.l %d0,%d1
        move.l %d1,%d2
        add.l %d2,%d2
        subx.l %d2,%d2
        and.l %d1,%d2
        add.l %d2,%d0
        movem.l (%sp)+,#28
        rts


Note the two unwanted move insns are gone.  Likely due to IRA work as it
eliminated part of regmove and generally gives better register allocations.


-- 

law at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED


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

Reply via email to