Commit 3bda6d11 by Richard Kenner

(RTX_COSTS): Update costs for FP operations.

From-SVN: r9047
parent 5d6155d4
...@@ -1432,9 +1432,8 @@ extern char *current_function_name; ...@@ -1432,9 +1432,8 @@ extern char *current_function_name;
switch on CODE. */ switch on CODE. */
#define RTX_COSTS(X,CODE,OUTER_CODE) \ #define RTX_COSTS(X,CODE,OUTER_CODE) \
case PLUS: \ case PLUS: case MINUS: \
case MINUS: \ if (FLOAT_MODE_P (GET_MODE (X))) \
if (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \
return COSTS_N_INSNS (6); \ return COSTS_N_INSNS (6); \
else if (GET_CODE (XEXP (X, 0)) == MULT \ else if (GET_CODE (XEXP (X, 0)) == MULT \
&& const48_operand (XEXP (XEXP (X, 0), 1), VOIDmode)) \ && const48_operand (XEXP (XEXP (X, 0), 1), VOIDmode)) \
...@@ -1442,7 +1441,7 @@ extern char *current_function_name; ...@@ -1442,7 +1441,7 @@ extern char *current_function_name;
+ rtx_cost (XEXP (X, 1), OUTER_CODE)); \ + rtx_cost (XEXP (X, 1), OUTER_CODE)); \
break; \ break; \
case MULT: \ case MULT: \
if (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ if (FLOAT_MODE_P (GET_MODE (X))) \
return COSTS_N_INSNS (6); \ return COSTS_N_INSNS (6); \
return COSTS_N_INSNS (23); \ return COSTS_N_INSNS (23); \
case ASHIFT: \ case ASHIFT: \
...@@ -1452,10 +1451,7 @@ extern char *current_function_name; ...@@ -1452,10 +1451,7 @@ extern char *current_function_name;
/* ... fall through ... */ \ /* ... fall through ... */ \
case ASHIFTRT: case LSHIFTRT: case IF_THEN_ELSE: \ case ASHIFTRT: case LSHIFTRT: case IF_THEN_ELSE: \
return COSTS_N_INSNS (2); \ return COSTS_N_INSNS (2); \
case DIV: \ case DIV: case UDIV: case MOD: case UMOD: \
case UDIV: \
case MOD: \
case UMOD: \
if (GET_MODE (X) == SFmode) \ if (GET_MODE (X) == SFmode) \
return COSTS_N_INSNS (34); \ return COSTS_N_INSNS (34); \
else if (GET_MODE (X) == DFmode) \ else if (GET_MODE (X) == DFmode) \
...@@ -1463,7 +1459,14 @@ extern char *current_function_name; ...@@ -1463,7 +1459,14 @@ extern char *current_function_name;
else \ else \
return COSTS_N_INSNS (70); \ return COSTS_N_INSNS (70); \
case MEM: \ case MEM: \
return COSTS_N_INSNS (3); return COSTS_N_INSNS (3); \
case FLOAT: case UNSIGNED_FLOAT: case FIX: case UNSIGNED_FIX: \
case FLOAT_EXTEND: case FLOAT_TRUNCATE: \
return COSTS_N_INSNS (6); \
case NEG: case ABS: \
if (FLOAT_MODE_P (GET_MODE (X))) \
return COSTS_N_INSNS (6); \
break;
/* Control the assembler format that we output. */ /* Control the assembler format that we output. */
......
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