aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-06-20 12:15:58 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2011-06-20 12:15:58 +0000
commitc2954af9266e69bc422c3ca6c77fdecd92199070 (patch)
tree846965a60d38c007cb9d8964c70ffa70026683b9
parenta95015b6cd1d68d540e1805686d534e88ec6bfbd (diff)
downloadgcc-c2954af9266e69bc422c3ca6c77fdecd92199070.zip
gcc-c2954af9266e69bc422c3ca6c77fdecd92199070.tar.gz
gcc-c2954af9266e69bc422c3ca6c77fdecd92199070.tar.bz2
re PR target/49385 (Invalid RTL intstruction for ARM)
Fix PR target/49385 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> PR target/49385 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast one of the operands is a register. From-SVN: r175208
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/thumb2.md4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 673dd46..aa9449b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ PR target/49385
+ * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
+ one of the operands is a register.
+
2011-06-20 Kai Tietz <ktietz@redhat.com>
* fold-const.c (fold_binary_loc): Add missing
diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
index 26dcbdd..9a11012 100644
--- a/gcc/config/arm/thumb2.md
+++ b/gcc/config/arm/thumb2.md
@@ -207,7 +207,9 @@
(define_insn "*thumb2_movhi_insn"
[(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r")
(match_operand:HI 1 "general_operand" "rI,n,r,m"))]
- "TARGET_THUMB2"
+ "TARGET_THUMB2
+ && (register_operand (operands[0], HImode)
+ || register_operand (operands[1], HImode))"
"@
mov%?\\t%0, %1\\t%@ movhi
movw%?\\t%0, %L1\\t%@ movhi