Commit 4ac8340c by Kazu Hirata Committed by Kazu Hirata

calls.c (expand_call): Update comments.

	* calls.c (expand_call): Update comments.
	* system.h (PRETEND_OUTGOING_VARARGS_NAMED): Poison.
	* targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED.

From-SVN: r74770
parent b0656d8b
2003-12-17 Kazu Hirata <kazu@cs.umass.edu>
* calls.c (expand_call): Update comments.
* system.h (PRETEND_OUTGOING_VARARGS_NAMED): Poison.
* targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED.
2003-12-17 James E Wilson <wilson@specifixinc.com>
Roger Sayle <roger@eyesopen.com>
......
......@@ -2413,15 +2413,16 @@ expand_call (tree exp, rtx target, int ignore)
(If no anonymous args follow, the result of list_length is actually
one too large. This is harmless.)
If PRETEND_OUTGOING_VARARGS_NAMED is set and STRICT_ARGUMENT_NAMING is
zero, this machine will be able to place unnamed args that were
passed in registers into the stack. So treat all args as named.
This allows the insns emitting for a specific argument list to be
independent of the function declaration.
If PRETEND_OUTGOING_VARARGS_NAMED is not set, we do not have any
reliable way to pass unnamed args in registers, so we must force
them into memory. */
If targetm.calls.pretend_outgoing_varargs_named() returns
nonzero, and STRICT_ARGUMENT_NAMING is zero, this machine will be
able to place unnamed args that were passed in registers into the
stack. So treat all args as named. This allows the insns
emitting for a specific argument list to be independent of the
function declaration.
If targetm.calls.pretend_outgoing_varargs_named() returns zero,
we do not have any reliable way to pass unnamed args in
registers, so we must force them into memory. */
if ((targetm.calls.strict_argument_naming (&args_so_far)
|| ! targetm.calls.pretend_outgoing_varargs_named (&args_so_far))
......
......@@ -594,7 +594,8 @@ typedef char _Bool;
ASM_SIMPLIFY_DWARF_ADDR INIT_TARGET_OPTABS INIT_SUBTARGET_OPTABS \
INIT_GOFAST_OPTABS MULSI3_LIBCALL MULDI3_LIBCALL DIVSI3_LIBCALL \
DIVDI3_LIBCALL UDIVSI3_LIBCALL UDIVDI3_LIBCALL MODSI3_LIBCALL \
MODDI3_LIBCALL UMODSI3_LIBCALL UMODDI3_LIBCALL BUILD_VA_LIST_TYPE
MODDI3_LIBCALL UMODSI3_LIBCALL UMODDI3_LIBCALL BUILD_VA_LIST_TYPE \
PRETEND_OUTGOING_VARARGS_NAMED
/* Other obsolete target macros, or macros that used to be in target
headers and were not used, and may be obsolete or may never have
......
......@@ -185,15 +185,11 @@ default_strict_argument_naming (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
bool
default_pretend_outgoing_varargs_named(CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
{
#ifdef PRETEND_OUTGOING_VARARGS_NAMED
return PRETEND_OUTGOING_VARARGS_NAMED;
#else
#ifdef SETUP_INCOMING_VARARGS
return 1;
#else
return (targetm.calls.setup_incoming_varargs != default_setup_incoming_varargs);
#endif
#endif
}
/* Generic hook that takes a CUMULATIVE_ARGS pointer and returns true. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment