Commit eccc11fb by Jim Wilson

(scc0_di, scc_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu,

sle, sleu): Add coldfire support.

From-SVN: r14106
parent 102701ff
......@@ -5249,7 +5249,17 @@
[(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]);
......@@ -5260,7 +5270,18 @@
(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]);
......@@ -5282,7 +5303,16 @@
(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\");
......@@ -5304,7 +5334,16 @@
(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\");
......@@ -5326,16 +5365,38 @@
(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\"; ")
......@@ -5355,14 +5416,34 @@
(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\"; ")
......@@ -5382,14 +5463,34 @@
(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\"; ")
......@@ -5409,16 +5510,38 @@
(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\"; ")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment