(reload): When decrement max_groups of superclass, can

only do so if the group_size is smaller than the current group.

From-SVN: r8539
This commit is contained in:
Jim Wilson 1994-11-21 11:37:26 -08:00
parent e0bf6b33d8
commit d601d5da25

View File

@ -1653,7 +1653,11 @@ reload (first, global, dumpfile)
max_groups[class]--;
p = reg_class_superclasses[class];
while (*p != LIM_REG_CLASSES)
max_groups[(int) *p++]--;
{
if (group_size [(int) *p] <= group_size [class])
max_groups[(int) *p]--;
p++;
}
/* Indicate both these regs are part of a group. */
SET_HARD_REG_BIT (counted_for_groups, j);
@ -1768,8 +1772,12 @@ reload (first, global, dumpfile)
max_groups[class]--;
p = reg_class_superclasses[class];
while (*p != LIM_REG_CLASSES)
max_groups[(int) *p++]--;
{
if (group_size [(int) *p]
<= group_size [class])
max_groups[(int) *p]--;
p++;
}
break;
}
}
@ -2117,7 +2125,11 @@ count_possible_groups (group_size, group_mode, max_groups, class)
max_groups[class]--;
p = reg_class_superclasses[class];
while (*p != LIM_REG_CLASSES)
max_groups[(int) *p++]--;
{
if (group_size [(int) *p] <= group_size [class])
max_groups[(int) *p]--;
p++;
}
/* Don't count these registers again. */
for (j = 0; j < group_size[class]; j++)