aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-06-06 19:22:19 +0000
committerJakub Jelinek <jakub@redhat.com>2005-06-06 19:22:19 +0000
commit3daef6b2e1bbe2063d85dbf872646805ec148414 (patch)
tree601f45251a4905b151a8508b171462fb89b0a153
parent5c9a566253d95b18ec760eee1563881ae769cd7c (diff)
* combine.c (try_combine): Use hard_regno_nregs array instead of
HARD_REGNO_NREGS macro. * config/rs6000/rs6000.c (rs6000_split_multireg_move, rs6000_register_move_cost, rs6000_memory_move_cost): Likewise. * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@100673 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/combine.c4
-rw-r--r--gcc/config/ia64/ia64.c2
-rw-r--r--gcc/config/rs6000/rs6000.c10
4 files changed, 16 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fa63fbb261c..69bcc422168 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2005-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ * combine.c (try_combine): Use hard_regno_nregs array instead of
+ HARD_REGNO_NREGS macro.
+ * config/rs6000/rs6000.c (rs6000_split_multireg_move,
+ rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
+ * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
+
2005-06-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-reassoc.o: New.
diff --git a/gcc/combine.c b/gcc/combine.c
index 251c1eeafb8..7cecc3d0102 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2385,8 +2385,8 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
|| GET_MODE (*split) == VOIDmode
|| (REGNO (i2dest) < FIRST_PSEUDO_REGISTER
&& HARD_REGNO_MODE_OK (REGNO (i2dest), GET_MODE (*split))
- && (HARD_REGNO_NREGS (REGNO (i2dest), GET_MODE (i2dest))
- == HARD_REGNO_NREGS (REGNO (i2dest), GET_MODE (*split))))
+ && (hard_regno_nregs[REGNO (i2dest)][GET_MODE (i2dest)]
+ == hard_regno_nregs[REGNO (i2dest)][GET_MODE (*split)]))
|| (REGNO (i2dest) >= FIRST_PSEUDO_REGISTER
&& REG_N_SETS (REGNO (i2dest)) == 1 && ! added_sets_2
&& ! REG_USERVAR_P (i2dest)))
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 7b20280b746..e119ecb2b1a 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -2008,7 +2008,7 @@ mark_reg_gr_used_mask (rtx reg, void *data ATTRIBUTE_UNUSED)
unsigned int regno = REGNO (reg);
if (regno < 32)
{
- unsigned int i, n = HARD_REGNO_NREGS (regno, GET_MODE (reg));
+ unsigned int i, n = hard_regno_nregs[regno][GET_MODE (reg)];
for (i = 0; i < n; ++i)
current_frame_info.gr_used_mask |= 1 << (regno + i);
}
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 9626885a664..6a55de112db 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -11586,7 +11586,7 @@ rs6000_split_multireg_move (rtx dst, rtx src)
reg = REG_P (dst) ? REGNO (dst) : REGNO (src);
mode = GET_MODE (dst);
- nregs = HARD_REGNO_NREGS (reg, mode);
+ nregs = hard_regno_nregs[reg][mode];
if (FP_REGNO_P (reg))
reg_mode = DFmode;
else if (ALTIVEC_REGNO_P (reg))
@@ -17925,7 +17925,7 @@ rs6000_register_move_cost (enum machine_mode mode,
else
/* A move will cost one instruction per GPR moved. */
- return 2 * HARD_REGNO_NREGS (0, mode);
+ return 2 * hard_regno_nregs[0][mode];
}
/* Moving between two similar registers is just one instruction. */
@@ -17946,11 +17946,11 @@ rs6000_memory_move_cost (enum machine_mode mode, enum reg_class class,
int in ATTRIBUTE_UNUSED)
{
if (reg_classes_intersect_p (class, GENERAL_REGS))
- return 4 * HARD_REGNO_NREGS (0, mode);
+ return 4 * hard_regno_nregs[0][mode];
else if (reg_classes_intersect_p (class, FLOAT_REGS))
- return 4 * HARD_REGNO_NREGS (32, mode);
+ return 4 * hard_regno_nregs[32][mode];
else if (reg_classes_intersect_p (class, ALTIVEC_REGS))
- return 4 * HARD_REGNO_NREGS (FIRST_ALTIVEC_REGNO, mode);
+ return 4 * hard_regno_nregs[FIRST_ALTIVEC_REGNO][mode];
else
return 4 + rs6000_register_move_cost (mode, class, GENERAL_REGS);
}