From 005f39ceb2814eceb4528a133abfbf4e5fa6ff98 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Sat, 28 Oct 2000 19:39:58 +0000 Subject: [PATCH] Better RTX_COSTS for ia64. From-SVN: r37104 --- gcc/ChangeLog | 3 +++ gcc/config/ia64/ia64.h | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 755ad30eb11..656551cf923 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 New macro expander. diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 7802e390550..d94491ff4fa 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: \ -- 2.30.2