aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/ia64/ia64.h11
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 755ad30..656551c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -6,6 +6,9 @@
* reload1.c (choose_reload_regs): Never set reload_override_in for an
optional reload.
+ * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
+ accurate value for MULT.
+
2000-10-28 Neil Booth <neilb@earthling.net>
New macro expander.
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 7802e39..d94491f 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -1851,9 +1851,16 @@ do { \
case MULT: \
/* For multiplies wider than HImode, we have to go to the FPU, \
which normally involves copies. Plus there's the latency \
- of the multiply itself. */ \
+ of the multiply itself, and the latency of the instructions to \
+ transfer integer regs to FP regs. */ \
if (GET_MODE_SIZE (GET_MODE (X)) > 2) \
- return COSTS_N_INSNS (4); \
+ return COSTS_N_INSNS (10); \
+ return COSTS_N_INSNS (2); \
+ case PLUS: \
+ case MINUS: \
+ case ASHIFT: \
+ case ASHIFTRT: \
+ case LSHIFTRT: \
return COSTS_N_INSNS (1); \
case DIV: \
case UDIV: \