reload bugfix

Joern Rennecke amylaar@cygnus.co.uk
Sun Feb 28 18:15:00 GMT 1999


> There is a comment just above the code you commonized:
> 
>          For machines that extend byte loads, we must not reload using
>          a wider mode if we have a paradoxical SUBREG.  find_reloads will
>          force a reload in that case.  So we should not do anything here.  */
> 
> [ ... ]
>       else if (regno >= FIRST_PSEUDO_REGISTER
> #ifdef LOAD_EXTEND_OP
>                && (GET_MODE_SIZE (GET_MODE (x))
>                    <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))
> #endif
> [ ... ]
> 
> Do you need to take that same condition into consideration at the second
> call site to find_reloads_subreg_address?  If not, why?

At the second call site, we reload from a subreg that is larger than the
class size of the register class we reload into.  This can only work
when the SUBREG is smaller than the SUBREG_REG, and thus the SUBREG is
non-paradoxical.



More information about the Gcc-patches mailing list