From 97fc4caf7d18cd4aaa2a31a55c68b4a4ec7deb36 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Fri, 5 Jan 2001 07:38:47 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/calls.c | 6 +++++- gcc/tm.texi | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f5680f0b3e..77a7f79b7c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-01-05 Alexandre Oliva + + * 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 * c-decl.c (finish_struct): Detect flexible array members diff --git a/gcc/calls.c b/gcc/calls.c index 95ff8b1e9df..ab6c5bb40e8 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -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; diff --git a/gcc/tm.texi b/gcc/tm.texi index 59b03eacb5b..795abac65a7 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -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 -- 2.30.2