From a944a4ebfd42b6dd24e9a1ae71f56c29648795ff Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Mon, 20 Oct 1997 21:16:21 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f68a31fd135..fbed64afa57 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 20 14:15:02 1997 Jim Wilson + + * mips/mips.c (compute_frame_size): Not a leaf function if + profile_flag set. + Mon Oct 20 14:16:38 1997 Geoffrey KEATING * rs6000/t-ppccomm: Use -msdata=none for crtstuff. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 9cf2cc31507..28650fa6b13 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) { -- 2.30.2