reload.c (find_reloads): Also check that all of a multi-reg value is in the class.

* reload.c (find_reloads): Also check that all of a multi-reg
value is in the class.

From-SVN: r66366
This commit is contained in:
DJ Delorie 2003-05-01 20:53:45 -04:00 committed by DJ Delorie
parent c4dec8d5a8
commit 57458e8a15
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2003-05-01 DJ Delorie <dj@redhat.com>
* reload.c (find_reloads): Also check that all of a multi-reg
value is in the class.
2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
* scan.h (lineno): Revert the rename here.

View File

@ -4346,7 +4346,17 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
if (regno < FIRST_PSEUDO_REGISTER
&& TEST_HARD_REG_BIT (reg_class_contents[rld[i].class], regno)
&& HARD_REGNO_MODE_OK (regno, rld[i].mode))
rld[i].reg_rtx = dest;
{
int nr = HARD_REGNO_NREGS (regno, rld[i].mode);
int ok = 1, nri;
for (nri = 1; nri < nr; nri ++)
if (! TEST_HARD_REG_BIT (reg_class_contents[rld[i].class], regno + nri))
ok = 0;
if (ok)
rld[i].reg_rtx = dest;
}
}
return retval;