Re: [PATCH][rs6000] use index form addresses more often for ldbrx/stdbrx

2018-10-30 Thread Segher Boessenkool
On Tue, Oct 30, 2018 at 10:22:48AM -0500, Aaron Sawdey wrote: > I had to make one more change to make this actually work. In > rs6000_force_indexed_or_indirect_mem() it was necessary to > return the updated rtx. Yes, that probably work better ;-) > Bootstrap/regtest passes on ppc64le (power7, pow

Re: [PATCH][rs6000] use index form addresses more often for ldbrx/stdbrx

2018-10-30 Thread Aaron Sawdey
I had to make one more change to make this actually work. In rs6000_force_indexed_or_indirect_mem() it was necessary to return the updated rtx. Bootstrap/regtest passes on ppc64le (power7, power9), ok for trunk? Thanks! Aaron 2018-10-30 Aaron Sawdey * config/rs6000/rs6000.md (bswa

Re: [PATCH][rs6000] use index form addresses more often for ldbrx/stdbrx

2018-10-29 Thread Segher Boessenkool
Hi again, On Mon, Oct 29, 2018 at 09:39:59AM -0500, Aaron Sawdey wrote: > * config/rs6000/rs6000.md (bswapdi2): Force address into register > if not in one already. This isn't very correct, could you rephrase? > +void > +rs6000_force_indexed_or_indirect_mem (rtx x) > +{ > + rtx addr

Re: [PATCH][rs6000] use index form addresses more often for ldbrx/stdbrx

2018-10-29 Thread Aaron Sawdey
On 10/27/18 12:52 PM, Segher Boessenkool wrote: > Hi Aaron, > > On Sat, Oct 27, 2018 at 11:20:01AM -0500, Aaron Sawdey wrote: >> --- gcc/config/rs6000/rs6000.md (revision 265393) >> +++ gcc/config/rs6000/rs6000.md (working copy) >> @@ -2512,9 +2512,27 @@ >>if (TARGET_POWERPC64 && TAR

Re: [PATCH][rs6000] use index form addresses more often for ldbrx/stdbrx

2018-10-27 Thread Segher Boessenkool
Hi Aaron, On Sat, Oct 27, 2018 at 11:20:01AM -0500, Aaron Sawdey wrote: > --- gcc/config/rs6000/rs6000.md (revision 265393) > +++ gcc/config/rs6000/rs6000.md (working copy) > @@ -2512,9 +2512,27 @@ >if (TARGET_POWERPC64 && TARGET_LDBRX) > { >if (MEM_P (src)) > - em

[PATCH][rs6000] use index form addresses more often for ldbrx/stdbrx

2018-10-27 Thread Aaron Sawdey
At Segher's suggestion, I looked into changing the predicates on bswapdi2_{load,store} from memory_operand to indexed_or_indirect_operand and putting some code into bswapdi2 to make the address indirect if it wasn't already. The motivating case for this was the code I was seeing for the gpr expa