]> git.ipfire.org Git - thirdparty/gcc.git/commit - libffi/ChangeLog
[RS6000] Correct powerpc sysv stack argument accounting
authorAlan Modra <amodra@gmail.com>
Wed, 30 Sep 2015 21:29:00 +0000 (06:59 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Wed, 30 Sep 2015 21:29:00 +0000 (06:59 +0930)
commitc57173b69a617edf59ed2e73edda183e7aebf05e
treeb1481d30acc84a559f73b046251009c89d487ef3
parentd64f8dd280e6d2d70aec5b133e913b1af51832d9
[RS6000] Correct powerpc sysv stack argument accounting

ppc32 starts using the stack for integer arg passing when we run out
of integer arg passing registers.  Similarly, we start using the stack
for floating point args when we run out of floating point registers.
The decision on where an integer arg goes does not depend on number of
floating point args, nor does the decision on where a floating point
arg goes depend on number of integer args.  Alignment of stack args
also simply depends on number of stack args.

This patch untangles the horrible mess we had, with intarg_count being
wrongly used to count both integer args and stack words.

* src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
gprs, and stack words separately.
(ffi_prep_args_SYSV): Similarly.

From-SVN: r228307
libffi/ChangeLog
libffi/src/powerpc/ffi_sysv.c