On Thu, May 30, 2019 at 02:43:49PM -0500, Bill Schmidt wrote: > On 5/30/19 2:20 PM, Segher Boessenkool wrote: > > On Wed, May 29, 2019 at 10:49:35PM -0500, Bill Schmidt wrote: > >> * config/rs6000/predicates.md (pcrel_address): New > >> define_predicate. > > Please put that on one line? > > OK. Emacs in ChangeLog and Fill modes seems to set a line length > somewhat less than 79. I generally follow what it tells me, but I can > fix this. > > > >> + if (LABEL_REF_P (x)) > >> + output_asm_label (x); > >> + else > >> + output_addr_const (file, x); > > Why does LABEL_REF need separate handling here? > > Mike, please respond?
The current code doesn't need special handling. I don't recall if earlier code did, or I just assumed output_addr_const did not handle LABEL_REF's. > > I don't much like penalising scalar single precision float like this. > > But, this also hurts unaligned lwz... Do we have statistics on that? > > Offline, I guess :-) > > Again, I'll defer to Mike on those details (online or offline). ;-) I have rewritten this section. In particular rather than basing everything off of the mode, I have a now have a more targeted approach that knows which register, mode, and with sign extension requires D/DS/DQ addresses. Of course this only works after register allocation. Before register allocation, we still have to make a best guess based only on the mode. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797