diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/calls.c | 6 | ||||
-rw-r--r-- | gcc/tm.texi | 8 |
3 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f5680f..77a7f79b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/calls.c b/gcc/calls.c index 95ff8b1..ab6c5bb 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 59b03ea..795abac 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 |