aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-02-23 06:58:36 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-02-23 06:58:36 -0500
commit3bda6d11ef9912f7beb23011ff4d8b263d5128b5 (patch)
tree32afba2f3994c601f5a088144d111ac1e502f048 /gcc
parent5d6155d480e2f58d488d0fcf9a440984b987d774 (diff)
downloadgcc-3bda6d11ef9912f7beb23011ff4d8b263d5128b5.zip
gcc-3bda6d11ef9912f7beb23011ff4d8b263d5128b5.tar.gz
gcc-3bda6d11ef9912f7beb23011ff4d8b263d5128b5.tar.bz2
(RTX_COSTS): Update costs for FP operations.
From-SVN: r9047
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/alpha/alpha.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index d0157b3..e84dd64 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -1432,9 +1432,8 @@ extern char *current_function_name;
switch on CODE. */
#define RTX_COSTS(X,CODE,OUTER_CODE) \
- case PLUS: \
- case MINUS: \
- if (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \
+ case PLUS: case MINUS: \
+ if (FLOAT_MODE_P (GET_MODE (X))) \
return COSTS_N_INSNS (6); \
else if (GET_CODE (XEXP (X, 0)) == MULT \
&& const48_operand (XEXP (XEXP (X, 0), 1), VOIDmode)) \
@@ -1442,7 +1441,7 @@ extern char *current_function_name;
+ rtx_cost (XEXP (X, 1), OUTER_CODE)); \
break; \
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 (23); \
case ASHIFT: \
@@ -1452,10 +1451,7 @@ extern char *current_function_name;
/* ... fall through ... */ \
case ASHIFTRT: case LSHIFTRT: case IF_THEN_ELSE: \
return COSTS_N_INSNS (2); \
- case DIV: \
- case UDIV: \
- case MOD: \
- case UMOD: \
+ case DIV: case UDIV: case MOD: case UMOD: \
if (GET_MODE (X) == SFmode) \
return COSTS_N_INSNS (34); \
else if (GET_MODE (X) == DFmode) \
@@ -1463,7 +1459,14 @@ extern char *current_function_name;
else \
return COSTS_N_INSNS (70); \
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. */