X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fira-costs.c;fp=gcc%2Fira-costs.c;h=64b2e7995d661935147340646c289f8c2fd79109;hp=774902035e1f1047f2e6cad5d4b33613b27747c8;hb=2501d9b23b90c6a78ec169bc2aff75f5d08d2260;hpb=7173d4d00091dd0096cce8ab7dd8d6c0e4018a45 diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 774902035e1..64b2e7995d6 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -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]));