r112340 - in /trunk/libffi: ChangeLog src/power...

amodra@gcc.gnu.org amodra@gcc.gnu.org
Thu Mar 23 23:15:00 GMT 2006


Author: amodra
Date: Thu Mar 23 23:15:46 2006
New Revision: 112340

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112340
Log:
	* src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
	for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
	FFI_TYPE_LONGDOUBLE.
	(ffi_prep_args64): Assert using IBM extended double.
	(ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
	Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
	(ffi_call): Handle FFI_LINUX.
	(ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
	gpr3 return pointer as for struct return.  Handle FFI_LINUX
	FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
	unnecessarily.
	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
	for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
	Don't use r6 as pointer to results, instead use sp offset.  Don't
	make a special call to load lr with case table address, instead
	use offset from previous call.
	* src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
	* src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
	return.


Modified:
    trunk/libffi/ChangeLog
    trunk/libffi/src/powerpc/ffi.c
    trunk/libffi/src/powerpc/ffitarget.h
    trunk/libffi/src/powerpc/linux64.S
    trunk/libffi/src/powerpc/ppc_closure.S
    trunk/libffi/src/powerpc/sysv.S



More information about the Gcc-cvs mailing list