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> 2001-01-04 Richard Henderson <rth@redhat.com>
* c-decl.c (finish_struct): Detect flexible array members * 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. /* Convert function calls to rtl insns, for GNU C compiler.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998 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. 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)); argvec = (struct arg *) alloca ((nargs + 1) * sizeof (struct arg));
memset ((char *) argvec, 0, (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); INIT_CUMULATIVE_ARGS (args_so_far, NULL_TREE, fun, 0);
#endif
args_size.constant = 0; args_size.constant = 0;
args_size.var = 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 macro is called, either @var{libname} or @var{fntype} is nonzero, but
never both of them at once. 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 @findex INIT_CUMULATIVE_INCOMING_ARGS
@item INIT_CUMULATIVE_INCOMING_ARGS (@var{cum}, @var{fntype}, @var{libname}) @item INIT_CUMULATIVE_INCOMING_ARGS (@var{cum}, @var{fntype}, @var{libname})
Like @code{INIT_CUMULATIVE_ARGS} but overrides it for the purposes of Like @code{INIT_CUMULATIVE_ARGS} but overrides it for the purposes of