OSDN Git Service

* reload1.c (emit_input_reload_insns): Honour forcing of constants
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Nov 2000 10:23:38 +0000 (10:23 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Nov 2000 10:23:38 +0000 (10:23 +0000)
into memory by PREFERRED_RELOAD_CLASS NO_REGS.

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

gcc/ChangeLog
gcc/reload1.c

index ace6a89..e4dbb19 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * reload1.c (emit_input_reload_insns): Honour forcing of constants
+       into memory by PREFERRED_RELOAD_CLASS NO_REGS.
+
 2000-11-14  Michael Matz  <matzmich@cs.tu-berlin.de>
 
        * dominance.c: New file.
index 5441494..926d796 100644 (file)
@@ -6441,7 +6441,10 @@ emit_input_reload_insns (chain, rl, old, j)
              && ((reg_equiv_memory_loc
                   [REGNO (SUBREG_REG (oldequiv))] != 0)
                  || (reg_equiv_constant
-                     [REGNO (SUBREG_REG (oldequiv))] != 0))))
+                     [REGNO (SUBREG_REG (oldequiv))] != 0)))
+         || (CONSTANT_P (oldequiv)
+             && PREFERRED_RELOAD_CLASS (oldequiv,
+                       REGNO_REG_CLASS (REGNO (reloadreg))) == NO_REGS))
        real_oldequiv = rl->in;
       gen_reload (reloadreg, real_oldequiv, rl->opnum,
                  rl->when_needed);