calls.c (emit_library_call_value_1): Support INIT_CUMULATIVE_LIBCALL_ARGS.

* calls.c (emit_library_call_value_1): Support
INIT_CUMULATIVE_LIBCALL_ARGS.
* tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.

From-SVN: r38706
This commit is contained in:
Alexandre Oliva 2001-01-05 07:38:47 +00:00 committed by Alexandre Oliva
parent ffc5c6a984
commit 97fc4caf7d
3 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2001-01-05 Alexandre Oliva <aoliva@redhat.com>
* calls.c (emit_library_call_value_1): Support
INIT_CUMULATIVE_LIBCALL_ARGS.
* tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.
2001-01-04 Richard Henderson <rth@redhat.com>
* c-decl.c (finish_struct): Detect flexible array members

View File

@ -1,6 +1,6 @@
/* Convert function calls to rtl insns, for GNU C compiler.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998
1999, 2000 Free Software Foundation, Inc.
1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of GNU CC.
@ -3589,7 +3589,11 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
argvec = (struct arg *) alloca ((nargs + 1) * sizeof (struct arg));
memset ((char *) argvec, 0, (nargs + 1) * sizeof (struct arg));
#ifdef INIT_CUMULATIVE_LIBCALL_ARGS
INIT_CUMULATIVE_LIBCALL_ARGS (args_so_far, outmode, fun);
#else
INIT_CUMULATIVE_ARGS (args_so_far, NULL_TREE, fun, 0);
#endif
args_size.constant = 0;
args_size.var = 0;

View File

@ -3045,6 +3045,14 @@ an ordinary C function call is being processed. Thus, each time this
macro is called, either @var{libname} or @var{fntype} is nonzero, but
never both of them at once.
@findex INIT_CUMULATIVE_LIBCALL_ARGS
@item INIT_CUMULATIVE_LIBCALL_ARGS (@var{cum}, @var{mode}, @var{libname})
Like @code{INIT_CUMULATIVE_ARGS} but only used for outgoing libcalls,
it gets a @code{MODE} argument instead of @var{fntype}, that would be
@code{NULL}. @var{indirect} would always be zero, too. If this macro
is not defined, @code{INIT_CUMULATIVE_ARGS (cum, NULL_RTX, libname,
0)} is used instead.
@findex INIT_CUMULATIVE_INCOMING_ARGS
@item INIT_CUMULATIVE_INCOMING_ARGS (@var{cum}, @var{fntype}, @var{libname})
Like @code{INIT_CUMULATIVE_ARGS} but overrides it for the purposes of