(reload): Cope when inherited register is larger than one word.

(choose_reload_regs): Ditto.

From-SVN: r5820
This commit is contained in:
Richard Stallman 1993-10-20 04:08:47 +00:00
parent 14aceb299b
commit 54c40e686a
1 changed files with 8 additions and 3 deletions

View File

@ -4971,6 +4971,7 @@ choose_reload_regs (insn, avoid_return_reg)
reload_override_in[r] = reg_last_reload_reg[regno];
else
{
int k;
/* We can use this as a reload reg. */
/* Mark the register as in use for this part of
the insn. */
@ -4983,8 +4984,9 @@ choose_reload_regs (insn, avoid_return_reg)
reload_inheritance_insn[r]
= reg_reloaded_insn[i];
reload_spill_index[r] = i;
SET_HARD_REG_BIT (reload_reg_used_for_inherit,
spill_regs[i]);
for (k = 0; k < nr; k++)
SET_HARD_REG_BIT (reload_reg_used_for_inherit,
spill_regs[i + k]);
}
}
}
@ -5073,10 +5075,13 @@ choose_reload_regs (insn, avoid_return_reg)
i = spill_reg_order[regno];
if (i >= 0)
{
int nr = HARD_REGNO_NREGS (regno, reload_mode[r]);
int k;
mark_reload_reg_in_use (regno, reload_opnum[r],
reload_when_needed[r],
reload_mode[r]);
SET_HARD_REG_BIT (reload_reg_used_for_inherit, regno);
for (k = 0; k < nr; k++)
SET_HARD_REG_BIT (reload_reg_used_for_inherit, regno + k);
}
}
}