rs6000.c (rs6000_mixed_function_arg): Rewrite.
authorAlan Modra <amodra@bigpond.net.au>
Thu, 1 Jul 2004 03:17:31 +0000 (03:17 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Thu, 1 Jul 2004 03:17:31 +0000 (12:47 +0930)
commitec6376abd7f23e0993138ed92c56552eea9cd5a2
tree5a669d81deb979bf17d21701d6b077a314514415
parentcde0e59bf23f3b78e15ae96ceb04a32ad60a89e8
rs6000.c (rs6000_mixed_function_arg): Rewrite.

* config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite.
(function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in
calculating gpr size for altivec.  Simplify and correct
rs6000_mixed_function_arg calls.  Call rs6000_mixed_function_arg
for ABI_V4 gpr case too.  Fix off-by-one error in long double
reg test.  Generate the correct PARALLEL to handle long double
for ABI_AIX 32-bit.  Use this for -m32 -mpowerpc64 fpr case too.
(function_arg_partial_nregs): Align before calculating regs left.
Don't return info on partial fprs when we need info on gprs.
Correct long double fpr off-by-one error.

From-SVN: r83951
gcc/ChangeLog
gcc/config/rs6000/rs6000.c