aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorCatherine Moore <clm@cygnus.com>1998-06-17 15:46:25 +0000
committerCatherine Moore <clm@gcc.gnu.org>1998-06-17 11:46:25 -0400
commit4fdf79cb6764f8c57b4c4deaabd6131850535263 (patch)
tree1aab30d21baeadb41dabcd8ce4b078343d10e9c6 /gcc
parentd7e7852964c2fd25f97b232fbe825bc879473f01 (diff)
downloadgcc-4fdf79cb6764f8c57b4c4deaabd6131850535263.zip
gcc-4fdf79cb6764f8c57b4c4deaabd6131850535263.tar.gz
gcc-4fdf79cb6764f8c57b4c4deaabd6131850535263.tar.bz2
reload1.c (spill_hard_reg): Check mode of register when spilling from scratch_list.
Wed Jun 17 15:20:00 PDT 1998 Catherine Moore <clm@cygnus.com> * reload1.c (spill_hard_reg): Check mode of register when spilling from scratch_list. From-SVN: r20542
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6f2d3d..7bd2135 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jun 17 15:20:00 PDT 1998 Catherine Moore <clm@cygnus.com>
+
+ * reload1.c (spill_hard_reg): Check mode of register when
+ spilling from scratch_list.
+
Wed Jun 17 16:25:38 EDT 1998 Andrew MacLeod (amacleod@cygnus.com)
* except.c (add_new_handler): fix bug in finding last region handler.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index b69ee76..0e22651 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3717,7 +3717,11 @@ spill_hard_reg (regno, global, dumpfile, cant_eliminate)
}
for (i = 0; i < scratch_list_length; i++)
{
- if (scratch_list[i] && REGNO (scratch_list[i]) == regno)
+ if (scratch_list[i]
+ && regno >= REGNO (scratch_list[i])
+ && regno < REGNO (scratch_list[i])
+ + HARD_REGNO_NREGS (REGNO (scratch_list[i]),
+ GET_MODE (scratch_list[i])))
{
if (! cant_eliminate && basic_block_needs[0]
&& ! basic_block_needs[(int) class][scratch_block[i]])