aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-05-15 13:01:07 +0000
committerRichard Stallman <rms@gnu.org>1993-05-15 13:01:07 +0000
commit57697575a178c3dbfc141d8163de8dcb0c037168 (patch)
tree0af59d461ed7c7690d3e34166d1b90a7017d3cc3
parent668450ce64f733bcaf8c41f1c156c48a5e2afd1a (diff)
downloadgcc-57697575a178c3dbfc141d8163de8dcb0c037168.zip
gcc-57697575a178c3dbfc141d8163de8dcb0c037168.tar.gz
gcc-57697575a178c3dbfc141d8163de8dcb0c037168.tar.bz2
(reload): Don't start 2-group unless it could be finished.
From-SVN: r4464
-rw-r--r--gcc/reload1.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index f7d5458..32f6bf5 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1680,8 +1680,14 @@ reload (first, global, dumpfile)
if (i == FIRST_PSEUDO_REGISTER)
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
+ int k;
j = potential_reload_regs[i];
+ /* Verify that J+1 is a potential reload reg. */
+ for (k = 0; k < FIRST_PSEUDO_REGISTER; k++)
+ if (potential_reload_regs[k] == j + 1)
+ break;
if (j >= 0 && j + 1 < FIRST_PSEUDO_REGISTER
+ && k < FIRST_PSEUDO_REGISTER
&& spill_reg_order[j] < 0 && spill_reg_order[j + 1] < 0
&& TEST_HARD_REG_BIT (reg_class_contents[class], j)
&& TEST_HARD_REG_BIT (reg_class_contents[class], j + 1)