From: Richard Kenner Date: Wed, 23 Feb 1994 13:13:48 +0000 (-0500) Subject: (choose_reload_regs): If EQUIV is a SUBREG, make a new REG. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f8a9e02bc1443b3300c024454d7700f7bbe6967c;p=gcc.git (choose_reload_regs): If EQUIV is a SUBREG, make a new REG. From-SVN: r6612 --- diff --git a/gcc/reload1.c b/gcc/reload1.c index 503ebe3ee91..ac75a5181e1 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5044,9 +5044,12 @@ choose_reload_regs (insn, avoid_return_reg) regno = REGNO (equiv); else if (GET_CODE (equiv) == SUBREG) { - regno = REGNO (SUBREG_REG (equiv)); - if (regno < FIRST_PSEUDO_REGISTER) - regno += SUBREG_WORD (equiv); + /* This must be a SUBREG of a hard register. + Make a new REG since this might be used in an + address and not all machines support SUBREGs + there. */ + regno = REGNO (SUBREG_REG (equiv)) + SUBREG_WORD (equiv); + equiv = gen_rtx (REG, reload_mode[r], regno); } else abort ();