http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39633
--- Comment #7 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-09 16:39:24 UTC --- The bug is here: lsl r24 ashrqi3/5 sbc r24,r24 brne .L3 branch The SBC doc says: > Z: Previous value [of Z] remains unchanged when the > result [of SBC] is zero; cleared otherwise. I.e. the SBC leaves cc0 in a mess, and that's ashrqi3/5: "r,0,n" and "cc=clobber". I do not understand where the BRNE comes from because it's a conditional jump and cc0 is in a mess.