* calls.c (expand_call): Slightly reorganize code.

From-SVN: r25655
This commit is contained in:
Jeffrey A Law 1999-03-09 15:49:12 +00:00 committed by Jeff Law
parent 89b21b680c
commit 39842893a1
2 changed files with 13 additions and 12 deletions

View File

@ -15,6 +15,8 @@ Tue Mar 9 09:33:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
Tue Mar 9 02:08:17 1999 Jeffrey A Law (law@cygnus.com)
* calls.c (expand_call): Slightly reorganize code.
* calls.c (compute_argument_addresses): New function.
(rtx_for_function_call): New function.
(expand_call): Use them.

View File

@ -1754,11 +1754,6 @@ expand_call (exp, target, ignore)
mark_addressable (fndecl);
}
/* When calling a const function, we must pop the stack args right away,
so that the pop is deleted or moved with the call. */
if (is_const)
NO_DEFER_POP;
function_call_count++;
if (fndecl && DECL_NAME (fndecl))
@ -1772,6 +1767,17 @@ expand_call (exp, target, ignore)
if (may_be_alloca)
current_function_calls_alloca = 1;
/* Operand 0 is a pointer-to-function; get the type of the function. */
funtype = TREE_TYPE (TREE_OPERAND (exp, 0));
if (! POINTER_TYPE_P (funtype))
abort ();
funtype = TREE_TYPE (funtype);
/* When calling a const function, we must pop the stack args right away,
so that the pop is deleted or moved with the call. */
if (is_const)
NO_DEFER_POP;
/* Don't let pending stack adjusts add up to too much.
Also, do all pending adjustments now
if there is any chance this might be a call to alloca. */
@ -1780,13 +1786,6 @@ expand_call (exp, target, ignore)
|| (pending_stack_adjust > 0 && may_be_alloca))
do_pending_stack_adjust ();
/* Operand 0 is a pointer-to-function; get the type of the function. */
funtype = TREE_TYPE (TREE_OPERAND (exp, 0));
if (! POINTER_TYPE_P (funtype))
abort ();
funtype = TREE_TYPE (funtype);
/* Push the temporary stack slot level so that we can free any temporaries
we make. */
push_temp_slots ();