From f8a9e02bc1443b3300c024454d7700f7bbe6967c Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 23 Feb 1994 08:13:48 -0500 Subject: [PATCH] (choose_reload_regs): If EQUIV is a SUBREG, make a new REG. From-SVN: r6612 --- gcc/reload1.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 (); -- 2.30.2