From: Richard Kenner Date: Tue, 30 Oct 2001 00:19:58 +0000 (+0000) Subject: reload1.c (eliminate_regs): Test for reg_renumber being allocated before referencing it. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cd7c9015a6306338ea15c1f8a94b8e1be87ae0d5;p=gcc.git reload1.c (eliminate_regs): Test for reg_renumber being allocated before referencing it. * reload1.c (eliminate_regs): Test for reg_renumber being allocated before referencing it. From-SVN: r46623 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d264baf9d9f..f717f53193a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 29 19:22:07 2001 Richard Kenner + + * reload1.c (eliminate_regs): Test for reg_renumber being allocated + before referencing it. + 2001-10-26 DJ Delorie * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to diff --git a/gcc/reload1.c b/gcc/reload1.c index 2947f1aecb6..c5158c7d81b 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -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;