aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1997-10-20 21:16:21 +0000
committerJim Wilson <wilson@gcc.gnu.org>1997-10-20 14:16:21 -0700
commita944a4ebfd42b6dd24e9a1ae71f56c29648795ff (patch)
tree2677473db85ed91445b214983b3e41f97a8c07d3 /gcc
parentf0a9fa6c6a4f94ca5448862898451a7e0cf62998 (diff)
downloadgcc-a944a4ebfd42b6dd24e9a1ae71f56c29648795ff.zip
gcc-a944a4ebfd42b6dd24e9a1ae71f56c29648795ff.tar.gz
gcc-a944a4ebfd42b6dd24e9a1ae71f56c29648795ff.tar.bz2
Fix O32 -p bug reported by Ralf Baechle.
* mips/mips.c (compute_frame_size): Not a leaf function if profile_flag set. From-SVN: r16110
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f68a31f..fbed64a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Oct 20 14:15:02 1997 Jim Wilson <wilson@cygnus.com>
+
+ * mips/mips.c (compute_frame_size): Not a leaf function if
+ profile_flag set.
+
Mon Oct 20 14:16:38 1997 Geoffrey KEATING <geoffk@ozemail.com.au>
* rs6000/t-ppccomm: Use -msdata=none for crtstuff.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 9cf2cc3..28650fa 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -4855,8 +4855,10 @@ compute_frame_size (size)
/* The gp reg is caller saved in the 32 bit ABI, so there is no need
for leaf routines (total_size == extra_size) to save the gp reg.
The gp reg is callee saved in the 64 bit ABI, so all routines must
- save the gp reg. */
- if (total_size == extra_size && (mips_abi == ABI_32 || mips_abi == ABI_EABI))
+ save the gp reg. This is not a leaf routine if -p, because of the
+ call to mcount. */
+ if (total_size == extra_size && (mips_abi == ABI_32 || mips_abi == ABI_EABI)
+ && ! profile_flag)
total_size = extra_size = 0;
else if (TARGET_ABICALLS)
{