Better RTX_COSTS for ia64.
authorBernd Schmidt <bernds@redhat.co.uk>
Sat, 28 Oct 2000 19:39:58 +0000 (19:39 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Sat, 28 Oct 2000 19:39:58 +0000 (19:39 +0000)
From-SVN: r37104

gcc/ChangeLog
gcc/config/ia64/ia64.h

index 755ad30eb114685e85daf04acef9af2319eb2f45..656551cf923960c4c7c3c1a10dcb0ec0573e802c 100644 (file)
@@ -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.
index 7802e3905507dacb49bca8df67343ac9d2c45fdf..d94491ff4fa729b1987f74f25cfb8a083daa3cbf 100644 (file)
@@ -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:                                                           \