diff -rupw gcc/config/avr/avr.md gcc/config/avr/avr.md --- gcc/config/avr/avr.md 2011-02-23 15:54:14.000000000 -0600 +++ gcc/config/avr/avr.md 2011-02-23 15:55:22.000000000 -0600 @@ -1082,8 +1082,8 @@ (set_attr "cc" "clobber")]) (define_expand "mulhisi3" - [(set (reg:HI 18) (match_operand:SI 1 "register_operand" "")) - (set (reg:HI 20) (match_operand:SI 2 "register_operand" "")) + [(set (reg:HI 18) (match_operand:HI 1 "register_operand" "")) + (set (reg:HI 20) (match_operand:HI 2 "register_operand" "")) (set (reg:SI 22) (mult:SI (any_extend:SI (reg:HI 18)) (any_extend:SI (reg:HI 20))))