aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2004-02-04 23:58:11 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2004-02-04 23:58:11 +0000
commit3c241c19b0770d5f13dcdb7353f3e66fab2a8de1 (patch)
treee48646a1fc93d9be9ff6de8341380a95b52e689d /gcc
parenta322288b35dccf90cf73143c34f5c7fd9ebc42e8 (diff)
downloadgcc-3c241c19b0770d5f13dcdb7353f3e66fab2a8de1.zip
gcc-3c241c19b0770d5f13dcdb7353f3e66fab2a8de1.tar.gz
gcc-3c241c19b0770d5f13dcdb7353f3e66fab2a8de1.tar.bz2
reload.c (find_equiv_reg): When checking for register overlap, don't index hard_regno_nregs with a pseudo-reg.
* reload.c (find_equiv_reg): When checking for register overlap, don't index hard_regno_nregs with a pseudo-reg. From-SVN: r77278
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload.c9
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 03b8b69..848a04e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-04 Geoffrey Keating <geoffk@apple.com>
+
+ * reload.c (find_equiv_reg): When checking for register overlap,
+ don't index hard_regno_nregs with a pseudo-reg.
+
2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
diff --git a/gcc/reload.c b/gcc/reload.c
index ea5b6f5..ae123cf 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -6587,17 +6587,16 @@ find_equiv_reg (rtx goal, rtx insn, enum reg_class class, int other,
/* Reject registers that overlap GOAL. */
- if (!goal_mem && !goal_const
- && regno + (int) hard_regno_nregs[regno][mode] > valueno
- && regno < valueno + (int) hard_regno_nregs[valueno][mode])
- return 0;
-
if (regno >= 0 && regno < FIRST_PSEUDO_REGISTER)
nregs = hard_regno_nregs[regno][mode];
else
nregs = 1;
valuenregs = hard_regno_nregs[valueno][mode];
+ if (!goal_mem && !goal_const
+ && regno + nregs > valueno && regno < valueno + valuenregs)
+ return 0;
+
/* Reject VALUE if it is one of the regs reserved for reloads.
Reload1 knows how to reuse them anyway, and it would get
confused if we allocated one without its knowledge.