aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-11-04 14:58:29 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1998-11-04 14:58:29 +0000
commite0d7bb0d756a0d0466394672ec48715721fc9279 (patch)
tree52bf0f16540efd1f2940fbc55f323dbad0fcd5e4
parent590cf94d5160087b195c76e17ba14069610ae229 (diff)
downloadgcc-e0d7bb0d756a0d0466394672ec48715721fc9279.zip
gcc-e0d7bb0d756a0d0466394672ec48715721fc9279.tar.gz
gcc-e0d7bb0d756a0d0466394672ec48715721fc9279.tar.bz2
reload.c (find_reloads): Fix test for usage by other reload to handle secondary reloads properly.
* reload.c (find_reloads): Fix test for usage by other reload to handle secondary reloads properly. From-SVN: r23522
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0f206e8..dab94b1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 4 22:56:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * reload.c (find_reloads): Fix test for usage by other reload
+ to handle secondary reloads properly.
+
Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
diff --git a/gcc/reload.c b/gcc/reload.c
index 7d15b4b..afe4753 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -4104,7 +4104,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
for (j = n_reloads - 1; j > first_num; j--)
{
if (reload_when_needed[j] == type
- && reg_mentioned_p (reload_in[i], reload_in[j]))
+ && (reload_secondary_p[i]
+ ? reload_secondary_in_reload[j] == i
+ : reg_mentioned_p (reload_in[i], reload_in[j])))
{
reload_when_needed[i] = type;
break;