reload1.c (eliminate_regs): Test for reg_renumber being allocated before referencing it.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Tue, 30 Oct 2001 00:19:58 +0000 (00:19 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 30 Oct 2001 00:19:58 +0000 (19:19 -0500)
* reload1.c (eliminate_regs): Test for reg_renumber being allocated
before referencing it.

From-SVN: r46623

gcc/ChangeLog
gcc/reload1.c

index d264baf9d9fb6622329654e83eb346dbbc774567..f717f53193ab70bfacc322684fd8fdf7762d01e8 100644 (file)
@@ -1,3 +1,8 @@
+Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * reload1.c (eliminate_regs): Test for reg_renumber being allocated
+       before referencing it.
+
 2001-10-26  DJ Delorie  <dj@redhat.com>
 
        * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
index 2947f1aecb6435d03866d5ac36a7de8d90f9c66c..c5158c7d81bd8f33e2faed26914076cb6475a60a 100644 (file)
@@ -2298,8 +2298,8 @@ eliminate_regs (x, mem_mode, insn)
              return plus_constant (ep->to_rtx, ep->previous_offset);
 
        }
-      else if (reg_renumber[regno] < 0 && reg_equiv_constant
-              && reg_equiv_constant[regno]
+      else if (reg_renumber && reg_renumber[regno] < 0
+              && reg_equiv_constant && reg_equiv_constant[regno]
               && ! CONSTANT_P (reg_equiv_constant[regno]))
        return eliminate_regs (copy_rtx (reg_equiv_constant[regno]),
                               mem_mode, insn);
@@ -2365,7 +2365,7 @@ eliminate_regs (x, mem_mode, insn)
        rtx new0 = eliminate_regs (XEXP (x, 0), mem_mode, insn);
        rtx new1 = eliminate_regs (XEXP (x, 1), mem_mode, insn);
 
-       if (new0 != XEXP (x, 0) || new1 != XEXP (x, 1))
+       if (reg_renumber && (new0 != XEXP (x, 0) || new1 != XEXP (x, 1)))
          {
            /* If one side is a PLUS and the other side is a pseudo that
               didn't get a hard register but has a reg_equiv_constant,
@@ -2473,7 +2473,8 @@ eliminate_regs (x, mem_mode, insn)
        {
          new = eliminate_regs (XEXP (x, 1), mem_mode, insn);
          if (new != XEXP (x, 1))
-           return gen_rtx_fmt_ee (GET_CODE (x), GET_MODE (x), XEXP (x, 0), new);
+           return
+             gen_rtx_fmt_ee (GET_CODE (x), GET_MODE (x), XEXP (x, 0), new);
        }
       return x;