From: Bernd Schmidt Date: Fri, 22 Dec 2000 14:55:10 +0000 (+0000) Subject: Fix a vax failure X-Git-Tag: prereleases/gcc-2.95.3-test1~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e730fb8dbfc6d44894bee940d2ef7b61d8aa0f7;p=thirdparty%2Fgcc.git Fix a vax failure From-SVN: r38462 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f54aa89f70e3..d19ab0a9d367 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2000-12-22 Bernd Schmidt + * calls.c (emit_call_1): Fall back to call_pop/call_value_pop if no + non-popping calls are available. + * flow.c (propagate_block): Use flow_delete_insn instead of NOTEifying a dead ADDR_VEC. diff --git a/gcc/calls.c b/gcc/calls.c index d0153a3d1249..36a5d154138b 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -405,7 +405,15 @@ 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 (HAVE_call_pop && HAVE_call_value_pop +#if defined (HAVE_call) && defined (HAVE_call_value) + && (n_popped > 0 || ! HAVE_call || ! HAVE_call_value) +#endif + ) { rtx n_pop = GEN_INT (n_popped); rtx pat;