diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1999-02-25 14:02:32 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1999-02-25 14:02:32 +0000 |
commit | 9ab70a9bd7c8ee4fcf2f074459525e981ed1ca2e (patch) | |
tree | 4b4ce259afa9f7f20acfba1fca1ef92f60b9c55f /gcc/function.c | |
parent | 345137c78a04d79092b6c8633dd11470f30e7267 (diff) | |
download | gcc-9ab70a9bd7c8ee4fcf2f074459525e981ed1ca2e.zip gcc-9ab70a9bd7c8ee4fcf2f074459525e981ed1ca2e.tar.gz gcc-9ab70a9bd7c8ee4fcf2f074459525e981ed1ca2e.tar.bz2 |
sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures in registers.
* sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures
in registers.
* expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
* function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
* calls.c (expand_call): Likewise.
* sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
stdarg arguments.
* sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
(FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed
arguments in registers.
(PRETEND_OUTGOING_VARARGS_NAMED): Define.
* va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
flavour varargs.
From-SVN: r25440
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/function.c b/gcc/function.c index 03d1e75..75b47bd 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4096,6 +4096,7 @@ assign_parms (fndecl, second_time) int did_conversion = 0; tree passed_type = DECL_ARG_TYPE (parm); tree nominal_type = TREE_TYPE (parm); + int pretend_named; /* Set LAST_NAMED if this is last named arg before some anonymous args. */ @@ -4217,6 +4218,7 @@ assign_parms (fndecl, second_time) In this case, we call FUNCTION_ARG with NAMED set to 1 instead of 0 as it was the previous time. */ + pretend_named = named_arg || PRETEND_OUTGOING_VARARGS_NAMED; locate_and_pad_parm (nominal_mode, passed_type, #ifdef STACK_PARMS_IN_REG_PARM_AREA 1, @@ -4224,12 +4226,11 @@ assign_parms (fndecl, second_time) #ifdef FUNCTION_INCOMING_ARG FUNCTION_INCOMING_ARG (args_so_far, promoted_mode, passed_type, - (named_arg - || varargs_setup)) != 0, + pretend_named) != 0, #else FUNCTION_ARG (args_so_far, promoted_mode, passed_type, - named_arg || varargs_setup) != 0, + pretend_named) != 0, #endif #endif fndecl, &stack_args_size, &stack_offset, &arg_size); |