On Mon, Sep 22, 2014 at 5:35 PM, Michael Meissner <meiss...@linux.vnet.ibm.com> wrote: > I was working to support enhancing addressing modes in the the compiler that > is > indended to better support load fusion in power8, and to finally allow > DFmode/SFmode scalar values in the traditional altivec registers. I noticed > that the floating point moves were still using constraints that could target > registers that a mode isn't allowed to occupy. This has been an issue with > LRA > in the past. In addition, I noticed the boolean ops for TImode in VSX > register > also used the general wa constraint instead of the wt constraint. > > I have done a bootstrap with these changes and had no regressions. Are the > patches ok to install? > > 2014-09-22 Michael Meissner <meiss...@linux.vnet.ibm.com> > > * config/rs6000/rs6000.md (f32_vsx): New mode attributes to > refine the constraints used on 32/64-bit floating point moves. > (f32_av): Likewise. > (f64_vsx): Likewise. > (f64_dm): Likewise. > (f64_av): Likewise. > (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa. > (BOOL_REGS_OP1): Likewise. > (BOOL_REGS_OP2): Likewise. > (BOOL_REGS_UNARY): Likewise. > (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for > 32/64-bit floating point moves. Do not use wa, instead use ww/ws > for moves involving VSX registers. Do not use constraints that > target VSX registers for decimal types. > (mov<mode>_hardfloat32, DFmode/DDmode): Likewise. > (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
Okay. Thanks, David