From a0a89ed0afd227148e44cade7c4cf2220d358461 Mon Sep 17 00:00:00 2001
From: Chris Demetriou <cgd@broadcom.com>
Date: Fri, 14 Mar 2003 15:53:48 +0000
Subject: [PATCH] mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2 words in
 new abis.

* config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
words in new abis.

From-SVN: r64364
---
 gcc/ChangeLog          |  5 +++++
 gcc/config/mips/mips.h | 15 +++++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3069374696f0..75a31316d160 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-14  Chris Demetriou  <cgd@broadcom.com>, Alexandre Oliva  <aoliva@redhat.com>
+
+	* config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
+	words in new abis.
+
 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
 	PR optimization/8396
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 2064ace96ebe..9c6fefd298fd 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -2921,12 +2921,15 @@ typedef struct mips_args {
   fprintf (FILE, "\t.set\tnoat\n");					\
   fprintf (FILE, "\tmove\t%s,%s\t\t# save current return address\n",	\
 	   reg_names[GP_REG_FIRST + 1], reg_names[GP_REG_FIRST + 31]);	\
-  fprintf (FILE,							\
-	   "\t%s\t%s,%s,%d\t\t# _mcount pops 2 words from  stack\n",	\
-	   TARGET_64BIT ? "dsubu" : "subu",				\
-	   reg_names[STACK_POINTER_REGNUM],				\
-	   reg_names[STACK_POINTER_REGNUM],				\
-	   Pmode == DImode ? 16 : 8);					\
+  if (mips_abi != ABI_N32 && mips_abi != ABI_64)			\
+    {									\
+      fprintf (FILE,							\
+	       "\t%s\t%s,%s,%d\t\t# _mcount pops 2 words from  stack\n", \
+	       TARGET_64BIT ? "dsubu" : "subu",				\
+	       reg_names[STACK_POINTER_REGNUM],				\
+	       reg_names[STACK_POINTER_REGNUM],				\
+	       Pmode == DImode ? 16 : 8);				\
+    }									\
   fprintf (FILE, "\tjal\t_mcount\n");                                   \
   fprintf (FILE, "\t.set\tat\n");					\
 }
-- 
GitLab