(reload): If function has nonlocal label, mark all caller-saved regs

as used.

From-SVN: r13863
This commit is contained in:
Richard Kenner 1997-04-13 08:15:28 -04:00
parent 1f027d54a1
commit 8dddd002b0

View File

@ -589,10 +589,18 @@ reload (first, global, dumpfile)
as homes for pseudo registers.
This is done here rather than (eg) in global_alloc
because this point is reached even if not optimizing. */
for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
mark_home_live (i);
/* A function that receives a nonlocal goto must save all call-saved
registers. */
if (current_function_has_nonlocal_label)
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
if (! call_used_regs[i] && ! fixed_regs[i])
regs_ever_live[i] = 1;
}
for (i = 0; i < scratch_list_length; i++)
if (scratch_list[i])
mark_scratch_live (scratch_list[i]);