Commit 49f88007 authored by Doug Gilbert's avatar Doug Gilbert

Indicate that PPE42 fused branch instructions modify the CR

parent ffd86801
...@@ -19172,12 +19172,19 @@ rs6000_emit_cbranch (enum machine_mode mode, rtx operands[]) ...@@ -19172,12 +19172,19 @@ rs6000_emit_cbranch (enum machine_mode mode, rtx operands[])
} }
else // Use the PPE fused compare-branch instructions else // Use the PPE fused compare-branch instructions
{ {
emit_jump_insn(gen_rtx_SET(VOIDmode, rtx cc_clobber = gen_rtx_CLOBBER (CCmode, gen_rtx_REG(CCmode,CR0_REGNO));
emit_jump_insn
( gen_rtx_PARALLEL
(VOIDmode,
gen_rtvec(2,
gen_rtx_SET(VOIDmode,
pc_rtx, pc_rtx,
gen_rtx_IF_THEN_ELSE(VOIDmode, gen_rtx_IF_THEN_ELSE(VOIDmode,
operands[0], operands[0],
loc_ref, loc_ref,
pc_rtx))); pc_rtx)),
cc_clobber))
);
} }
} }
...@@ -19188,7 +19195,7 @@ rs6000_emit_cbranch (enum machine_mode mode, rtx operands[]) ...@@ -19188,7 +19195,7 @@ rs6000_emit_cbranch (enum machine_mode mode, rtx operands[])
OP is the conditional expression. XEXP (OP, 0) is assumed to be a OP is the conditional expression. XEXP (OP, 0) is assumed to be a
condition code register and its mode specifies what kind of condition code register and its mode specifies what kind of
comparison we made. comparison is being done.
REVERSED is nonzero if we should reverse the sense of the comparison. REVERSED is nonzero if we should reverse the sense of the comparison.
......
...@@ -14930,7 +14930,8 @@ ...@@ -14930,7 +14930,8 @@
(match_operand:SI 3 "const_int_operand" "")) (match_operand:SI 3 "const_int_operand" ""))
(const_int 0)]) (const_int 0)])
(label_ref (match_operand 0 "" "")) (label_ref (match_operand 0 "" ""))
(pc)))] (pc)))
(clobber (reg:CC CR0_REGNO))]
"(rs6000_cpu == PROCESSOR_PPE42) && optimize_size" "(rs6000_cpu == PROCESSOR_PPE42) && optimize_size"
"* "*
{ {
...@@ -14946,7 +14947,8 @@ ...@@ -14946,7 +14947,8 @@
(match_operand:SI 3 "exact_log2_inverted_cint_operand" "n")) (match_operand:SI 3 "exact_log2_inverted_cint_operand" "n"))
(const_int 0)]) (const_int 0)])
(label_ref (match_operand 0 "" "")) (label_ref (match_operand 0 "" ""))
(pc)))] (pc)))
(clobber (reg:CC CR0_REGNO))]
"(rs6000_cpu == PROCESSOR_PPE42) && optimize_size" "(rs6000_cpu == PROCESSOR_PPE42) && optimize_size"
"* "*
{ {
...@@ -14969,7 +14971,8 @@ ...@@ -14969,7 +14971,8 @@
[(match_operand:GPR 2 "gpc_reg_operand" "r") [(match_operand:GPR 2 "gpc_reg_operand" "r")
(match_operand:GPR 3 "gpc_reg_operand" "r")]) (match_operand:GPR 3 "gpc_reg_operand" "r")])
(label_ref (match_operand 0 "" "")) (label_ref (match_operand 0 "" ""))
(pc)))] (pc)))
(clobber (reg:CC CR0_REGNO))]
"(rs6000_cpu == PROCESSOR_PPE42) && optimize_size" "(rs6000_cpu == PROCESSOR_PPE42) && optimize_size"
"* "*
{ {
...@@ -14987,7 +14990,8 @@ ...@@ -14987,7 +14990,8 @@
[(match_operand:GPR 2 "gpc_reg_operand" "r") [(match_operand:GPR 2 "gpc_reg_operand" "r")
(match_operand:SI 3 "u5bit_cint_operand" "I")]) (match_operand:SI 3 "u5bit_cint_operand" "I")])
(label_ref (match_operand 0 "" "")) (label_ref (match_operand 0 "" ""))
(pc)))] (pc)))
(clobber (reg:CC CR0_REGNO))]
"(rs6000_cpu == PROCESSOR_PPE42) && optimize_size" "(rs6000_cpu == PROCESSOR_PPE42) && optimize_size"
"* "*
{ {
......
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