From fc4814667f54c1cb673589098ce5abbc8c80d2c8 Mon Sep 17 00:00:00 2001 From: Georg-Johann Lay Date: Tue, 21 Jul 2015 17:31:22 +0000 Subject: [PATCH] backport: re PR target/66956 ([avr] Using 32*32=64 multiplicatiion (umulsidi3) for 32=32*32 without MUL.) Backport from 2015-07-21 trunk r226046. PR target/66956 * config/avr/avr-dimode.md (mulsidi3_insn) (mulsidi3): Don't use if !AVR_HAVE_MUL. From-SVN: r226048 --- gcc/ChangeLog | 8 ++++++++ gcc/config/avr/avr-dimode.md | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc3a787968ff..a2bf2701bb6f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-07-21 Georg-Johann Lay + + Backport from 2015-07-21 trunk r226046. + + PR target/66956 + * config/avr/avr-dimode.md (mulsidi3_insn) + (mulsidi3): Don't use if !AVR_HAVE_MUL. + 2015-07-18 Uros Bizjak PR target/66922 diff --git a/gcc/config/avr/avr-dimode.md b/gcc/config/avr/avr-dimode.md index 56cd304582ab..9300e5e3c7c5 100644 --- a/gcc/config/avr/avr-dimode.md +++ b/gcc/config/avr/avr-dimode.md @@ -461,7 +461,8 @@ (match_operand:SI 2 "general_operand" "") ;; Just to mention the iterator (clobber (any_extend:SI (match_dup 1)))])] - "avr_have_dimode" + "avr_have_dimode + && AVR_HAVE_MUL" { avr_fix_inputs (operands, 1 << 2, regmask (SImode, 22)); emit_move_insn (gen_rtx_REG (SImode, 22), operands[1]); @@ -480,7 +481,8 @@ (any_extend:DI (reg:SI 22)))) (clobber (reg:HI REG_X)) (clobber (reg:HI REG_Z))] - "avr_have_dimode" + "avr_have_dimode + && AVR_HAVE_MUL" "%~call __mulsidi3" [(set_attr "adjust_len" "call") (set_attr "cc" "clobber")]) -- 2.47.2