From: Bernd Schmidt Date: Fri, 6 Apr 2001 13:41:39 +0000 (+0000) Subject: Fix argument passing on ppc X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53635efcf437296c9bdab1a3084bcfd91c80f324;p=thirdparty%2Fgcc.git Fix argument passing on ppc From-SVN: r41152 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 94272ff9502a..b2dbfbe63eb8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2001-04-06 Bernd Schmidt + 2000-10-17 Franz Sirl + * function.c (locate_and_pad_parm): Don't align stack unconditionally. + Thu Oct 28 10:20:02 1999 Geoffrey Keating * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG of the function return register into a plain REG until diff --git a/gcc/function.c b/gcc/function.c index 5a7a2e2ed32e..f715eaad9f88 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -5334,7 +5334,18 @@ locate_and_pad_parm (passed_mode, type, in_regs, fndecl, - offset_ptr->constant); } #else /* !ARGS_GROW_DOWNWARD */ - pad_to_arg_alignment (initial_offset_ptr, boundary); + if (!in_regs +#ifdef REG_PARM_STACK_SPACE + || REG_PARM_STACK_SPACE (fndecl) > 0 +#else + /* For the gcc-2_95-branch we want to make sure not to break something + on platforms which pass argument in registers but don't define + REG_PARM_STACK_SPACE. So we force the original behaviour here. */ + || 1 +#endif + ) + pad_to_arg_alignment (initial_offset_ptr, boundary); + *offset_ptr = *initial_offset_ptr; #ifdef PUSH_ROUNDING