V pon., 18. maj 2026 17:43 je oseba Andi Kleen <[email protected]>
napisala:

> From: Andi Kleen <[email protected]>
>
> The earlier 64bit ptwrite as 32bit fix broke Intel syntax output. Handle
> that too by using an alternative. In Intel syntax the instruction
> data type is defined by the operands.
>
> I'll commit it as obvious in a day or so for 15/16/trunk, unless there
> are objections.
>
>         PR target/125351
>
> gcc/ChangeLog:
>
>         * config/i386/i386.md: Use alternative to handle masm ptwrite
>         syntax.
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.target/i386/pr125351.c: New test.
> ---
>  gcc/config/i386/i386.md                  | 2 +-
>  gcc/testsuite/gcc.target/i386/pr125351.c | 3 +++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>  create mode 100644 gcc/testsuite/gcc.target/i386/pr125351.c
>
> diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
> index fa84da26aa8..ad0b7068961 100644
> --- a/gcc/config/i386/i386.md
> +++ b/gcc/config/i386/i386.md
> @@ -30303,7 +30303,7 @@ (define_insn "ptwrite<mode>"
>    [(unspec_volatile [(match_operand:SWI48 0 "nonimmediate_operand" "rm")]
>                     UNSPECV_PTWRITE)]
>    "TARGET_PTWRITE"
> -  "ptwrite<imodesuffix>\t%0"
> +  "{ptwrite<imodesuffix>|ptwrite}\t%0"
>

Please put ptwrite outside curly braces and leave only suffix inside. See
many examples in i386.md.

Uros.

   [(set_attr "type" "other")
>     (set_attr "prefix_0f" "1")
>     (set_attr "prefix_rep" "1")])
> diff --git a/gcc/testsuite/gcc.target/i386/pr125351.c
> b/gcc/testsuite/gcc.target/i386/pr125351.c
> new file mode 100644
> index 00000000000..f21adcae44a
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/i386/pr125351.c
> @@ -0,0 +1,3 @@
> +/* { dg-do compile } */
> +/* { dg-options "-mptwrite -masm=intel" } */
> +void foo() { __builtin_ia32_ptwrite32(0); }
> --
> 2.54.0
>
>

Reply via email to