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] Fix x86 attrs on *x86_mov<mode>cc_0_m1*


On Tue, Apr 17, 2018 at 6:58 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> The search for patterns with n_operands 2 and TYPE_ALU revealed also these
> 3 patterns, which also have just 2 operands, yet use "alu".
>
> I think "alu1" is the right type for these, but given that they had explicit
> "memory" and "imm_disp" attributes, it probably isn't that big deal.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for stage1?
> Or is this something we want in GCC8 too?
>
> 2018-04-17  Jakub Jelinek  <jakub@redhat.com>
>
>         * config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather
>         than "alu", remove explicit "memory" and "imm_disp" attributes.
>         (*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise.

OK for stage1, to avoid stepping on the mine this late in the development.

Thanks,
Uros.

> --- gcc/config/i386/i386.md.jj  2018-04-17 13:22:08.134050850 +0200
> +++ gcc/config/i386/i386.md     2018-04-17 15:03:32.048628607 +0200
> @@ -17898,14 +17898,10 @@ (define_insn "*x86_mov<mode>cc_0_m1"
>     (clobber (reg:CC FLAGS_REG))]
>    ""
>    "sbb{<imodesuffix>}\t%0, %0"
> -  ; Since we don't have the proper number of operands for an alu insn,
> -  ; fill in all the blanks.
> -  [(set_attr "type" "alu")
> +  [(set_attr "type" "alu1")
>     (set_attr "modrm_class" "op0")
>     (set_attr "use_carry" "1")
>     (set_attr "pent_pair" "pu")
> -   (set_attr "memory" "none")
> -   (set_attr "imm_disp" "false")
>     (set_attr "mode" "<MODE>")
>     (set_attr "length_immediate" "0")])
>
> @@ -17918,12 +17914,10 @@ (define_insn "*x86_mov<mode>cc_0_m1_se"
>     (clobber (reg:CC FLAGS_REG))]
>    ""
>    "sbb{<imodesuffix>}\t%0, %0"
> -  [(set_attr "type" "alu")
> +  [(set_attr "type" "alu1")
>     (set_attr "modrm_class" "op0")
>     (set_attr "use_carry" "1")
>     (set_attr "pent_pair" "pu")
> -   (set_attr "memory" "none")
> -   (set_attr "imm_disp" "false")
>     (set_attr "mode" "<MODE>")
>     (set_attr "length_immediate" "0")])
>
> @@ -17934,12 +17928,10 @@ (define_insn "*x86_mov<mode>cc_0_m1_neg"
>     (clobber (reg:CC FLAGS_REG))]
>    ""
>    "sbb{<imodesuffix>}\t%0, %0"
> -  [(set_attr "type" "alu")
> +  [(set_attr "type" "alu1")
>     (set_attr "modrm_class" "op0")
>     (set_attr "use_carry" "1")
>     (set_attr "pent_pair" "pu")
> -   (set_attr "memory" "none")
> -   (set_attr "imm_disp" "false")
>     (set_attr "mode" "<MODE>")
>     (set_attr "length_immediate" "0")])
>
>
>         Jakub


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