i386.md (add<mode>3_carry): Change insn pattern to expander.
authorUros Bizjak <uros@gcc.gnu.org>
Mon, 23 Nov 2009 23:18:02 +0000 (00:18 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 23 Nov 2009 23:18:02 +0000 (00:18 +0100)
commitc84f404273fd39a416ccd133351c2ebc1e149263
tree7910538784945948c823d33036662da20ca864ff
parentecd883d4830ab5300ab1f18d76627990184519df
i386.md (add<mode>3_carry): Change insn pattern to expander.

        * config/i386/i386.md (add<mode>3_carry): Change insn pattern
        to expander.
        (sub<mode>3_carry): Ditto.
        (x86_mov<mode>cc_0_m1): Ditto.
        (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
        for ix86_carry_flag_operator operator predicate.
        (*sub<mode>3_carry): Ditto.
        (*x86_mov<mode>cc_0_m1): Ditto.
        (*addsi3_carry_zext): Use VOIDmode match_operator for
        ix86_carry_flag_operator operator predicate.
        (*subsi3_carry_zext): Ditto.
        (*x86_mov<mode>cc_0_m1_s): Ditto.
        (*x86_mov<mode>cc_0_m1_neg): Ditto.
        * config/i386/predocates.md (ix86_carry_flag_operator): Do not
        check operator sub-expressions for FLAGS_REG and const0_rtx.
        * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
        (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
        (ix86_expand_int_addcc): Update calls to
        gen_{add,sub}{qi,hi,si,di}3_carry.  Do not set mode of compare_op.
        (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
        Do not set mode of compare operation.

From-SVN: r154480
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/predicates.md