Commit 9aa5c1b2 by Jan Hubicka Committed by Jan Hubicka

i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI


	* i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
	* i386.c (init_cumulative_args): Disallow calls of MSABI functions when
	accumulate outgoing args is off.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>

From-SVN: r143118
parent f7556aae
2009-01-06 Jan Hubicka <jh@suse.cz>
Kai Tietz <kai.tietz@onevision.com>
* i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
* i386.c (init_cumulative_args): Disallow calls of MSABI functions when
accumulate outgoing args is off.
2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/38742
......
......@@ -4639,6 +4639,9 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, /* Argument info to initialize */
else
cum->call_abi = ix86_function_type_abi (fntype);
/* Set up the number of registers to use for passing arguments. */
if (cum->call_abi == MS_ABI && !ACCUMULATE_OUTGOING_ARGS)
sorry ("ms_abi attribute require -maccumulate-outgoing-args or subtarget optimization implying it");
cum->nregs = ix86_regparm;
if (TARGET_64BIT)
{
......
......@@ -1509,9 +1509,13 @@ enum reg_class
be computed and placed into the variable
`crtl->outgoing_args_size'. No space will be pushed onto the
stack for each call; instead, the function prologue should increase the stack
frame size by this amount. */
frame size by this amount.
#define ACCUMULATE_OUTGOING_ARGS TARGET_ACCUMULATE_OUTGOING_ARGS
MS ABI seem to require 16 byte alignment everywhere except for function
prologue and apilogue. This is not possible without
ACCUMULATE_OUTGOING_ARGS. */
#define ACCUMULATE_OUTGOING_ARGS (TARGET_ACCUMULATE_OUTGOING_ARGS || ix86_cfun_abi () == MS_ABI)
/* If defined, a C expression whose value is nonzero when we want to use PUSH
instructions to pass outgoing arguments. */
......
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