aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2005-10-03 22:07:08 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2005-10-03 22:07:08 +0000
commit9c24200c8dff9d87007296da7743741df0df3c85 (patch)
tree9b5f837db319aec6b758d3c71b8d10180614f49c
parent37150080504338dc8288ac8eeb0cc2636031fd07 (diff)
downloadgcc-9c24200c8dff9d87007296da7743741df0df3c85.zip
gcc-9c24200c8dff9d87007296da7743741df0df3c85.tar.gz
gcc-9c24200c8dff9d87007296da7743741df0df3c85.tar.bz2
sh.c (sh_register_move_cost): Add case for moving from T_REGS to FP register class.
* config/sh/sh.c (sh_register_move_cost): Add case for moving from T_REGS to FP register class. From-SVN: r104916
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 957ac6c..9bdcb05 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-03 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_register_move_cost): Add case for moving
+ from T_REGS to FP register class.
+
2005-10-03 Richard Henderson <rth@redhat.com>
PR 24135
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 8e6333b..c90185a 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -9491,6 +9491,9 @@ sh_register_move_cost (enum machine_mode mode,
&& REGCLASS_HAS_FP_REG (dstclass))
return 4;
+ if (REGCLASS_HAS_FP_REG (dstclass) && srcclass == T_REGS)
+ return ((TARGET_HARD_SH4 && !optimize_size) ? 10 : 7);
+
if ((REGCLASS_HAS_FP_REG (dstclass) && srcclass == MAC_REGS)
|| (dstclass == MAC_REGS && REGCLASS_HAS_FP_REG (srcclass)))
return 9;