* flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.

From-SVN: r33342
This commit is contained in:
Richard Henderson 2000-04-22 11:47:52 -07:00 committed by Richard Henderson
parent 6f81b1ade6
commit b2433fcde0
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2000-04-22 Richard Henderson <rth@cygnus.com>
* flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
2000-04-22 Richard Henderson <rth@cygnus.com> 2000-04-22 Richard Henderson <rth@cygnus.com>
* diagnostic.c (init_output_buffer): Don't initialize format_args. * diagnostic.c (init_output_buffer): Don't initialize format_args.

View File

@ -4473,12 +4473,15 @@ mark_used_reg (pbi, reg, cond, insn)
be eliminated, reload will set it live at that point. be eliminated, reload will set it live at that point.
Otherwise, record that this function uses this register. */ Otherwise, record that this function uses this register. */
/* ??? The PPC backend tries to "eliminate" on the pic
register to itself. This should be fixed. In the mean
time, hack around it. */
if (! TEST_HARD_REG_BIT (elim_reg_set, regno)) if (! (TEST_HARD_REG_BIT (elim_reg_set, regno)
&& (regno == FRAME_POINTER_REGNUM
|| regno == ARG_POINTER_REGNUM)))
{ {
int n = HARD_REGNO_NREGS (regno, GET_MODE (reg)); int n = HARD_REGNO_NREGS (regno, GET_MODE (reg));
if (n == 0)
n = 1;
do do
regs_ever_live[regno + --n] = 1; regs_ever_live[regno + --n] = 1;
while (n > 0); while (n > 0);