From: rsandifo Date: Mon, 10 Sep 2001 10:10:16 +0000 (+0000) Subject: * calls.c (store_one_arg): Make sure that the entire argument is X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=a41230c7307962aa218dc74015386da24a348cb7;p=pf3gnuchains%2Fgcc-fork.git * calls.c (store_one_arg): Make sure that the entire argument is pushed if STACK_PARMS_IN_REG_PARM_AREA is defined. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45501 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bcf8e62ab53..df5139d0758 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-09-10 Roman Lechtchinsky + + * calls.c (store_one_arg): Make sure that the entire argument is + pushed if STACK_PARMS_IN_REG_PARM_AREA is defined. + 2001-09-09 Richard Henderson * emit-rtl.c (adjust_address): Fix mode for LO_SUM. diff --git a/gcc/calls.c b/gcc/calls.c index 8d6d0849148..dc915ad1ff1 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -4567,7 +4567,11 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space) /* If parm is passed both in stack and in register and offset is greater than reg_parm_stack_space, split the offset. */ +#ifndef STACK_PARMS_IN_REG_PARM_AREA if (arg->reg && arg->pass_on_stack) +#else + if (1) +#endif { if (arg->offset.constant < reg_parm_stack_space && arg->offset.var) error ("variable offset is passed paritially in stack and in reg"); @@ -4583,8 +4587,6 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space) excess, argblock, ARGS_SIZE_RTX (arg->offset), reg_parm_stack_space, ARGS_SIZE_RTX (arg->alignment_pad)); - - size_rtx = GEN_INT (INTVAL(size_rtx) - reg_parm_stack_space); } }