summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-04 23:58:11 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-04 23:58:11 +0000
commit900c3c4984c408b9cb9cd6c1b0476f2928235f38 (patch)
treee48646a1fc93d9be9ff6de8341380a95b52e689d
parentfc55a1dfacdc94254f8461489ab3c358dc73b716 (diff)
downloadppe42-gcc-900c3c4984c408b9cb9cd6c1b0476f2928235f38.tar.gz
ppe42-gcc-900c3c4984c408b9cb9cd6c1b0476f2928235f38.zip
* reload.c (find_equiv_reg): When checking for register overlap,
don't index hard_regno_nregs with a pseudo-reg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77278 138bc75d-0d04-0410-961f-82ee72b054a4
-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 03b8b699bf5..848a04e945c 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 ea5b6f50f94..ae123cffdca 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.
OpenPOWER on IntegriCloud