aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-12-07 18:53:35 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1996-12-07 18:53:35 -0500
commit3ba95fd3aafb182df5146ac1806423851c3adb37 (patch)
tree1d7902653bf1b227dca0858d1b062e3e8bf5b5c4
parente36a0077e39e83c5becbb280c059c953f59959e4 (diff)
downloadgcc-3ba95fd3aafb182df5146ac1806423851c3adb37.zip
gcc-3ba95fd3aafb182df5146ac1806423851c3adb37.tar.gz
gcc-3ba95fd3aafb182df5146ac1806423851c3adb37.tar.bz2
(movhi pattern): Fixed MEM to MEM move problem.
From-SVN: r13246
-rw-r--r--gcc/config/1750a/1750a.md18
1 files changed, 16 insertions, 2 deletions
diff --git a/gcc/config/1750a/1750a.md b/gcc/config/1750a/1750a.md
index 6cb9b8d..2f4e75b 100644
--- a/gcc/config/1750a/1750a.md
+++ b/gcc/config/1750a/1750a.md
@@ -431,15 +431,29 @@
}
")
-(define_insn "movhi"
+;; The movhi pattern.
+
+(define_insn ""
[(set (match_operand:HI 0 "general_operand" "=r,r,m")
(match_operand:HI 1 "general_operand" "r,m,r"))]
- ""
+ "register_operand (operands[0], HImode) ||
+ register_operand (operands[1], HImode)"
"@
dlr r%0,r%1
dl r%0,%1
dst r%1,%0 ")
+(define_expand "movhi"
+ [(set (match_operand:HI 0 "general_operand" "=g")
+ (match_operand:HI 1 "general_operand" "g"))]
+ ""
+ "
+ {
+ if (GET_CODE(operands[0]) == MEM &&
+ GET_CODE(operands[1]) == MEM)
+ operands[1] = force_reg (HImode, operands[1]);
+ }")
+
;; Single-Float moves are similar to HImode moves