From 6987f16742bd4fc6bb8118b9efde52fb9169b327 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Mon, 26 Feb 2024 07:30:05 +0100
Subject: [PATCH] i386: Fix up x86_function_profiler -masm=intel support
 [PR114094]

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.

2024-02-26  Jakub Jelinek  <jakub@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                  |  2 +-
 gcc/testsuite/gcc.target/i386/pr114094.c | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.target/i386/pr114094.c

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 4fdab34c91cd..86381b050948 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -22909,7 +22909,7 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED)
 	      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",
diff --git a/gcc/testsuite/gcc.target/i386/pr114094.c b/gcc/testsuite/gcc.target/i386/pr114094.c
new file mode 100644
index 000000000000..64fe50925923
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr114094.c
@@ -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)
+{
+}
-- 
GitLab