Commit c8b622ff by Jakub Jelinek Committed by Jakub Jelinek

combine.c (try_combine): Use hard_regno_nregs array instead of HARD_REGNO_NREGS macro.

	* 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.

From-SVN: r100673
parent 012309e6
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> 2005-06-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-reassoc.o: New. * tree-ssa-reassoc.o: New.
......
...@@ -2385,8 +2385,8 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) ...@@ -2385,8 +2385,8 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
|| GET_MODE (*split) == VOIDmode || GET_MODE (*split) == VOIDmode
|| (REGNO (i2dest) < FIRST_PSEUDO_REGISTER || (REGNO (i2dest) < FIRST_PSEUDO_REGISTER
&& HARD_REGNO_MODE_OK (REGNO (i2dest), GET_MODE (*split)) && HARD_REGNO_MODE_OK (REGNO (i2dest), GET_MODE (*split))
&& (HARD_REGNO_NREGS (REGNO (i2dest), GET_MODE (i2dest)) && (hard_regno_nregs[REGNO (i2dest)][GET_MODE (i2dest)]
== HARD_REGNO_NREGS (REGNO (i2dest), GET_MODE (*split)))) == hard_regno_nregs[REGNO (i2dest)][GET_MODE (*split)]))
|| (REGNO (i2dest) >= FIRST_PSEUDO_REGISTER || (REGNO (i2dest) >= FIRST_PSEUDO_REGISTER
&& REG_N_SETS (REGNO (i2dest)) == 1 && ! added_sets_2 && REG_N_SETS (REGNO (i2dest)) == 1 && ! added_sets_2
&& ! REG_USERVAR_P (i2dest))) && ! REG_USERVAR_P (i2dest)))
......
...@@ -2008,7 +2008,7 @@ mark_reg_gr_used_mask (rtx reg, void *data ATTRIBUTE_UNUSED) ...@@ -2008,7 +2008,7 @@ mark_reg_gr_used_mask (rtx reg, void *data ATTRIBUTE_UNUSED)
unsigned int regno = REGNO (reg); unsigned int regno = REGNO (reg);
if (regno < 32) 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) for (i = 0; i < n; ++i)
current_frame_info.gr_used_mask |= 1 << (regno + i); current_frame_info.gr_used_mask |= 1 << (regno + i);
} }
......
...@@ -11586,7 +11586,7 @@ rs6000_split_multireg_move (rtx dst, rtx src) ...@@ -11586,7 +11586,7 @@ rs6000_split_multireg_move (rtx dst, rtx src)
reg = REG_P (dst) ? REGNO (dst) : REGNO (src); reg = REG_P (dst) ? REGNO (dst) : REGNO (src);
mode = GET_MODE (dst); mode = GET_MODE (dst);
nregs = HARD_REGNO_NREGS (reg, mode); nregs = hard_regno_nregs[reg][mode];
if (FP_REGNO_P (reg)) if (FP_REGNO_P (reg))
reg_mode = DFmode; reg_mode = DFmode;
else if (ALTIVEC_REGNO_P (reg)) else if (ALTIVEC_REGNO_P (reg))
...@@ -17925,7 +17925,7 @@ rs6000_register_move_cost (enum machine_mode mode, ...@@ -17925,7 +17925,7 @@ rs6000_register_move_cost (enum machine_mode mode,
else else
/* A move will cost one instruction per GPR moved. */ /* 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. */ /* 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, ...@@ -17946,11 +17946,11 @@ rs6000_memory_move_cost (enum machine_mode mode, enum reg_class class,
int in ATTRIBUTE_UNUSED) int in ATTRIBUTE_UNUSED)
{ {
if (reg_classes_intersect_p (class, GENERAL_REGS)) 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)) 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)) 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 else
return 4 + rs6000_register_move_cost (mode, class, GENERAL_REGS); return 4 + rs6000_register_move_cost (mode, class, GENERAL_REGS);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment