]> gcc.gnu.org Git - gcc.git/commitdiff
(scc0_di, scc_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu,
authorJim Wilson <wilson@gcc.gnu.org>
Tue, 20 May 1997 01:12:04 +0000 (18:12 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 20 May 1997 01:12:04 +0000 (18:12 -0700)
sle, sleu): Add coldfire support.

From-SVN: r14106

gcc/config/m68k/m68k.md

index 68f2b0b4f457b591cc1001b019f5af7c1416a246..3dc3dabf576a44cc7023807a4304c64342ad4d2c 100644 (file)
   [(set (match_operand:QI 0 "general_operand" "=dm")
     (match_operator 1 "valid_dbcc_comparison_p"
       [(match_operand:DI 2 "general_operand" "ro") (const_int 0)]))]
-  ""
+  "! TARGET_5200"
+  "*
+{
+  return output_scc_di (operands[1], operands[2], const0_rtx, operands[0]);
+} ")
+
+(define_insn "scc0_di_5200"
+  [(set (match_operand:QI 0 "general_operand" "=d")
+    (match_operator 1 "valid_dbcc_comparison_p"
+      [(match_operand:DI 2 "general_operand" "ro") (const_int 0)]))]
+  "TARGET_5200"
   "*
 {
   return output_scc_di (operands[1], operands[2], const0_rtx, operands[0]);
     (match_operator 1 "valid_dbcc_comparison_p"
       [(match_operand:DI 2 "general_operand" "ro,r")
        (match_operand:DI 3 "general_operand" "r,ro")]))]
-  ""
+  "! TARGET_5200"
+  "*
+{
+  return output_scc_di (operands[1], operands[2], operands[3], operands[0]);
+} ")
+
+(define_insn "scc_di_5200"
+  [(set (match_operand:QI 0 "general_operand" "=d,d")
+    (match_operator 1 "valid_dbcc_comparison_p"
+      [(match_operand:DI 2 "general_operand" "ro,r")
+       (match_operand:DI 3 "general_operand" "r,ro")]))]
+  "TARGET_5200"
   "*
 {
   return output_scc_di (operands[1], operands[2], operands[3], operands[0]);
 (define_insn ""
   [(set (match_operand:QI 0 "general_operand" "=dm")
        (eq:QI (cc0) (const_int 0)))]
-  ""
+  "! TARGET_5200"
+  "*
+  cc_status = cc_prev_status;
+  OUTPUT_JUMP (\"seq %0\", \"fseq %0\", \"seq %0\");
+")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (eq:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
   "*
   cc_status = cc_prev_status;
   OUTPUT_JUMP (\"seq %0\", \"fseq %0\", \"seq %0\");
 (define_insn ""
   [(set (match_operand:QI 0 "general_operand" "=dm")
        (ne:QI (cc0) (const_int 0)))]
-  ""
+  "! TARGET_5200"
+  "*
+  cc_status = cc_prev_status;
+  OUTPUT_JUMP (\"sne %0\", \"fsne %0\", \"sne %0\");
+")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (ne:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
   "*
   cc_status = cc_prev_status;
   OUTPUT_JUMP (\"sne %0\", \"fsne %0\", \"sne %0\");
 (define_insn ""
   [(set (match_operand:QI 0 "general_operand" "=dm")
        (gt:QI (cc0) (const_int 0)))]
-  ""
+  "! TARGET_5200"
   "*
   cc_status = cc_prev_status;
   OUTPUT_JUMP (\"sgt %0\", \"fsgt %0\", 0);
 ")
 
-(define_insn "sgtu"
-  [(set (match_operand:QI 0 "general_operand" "=dm")
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (gt:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
+  "*
+  cc_status = cc_prev_status;
+  OUTPUT_JUMP (\"sgt %0\", \"fsgt %0\", 0);
+")
+
+(define_expand "sgtu"
+  [(set (match_operand:QI 0 "general_operand" "")
        (gtu:QI (cc0) (const_int 0)))]
   ""
+  "")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=dm")
+       (gtu:QI (cc0) (const_int 0)))]
+  "! TARGET_5200"
+  "* cc_status = cc_prev_status;
+     return \"shi %0\"; ")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (gtu:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
   "* cc_status = cc_prev_status;
      return \"shi %0\"; ")
 
 (define_insn ""
   [(set (match_operand:QI 0 "general_operand" "=dm")
        (lt:QI (cc0) (const_int 0)))]
-  ""
+  "! TARGET_5200"
   "* cc_status = cc_prev_status;
      OUTPUT_JUMP (\"slt %0\", \"fslt %0\", \"smi %0\"); ")
 
-(define_insn "sltu"
-  [(set (match_operand:QI 0 "general_operand" "=dm")
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (lt:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
+  "* cc_status = cc_prev_status;
+     OUTPUT_JUMP (\"slt %0\", \"fslt %0\", \"smi %0\"); ")
+
+(define_expand "sltu"
+  [(set (match_operand:QI 0 "general_operand" "")
        (ltu:QI (cc0) (const_int 0)))]
   ""
+  "")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=dm")
+       (ltu:QI (cc0) (const_int 0)))]
+  "! TARGET_5200"
+  "* cc_status = cc_prev_status;
+     return \"scs %0\"; ")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (ltu:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
   "* cc_status = cc_prev_status;
      return \"scs %0\"; ")
 
 (define_insn ""
   [(set (match_operand:QI 0 "general_operand" "=dm")
        (ge:QI (cc0) (const_int 0)))]
-  ""
+  "! TARGET_5200"
   "* cc_status = cc_prev_status;
      OUTPUT_JUMP (\"sge %0\", \"fsge %0\", \"spl %0\"); ")
 
-(define_insn "sgeu"
-  [(set (match_operand:QI 0 "general_operand" "=dm")
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (ge:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
+  "* cc_status = cc_prev_status;
+     OUTPUT_JUMP (\"sge %0\", \"fsge %0\", \"spl %0\"); ")
+
+(define_expand "sgeu"
+  [(set (match_operand:QI 0 "general_operand" "")
        (geu:QI (cc0) (const_int 0)))]
   ""
+  "")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=dm")
+       (geu:QI (cc0) (const_int 0)))]
+  "! TARGET_5200"
+  "* cc_status = cc_prev_status;
+     return \"scc %0\"; ")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (geu:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
   "* cc_status = cc_prev_status;
      return \"scc %0\"; ")
 
 (define_insn ""
   [(set (match_operand:QI 0 "general_operand" "=dm")
        (le:QI (cc0) (const_int 0)))]
-  ""
+  "! TARGET_5200"
   "*
   cc_status = cc_prev_status;
   OUTPUT_JUMP (\"sle %0\", \"fsle %0\", 0);
 ")
 
-(define_insn "sleu"
-  [(set (match_operand:QI 0 "general_operand" "=dm")
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (le:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
+  "*
+  cc_status = cc_prev_status;
+  OUTPUT_JUMP (\"sle %0\", \"fsle %0\", 0);
+")
+
+(define_expand "sleu"
+  [(set (match_operand:QI 0 "general_operand" "")
        (leu:QI (cc0) (const_int 0)))]
   ""
+  "")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=dm")
+       (leu:QI (cc0) (const_int 0)))]
+  "! TARGET_5200"
+  "* cc_status = cc_prev_status;
+     return \"sls %0\"; ")
+
+(define_insn ""
+  [(set (match_operand:QI 0 "general_operand" "=d")
+       (leu:QI (cc0) (const_int 0)))]
+  "TARGET_5200"
   "* cc_status = cc_prev_status;
      return \"sls %0\"; ")
 \f
This page took 0.1069 seconds and 5 git commands to generate.