summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2000-11-14 11:23:38 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2000-11-14 11:23:38 +0100
commit716120a70a1bae9f403454944ac14ddf07059bb7 (patch)
tree91b592671c9b08e1c0ffdfc0a9b729020073ab84
parentf80326884cf82c1804385664197afa44ad468d97 (diff)
downloadgcc-716120a70a1bae9f403454944ac14ddf07059bb7.tar.gz
reload1.c (emit_input_reload_insns): Honour forcing of constants into memory by PREFERRED_RELOAD_CLASS NO_REGS.
* reload1.c (emit_input_reload_insns): Honour forcing of constants into memory by PREFERRED_RELOAD_CLASS NO_REGS. From-SVN: r37450
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ace6a8929f5..e4dbb199743 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 5441494aa3d..926d7960991 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -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);