aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2017-02-06 11:38:52 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2017-02-06 11:38:52 +0000
commit1e58aefec437e9d9da7a757a3c43aa5fba9ca8dc (patch)
treeba012e579620d04a1e7ca943c7746b66c039334d
parentef7df1533834873ae913f00bc1378fb7f00271ea (diff)
downloadgcc-1e58aefec437e9d9da7a757a3c43aa5fba9ca8dc.zip
gcc-1e58aefec437e9d9da7a757a3c43aa5fba9ca8dc.tar.gz
gcc-1e58aefec437e9d9da7a757a3c43aa5fba9ca8dc.tar.bz2
avr.md (*addhi3_zero_extend): Add alternative where REGNO($0) == REGNO($1).
* config/avr/avr.md (*addhi3_zero_extend): Add alternative where REGNO($0) == REGNO($1). From-SVN: r245206
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/avr/avr.md12
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a6414f..9b9657d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-02-06 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
+ REGNO($0) == REGNO($1).
+
2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/linux.h(SIZE_TYPE): Add comment.
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 256b2b6..c246e67 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -1200,12 +1200,14 @@
(define_insn "*addhi3_zero_extend"
- [(set (match_operand:HI 0 "register_operand" "=r")
- (plus:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
- (match_operand:HI 2 "register_operand" "0")))]
+ [(set (match_operand:HI 0 "register_operand" "=r,*?r")
+ (plus:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r ,0"))
+ (match_operand:HI 2 "register_operand" "0 ,r")))]
""
- "add %A0,%1\;adc %B0,__zero_reg__"
- [(set_attr "length" "2")
+ "@
+ add %A0,%1\;adc %B0,__zero_reg__
+ add %A0,%A2\;mov %B0,%B2\;adc %B0,__zero_reg__"
+ [(set_attr "length" "2,3")
(set_attr "cc" "set_n")])
(define_insn "*addhi3_zero_extend1"