+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
/* 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.
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;
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