[RS6000] PowerPC64 soft-float

Segher Boessenkool segher@kernel.crashing.org
Fri Nov 30 13:03:00 GMT 2018


On Fri, Nov 30, 2018 at 06:28:28PM +1030, Alan Modra wrote:
> On Thu, Nov 29, 2018 at 12:15:06PM -0600, Segher Boessenkool wrote:
> > On Sun, Nov 25, 2018 at 10:50:27PM +1030, Alan Modra wrote:
> > > This patch aims to prevent long sequences loading soft-float
> > > constants.  For 32-bit, it makes sense to load values inline to a gpr
> > > with lis, addi, but not so much for 64-bit where a 5 insn sequence
> > > might be needed for each gpr.  For TFmode in particular, a 10 insn
> > > sequence is reduced to 2 loads from memory plus 1 or 2 address setup
> > > insns.
> > > 
> > > Bootstrapped etc. powerpc64le-linux and powerpc64-linux.  OK for
> > > next stage1?
> > 
> > It's okay now, even.
> 
> Thanks!  Revised patch as per your other comments bootstrapped and
> regression tested powerpc64le-linux.

That looks great.  Okay for trunk.  Thanks!

> 	* config/rs6000/predicates.md (easy_fp_constant): Avoid long
> 	dependent insn sequences.
> 	* config/rs6000/rs6000.c (num_insns_constant): Support long
> 	double constants.
> 	* config/rs6000/rs6000.md (mov<mode>_softfloat128) Adjust length
> 	attribute.

Missing colon on that last line.


Segher



More information about the Gcc-patches mailing list