reload.c (find_reloads): Fix test for usage by other reload to handle secondary reloa...
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Wed, 4 Nov 1998 14:58:29 +0000 (14:58 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Wed, 4 Nov 1998 14:58:29 +0000 (14:58 +0000)
* reload.c (find_reloads): Fix test for usage by other reload
to handle secondary reloads properly.

From-SVN: r23522

gcc/ChangeLog
gcc/reload.c

index 0f206e8a9d85624ae65905d8c6caa266847c3c41..dab94b121f423c87dc6657aae515bd9323d40faa 100644 (file)
@@ -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
index 7d15b4b95cd9cc545fdc11f5da5bbf75f8f5f370..afe4753a89bd5f5a629794131b99b65efee86486 100644 (file)
@@ -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;