On 09/02/2021 16:27, Andrea Corallo via Gcc-patches wrote: > Jakub Jelinek <ja...@redhat.com> writes: > >> On Tue, Feb 09, 2021 at 03:09:43PM +0100, Jakub Jelinek via Gcc-patches >> wrote: >>>> "TARGET_32BIT && TARGET_HAVE_LOB" >>>> - "le\t%|lr, %l0") >>>> + "* >>>> + if (get_attr_length (insn) == 4) >>>> + return \"le\\t%|lr, %l0\"; >>>> + else >>>> + return \"subs\\t%|lr, #1\;bne\\t%l0\"; >>>> + " >>> >>> Why not >>> { >>> if (get_attr_length (insn) == 4) >>> return "le\t%|lr, %l0"; >>> else >>> return "subs\t%|lr, #1;bne\t%l0"; >>> } >>> instead? Seems the arm backend uses "*..." more than the more modern {}, >>> but one needs to backslash prefix a lot which makes it less readable? >> >> Where "more modern" is introduced 19.5 years ago ;) >> >> Jakub > > I guess we really like traditions :) > > Attached second version addressing this. > > Thanks > > Andrea >
You're missing a clobber of the condition codes in the RTL. This wasn't needed before, but is now. R.