(cmpsi): Added insn with appropriate constraints for TARGET_5200;
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 15 Feb 1997 23:45:23 +0000 (18:45 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 15 Feb 1997 23:45:23 +0000 (18:45 -0500)
changed condition of existing insn to !TARGET_5200.

From-SVN: r13649

gcc/config/m68k/m68k.md

index 83d38793fb6a09376d55d745f3b2f89700312686..058f47421447bcfc44206e493d86e1a5523dbb6d 100644 (file)
     }
 }")
 
-;; A composite of the cmp, cmpa, & cmpi m68000 op codes.
+;; A composite of the cmp, cmpa, cmpi & cmpm m68000 op codes.
 (define_insn ""
   [(set (cc0)
        (compare (match_operand:SI 0 "nonimmediate_operand" "rKs,mr,>")
-                (match_operand:SI 1 "general_operand" "mr,Ksr,>")))]
-  ""
+                (match_operand:SI 1 "general_operand" "mr,rKs,>")))]
+  "!TARGET_5200"
   "*
 {
   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
 #endif
 }")
 
+(define_insn ""
+  [(set (cc0)
+       (compare (match_operand:SI 0 "nonimmediate_operand" "mrKs,r")
+                (match_operand:SI 1 "general_operand" "r,mrKs")))]
+  "TARGET_5200"
+  "*
+{
+  if (REG_P (operands[1])
+      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
+    { cc_status.flags |= CC_REVERSED;
+#ifdef SGS_CMP_ORDER
+      return \"cmp%.l %d1,%d0\";
+#else
+      return \"cmp%.l %d0,%d1\";
+#endif
+    }
+#ifdef SGS_CMP_ORDER
+  return \"cmp%.l %d0,%d1\";
+#else
+  return \"cmp%.l %d1,%d0\";
+#endif
+}")
+
 (define_insn "cmphi"
   [(set (cc0)
        (compare (match_operand:HI 0 "nonimmediate_operand" "rnm,d,n,m,>")