rs6000.c (function_arg_boundary): Align for ABI_V4 when size is 8 bytes.
authorAlan Modra <amodra@gcc.gnu.org>
Sun, 9 May 2004 23:48:37 +0000 (09:18 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Sun, 9 May 2004 23:48:37 +0000 (09:18 +0930)
commit4ed785458b8922a6ff69a85c9f523745864aaefb
tree097d70ef518ae1c7ab32d73d51d4580f211acb84
parentf350ff00330ac7e7d8bf771149574d2d38a69c55
rs6000.c (function_arg_boundary): Align for ABI_V4 when size is 8 bytes.

* config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
when size is 8 bytes.
(function_arg_advance): Account for stack space used by AltiVec
args when -mabi=altivec.  Simplify alignment calculations.  For
ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
(function_arg): Similarly.
(function_arg_pass_by_reference): True for ABI_V4 AltiVec when
not AltiVec ABI.
(rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
Correct alignment, and align before testing reg count.  Remove
TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
(rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
TARGET_FPRS here..
(rs6000_function_value): .. not here before call.

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