rs6000.c (rs6000_rtx_costs): Make adjustment for MULT inside MINUS as either argument.

* config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
	MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
	rs6000_cost->fp not 0 as adjustment for outer NEG.

From-SVN: r120442
This commit is contained in:
Joseph Myers 2007-01-04 16:36:57 +00:00 committed by Joseph Myers
parent 705e2d28a1
commit 762c919f44
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2007-01-04 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
MULT inside MINUS as either argument. Use rs6000_cost->dmul -
rs6000_cost->fp not 0 as adjustment for outer NEG.
2007-01-04 Jan Hubicka <jh@suse.cz> 2007-01-04 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_release_function_body): New function. * cgraph.c (cgraph_release_function_body): New function.

View File

@ -19738,11 +19738,12 @@ rs6000_rtx_costs (rtx x, int code, int outer_code, int *total)
case MINUS: case MINUS:
if (mode == DFmode) if (mode == DFmode)
{ {
if (GET_CODE (XEXP (x, 0)) == MULT) if (GET_CODE (XEXP (x, 0)) == MULT
|| GET_CODE (XEXP (x, 1)) == MULT)
{ {
/* FNMA accounted in outer NEG. */ /* FNMA accounted in outer NEG. */
if (outer_code == NEG) if (outer_code == NEG)
*total = 0; *total = rs6000_cost->dmul - rs6000_cost->fp;
else else
*total = rs6000_cost->dmul; *total = rs6000_cost->dmul;
} }