Hi! This last hunk is wrong, for sprintf you need to use %% instead of %.
On Wed, Sep 07, 2011 at 09:23:36PM +0200, Bernd Schmidt wrote: > @@ -10631,7 +10633,7 @@ (define_insn "*push_fp_multi" > { > char pattern[100]; > > - sprintf (pattern, \"sfmfd\\t%%1, %d, [%%m0]!\", XVECLEN (operands[2], > 0)); > + sprintf (pattern, \"sfm%(fd%)\\t%%1, %d, [%%m0]!\", XVECLEN > (operands[2], 0)); > output_asm_insn (pattern, operands); > return \"\"; > }" Committed as obvious: 2011-09-12 Jakub Jelinek <ja...@redhat.com> PR bootstrap/50352 * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the sprintf format string. --- gcc/config/arm/arm.md (revision 178777) +++ gcc/config/arm/arm.md (revision 178778) @@ -10633,7 +10633,7 @@ (define_insn "*push_fp_multi" { char pattern[100]; - sprintf (pattern, \"sfm%(fd%)\\t%%1, %d, [%%m0]!\", XVECLEN (operands[2], 0)); + sprintf (pattern, \"sfm%%(fd%%)\\t%%1, %d, [%%m0]!\", XVECLEN (operands[2], 0)); output_asm_insn (pattern, operands); return \"\"; }" Jakub