summaryrefslogtreecommitdiff
path: root/gcc/config/1750a
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-12-07 23:53:35 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-12-07 23:53:35 +0000
commit6155614dc81fb6b129dc26fb0145906022c8efd8 (patch)
tree1d7902653bf1b227dca0858d1b062e3e8bf5b5c4 /gcc/config/1750a
parentc50a6f11a4afcbffc4bbc11452d18bce08c266b4 (diff)
downloadgcc-6155614dc81fb6b129dc26fb0145906022c8efd8.tar.gz
(movhi pattern): Fixed MEM to MEM move problem.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13246 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/1750a')
-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 6cb9b8d82cc..2f4e75bfb49 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