aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2008-02-29 12:37:34 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2008-02-29 12:37:34 +0000
commitd973ac5a9f35cbb79c6c2457f48159f1541f79c4 (patch)
treeff0e8710deff07e483cf19f88a98e65b80403180 /gcc
parenta9cbbfed45070095d8a61a17824f8a4f6854e43f (diff)
downloadgcc-d973ac5a9f35cbb79c6c2457f48159f1541f79c4.zip
gcc-d973ac5a9f35cbb79c6c2457f48159f1541f79c4.tar.gz
gcc-d973ac5a9f35cbb79c6c2457f48159f1541f79c4.tar.bz2
sh.c (sh_secondary_reload): Handle loading a float constant to fpul.
* config/sh/sh.c (sh_secondary_reload): Handle loading a float constant to fpul. From-SVN: r132764
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b7c0cc..4a7fcb7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_secondary_reload): Handle loading a float
+ constant to fpul.
+
2008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
* simplify-rtx.c (simplify_unary_operation_1): Extend the handling
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index dccbc1e..fdee061 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -10875,8 +10875,10 @@ sh_secondary_reload (bool in_p, rtx x, enum reg_class class,
return GENERAL_REGS;
if (class == FPUL_REGS && immediate_operand (x, mode))
{
- if (satisfies_constraint_I08 (x))
+ if (satisfies_constraint_I08 (x) || fp_zero_operand (x))
return GENERAL_REGS;
+ else if (mode == SFmode)
+ return FP_REGS;
sri->icode = CODE_FOR_reload_insi__i_fpul;
return NO_REGS;
}