This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 6/9] rs6000: Clean up sub<mode>3


On Sat, Sep 20, 2014 at 2:23 PM, Segher Boessenkool
<segher@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  <segher@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]