global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED every where we allocate a register.
* global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED every where we allocate a register. From-SVN: r48791
This commit is contained in:
parent
41fcea287c
commit
cf11ac5596
2 changed files with 14 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2002-01-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
|
||||
|
||||
* global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
|
||||
every where we allocate a register.
|
||||
|
||||
2002-01-12 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||||
|
||||
* gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
|
||||
|
|
|
@ -1086,6 +1086,9 @@ find_reg (num, losers, alt_regs_p, accept_call_clobbered, retrying)
|
|||
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
|
||||
if (TEST_HARD_REG_BIT (allocno[num].hard_reg_copy_preferences, i)
|
||||
&& HARD_REGNO_MODE_OK (i, mode)
|
||||
&& (allocno[num].calls_crossed == 0
|
||||
|| accept_call_clobbered
|
||||
|| ! HARD_REGNO_CALL_PART_CLOBBERED (i, mode))
|
||||
&& (REGNO_REG_CLASS (i) == REGNO_REG_CLASS (best_reg)
|
||||
|| reg_class_subset_p (REGNO_REG_CLASS (i),
|
||||
REGNO_REG_CLASS (best_reg))
|
||||
|
@ -1122,6 +1125,9 @@ find_reg (num, losers, alt_regs_p, accept_call_clobbered, retrying)
|
|||
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
|
||||
if (TEST_HARD_REG_BIT (allocno[num].hard_reg_preferences, i)
|
||||
&& HARD_REGNO_MODE_OK (i, mode)
|
||||
&& (allocno[num].calls_crossed == 0
|
||||
|| accept_call_clobbered
|
||||
|| ! HARD_REGNO_CALL_PART_CLOBBERED (i, mode))
|
||||
&& (REGNO_REG_CLASS (i) == REGNO_REG_CLASS (best_reg)
|
||||
|| reg_class_subset_p (REGNO_REG_CLASS (i),
|
||||
REGNO_REG_CLASS (best_reg))
|
||||
|
@ -1202,6 +1208,9 @@ find_reg (num, losers, alt_regs_p, accept_call_clobbered, retrying)
|
|||
/* Don't use a reg no good for this pseudo. */
|
||||
&& ! TEST_HARD_REG_BIT (used2, regno)
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
&& (allocno[num].calls_crossed == 0
|
||||
|| accept_call_clobbered
|
||||
|| ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
#ifdef CLASS_CANNOT_CHANGE_MODE
|
||||
&& ! (REG_CHANGES_MODE (allocno[num].reg)
|
||||
&& (TEST_HARD_REG_BIT
|
||||
|
|
Loading…
Add table
Reference in a new issue