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 @@ ...@@ -5249,7 +5249,17 @@
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(match_operator 1 "valid_dbcc_comparison_p" (match_operator 1 "valid_dbcc_comparison_p"
[(match_operand:DI 2 "general_operand" "ro") (const_int 0)]))] [(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]); return output_scc_di (operands[1], operands[2], const0_rtx, operands[0]);
...@@ -5260,7 +5270,18 @@ ...@@ -5260,7 +5270,18 @@
(match_operator 1 "valid_dbcc_comparison_p" (match_operator 1 "valid_dbcc_comparison_p"
[(match_operand:DI 2 "general_operand" "ro,r") [(match_operand:DI 2 "general_operand" "ro,r")
(match_operand:DI 3 "general_operand" "r,ro")]))] (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]); return output_scc_di (operands[1], operands[2], operands[3], operands[0]);
...@@ -5282,7 +5303,16 @@ ...@@ -5282,7 +5303,16 @@
(define_insn "" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(eq:QI (cc0) (const_int 0)))] (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; cc_status = cc_prev_status;
OUTPUT_JUMP (\"seq %0\", \"fseq %0\", \"seq %0\"); OUTPUT_JUMP (\"seq %0\", \"fseq %0\", \"seq %0\");
...@@ -5304,7 +5334,16 @@ ...@@ -5304,7 +5334,16 @@
(define_insn "" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(ne:QI (cc0) (const_int 0)))] (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; cc_status = cc_prev_status;
OUTPUT_JUMP (\"sne %0\", \"fsne %0\", \"sne %0\"); OUTPUT_JUMP (\"sne %0\", \"fsne %0\", \"sne %0\");
...@@ -5326,16 +5365,38 @@ ...@@ -5326,16 +5365,38 @@
(define_insn "" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(gt:QI (cc0) (const_int 0)))] (gt:QI (cc0) (const_int 0)))]
"" "! TARGET_5200"
"* "*
cc_status = cc_prev_status; cc_status = cc_prev_status;
OUTPUT_JUMP (\"sgt %0\", \"fsgt %0\", 0); OUTPUT_JUMP (\"sgt %0\", \"fsgt %0\", 0);
") ")
(define_insn "sgtu" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(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)))] (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; "* cc_status = cc_prev_status;
return \"shi %0\"; ") return \"shi %0\"; ")
...@@ -5355,14 +5416,34 @@ ...@@ -5355,14 +5416,34 @@
(define_insn "" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(lt:QI (cc0) (const_int 0)))] (lt:QI (cc0) (const_int 0)))]
"" "! TARGET_5200"
"* cc_status = cc_prev_status; "* cc_status = cc_prev_status;
OUTPUT_JUMP (\"slt %0\", \"fslt %0\", \"smi %0\"); ") OUTPUT_JUMP (\"slt %0\", \"fslt %0\", \"smi %0\"); ")
(define_insn "sltu" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(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)))] (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; "* cc_status = cc_prev_status;
return \"scs %0\"; ") return \"scs %0\"; ")
...@@ -5382,14 +5463,34 @@ ...@@ -5382,14 +5463,34 @@
(define_insn "" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(ge:QI (cc0) (const_int 0)))] (ge:QI (cc0) (const_int 0)))]
"" "! TARGET_5200"
"* cc_status = cc_prev_status; "* cc_status = cc_prev_status;
OUTPUT_JUMP (\"sge %0\", \"fsge %0\", \"spl %0\"); ") OUTPUT_JUMP (\"sge %0\", \"fsge %0\", \"spl %0\"); ")
(define_insn "sgeu" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(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)))] (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; "* cc_status = cc_prev_status;
return \"scc %0\"; ") return \"scc %0\"; ")
...@@ -5409,16 +5510,38 @@ ...@@ -5409,16 +5510,38 @@
(define_insn "" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(set (match_operand:QI 0 "general_operand" "=dm")
(le:QI (cc0) (const_int 0)))] (le:QI (cc0) (const_int 0)))]
"" "! TARGET_5200"
"* "*
cc_status = cc_prev_status; cc_status = cc_prev_status;
OUTPUT_JUMP (\"sle %0\", \"fsle %0\", 0); OUTPUT_JUMP (\"sle %0\", \"fsle %0\", 0);
") ")
(define_insn "sleu" (define_insn ""
[(set (match_operand:QI 0 "general_operand" "=dm") [(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)))] (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; "* cc_status = cc_prev_status;
return \"sls %0\"; ") 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