Commit 3192773f by Richard Kenner

(movqi): Emit 'st' for INTVAL & 255 == 255, not INTVAL == -1.

(seq,sne,sgt,sgtu,slt,sltu,sge,sgeu,sle,sleu): Allow "m" as operand 0.

From-SVN: r13138
parent 71e1e2c8
...@@ -979,7 +979,7 @@ ...@@ -979,7 +979,7 @@
if (operands[1] == const0_rtx) if (operands[1] == const0_rtx)
return \"clr%.b %0\"; return \"clr%.b %0\";
if (GET_CODE (operands[1]) == CONST_INT if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL (operands[1]) == -1) && (INTVAL (operands[1]) & 255) == 255)
{ {
CC_STATUS_INIT; CC_STATUS_INIT;
return \"st %0\"; return \"st %0\";
...@@ -5170,7 +5170,7 @@ ...@@ -5170,7 +5170,7 @@
} ") } ")
(define_insn "seq" (define_insn "seq"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(eq:QI (cc0) (const_int 0)))] (eq:QI (cc0) (const_int 0)))]
"" ""
"* "*
...@@ -5179,7 +5179,7 @@ ...@@ -5179,7 +5179,7 @@
") ")
(define_insn "sne" (define_insn "sne"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(ne:QI (cc0) (const_int 0)))] (ne:QI (cc0) (const_int 0)))]
"" ""
"* "*
...@@ -5188,7 +5188,7 @@ ...@@ -5188,7 +5188,7 @@
") ")
(define_insn "sgt" (define_insn "sgt"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(gt:QI (cc0) (const_int 0)))] (gt:QI (cc0) (const_int 0)))]
"" ""
"* "*
...@@ -5197,42 +5197,42 @@ ...@@ -5197,42 +5197,42 @@
") ")
(define_insn "sgtu" (define_insn "sgtu"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(gtu:QI (cc0) (const_int 0)))] (gtu:QI (cc0) (const_int 0)))]
"" ""
"* cc_status = cc_prev_status; "* cc_status = cc_prev_status;
return \"shi %0\"; ") return \"shi %0\"; ")
(define_insn "slt" (define_insn "slt"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(lt:QI (cc0) (const_int 0)))] (lt:QI (cc0) (const_int 0)))]
"" ""
"* 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 "sltu"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(ltu:QI (cc0) (const_int 0)))] (ltu:QI (cc0) (const_int 0)))]
"" ""
"* cc_status = cc_prev_status; "* cc_status = cc_prev_status;
return \"scs %0\"; ") return \"scs %0\"; ")
(define_insn "sge" (define_insn "sge"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(ge:QI (cc0) (const_int 0)))] (ge:QI (cc0) (const_int 0)))]
"" ""
"* 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 "sgeu"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(geu:QI (cc0) (const_int 0)))] (geu:QI (cc0) (const_int 0)))]
"" ""
"* cc_status = cc_prev_status; "* cc_status = cc_prev_status;
return \"scc %0\"; ") return \"scc %0\"; ")
(define_insn "sle" (define_insn "sle"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(le:QI (cc0) (const_int 0)))] (le:QI (cc0) (const_int 0)))]
"" ""
"* "*
...@@ -5241,7 +5241,7 @@ ...@@ -5241,7 +5241,7 @@
") ")
(define_insn "sleu" (define_insn "sleu"
[(set (match_operand:QI 0 "general_operand" "=d") [(set (match_operand:QI 0 "general_operand" "=dm")
(leu:QI (cc0) (const_int 0)))] (leu:QI (cc0) (const_int 0)))]
"" ""
"* cc_status = cc_prev_status; "* cc_status = cc_prev_status;
......
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