(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
This commit is contained in:
Torbjorn Granlund 1996-11-06 22:56:24 +00:00
parent 8a01521694
commit 5e645e50fb

View File

@ -5771,6 +5771,40 @@
return \"jc %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)))
(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")
@ -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