This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Reload bug
> The code is wrong for post-SUBREG_BYTE patch as it checks that the
> partial regs have exactly size of one word, but we do allow subregs on
> registers of different sizes. We need to verify that offset can
> represent the register exactly.
Is it really wrong or is it incomplete now, in the post-SUBREG_BYTE era?
> Looking as subreg_regno_offset, I think we need to practically check
> that division in:
> return (y_offset / (mode_multiple / nregs_multiple)) * nregs_ymode;
> Does not round. When it rounds we are having registers too wide and we
> must reload.
> All the other divisions should be safe from SUBREG definition that is
> already verified by my simplify_subreg code.
> We also should add a trap to subreg_regno_offset in the mainline...
> Seems to make sense?
Do you mean that we can generate
(subreg:HI (reg/v:SI 67) 2)
and we currently have no means to fix it during the reload pass?
--
Eric Botcazou