reload.c (find_equiv_reg): Test all hard registers for membership in the requested class.
* reload.c (find_equiv_reg): Test all hard registers for membership in the requested class. From-SVN: r37207
This commit is contained in:
parent
9473c5226b
commit
0192d70465
|
@ -1,3 +1,8 @@
|
||||||
|
Thu Nov 2 19:20:12 2000 J"orn Rennecke <amylaar@redhat.com>
|
||||||
|
|
||||||
|
* reload.c (find_equiv_reg): Test all hard registers for membership
|
||||||
|
in the requested class.
|
||||||
|
|
||||||
2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
|
2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||||
|
|
||||||
* collect2.c (main, write_c_file_stat), gcc.c (translate_options,
|
* collect2.c (main, write_c_file_stat), gcc.c (translate_options,
|
||||||
|
|
23
gcc/reload.c
23
gcc/reload.c
|
@ -6185,12 +6185,25 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
|
||||||
&& (valtry
|
&& (valtry
|
||||||
= operand_subword (SET_DEST (pat), 1, 0, VOIDmode))
|
= operand_subword (SET_DEST (pat), 1, 0, VOIDmode))
|
||||||
&& (valueno = true_regnum (valtry)) >= 0)))
|
&& (valueno = true_regnum (valtry)) >= 0)))
|
||||||
if (other >= 0
|
|
||||||
? valueno == other
|
|
||||||
: ((unsigned) valueno < FIRST_PSEUDO_REGISTER
|
|
||||||
&& TEST_HARD_REG_BIT (reg_class_contents[(int) class],
|
|
||||||
valueno)))
|
|
||||||
{
|
{
|
||||||
|
if (other >= 0)
|
||||||
|
{
|
||||||
|
if (valueno != other)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ((unsigned) valueno >= FIRST_PSEUDO_REGISTER)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = HARD_REGNO_NREGS (valueno, mode) - 1; i >= 0; i--)
|
||||||
|
if (! TEST_HARD_REG_BIT (reg_class_contents[(int) class],
|
||||||
|
valueno + i))
|
||||||
|
break;
|
||||||
|
if (i >= 0)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
value = valtry;
|
value = valtry;
|
||||||
where = p;
|
where = p;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue