From 3e82d236f23959133707525ad1176390394c56f4 Mon Sep 17 00:00:00 2001 From: clm Date: Wed, 17 Jun 1998 15:46:25 +0000 Subject: [PATCH] Wed Jun 17 15:20:00 PDT 1998 Catherine Moore * reload1.c (spill_hard_reg): Check mode of register when spilling from scratch_list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20542 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/reload1.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6f2d3d3dc5..7bd21357269 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 17 15:20:00 PDT 1998 Catherine Moore + + * 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 b69ee760e5c..0e22651124d 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]]) -- 2.11.4.GIT