diff options
Diffstat (limited to 'gcc/regcprop.c')
-rw-r--r-- | gcc/regcprop.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/regcprop.c b/gcc/regcprop.c index 39977be..6db7fdd 100644 --- a/gcc/regcprop.c +++ b/gcc/regcprop.c @@ -176,7 +176,7 @@ kill_value_regno (unsigned int regno, unsigned int nregs, unsigned int i, n; if (vd->e[j].mode == VOIDmode) continue; - n = hard_regno_nregs[j][vd->e[j].mode]; + n = hard_regno_nregs (j, vd->e[j].mode); if (j + n > regno) for (i = 0; i < n; ++i) kill_value_one_regno (j + i, vd); @@ -209,7 +209,7 @@ set_value_regno (unsigned int regno, machine_mode mode, vd->e[regno].mode = mode; - nregs = hard_regno_nregs[regno][mode]; + nregs = hard_regno_nregs (regno, mode); if (nregs > vd->max_value_regs) vd->max_value_regs = nregs; } @@ -344,7 +344,7 @@ copy_value (rtx dest, rtx src, struct value_data *vd) We can't properly represent the latter case in our tables, so don't record anything then. */ - else if (sn < (unsigned int) hard_regno_nregs[sr][vd->e[sr].mode] + else if (sn < hard_regno_nregs (sr, vd->e[sr].mode) && (GET_MODE_SIZE (vd->e[sr].mode) > UNITS_PER_WORD ? WORDS_BIG_ENDIAN : BYTES_BIG_ENDIAN)) return; @@ -352,7 +352,7 @@ copy_value (rtx dest, rtx src, struct value_data *vd) /* If SRC had been assigned a mode narrower than the copy, we can't link DEST into the chain, because not all of the pieces of the copy came from oldest_regno. */ - else if (sn > (unsigned int) hard_regno_nregs[sr][vd->e[sr].mode]) + else if (sn > hard_regno_nregs (sr, vd->e[sr].mode)) return; /* Link DR at the end of the value chain used by SR. */ @@ -408,8 +408,8 @@ maybe_mode_change (machine_mode orig_mode, machine_mode copy_mode, return gen_raw_REG (new_mode, regno); else if (mode_change_ok (orig_mode, new_mode, regno)) { - int copy_nregs = hard_regno_nregs[copy_regno][copy_mode]; - int use_nregs = hard_regno_nregs[copy_regno][new_mode]; + int copy_nregs = hard_regno_nregs (copy_regno, copy_mode); + int use_nregs = hard_regno_nregs (copy_regno, new_mode); int copy_offset = GET_MODE_SIZE (copy_mode) / copy_nregs * (copy_nregs - use_nregs); int offset @@ -445,7 +445,7 @@ find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd) (set (...) (reg:DI r9)) Replacing r9 with r11 is invalid. */ if (mode != vd->e[regno].mode - && REG_NREGS (reg) > hard_regno_nregs[regno][vd->e[regno].mode]) + && REG_NREGS (reg) > hard_regno_nregs (regno, vd->e[regno].mode)) return NULL_RTX; for (i = vd->e[regno].oldest_regno; i != regno; i = vd->e[i].next_regno) @@ -869,12 +869,12 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd) if (mode != vd->e[regno].mode) { if (REG_NREGS (src) - > hard_regno_nregs[regno][vd->e[regno].mode]) + > hard_regno_nregs (regno, vd->e[regno].mode)) goto no_move_special_case; /* And likewise, if we are narrowing on big endian the transformation is also invalid. */ - if (REG_NREGS (src) < hard_regno_nregs[regno][vd->e[regno].mode] + if (REG_NREGS (src) < hard_regno_nregs (regno, vd->e[regno].mode) && (GET_MODE_SIZE (vd->e[regno].mode) > UNITS_PER_WORD ? WORDS_BIG_ENDIAN : BYTES_BIG_ENDIAN)) goto no_move_special_case; |