[patch] PR 31937 libffi soft-float support for linux-ppc-32
Andreas Tobler
toa@pop.agri.ch
Fri Nov 30 21:36:00 GMT 2007
Hello all,
hopefully the last iteration.
This patch was tested by Janis Johnson on ppc64 to make sure I did not
break anything there. Tested here locally on native 32-bit ppc with and
w/o soft float support and last on a ppc-405 cross environment.
Libffi ok, and libjava as well.
Pat Haugen guided me through the branch prediction forest.
Thanks to Janis and Pat!
Is this patch ok for trunk?
Andreas
2007-11-30 Andreas Tobler <a.tobler@schweiz.org>
PR libffi/31937
* src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
* src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
set the NUM_FPR_ARG_REGISTERS according to.
Add support for potential soft-float support under hard-float
architecture.
(ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
to the FFI_LINUX_SOFT_FLOAT ABI.
(ffi_prep_cif_machdep): Likewise.
(ffi_closure_helper_SYSV): Likewise.
* src/powerpc/ppc_closure.S: Make sure not to store float/double
on archs where __NO_FPRS__ is true.
Add FFI_TYPE_UINT128 support.
* src/powerpc/sysv.S: Add support for soft-float long-double-128.
Adjust copyright notice.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sfld-20071130-1.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20071130/dbe017bf/attachment.ksh>
More information about the Gcc-patches
mailing list