This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] AIX libffi alignment fix


This patch fixes two problems.

One, aix.S, darwin.S and "Darwin" ffi_prep_args cooperate to use the
stack frame home argument area for the GPR arguments to be loaded.
However, this area already contains the arguments to ffi_prep_args
itself, so all of the variables referenced through the function
arguments should be cached in local variables before the first
outgoing argument is loaded.

Second, libffi needs to model AIX structure alignment.
darwin_adjust_aggregate_sizes() already performs most of this, but was
not quite right for AIX.

The patch also applies a few more GNU coding style fixes.


        * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
        local variables.
        (aix_adjust_aggregate_sizes): New function.
        (ffi_prep_cif_machdep): Call it.


Bootstrapped on powerpc-ibm-aix5.3.0.0

David

Attachment: aixffi.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]