diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2001-01-05 07:38:47 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2001-01-05 07:38:47 +0000 |
commit | 97fc4caf7d18cd4aaa2a31a55c68b4a4ec7deb36 (patch) | |
tree | fc67cb4461acbc1d54a42438d9eee1c7e9e9a151 /gcc | |
parent | ffc5c6a98441d8e1abe6cdc0d2a93591e21191d7 (diff) | |
download | gcc-97fc4caf7d18cd4aaa2a31a55c68b4a4ec7deb36.zip gcc-97fc4caf7d18cd4aaa2a31a55c68b4a4ec7deb36.tar.gz gcc-97fc4caf7d18cd4aaa2a31a55c68b4a4ec7deb36.tar.bz2 |
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
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 |