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
This commit is contained in:
Aldy Hernandez 2004-04-12 00:52:24 +00:00 committed by Aldy Hernandez
parent 034776f6f6
commit fef98bf2f8
3 changed files with 15 additions and 1 deletions

View file

@ -1,3 +1,13 @@
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

View file

@ -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. */

View file

@ -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")])