value is in the class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66366
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
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;