This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, RELOAD] Don't assume subreg mem address is ok
On Mon, Aug 08, 2016 at 03:52:31AM -0500, Segher Boessenkool wrote:
> On Mon, Aug 08, 2016 at 05:03:46PM +0930, Alan Modra wrote:
> > Segher, is this rs6000 patch OK? Bootstrapped as above.
> >
> > PR target/72771
> > * config/rs6000/rs6000.c (toc_relative_expr_p): Allow lo_sum/high
> > toc refs created during reload.
>
> > /* Return true if OP is a toc pointer relative address (the output
> > - of create_TOC_reference). If STRICT, do not match high part or
> > - non-split -mcmodel=large/medium toc pointer relative addresses. */
> > + of create_TOC_reference). If STRICT, do not match non-split
> > + -mcmodel=large/medium toc pointer relative addresses. */
>
> Why this comment change? The code still does not allow high part if
> strict? The changelog says it does now, is the code correct?
The code is now correct, and allows (lo_sum (high (...)) style
addresses created during reload when non-strict. That's what I meant
by the ChangeLog entry.
I felt that saying "do not match high" in the function comment is
extraneous as one form of the non-split insn is
(lo_sum (high (unspec [sym r2] UNSPEC_TOCREL))
(unspec [sym r2] UNSPEC_TOCREL))
The other is plain (unspec [sym r2] UNSPEC_TOCREL).
--
Alan Modra
Australia Development Lab, IBM