From fefac463200cf9380d830206400d41180697e123 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Thu, 16 May 2002 00:06:39 +0000 Subject: [PATCH] reload1.c (forget_old_reloads_1): Do not use subreg offset. 2002-05-15 Aldy Hernandez * reload1.c (forget_old_reloads_1): Do not use subreg offset. From-SVN: r53496 --- gcc/ChangeLog | 4 ++++ gcc/reload1.c | 10 ++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0d3f409e33d..0613e309b40 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-05-15 Aldy Hernandez + + * reload1.c (forget_old_reloads_1): Do not use subreg offset. + 2002-05-15 Aldy Hernandez * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register. diff --git a/gcc/reload1.c b/gcc/reload1.c index 1bcd29b3ee4..1349c3c8559 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4098,23 +4098,21 @@ forget_old_reloads_1 (x, ignored, data) { unsigned int regno; unsigned int nr; - int offset = 0; /* note_stores does give us subregs of hard regs, subreg_regno_offset will abort if it is not a hard reg. */ while (GET_CODE (x) == SUBREG) { - offset += subreg_regno_offset (REGNO (SUBREG_REG (x)), - GET_MODE (SUBREG_REG (x)), - SUBREG_BYTE (x), - GET_MODE (x)); + /* We ignore the subreg offset when calculating the regno, + because we are using the entire underlying hard register + below. */ x = SUBREG_REG (x); } if (GET_CODE (x) != REG) return; - regno = REGNO (x) + offset; + regno = REGNO (x); if (regno >= FIRST_PSEUDO_REGISTER) nr = 1; -- 2.30.2