Commit e0c00392 by Roger Sayle Committed by Roger Sayle

i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.


	* config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
	(ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
	TARGET_DECOMPOSE_LEA.

From-SVN: r83413
parent ce70456b
2004-06-20 Roger Sayle <roger@eyesopen.com>
* config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
(ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
TARGET_DECOMPOSE_LEA.
2004-06-20 Richard Henderson <rth@redhat.com> 2004-06-20 Richard Henderson <rth@redhat.com>
* c-common.h (add_decl_stmt): Move to cp-tree.h. * c-common.h (add_decl_stmt): Move to cp-tree.h.
......
...@@ -417,7 +417,7 @@ struct processor_costs k8_cost = { ...@@ -417,7 +417,7 @@ struct processor_costs k8_cost = {
static const static const
struct processor_costs pentium4_cost = { struct processor_costs pentium4_cost = {
1, /* cost of an add instruction */ 1, /* cost of an add instruction */
1, /* cost of a lea instruction */ 3, /* cost of a lea instruction */
4, /* variable shift costs */ 4, /* variable shift costs */
4, /* constant shift costs */ 4, /* constant shift costs */
{15, 15, 15, 15, 15}, /* cost of starting a multiply */ {15, 15, 15, 15, 15}, /* cost of starting a multiply */
...@@ -14904,7 +14904,6 @@ ix86_rtx_costs (rtx x, int code, int outer_code, int *total) ...@@ -14904,7 +14904,6 @@ ix86_rtx_costs (rtx x, int code, int outer_code, int *total)
return false; return false;
} }
if ((value == 2 || value == 3) if ((value == 2 || value == 3)
&& !TARGET_DECOMPOSE_LEA
&& ix86_cost->lea <= ix86_cost->shift_const) && ix86_cost->lea <= ix86_cost->shift_const)
{ {
*total = COSTS_N_INSNS (ix86_cost->lea); *total = COSTS_N_INSNS (ix86_cost->lea);
...@@ -15007,8 +15006,7 @@ ix86_rtx_costs (rtx x, int code, int outer_code, int *total) ...@@ -15007,8 +15006,7 @@ ix86_rtx_costs (rtx x, int code, int outer_code, int *total)
case PLUS: case PLUS:
if (FLOAT_MODE_P (mode)) if (FLOAT_MODE_P (mode))
*total = COSTS_N_INSNS (ix86_cost->fadd); *total = COSTS_N_INSNS (ix86_cost->fadd);
else if (!TARGET_DECOMPOSE_LEA else if (GET_MODE_CLASS (mode) == MODE_INT
&& GET_MODE_CLASS (mode) == MODE_INT
&& GET_MODE_BITSIZE (mode) <= GET_MODE_BITSIZE (Pmode)) && GET_MODE_BITSIZE (mode) <= GET_MODE_BITSIZE (Pmode))
{ {
if (GET_CODE (XEXP (x, 0)) == PLUS if (GET_CODE (XEXP (x, 0)) == PLUS
......
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