On Sat, Sep 20, 2014 at 2:23 PM, Segher Boessenkool <seg...@kernel.crashing.org> wrote: > The instruction patterns are now called subf, with the corresponding > operand order, to be less confusing. I tried using the "sub" extended > mnemonics instead but that only made things way, way worse. > > Do not allow an integer as second operand of sub<mode>3; expand doesn't > use it. Only strlensi used it, fix that. > > For an integer first operand, now use a separate insn sub<mode>3_imm, > which clobbers the carry (it is subfic after all). ctz, ffz, plus_ltu, > plus_gtu need changes for that (the latter two will be removed later). > > > 2014-09-20 Segher Boessenkool <seg...@kernel.crashing.org> > > * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a > constant, use addsi3 directly. > (three anonymous define_insn, two define_split): Delete. > (sub<mode>3): Move. Do not allow constant second operand. > Generate different insn for constant first operand. > (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New. > (subf<mode>3_imm): New. > (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required. > (*plus_ltu<mode>): Only handle registers. > (*plus_ltu<mode>_1): New. Handle integer third operand. > (*plus_gtu<mode>): Only handle registers. > (*plus_gtu<mode>_1): New. Handle integer third operand.
Okay. Thanks, David