(movhi pattern): Fixed MEM to MEM move problem.
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 7 Dec 1996 23:53:35 +0000 (18:53 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 7 Dec 1996 23:53:35 +0000 (18:53 -0500)
From-SVN: r13246

gcc/config/1750a/1750a.md

index 6cb9b8d82ccb5eaf21dee55eee04259a899a3ccb..2f4e75bfb494fe97e38c6238eb6846d6c1312542 100644 (file)
       }
   ")
 
-(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