OSDN Git Service

* config/sh/sh.c (sh_secondary_reload): Handle loading a float
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Feb 2008 12:37:34 +0000 (12:37 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Feb 2008 12:37:34 +0000 (12:37 +0000)
constant to fpul.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132764 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sh/sh.c

index 9b7c0cc..4a7fcb7 100644 (file)
@@ -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
index dccbc1e..fdee061 100644 (file)
@@ -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;
        }