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