Hi! In my r14-8214 changes I apparently forgot one \n at the end of an instruction. The corresponding AT&T line looks like: "1:\tcall\t*%s@GOTPCREL(%%rip)\n" but the Intel variant was "1:\tcall\t[QWORD PTR %s@GOTPCREL[rip]]"
Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk as obvious. 2024-02-26 Jakub Jelinek <ja...@redhat.com> PR target/114094 * config/i386/i386.cc (x86_function_profiler): Add missing new-line to printed instruction. * gcc.target/i386/pr114094.c: New test. --- gcc/config/i386/i386.cc.jj 2024-02-22 10:10:18.675032283 +0100 +++ gcc/config/i386/i386.cc 2024-02-25 13:12:12.403323842 +0100 @@ -22909,7 +22909,7 @@ x86_function_profiler (FILE *file, int l if (!ix86_direct_extern_access) { if (ASSEMBLER_DIALECT == ASM_INTEL) - fprintf (file, "1:\tcall\t[QWORD PTR %s@GOTPCREL[rip]]", + fprintf (file, "1:\tcall\t[QWORD PTR %s@GOTPCREL[rip]]\n", mcount_name); else fprintf (file, "1:\tcall\t*%s@GOTPCREL(%%rip)\n", --- gcc/testsuite/gcc.target/i386/pr114094.c.jj 2024-02-25 22:36:24.673320296 +0100 +++ gcc/testsuite/gcc.target/i386/pr114094.c 2024-02-25 22:17:18.254178208 +0100 @@ -0,0 +1,10 @@ +/* PR target/114094 */ +/* { dg-do assemble { target *-*-linux* } } */ +/* { dg-require-effective-target masm_intel } */ +/* { dg-require-effective-target pie } */ +/* { dg-options "-fpie -fprofile -mno-direct-extern-access -masm=intel" } */ + +void +foo (void) +{ +} Jakub