2010-04-29  Release Manager

	* GCC 4.4.4 released.

2010-02-15  Matthias Klose  <doko@ubuntu.com>

	* src/arm/sysv.S (__ARM_ARCH__): Define for processor
	__ARM_ARCH_7EM__.

2010-01-21  Release Manager

	* GCC 4.4.3 released.

2009-10-15  Release Manager

	* GCC 4.4.2 released.

2009-09-23  Matthias Klose  <doko@ubuntu.com>

	PR libffi/40242, PR libffi/41443
	* src/arm/sysv.S (__ARM_ARCH__): Define for processors
	__ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
	__ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
	Change the conditionals to __SOFTFP__ || __ARM_EABI__
	for -mfloat-abi=softfp to work.

2009-07-22  Release Manager

	* GCC 4.4.1 released.

2009-04-21  Release Manager

	* GCC 4.4.0 released.

2009-04-09  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/lib/libffi-dg.exp: Change copyright header to refer to
	version 3 of the GNU General Public License and to point readers
	at the COPYING3 file and the FSF's license web page.
	* testsuite/libffi.call/call.exp: Likewise.
	* testsuite/libffi.special/special.exp: Likewise.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-12-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR libffi/26048
	* configure.ac (HAVE_AS_X86_PCREL): New test.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
	RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
	RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
	(.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
	* src/x86/unix64.S (.Lstore_table): Move to .text section.
	(.Lload_table): Likewise.
	(.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.

2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>

	* src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
	signed/unsigned int8/16 return values.
	* src/sparc/v8.S (ffi_call_v8): Likewise.
	(ffi_closure_v8): Likewise.

2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
            Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate for new libtool.
	* Makefile.in: Ditto.
	* include/Makefile.in: Ditto.
	* aclocal.m4: Ditto.

2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>

	* src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
	FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
	Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
	Adjust copyright notice.
	* src/powerpc/ffi.c: Add two new flags to indicate if we have one
	register or two register to use for FFI_SYSV structs.
	(ffi_prep_cif_machdep): Pass the right register flag introduced above.
	(ffi_closure_helper_SYSV): Fix the return type for
	FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
	Adjust copyright notice.

2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	* src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
	int.

2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2008-06-07  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
	powerpc-*-beos*): Remove.
	* configure: Regenerate.

2008-05-09  Julian Brown  <julian@codesourcery.com>

	* Makefile.am (LTLDFLAGS): New.
	(libffi_la_LDFLAGS): Use above.
	* Makefile.in: Regenerate.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35457
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	* src/sh/sysv.S: Add .note.GNU-stack on Linux.
	* src/sh64/sysv.S: Likewise.

2008-03-26  Daniel Jacobowitz  <dan@debian.org>

	* src/arm/sysv.S: Fix ARM comment marker.

2008-03-26  Jakub Jelinek  <jakub@redhat.com>

	* src/alpha/osf.S: Add .note.GNU-stack on Linux.
	* src/s390/sysv.S: Likewise.
	* src/powerpc/ppc_closure.S: Likewise.
	* src/powerpc/sysv.S: Likewise.
	* src/x86/unix64.S: Likewise.
	* src/x86/sysv.S: Likewise.
	* src/sparc/v8.S: Likewise.
	* src/sparc/v9.S: Likewise.
	* src/m68k/sysv.S: Likewise.
	* src/arm/sysv.S: Likewise.

2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* aclocal.m4: Regenerate.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

2008-02-12  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
	    Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Add amd64-*-freebsd* target.
	* configure: Regenerate.

2008-01-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR libffi/34612
	* src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
	returning struct.

	* testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
	tests.

2008-01-24  David Edelsohn  <edelsohn@gnu.org>

	* configure: Regenerate.

2008-01-06  Andreas Tobler  <a.tobler@schweiz.org>

	* src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.

2008-01-05  Andreas Tobler  <a.tobler@schweiz.org>

	PR testsuite/32843
	* src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
	signed/unsigned int8/16 for X86_DARWIN.
	Updated copyright info.
	Handle one and two byte structs with special cif->flags.
	* src/x86/ffitarget.h: Add special types for one and two byte structs.
	Updated copyright info.
	* src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
	sysv.S
	Remove code to pop args from the stack after call.
	Special-case signed/unsigned for int8/16, one and two byte structs.
	(ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
	FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
	FFI_TYPE_SINT32.
	Updated copyright info.

2007-12-08  David Daney  <ddaney@avtrex.com>

	* src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with 
	SUBU, add with ADDU and use smaller code sequences.

2007-12-07  David Daney  <ddaney@avtrex.com>

	* src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
	type.

2007-12-06  David Daney  <ddaney@avtrex.com>

	* include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not	already
	defined.
	(ffi_java_raw): New typedef.
	(ffi_java_raw_call, ffi_java_ptrarray_to_raw,
	ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
	ffi_java_raw.
	(ffi_java_raw_closure) : Same.
	(ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
	parameter types.
	* src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
	FFI_SIZEOF_JAVA_RAW.
	(ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
	Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
	sizeof(ffi_java_raw) for alignment calculations.
	(ffi_java_ptrarray_to_raw): Same.
	(ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
        if FFI_SIZEOF_JAVA_RAW == 4.
	(ffi_java_raw_to_rvalue): Same.
	(ffi_java_raw_call): Change type of raw to ffi_java_raw.
	(ffi_java_translate_args): Same.
	(ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
	parameter types.
	* src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.

2007-12-06  David Daney  <ddaney@avtrex.com>

	* src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on 
	pointer values.

2007-12-01  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.

2007-11-25  Andreas Tobler  <a.tobler@schweiz.org>

	* src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
	* include/ffi_common.h: ... here.
	Update copyright.

2007-11-17  Andreas Tobler  <a.tobler@schweiz.org>

	* src/powerpc/sysv.S: Load correct cr to compare if we have long double.
	* src/powerpc/linux64.S: Likewise.
	* src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
	* testsuite/libffi.call/return_ldl.c: New test.

2007-09-04    <aph@redhat.com>

	* src/arm/sysv.S (UNWIND): New.
	(Whole file): Conditionally compile unwinder directives.
	* src/arm/sysv.S: Add unwinder directives.

	* src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
	Only treat r0 as a struct address if we're actually returning a
	struct by address.
	Only copy the bytes that are actually within a struct.
	(ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
	is returned in r0, not passed by address.
	(ffi_call): Allocate a word-sized temporary for the case where
	a composite is returned in r0.
	(ffi_prep_incoming_args_SYSV): Align as necessary.

2007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>

	* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of 
	directly using the sys_cacheflush syscall.

2007-07-27  Andrew Haley  <aph@redhat.com>

	* src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.

2007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>

	* Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
	* configure.ac: Likewise.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	* configure: Likewise.

2007-08-24  David Daney  <ddaney@avtrex.com>

	* testsuite/libffi.call/return_sl.c: New test.

2007-08-10  David Daney  <ddaney@avtrex.com>

	* testsuite/libffi.call/cls_multi_ushort.c,
	testsuite/libffi.call/cls_align_uint16.c,
	testsuite/libffi.call/nested_struct1.c,
	testsuite/libffi.call/nested_struct3.c,
	testsuite/libffi.call/cls_7_1_byte.c,
	testsuite/libffi.call/nested_struct5.c,
	testsuite/libffi.call/cls_double.c,
	testsuite/libffi.call/nested_struct7.c,
	testsuite/libffi.call/cls_sint.c,
	testsuite/libffi.call/nested_struct9.c,
	testsuite/libffi.call/cls_20byte1.c,
	testsuite/libffi.call/cls_multi_sshortchar.c,
	testsuite/libffi.call/cls_align_sint64.c,
	testsuite/libffi.call/cls_3byte2.c,
	testsuite/libffi.call/cls_multi_schar.c,
	testsuite/libffi.call/cls_multi_uchar.c,
	testsuite/libffi.call/cls_19byte.c,
	testsuite/libffi.call/cls_9byte1.c,
	testsuite/libffi.call/cls_align_float.c,
	testsuite/libffi.call/closure_fn1.c,
	testsuite/libffi.call/problem1.c,
	testsuite/libffi.call/closure_fn3.c,
	testsuite/libffi.call/cls_sshort.c,
	testsuite/libffi.call/closure_fn5.c,
	testsuite/libffi.call/cls_align_double.c,
	testsuite/libffi.call/nested_struct.c,
	testsuite/libffi.call/cls_2byte.c,
	testsuite/libffi.call/nested_struct10.c,
	testsuite/libffi.call/cls_4byte.c,
	testsuite/libffi.call/cls_6byte.c,
	testsuite/libffi.call/cls_8byte.c,
	testsuite/libffi.call/cls_multi_sshort.c,
	testsuite/libffi.call/cls_align_sint16.c,
	testsuite/libffi.call/cls_align_uint32.c,
	testsuite/libffi.call/cls_20byte.c,
	testsuite/libffi.call/cls_float.c,
	testsuite/libffi.call/nested_struct2.c,
	testsuite/libffi.call/cls_5_1_byte.c,
	testsuite/libffi.call/nested_struct4.c,
	testsuite/libffi.call/cls_24byte.c,
	testsuite/libffi.call/nested_struct6.c,
	testsuite/libffi.call/cls_64byte.c,
	testsuite/libffi.call/nested_struct8.c,
	testsuite/libffi.call/cls_uint.c,
	testsuite/libffi.call/cls_multi_ushortchar.c,
	testsuite/libffi.call/cls_schar.c,
	testsuite/libffi.call/cls_uchar.c,
	testsuite/libffi.call/cls_align_uint64.c,
	testsuite/libffi.call/cls_ulonglong.c,
	testsuite/libffi.call/cls_align_longdouble.c,
	testsuite/libffi.call/cls_1_1byte.c,
	testsuite/libffi.call/cls_12byte.c,
	testsuite/libffi.call/cls_3_1byte.c,
	testsuite/libffi.call/cls_3byte1.c,
	testsuite/libffi.call/cls_4_1byte.c,
	testsuite/libffi.call/cls_6_1_byte.c,
	testsuite/libffi.call/cls_16byte.c,
	testsuite/libffi.call/cls_18byte.c,
	testsuite/libffi.call/closure_fn0.c,
	testsuite/libffi.call/cls_9byte2.c,
	testsuite/libffi.call/closure_fn2.c,
	testsuite/libffi.call/closure_fn4.c,
	testsuite/libffi.call/cls_ushort.c,
	testsuite/libffi.call/closure_fn6.c,
	testsuite/libffi.call/cls_5byte.c,
	testsuite/libffi.call/cls_align_pointer.c,
	testsuite/libffi.call/cls_7byte.c,
	testsuite/libffi.call/cls_align_sint32.c,
	testsuite/libffi.special/unwindtest_ffi_call.cc,
	testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.

2007-08-10  David Daney  <ddaney@avtrex.com>

	PR libffi/28313
	* configure.ac: Don't treat mips64 as a special case.
	* Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
	* configure: Regenerate
	* Makefile.in: Ditto.
	* fficonfig.h.in: Ditto.
	* src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
	(LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
	(FFI_DEFAULT_ABI): Set for n64 case.
	(FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
	* src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
	(ffi_closure_N32): New function.
	(.eh_frame): New section
	* src/mips/o32.S: Clean up comments.
	(ffi_closure_O32): Pass ffi_closure parameter in $12.
	* src/mips/ffi.c: Use FFI_MIPS_N32 instead of
	_MIPS_SIM == _ABIN32 throughout.
	(FFI_MIPS_STOP_HERE): New, use in place of
	ffi_stop_here.
	(ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
	to support n32/n64 ABIs.
	(calc_n32_struct_flags): Rewrite.
	(calc_n32_return_struct_flags): Remove unused variable.  Reverse
	position of flag bits.
	(ffi_prep_cif_machdep): Rewrite n32 portion.
	(ffi_call): Enable for n64.  Add special handling for small structure
	return values.
	(ffi_prep_closure_loc): Add n32 and n64 support.
	(ffi_closure_mips_inner_O32): Add cast to silence warning.
	(copy_struct_N32, ffi_closure_mips_inner_N32): New functions.

2007-08-08  David Daney  <ddaney@avtrex.com>

	* testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
	* testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
	specifiers.
	* testsuite/libffi.call/nested_struct1.c (main): Ditto.
	* testsuite/libffi.call/cls_sint.c (main): Ditto.
	* testsuite/libffi.call/nested_struct9.c (main): Ditto.
	* testsuite/libffi.call/cls_20byte1.c (main): Ditto.
	* testsuite/libffi.call/cls_9byte1.c (main): Ditto.
	* testsuite/libffi.call/closure_fn1.c (main): Ditto.
	* testsuite/libffi.call/closure_fn3.c (main): Ditto.
	* testsuite/libffi.call/return_dbl2.c (main): Ditto.
	* testsuite/libffi.call/cls_sshort.c (main): Ditto.
	* testsuite/libffi.call/return_fl3.c (main): Ditto.
	* testsuite/libffi.call/closure_fn5.c (main): Ditto.
	* testsuite/libffi.call/nested_struct.c (main): Ditto.
	* testsuite/libffi.call/nested_struct10.c (main): Ditto.
	* testsuite/libffi.call/return_ll1.c (main): Ditto.
	* testsuite/libffi.call/cls_8byte.c (main): Ditto.
	* testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
	* testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
	* testsuite/libffi.call/cls_20byte.c (main): Ditto.
	* testsuite/libffi.call/nested_struct2.c (main): Ditto.
	* testsuite/libffi.call/cls_24byte.c (main): Ditto.
	* testsuite/libffi.call/nested_struct6.c (main): Ditto.
	* testsuite/libffi.call/cls_uint.c (main): Ditto.
	* testsuite/libffi.call/cls_12byte.c (main): Ditto.
	* testsuite/libffi.call/cls_16byte.c (main): Ditto.
	* testsuite/libffi.call/closure_fn0.c (main): Ditto.
	* testsuite/libffi.call/cls_9byte2.c (main): Ditto.
	* testsuite/libffi.call/closure_fn2.c (main): Ditto.
	* testsuite/libffi.call/return_dbl1.c (main): Ditto.
	* testsuite/libffi.call/closure_fn4.c (main): Ditto.
	* testsuite/libffi.call/closure_fn6.c (main): Ditto.
	* testsuite/libffi.call/cls_align_sint32.c (main): Ditto.

2007-08-07  Andrew Haley  <aph@redhat.com>

	* src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
	checkin.

2007-08-06  Andrew Haley  <aph@redhat.com>

	PR testsuite/32843
	* src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
	FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
	FFI_TYPE_SINT32.

2007-08-02  David Daney  <ddaney@avtrex.com>

	* testsuite/libffi.call/return_ul.c (main): Define return type as
	ffi_arg.  Use proper printf conversion specifier.
	
2007-07-30  Andrew Haley  <aph@redhat.com>

	PR testsuite/32843
	* src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
	signed/unsigned int8/16.
	* src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
	Use a jump table.
	Remove code to pop args from the stack after call.
	Special-case signed/unsigned int8/16.
	* testsuite/libffi.call/return_sc.c (main): Revert.

2007-07-26  Richard Guenther  <rguenther@suse.de>

	PR testsuite/32843
	* testsuite/libffi.call/return_sc.c (main): Verify call
	result as signed char, not ffi_arg.

2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
	* configure: Regenerate.

2007-07-11  David Daney  <ddaney@avtrex.com>

	* src/mips/ffi.c: Don't include sys/cachectl.h.
	(ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
	cacheflush().

2007-05-18  Aurelien Jarno  <aurelien@aurel32.net>

	* src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
	from (ffi_prep_closure): ... this.
	(FFI_INIT_TRAMPOLINE): Adjust.

2005-12-31  Phil Blundell  <pb@reciva.com>

	* src/arm/ffi.c (ffi_prep_incoming_args_SYSV, 
        ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
	* src/arm/sysv.S(ffi_closure_SYSV): Likewise.
	* src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
	(FFI_CLOSURES): Enable closure support.

2007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>

        * testsuite/libffi.call/cls_multi_ushort.c,
        testsuite/libffi.call/cls_align_uint16.c,
        testsuite/libffi.call/nested_struct1.c,
        testsuite/libffi.call/nested_struct3.c,
        testsuite/libffi.call/cls_7_1_byte.c,
        testsuite/libffi.call/cls_double.c,
        testsuite/libffi.call/nested_struct5.c,
        testsuite/libffi.call/nested_struct7.c,
        testsuite/libffi.call/cls_sint.c,
        testsuite/libffi.call/nested_struct9.c,
        testsuite/libffi.call/cls_20byte1.c,
        testsuite/libffi.call/cls_multi_sshortchar.c,
        testsuite/libffi.call/cls_align_sint64.c,
        testsuite/libffi.call/cls_3byte2.c,
        testsuite/libffi.call/cls_multi_schar.c,
        testsuite/libffi.call/cls_multi_uchar.c,
        testsuite/libffi.call/cls_19byte.c,
        testsuite/libffi.call/cls_9byte1.c,
        testsuite/libffi.call/cls_align_float.c,
        testsuite/libffi.call/closure_fn1.c,
        testsuite/libffi.call/problem1.c,
        testsuite/libffi.call/closure_fn3.c,
        testsuite/libffi.call/cls_sshort.c,
        testsuite/libffi.call/closure_fn5.c,
        testsuite/libffi.call/cls_align_double.c,
        testsuite/libffi.call/cls_2byte.c,
        testsuite/libffi.call/nested_struct.c,
        testsuite/libffi.call/nested_struct10.c,
        testsuite/libffi.call/cls_4byte.c,
        testsuite/libffi.call/cls_6byte.c,
        testsuite/libffi.call/cls_8byte.c,
        testsuite/libffi.call/cls_multi_sshort.c,
        testsuite/libffi.call/cls_align_uint32.c,
        testsuite/libffi.call/cls_align_sint16.c,
        testsuite/libffi.call/cls_float.c,
        testsuite/libffi.call/cls_20byte.c,
        testsuite/libffi.call/cls_5_1_byte.c,
        testsuite/libffi.call/nested_struct2.c,
        testsuite/libffi.call/cls_24byte.c,
        testsuite/libffi.call/nested_struct4.c,
        testsuite/libffi.call/nested_struct6.c,
        testsuite/libffi.call/cls_64byte.c,
        testsuite/libffi.call/nested_struct8.c,
        testsuite/libffi.call/cls_uint.c,
        testsuite/libffi.call/cls_multi_ushortchar.c,
        testsuite/libffi.call/cls_schar.c,
        testsuite/libffi.call/cls_uchar.c,
        testsuite/libffi.call/cls_align_uint64.c,
        testsuite/libffi.call/cls_ulonglong.c,
        testsuite/libffi.call/cls_align_longdouble.c,
        testsuite/libffi.call/cls_1_1byte.c,
        testsuite/libffi.call/cls_12byte.c,
        testsuite/libffi.call/cls_3_1byte.c,
        testsuite/libffi.call/cls_3byte1.c,
        testsuite/libffi.call/cls_4_1byte.c,
        testsuite/libffi.call/cls_6_1_byte.c,
        testsuite/libffi.call/cls_16byte.c,
        testsuite/libffi.call/cls_18byte.c,
        testsuite/libffi.call/closure_fn0.c,
        testsuite/libffi.call/cls_9byte2.c,
        testsuite/libffi.call/closure_fn2.c,
        testsuite/libffi.call/closure_fn4.c,
        testsuite/libffi.call/cls_ushort.c,
        testsuite/libffi.call/closure_fn6.c,
        testsuite/libffi.call/cls_5byte.c,
        testsuite/libffi.call/cls_align_pointer.c,
        testsuite/libffi.call/cls_7byte.c,
        testsuite/libffi.call/cls_align_sint32.c,
        testsuite/libffi.special/unwindtest_ffi_call.cc,
        testsuite/libffi.special/unwindtest.cc: Enable for ARM.

2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.

2007-06-02  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2007-05-23  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2007-05-10  Roman Zippel <zippel@linux-m68k.org>

	* src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
	ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
	* src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
	* src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
	(FFI_CLOSURES): Enable closure support.

2007-05-10  Roman Zippel <zippel@linux-m68k.org>

	* configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
	CFI_OFFSET,CFI_DEF_CFA): New macros.
	(ffi_call_SYSV): Add callframe annotation.

2007-05-10  Roman Zippel <zippel@linux-m68k.org>

	* src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
	numerous test suite failures.
	* src/m68k/sysv.S (ffi_call_SYSV): Likewise.

2007-04-11  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.am (EXTRA_DIST): Bring up to date.
	* Makefile.in: Regenerate.
	* src/frv/eabi.S: Remove RCS keyword.

2007-04-06  Richard Henderson  <rth@redhat.com>

	* configure.ac: Tidy target case.
	(HAVE_LONG_DOUBLE): Allow the target to override.
	* configure: Regenerate.
	* include/ffi.h.in: Don't define ffi_type_foo if
	LIBFFI_HIDE_BASIC_TYPES is defined.
	(ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
	to ffi_type_double.
	* types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
	(FFI_TYPEDEF, ffi_type_void): Mark the data const.
	(ffi_type_longdouble): Special case for Alpha.  Don't define
	if long double == double.

	* src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
	(ffi_prep_cif_machdep): Handle it as the 128-bit type.
	(ffi_call, ffi_closure_osf_inner): Likewise.
	(ffi_closure_osf_inner): Likewise.  Mark hidden.
	(ffi_call_osf, ffi_closure_osf): Mark hidden.
	* src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
	* src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
	(load_table): Handle 128-bit long double.

	* testsuite/libffi.call/float4.c: Add -mieee for alpha.

2007-04-06  Tom Tromey  <tromey@redhat.com>

	PR libffi/31491:
	* README: Fixed bug in example.

2007-04-03  Jakub Jelinek  <jakub@redhat.com>

	* src/closures.c: Include sys/statfs.h.
	(_GNU_SOURCE): Define on Linux.
	(FFI_MMAP_EXEC_SELINUX): Define.
	(selinux_enabled): New variable.
	(selinux_enabled_check): New function.
	(is_selinux_enabled): Define.
	(dlmmap): Use it.

2007-03-24  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
	Use 'volatile float sum' to create sum of floats to avoid false
	negative due to excess precision on ix86 targets.
	(main): Ditto. 

2007-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* src/powerpc/ffi.c (flush_icache): Fix left-over from previous
	patch.
	(ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.

2007-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
	(ffi_prep_closure_loc): New.
	(ffi_prep_raw_closure_loc): New.
	(ffi_prep_java_raw_closure_loc): New.
	* src/closures.c: New file.
	* src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
	Replace sflags with exec_offset.
	[FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
	sub_segment_exec_offset): New macros.
	(get_segment_flags, set_segment_flags, check_segment_merge): New
	macros.
	(is_mmapped_segment, is_extern_segment): Use get_segment_flags.
	(add_segment, sys_alloc, create_mspace, create_mspace_with_base,
	destroy_mspace): Use new macros.
	(sys_alloc): Silence warning.
	* Makefile.am (libffi_la_SOURCES): Add src/closures.c.
	* Makefile.in: Rebuilt.
	* src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
	terms of ffi_prep_closure_loc.
	* src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
	from...
	(ffi_prep_raw_closure): ... this.  Re-implement in terms of the
	renamed version.
	* src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
	adjusted from...
	(ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
	the renamed version.
	* src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
	(ffi_prep_closure): ... this.
	* src/pa/ffi.c: Likewise.
	* src/cris/ffi.c: Likewise.  Adjust.
	* src/frv/ffi.c: Likewise.
	* src/ia64/ffi.c: Likewise.
	* src/mips/ffi.c: Likewise.
	* src/powerpc/ffi_darwin.c: Likewise.
	* src/s390/ffi.c: Likewise.
	* src/sh/ffi.c: Likewise.
	* src/sh64/ffi.c: Likewise.
	* src/sparc/ffi.c: Likewise.
	* src/x86/ffi64.c: Likewise.
	* src/x86/ffi.c: Likewise.
	(FFI_INIT_TRAMPOLINE): Adjust.
	(ffi_prep_raw_closure_loc): Renamed and adjusted from...
	(ffi_prep_raw_closure): ... this.
	* src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
	(ffi_prep_closure): ... this.
	(flush_icache): Adjust.

2007-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* src/dlmalloc.c: New file, imported version 2.8.3 of Doug
	Lea's malloc.

2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.am: Add dummy install-pdf target.
	* Makefile.in: Regenerate

2007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>

	* src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
	ffi_closure_helper_SYSV): Add long double handling.

2007-02-02  Jakub Jelinek  <jakub@redhat.com>

	* src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
	immediately after bctrl instruction.

2007-01-18  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.am (all-recursive, install-recursive,
	mostlyclean-recursive, clean-recursive, distclean-recursive,
	maintainer-clean-recursive): Add missing targets.
	* Makefile.in: Rebuilt.

2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Add TARGET for x86_64-*-darwin*.
	* Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
	for X86_DARWIN.
	* src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
	* src/x86/darwin64.S: New file for x86_64-*-darwin* support.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
	ffi_call only.

2006-12-13  Andreas Tobler <a.tobler@schweiz.org>

	* aclocal.m4: Regenerate with aclocal -I .. as written in the
	Makefile.am.

2006-10-31  Geoffrey Keating  <geoffk@apple.com>

	* src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
	(ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
	Darwin.
	* testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
	* testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.

2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
	    Sandro Tolaini  <tolaini@libero.it>

	* configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and 
	conditional.
	* configure: Regenerated.
	* Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
	(EXTRA_DIST): Add src/x86/darwin.S.
	* Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

	* src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
	X86_WIN32, and additionally align stack to 16 bytes.
	* src/x86/darwin.S: New, based on sysv.S.
	* src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.

2006-09-12  David Daney  <ddaney@avtrex.com>

	PR libffi/23935
	* include/Makefile.am: Install both ffi.h and ffitarget.h in
	$(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
	* aclocal.m4: Regenerated for automake 1.9.6.
	* Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

2006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>

	* include/ffi_common.h (struct): Revert accidental commit.

2006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>

	* include/ffi_common.h: Remove lint directives.
	* include/ffi.h.in: Likewise.

2006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>

	* include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
	for 32-bit architectures.
	* testsuite/libffi.call/return_ul.c: New test case.

2006-07-19  David Daney  <ddaney@avtrex.com>

	* testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
	xfail remains for mips64.

2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.am: Add install-html target. Add install-html to .PHONY
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
	stack slot.

2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* README: Remove notice about 'Crazy Comments'.
	* src/debug.c: Remove lint directives. Cleanup white spaces.
	* src/java_raw_api.c: Likewise.
	* src/prep_cif.c: Likewise.
	* src/raw_api.c: Likewise.
	* src/ffitest.c: Delete. No longer needed, all test cases migrated
	to the testsuite.
	* src/arm/ffi.c: Remove lint directives.
	* src/m32r/ffi.c: Likewise.
	* src/pa/ffi.c: Likewise.
	* src/powerpc/ffi.c: Likewise.
	* src/powerpc/ffi_darwin.c: Likewise.
	* src/sh/ffi.c: Likewise.
	* src/sh64/ffi.c: Likewise.
	* src/x86/ffi.c: Likewise.
	* testsuite/libffi.call/float2.c: Likewise.
	* testsuite/libffi.call/promotion.c: Likewise.
	* testsuite/libffi.call/struct1.c: Likewise.

2006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>

	* src/pa/hpux32.S: Correct unwind offset calculation for
	ffi_closure_pa32.
	* src/pa/linux.S: Likewise.

2006-04-12  James E Wilson  <wilson@specifix.com>

	PR libgcj/26483
	* src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
	(hfa_type_load): Call stf_spill.
	(hfa_type_store): Call ldf_fill.
	(ffi_call): Adjust calls to above routines.  Add local temps for
	macro result.

2006-04-10  Matthias Klose  <doko@debian.org>

	* testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
	directory names containing underscores.

2006-04-07  James E Wilson  <wilson@specifix.com>

	* testsuite/libffi.call/float4.c: New testcase.

2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am: Add PA_HPUX port.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	* configure.ac: Add PA_HPUX rules.
	* configure: Regenerate.
	* src/pa/ffitarget.h: Rename linux target to PA_LINUX.
	Add PA_HPUX and PA64_HPUX.
	Rename FFI_LINUX ABI to FFI_PA32 ABI.
	(FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
	(FFI_TYPE_SMALL_STRUCT2): Define.
	(FFI_TYPE_SMALL_STRUCT4): Likewise.
	(FFI_TYPE_SMALL_STRUCT8): Likewise.
	(FFI_TYPE_SMALL_STRUCT3): Redefine.
	(FFI_TYPE_SMALL_STRUCT5): Likewise.
	(FFI_TYPE_SMALL_STRUCT6): Likewise.
	(FFI_TYPE_SMALL_STRUCT7): Likewise.
	* src/pa/ffi.c (ROUND_DOWN): Delete.
	(fldw, fstw, fldd, fstd): Use '__asm__'.
	(ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
	FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
	(ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
	Simplify incrementing of stack slot variable. Change type of local
	'n' to unsigned int.
	(ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
	double on PA_HPUX.
	(ffi_prep_cif_machdep): Likewise.
	(ffi_call): Likewise.
	(ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
	return type to ffi_status. Simplify incrementing of stack slot
	variable. Only copy floating point argument registers when PA_LINUX
	is true. Reformat debug statement.
	Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
	FFI_TYPE_SMALL_STRUCT8.
	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
	declaration.
	(ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
	Add nops to cache flush.  Add trampoline for PA_HPUX.
	* src/pa/hpux32.S: New file.
	* src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
	ffi_prep_args_LINUX to ffi_prep_args_pa32.
	Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
	unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
	argument type checks so that common argument types appear first.
	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
	ffi_closure_inner_LINUX to ffi_closure_inner_pa32.

2006-03-24  Alan Modra  <amodra@bigpond.net.au>

	* 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.

2006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	* src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
	passed with FP registers correctly.
	(ffi_closure_helper_SYSV): Likewise.
	* src/sh64/sysv.S: Likewise.

2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
	args and userdata unused.
	(closure_test_fn1): Mark cif and userdata unused.
	(main): Remove unused res.

2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
	-O2, -O3, -Os and the warning flags -W -Wall.
	* testsuite/libffi.special/special.exp: Likewise.
	* testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
	unused parameter unused for gcc or else do nothing.
	* testsuite/libffi.special/ffitestcxx.h: Likewise.
	* testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
	and userdata unused.
	* testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
	* testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
	* testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
	* testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
	* testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
	* testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
	* testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
	* testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
	* testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
	* testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
	* testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
	* testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
	* testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
	* testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
	* testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
	* testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
	* testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
