summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2011-03-05 14:01:07 +0000
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2011-03-05 14:01:07 +0000
commit85e02ccba807a9724fec26e163adc9559591d247 (patch)
treea3365bfba23eda6a9f1914148848d1c963f45065
parent8fa92398162bb69909b935f6694d8d4a8574917f (diff)
downloadgcc-85e02ccba807a9724fec26e163adc9559591d247.tar.gz
PR target/47719
* arm.md (movhi_insn_arch4): Accept any immediate constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170698 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.md7
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c9c1540b1d2..7a723c8f8bf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-05 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/47719
+ * arm.md (movhi_insn_arch4): Accept any immediate constant.
+
2011-03-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/47967
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 73a879e9384..6f31e6211b4 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -5790,12 +5790,11 @@
;; Pattern to recognize insn generated default case above
(define_insn "*movhi_insn_arch4"
[(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r")
- (match_operand:HI 1 "general_operand" "rI,K,r,m"))]
+ (match_operand:HI 1 "general_operand" "rI,K,r,mi"))]
"TARGET_ARM
&& arm_arch4
- && (GET_CODE (operands[1]) != CONST_INT
- || const_ok_for_arm (INTVAL (operands[1]))
- || const_ok_for_arm (~INTVAL (operands[1])))"
+ && (register_operand (operands[0], HImode)
+ || register_operand (operands[1], HImode))"
"@
mov%?\\t%0, %1\\t%@ movhi
mvn%?\\t%0, #%B1\\t%@ movhi