re PR target/37633 (wrong register use on sh64)

2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/37633
	* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
	HARD_REGNO_CALL_PART_CLOBBERED.

From-SVN: r141161
This commit is contained in:
Vladimir Makarov 2008-10-16 00:52:59 +00:00 committed by Vladimir Makarov
parent 22c02455bf
commit aac375ddfb
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
PR target/37633
* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
HARD_REGNO_CALL_PART_CLOBBERED.
2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/37535

View File

@ -1572,8 +1572,8 @@ ira_tune_allocno_costs_and_cover_classes (void)
regno = ira_class_hard_regs[cover_class][j];
rclass = REGNO_REG_CLASS (regno);
cost = 0;
/* ??? If only part is call clobbered. */
if (! ira_hard_reg_not_in_set_p (regno, mode, call_used_reg_set))
if (! ira_hard_reg_not_in_set_p (regno, mode, call_used_reg_set)
|| HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
cost += (ALLOCNO_CALL_FREQ (a)
* (ira_memory_move_cost[mode][rclass][0]
+ ira_memory_move_cost[mode][rclass][1]));