diff options
Diffstat (limited to 'gcc/ira-conflicts.c')
-rw-r--r-- | gcc/ira-conflicts.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c index e3d4793..50069c1 100644 --- a/gcc/ira-conflicts.c +++ b/gcc/ira-conflicts.c @@ -743,6 +743,7 @@ ira_build_conflicts (void) for (i = 0; i < n; i++) { ira_object_t obj = ALLOCNO_OBJECT (a, i); + machine_mode obj_mode = obj->allocno->mode; rtx allocno_reg = regno_reg_rtx [ALLOCNO_REGNO (a)]; if ((! flag_caller_saves && ALLOCNO_CALLS_CROSSED_NUM (a) != 0) @@ -804,8 +805,8 @@ ira_build_conflicts (void) regs must conflict with them. */ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) if (!TEST_HARD_REG_BIT (call_used_reg_set, regno) - && HARD_REGNO_CALL_PART_CLOBBERED (regno, - obj->allocno->mode)) + && targetm.hard_regno_call_part_clobbered (regno, + obj_mode)) { SET_HARD_REG_BIT (OBJECT_CONFLICT_HARD_REGS (obj), regno); SET_HARD_REG_BIT (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj), |