Hi! Richard reported that after my PR79345 r245833 fix avr no longer builds: ../../gcc/config/avr/avr.md:1060:1: define_expand for setmemhi needs to have match_scratch numbers above all other operands The following patch ought to fix that, committed as obvious to trunk.
2017-03-08 Jakub Jelinek <ja...@redhat.com> * config/avr/avr.md (setmemhi): Make sure match_dup operand number comes before match_scratch. --- gcc/config/avr/avr.md.jj 2017-02-06 13:32:14.000000000 +0100 +++ gcc/config/avr/avr.md 2017-03-08 09:46:39.828773285 +0100 @@ -1062,8 +1062,8 @@ (define_expand "setmemhi" (match_operand 2 "const_int_operand" "")) (use (match_operand:HI 1 "const_int_operand" "")) (use (match_operand:HI 3 "const_int_operand" "")) - (clobber (match_scratch:HI 4 "")) - (clobber (match_dup 5))])] + (clobber (match_scratch:HI 5 "")) + (clobber (match_dup 4))])] "" { rtx addr0; @@ -1077,7 +1077,7 @@ (define_expand "setmemhi" FAIL; mode = u8_operand (operands[1], VOIDmode) ? QImode : HImode; - operands[5] = gen_rtx_SCRATCH (mode); + operands[4] = gen_rtx_SCRATCH (mode); operands[1] = copy_to_mode_reg (mode, gen_int_mode (INTVAL (operands[1]), mode)); addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); Jakub