Commit fef98bf2 by Aldy Hernandez Committed by Aldy Hernandez

rs6000.md: Document why a pattern is not available.

	* config/rs6000/rs6000.md: Document why a pattern is not
	available.

	* config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
	of floats on the E500.
	(branch_positive_comparison_operator): Do not allow NE even on the
	E500.

From-SVN: r80617
parent 034776f6
2004-04-11 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.md: Document why a pattern is not
available.
* config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
of floats on the E500.
(branch_positive_comparison_operator): Do not allow NE even on the
E500.
2004-04-11 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (rs6000_assemble_integer): Change
in_text_unlikely_section to in_unlikely_text_section.
......
......@@ -8376,7 +8376,6 @@ branch_positive_comparison_operator (rtx op, enum machine_mode mode)
code = GET_CODE (op);
return (code == EQ || code == LT || code == GT
|| (TARGET_E500 && TARGET_HARD_FLOAT && !TARGET_FPRS && code == NE)
|| code == LTU || code == GTU
|| code == UNORDERED);
}
......@@ -10195,6 +10194,9 @@ rs6000_emit_cmove (rtx dest, rtx op, rtx true_cond, rtx false_cond)
return rs6000_emit_int_cmove (dest, op, true_cond, false_cond);
return 0;
}
else if (TARGET_E500 && TARGET_HARD_FLOAT && !TARGET_FPRS
&& GET_MODE_CLASS (compare_mode) == MODE_FLOAT)
return 0;
/* Eliminate half of the comparisons by switching operands, this
makes the remaining code simpler. */
......
......@@ -13666,6 +13666,8 @@
"cc_reg_operand" "0,y")
(const_int 0)])
(const_int 0)))]
;; This pattern is not available to SPE because the CR bits on an FP
;; compare are different than traditional PPC.
"!TARGET_SPE"
"{crnor %E0,%j1,%j1|crnot %E0,%j1}"
[(set_attr "type" "cr_logical,delayed_cr")])
......
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