aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh
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 /gcc/config/sh
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
Diffstat (limited to 'gcc/config/sh')
-rw-r--r--gcc/config/sh/sh.c3
1 files changed, 3 insertions, 0 deletions
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;