re PR other/54814 (ICE: unable to find a register to spill in class 'R0_REG')

PR other/54814
	* reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
	TEST_HARD_REG_BIT.

From-SVN: r195515
This commit is contained in:
Bernd Schmidt 2013-01-28 20:03:26 +00:00 committed by Georg-Johann Lay
parent db1fb332e1
commit 51e44392b3
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
PR other/54814
* reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
TEST_HARD_REG_BIT.
2013-01-28 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/56117

View File

@ -707,7 +707,7 @@ find_valid_class (enum machine_mode outer ATTRIBUTE_UNUSED,
}
/* We are trying to reload a subreg of something that is not a register.
Find the largest class which has at least one register valid in
Find the largest class which contains only registers valid in
mode MODE. OUTER is the mode of the subreg, DEST_CLASS the class in
which we would eventually like to obtain the object. */
@ -727,10 +727,12 @@ find_valid_class_1 (enum machine_mode outer ATTRIBUTE_UNUSED,
{
int bad = 0;
for (regno = 0; regno < FIRST_PSEUDO_REGISTER && !bad; regno++)
if (TEST_HARD_REG_BIT (reg_class_contents[rclass], regno)
&& !HARD_REGNO_MODE_OK (regno, mode))
bad = 1;
{
if (in_hard_reg_set_p (reg_class_contents[rclass], mode, regno)
&& !HARD_REGNO_MODE_OK (regno, mode))
bad = 1;
}
if (bad)
continue;