[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