reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE while looking for a register to inherit from.

* reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
        while looking for a register to inherit from.

From-SVN: r34420
This commit is contained in:
Richard Henderson 2000-06-05 19:40:14 -07:00 committed by Richard Henderson
parent 2aceb30d90
commit c9d8a81361
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2000-06-05 Richard Henderson <rth@cygnus.com>
* reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
while looking for a register to inherit from.
2000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
* Makefile.in (libgcc.ready): Lose.

View File

@ -5308,8 +5308,18 @@ choose_reload_regs (chain)
i = REGNO (last_reg) + word;
last_class = REGNO_REG_CLASS (i);
if ((GET_MODE_SIZE (GET_MODE (last_reg))
if (
#ifdef CLASS_CANNOT_CHANGE_SIZE
(TEST_HARD_REG_BIT
(reg_class_contents[CLASS_CANNOT_CHANGE_SIZE], i)
? (GET_MODE_SIZE (GET_MODE (last_reg))
== GET_MODE_SIZE (mode) + word * UNITS_PER_WORD)
: (GET_MODE_SIZE (GET_MODE (last_reg))
>= GET_MODE_SIZE (mode) + word * UNITS_PER_WORD))
#else
(GET_MODE_SIZE (GET_MODE (last_reg))
>= GET_MODE_SIZE (mode) + word * UNITS_PER_WORD)
#endif
&& reg_reloaded_contents[i] == regno
&& TEST_HARD_REG_BIT (reg_reloaded_valid, i)
&& HARD_REGNO_MODE_OK (i, rld[r].mode)