From 8bcafee35814af6bd664d44fa8246dd7db62d0b6 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Wed, 25 Aug 1999 07:38:23 +0000 Subject: [PATCH] calls.c (emit_call_1): Use call_pop/call_value_pop for all values of n_popped when... * calls.c (emit_call_1): Use call_pop/call_value_pop for all values of n_popped when call/call_value are not defined. From-SVN: r28846 --- gcc/ChangeLog | 5 +++++ gcc/calls.c | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9bcbab9e57a..825b632d1aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Aug 25 01:36:11 1999 John David Anglin + + * calls.c (emit_call_1): Use call_pop/call_value_pop for all values + of n_popped when call/call_value are not defined. + Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com) * tm.texi: GNU CC -> GCC conversion. diff --git a/gcc/calls.c b/gcc/calls.c index b646be8ba82..3276fd9efa8 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -405,7 +405,16 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size, #ifndef ACCUMULATE_OUTGOING_ARGS #if defined (HAVE_call_pop) && defined (HAVE_call_value_pop) - if (HAVE_call_pop && HAVE_call_value_pop && n_popped > 0) +/* If the target has "call" or "call_value" insns, then prefer them + if no arguments are actually popped. If the target does not have + "call" or "call_value" insns, then we must use the popping versions + even if the call has no arguments to pop. */ +#if defined (HAVE_call) && defined (HAVE_call_value) + if (HAVE_call && HAVE_call_value && HAVE_call_pop && HAVE_call_value_pop + && n_popped > 0) +#else + if (HAVE_call_pop && HAVE_call_value_pop) +#endif { rtx n_pop = GEN_INT (n_popped); rtx pat; -- 2.30.2