Re: [RS6000] PR72802 part 1, fix constraints for lxssp/stxssp

2016-08-08 Thread Alan Modra
Now backported to gcc-6-branch too, after bootstrap and regression testing. PR target/72802 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test. (mem_operand_ds_form): New predicate. * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.

Re: [RS6000] PR72802 part 1, fix constraints for lxssp/stxssp

2016-08-05 Thread Segher Boessenkool
On Fri, Aug 05, 2016 at 11:35:11AM +0930, Alan Modra wrote: > diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c > index 779ba1f..c59d07a 100644 > --- a/gcc/config/rs6000/rs6000.c > +++ b/gcc/config/rs6000/rs6000.c > @@ -7717,8 +7717,34 @@ mem_operand_gpr (rtx op, machine_mode mod

[RS6000] PR72802 part 1, fix constraints for lxssp/stxssp

2016-08-04 Thread Alan Modra
We can't use "o" constraint for lsxxp/stxssp since those insns have a DS-form offset field, ie. the bottom two bits of the offset must be 0. So use "wY" instead, but that leads to finding another problem.. mem_operand_gpr is only suitable for gpr loads/stores since it does not enforce multiple-of-