aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
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 /gcc/reload.c
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
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c4
1 files changed, 3 insertions, 1 deletions
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;