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

Mikael Pettersson <mikpe at it dot uu.se> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mikpe at it dot uu.se

--- Comment #16 from Mikael Pettersson <mikpe at it dot uu.se> 2012-02-19 
23:48:41 UTC ---
Since r171341 (a big complex optabs cleanup patch) trunk aka 4.7 generates

bar:
        move.l 4(%sp),%a0
        tst.b (%a0)
        jne .L3
        clr.l %d1
        move.b 1(%a0),%d1
        swap %d1
        clr.w %d1
        clr.l %d0
        move.b 2(%a0),%d0
        lsl.l #8,%d0
        or.l %d1,%d0
        or.b 3(%a0),%d0
        moveq #8,%d1
        cmp.l %d0,%d1
        scs %d0
        extb.l %d0
        neg.l %d0
        rts
.L3:
        clr.l %d0
        rts

for the m68k-elf target.  (The code is much better for m68k-linux.)

Reply via email to