summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@gcc.gnu.org>2015-05-19 11:42:44 +0000
committerNick Clifton <nickc@gcc.gnu.org>2015-05-19 11:42:44 +0000
commitbdafd67926619844219607d658d0632d0eda313c (patch)
tree9c51835e4e81bf31d6a6e086b9de18e3c97d4fe7
parent057c74c7c5e43dc6fe23545051f77ff1da4116db (diff)
downloadgcc-bdafd67926619844219607d658d0632d0eda313c.tar.gz
re PR rtl-optimization/66156 ([msp430] wrong code generated with -O2 -mlarge (zero extension HI -> SI))
PR target/66156 * config/msp430/msp430.md (zero_extendhisi2): Add support for separate source and destination registers. From-SVN: r223354
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/msp430/msp430.md8
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ed64b470784..2f90beaa2a9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-05-19 Nick Clifton <nickc@redhat.com>
+
+ PR target/66156
+ * config/msp430/msp430.md (zero_extendhisi2): Add support for
+ separate source and destination registers.
+
2015-05-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/66165
@@ -32,7 +38,7 @@
* calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
(mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
STACK_GROWS_DOWNWARD as normal if.
- (expand_call): Likewise.
+ (expand_call): Likewise.
2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
diff --git a/gcc/config/msp430/msp430.md b/gcc/config/msp430/msp430.md
index 91742fc38b5..64fdc459b78 100644
--- a/gcc/config/msp430/msp430.md
+++ b/gcc/config/msp430/msp430.md
@@ -588,10 +588,12 @@
;; patterns. Doing these manually allows for alternate optimization
;; paths.
(define_insn "zero_extendhisi2"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=rm")
- (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "0")))]
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r")
+ (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "0,r")))]
"msp430x"
- "MOV.W\t#0,%H0"
+ "@
+ MOV.W\t#0,%H0
+ MOV.W\t%1,%L0 { MOV.W\t#0,%H0"
)
(define_insn "zero_extendhisipsi2"