Hi! On Fri, Dec 20, 2019 at 06:47:28PM -0500, Michael Meissner wrote: > Then I realized that eventaully we will want to generate an X-FORM (register + > register) address, and it was just simpler to use the 'Q' constraint, and have > the register allocator put the address into a register.
Yep, good call. > * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): > Use 'Q' for memory constraints because we need to do an X-FORM > load with the variable index. > (vsx_extract_v4sf_var): Use 'Q' for memory constraints because we > need to do an X-FORM load with the variable index. This comment is a headscratcher -- but you shouldn't say "why" in changelogs at all, so that is an easy fix ;-) > (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator):Use 'Q' for (missing space) > memory constraints because we need to do an X-FORM load with the > variable index. > (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for memory > constraints because we need to do an X-FORM load with the variable > index. (and more) > -;; Variable V2DI/V2DF extract > +;; Variable V2DI/V2DF extract. Use 'Q' for the memory because we will > +;; ultimately have to convert the address into base + index. Maybe just don't write anything at all, since it is hard to explain in a few words? It is clear that "Q" is not a usual constraint, anyway :-) Okay for trunk like that. Thanks! Segher