(expand_call): Declare and set current_call_is_indirect.

(emit_library_call, emit_library_call_value): Likewise.

From-SVN: r4515
This commit is contained in:
Richard Stallman 1993-05-20 05:06:12 +00:00
parent 6ad216adda
commit efd65a8b46
1 changed files with 15 additions and 0 deletions

View File

@ -473,6 +473,8 @@ expand_call (exp, target, ignore)
CUMULATIVE_ARGS args_so_far;
/* Nonzero if a reg parm has been scanned. */
int reg_parm_seen;
/* Nonzero if this is an indirect function call. */
int current_call_is_indirect = 0;
/* Nonzero if we must avoid push-insns in the args for this call.
If stack space is allocated for register parameters, but not by the
@ -732,6 +734,15 @@ expand_call (exp, target, ignore)
if (fndecl && DECL_NAME (fndecl))
name = IDENTIFIER_POINTER (DECL_NAME (fndecl));
/* On some machines (such as the PA) indirect calls have a different
calling convention than normal calls. FUNCTION_ARG in the target
description can look at current_call_is_indirect to determine which
calling convention to use. */
current_call_is_indirect = (fndecl == 0);
#if 0
= TREE_CODE (TREE_OPERAND (exp, 0)) == NON_LVALUE_EXPR ? 1 : 0;
#endif
#if 0
/* Unless it's a call to a specific function that isn't alloca,
if it has one argument, we must assume it might be alloca. */
@ -2007,6 +2018,8 @@ emit_library_call (va_alist)
int old_inhibit_defer_pop = inhibit_defer_pop;
int no_queue = 0;
rtx use_insns;
/* library calls are never indirect calls. */
int current_call_is_indirect = 0;
va_start (p);
orgfun = fun = va_arg (p, rtx);
@ -2261,6 +2274,8 @@ emit_library_call_value (va_alist)
rtx use_insns;
rtx value;
rtx mem_value = 0;
/* library calls are never indirect calls. */
int current_call_is_indirect = 0;
va_start (p);
orgfun = fun = va_arg (p, rtx);