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 > >
