regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P for hard regs to determine base and index...

* regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P
        for hard regs to determine base and index registers.

From-SVN: r15954
This commit is contained in:
Christian Iseli 1997-10-17 17:46:57 +02:00 committed by Jeff Law
parent b8fb2d721d
commit f22376c716
2 changed files with 29 additions and 0 deletions

View File

@ -1,5 +1,8 @@
Fri Oct 17 12:29:48 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch>
* regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P
for hard regs to determine base and index registers.
* reload.c (debug_reload_to_stream): New function. Specify stream
into which to write debug info.
(debug_reload): Modify to call debug_reload_to_stream with stderr.

View File

@ -1539,6 +1539,32 @@ record_address_regs (x, class, scale)
else if (code1 == SYMBOL_REF || code1 == CONST || code1 == LABEL_REF)
record_address_regs (arg0, INDEX_REG_CLASS, scale);
/* Look for the sum of two registers where the first is definitely
a base register or the second is definitely an index register. */
else if (code0 == REG && code1 == REG
&& ((REGNO (arg0) < FIRST_PSEUDO_REGISTER
&& REG_OK_FOR_BASE_P (arg0))
|| ((REGNO (arg1) < FIRST_PSEUDO_REGISTER
&& REG_OK_FOR_INDEX_P (arg1)))))
{
record_address_regs (arg0, BASE_REG_CLASS, scale);
record_address_regs (arg1, INDEX_REG_CLASS, scale);
}
/* Look for the sum of two registers where the first is definitely
an index register or the second is definitely a base register. */
else if (code0 == REG && code1 == REG
&& ((REGNO (arg1) < FIRST_PSEUDO_REGISTER
&& REG_OK_FOR_BASE_P (arg1))
|| ((REGNO (arg0) < FIRST_PSEUDO_REGISTER
&& REG_OK_FOR_INDEX_P (arg0)))))
{
record_address_regs (arg0, INDEX_REG_CLASS, scale);
record_address_regs (arg1, BASE_REG_CLASS, scale);
}
/* If this the sum of two registers where the first is known to be a
pointer, it must be a base register with the second an index. */