Commit 5e645e50 by Torbjorn Granlund

(parallel inc and branch-if-zero/nonzero): Add two new pattern variants.

(parallel inc and branch-if-zero/nonzero): Add two
new pattern variants.  Change incrementing pattern to use incl/jnz.

From-SVN: r13104
parent 8a015216
......@@ -5774,6 +5774,40 @@
(define_insn ""
[(set (pc)
(if_then_else (ne (match_operand:SI 0 "general_operand" "g")
(const_int 1))
(label_ref (match_operand 1 "" ""))
(pc)))
(set (match_dup 0)
(plus:SI (match_dup 0)
(const_int -1)))]
""
"*
{
operands[2] = const1_rtx;
output_asm_insn (AS1 (dec%L0,%0), operands);
return \"jnz %l1\";
}")
(define_insn ""
[(set (pc)
(if_then_else (eq (match_operand:SI 0 "general_operand" "g")
(const_int 1))
(label_ref (match_operand 1 "" ""))
(pc)))
(set (match_dup 0)
(plus:SI (match_dup 0)
(const_int -1)))]
""
"*
{
operands[2] = const1_rtx;
output_asm_insn (AS1 (dec%L0,%0), operands);
return \"jz %l1\";
}")
(define_insn ""
[(set (pc)
(if_then_else (ne (match_operand:SI 0 "general_operand" "g")
(const_int -1))
(label_ref (match_operand 1 "" ""))
(pc)))
......@@ -5784,8 +5818,8 @@
"*
{
operands[2] = const1_rtx;
output_asm_insn (AS2 (add%L0,%2,%0), operands);
return \"jnc %l1\";
output_asm_insn (AS1 (inc%L0,%0), operands);
return \"jnz %l1\";
}")
(define_insn ""
......@@ -5801,8 +5835,8 @@
"*
{
operands[2] = const1_rtx;
output_asm_insn (AS2 (add%L0,%2,%0), operands);
return \"jc %l1\";
output_asm_insn (AS1 (inc%L0,%0), operands);
return \"jz %l1\";
}")
;; Implement switch statements when generating PIC code. Switches are
......
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