[RS6000] complex long double ABI_V4 fix
authorAlan Modra <amodra@gmail.com>
Wed, 11 May 2016 02:09:38 +0000 (11:39 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Wed, 11 May 2016 02:09:38 +0000 (11:39 +0930)
commitc8acbe37aef0432ba101e395350bbb425bc9add9
tree9758b76b632f662ab22c46cc9907671a2d081424
parent36bc016315eb36f55e4de48c427b5c40304d73ec
[RS6000] complex long double ABI_V4 fix

Revision 235794 regressed compat/scalar-by-value-6 for powerpc-linux
-m32 due to accidentally changing the ABI.  By another historical
accident, complex long double is stupidly passed in gprs for -m32.

* config/rs6000/rs6000.c (is_complex_IBM_long_double,
abi_v4_pass_in_fpr): New functions.
(rs6000_function_arg_boundary): Exclude complex IBM long double
from 64-bit alignment when ABI_V4.
(rs6000_function_arg, rs6000_function_arg_advance_1,
rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.

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