mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-26 15:29:55 +08:00
(reload): If function has nonlocal label, mark all caller-saved regs
as used. From-SVN: r13863
This commit is contained in:
parent
1f027d54a1
commit
8dddd002b0
@ -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]);
|
||||
|
Loading…
Reference in New Issue
Block a user