From: Richard Henderson Date: Sat, 22 Apr 2000 18:47:52 +0000 (-0700) Subject: * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b2433fcde0f08059731043f5af3d1ad687a1fbba;p=gcc.git * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. From-SVN: r33342 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2fcc64a8aad..7b3844a862e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2000-04-22 Richard Henderson + + * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. + 2000-04-22 Richard Henderson * diagnostic.c (init_output_buffer): Don't initialize format_args. diff --git a/gcc/flow.c b/gcc/flow.c index 9f7537e3aea..24ae92c9b05 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -4473,12 +4473,15 @@ mark_used_reg (pbi, reg, cond, insn) be eliminated, reload will set it live at that point. 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)); - if (n == 0) - n = 1; do regs_ever_live[regno + --n] = 1; while (n > 0);