This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]