Commit Graph

148 Commits

Author SHA1 Message Date
Andreas Tobler
d18c338615 re PR libffi/13221 (libffi's closure couldn't pass sequence of char and/or short arguments.)
2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>

	PR other/13221
	* testsuite/libffi.call/cls_multi_sshort.c: New test case.
	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.

	* testsuite/libffi.special/unwindtest.cc: Cosmetics.

From-SVN: r74093
2003-12-01 08:23:28 +01:00
Kaveh R. Ghazi
88096b2a59 ffitest.h: Include <fcntl.h>.
* testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
	* testsuite/libffi.special/ffitestcxx.h: Likewise.

From-SVN: r73950
2003-11-26 13:46:10 +00:00
Andreas Tobler
3eee102eda Makefile.in: Rebuilt.
2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.in: Rebuilt.
	* configure: Likewise.
	* testsuite/libffi.special/unwindtest.cc: Convert the mmap to
	the right type.

From-SVN: r73837
2003-11-22 14:41:33 +01:00
Andreas Jaeger
5196736e47 acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
2003-11-21  Andreas Jaeger  <aj@suse.de>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
	* configure.in: Call AC_FUNC_MMAP_BLACKLIST.
	* Makefile.in: Rebuilt.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* fficonfig.h.in: Likewise.
	* testsuite/lib/libffi-dg.exp: Add include dir.
	* testsuite/libffi.call/ffitest.h: Add MMAP definitions.
	* testsuite/libffi.special/ffitestcxx.h: Likewise.
	* testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
	for ffi_closure if available.
	* testsuite/libffi.call/closure_fn1.c: Likewise.
	* testsuite/libffi.call/closure_fn2.c: Likewise.
	* testsuite/libffi.call/closure_fn3.c: Likewise.
	* testsuite/libffi.call/closure_fn4.c: Likewise.
	* testsuite/libffi.call/closure_fn5.c: Likewise.
	* testsuite/libffi.call/cls_12byte.c: Likewise.
	* testsuite/libffi.call/cls_16byte.c: Likewise.
	* testsuite/libffi.call/cls_18byte.c: Likewise.
	* testsuite/libffi.call/cls_19byte.c: Likewise.
	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte1.c: Likewise.
	* testsuite/libffi.call/cls_24byte.c: Likewise.
	* testsuite/libffi.call/cls_2byte.c: Likewise.
	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
	* testsuite/libffi.call/cls_3byte1.c: Likewise.
	* testsuite/libffi.call/cls_3byte2.c: Likewise.
	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
	* testsuite/libffi.call/cls_4byte.c: Likewise.
	* testsuite/libffi.call/cls_5byte.c: Likewise.
	* testsuite/libffi.call/cls_64byte.c: Likewise.
	* testsuite/libffi.call/cls_6byte.c: Likewise.
	* testsuite/libffi.call/cls_7byte.c: Likewise.
	* testsuite/libffi.call/cls_8byte.c: Likewise.
	* testsuite/libffi.call/cls_9byte1.c: Likewise.
	* testsuite/libffi.call/cls_9byte2.c: Likewise.
	* testsuite/libffi.call/cls_double.c: Likewise.
	* testsuite/libffi.call/cls_float.c: Likewise.
	* testsuite/libffi.call/cls_schar.c: Likewise.
	* testsuite/libffi.call/cls_sint.c: Likewise.
	* testsuite/libffi.call/cls_sshort.c: Likewise.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/nested_struct.c: Likewise.
	* testsuite/libffi.call/nested_struct1.c: Likewise.
	* testsuite/libffi.call/nested_struct2.c: Likewise.
	* testsuite/libffi.call/nested_struct3.c: Likewise.
	* testsuite/libffi.call/problem1.c: Likewise.
	* testsuite/libffi.special/unwindtest.cc: Likewise.

Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>

From-SVN: r73800
2003-11-21 12:24:10 +01:00
Andreas Tobler
9e6c3ecb96 libffi-dg.exp: Make the -lgcc_s conditional.
2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.

From-SVN: r73763
2003-11-20 16:19:09 +01:00
Andreas Tobler
70d8f2a1b2 libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
	Add -lgcc_s to additional flags.

From-SVN: r73726
2003-11-19 05:55:32 +01:00
Andreas Tobler
ea81d2a3e1 re PR libffi/11147 (fficonfig.h is abi-specific)
2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.in, include/Makefile.am: PR libgcj/11147, install
	the ffitarget.h header file in a gcc versioned and target
	dependent place.
	* configure: Regenerated.
	* Makefile.in, include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r73504
2003-11-12 19:18:30 +01:00
Andreas Tobler
647af4a91c closure_fn0.c: Print result and check with dg-output to make debugging easier.
2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/closure_fn0.c: Print result and check
	with dg-output to make debugging easier.
	* testsuite/libffi.call/closure_fn1.c: Likewise.
	* testsuite/libffi.call/closure_fn2.c: Likewise.
	* testsuite/libffi.call/closure_fn3.c: Likewise.
	* testsuite/libffi.call/closure_fn4.c: Likewise.
	* testsuite/libffi.call/closure_fn5.c: Likewise.
	* testsuite/libffi.call/cls_12byte.c: Likewise.
	* testsuite/libffi.call/cls_16byte.c: Likewise.
	* testsuite/libffi.call/cls_18byte.c: Likewise.
	* testsuite/libffi.call/cls_19byte.c: Likewise.
	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte1.c: Likewise.
	* testsuite/libffi.call/cls_24byte.c: Likewise.
	* testsuite/libffi.call/cls_2byte.c: Likewise.
	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
	* testsuite/libffi.call/cls_3byte1.c: Likewise.
	* testsuite/libffi.call/cls_3byte2.c: Likewise.
	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
	* testsuite/libffi.call/cls_4byte.c: Likewise.
	* testsuite/libffi.call/cls_5byte.c: Likewise.
	* testsuite/libffi.call/cls_64byte.c: Likewise.
	* testsuite/libffi.call/cls_6byte.c: Likewise.
	* testsuite/libffi.call/cls_7byte.c: Likewise.
	* testsuite/libffi.call/cls_8byte.c: Likewise.
	* testsuite/libffi.call/cls_9byte1.c: Likewise.
	* testsuite/libffi.call/cls_9byte2.c: Likewise.
	* testsuite/libffi.call/cls_double.c: Likewise.
	* testsuite/libffi.call/cls_float.c: Likewise.
	* testsuite/libffi.call/cls_schar.c: Likewise.
	* testsuite/libffi.call/cls_sint.c: Likewise.
	* testsuite/libffi.call/cls_sshort.c: Likewise.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/problem1.c: Likewise.

	* testsuite/libffi.special/unwindtest.cc: Make ffi_closure
	static.

From-SVN: r73393
2003-11-09 18:05:10 +01:00
Andreas Tobler
ac47cc13ab cls_9byte2.c: New test case.
2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/cls_9byte2.c: New test case.
	* testsuite/libffi.call/cls_9byte1.c: Likewise.
	* testsuite/libffi.call/cls_64byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte1.c: Likewise.
	* testsuite/libffi.call/cls_19byte.c: Likewise.
	* testsuite/libffi.call/cls_18byte.c: Likewise.
	* testsuite/libffi.call/closure_fn4.c: Likewise.
	* testsuite/libffi.call/closure_fn5.c: Likewise.
	* testsuite/libffi.call/cls_schar.c: Likewise.
	* testsuite/libffi.call/cls_sint.c: Likewise.
	* testsuite/libffi.call/cls_sshort.c: Likewise.
	* testsuite/libffi.call/nested_struct2.c: Likewise.
	* testsuite/libffi.call/nested_struct3.c: Likewise.

From-SVN: r73372
2003-11-08 20:03:58 +01:00
Andreas Tobler
f145ed6b90 cls_double.c: Do a check on the result.
2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/cls_double.c: Do a check on the result.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/return_sc.c: Cleanup whitespaces.

From-SVN: r73369
2003-11-08 19:32:16 +01:00
Andreas Tobler
2b04d015d6 prep_cif.c (ffi_prep_cif): Move the validity check after the initialization.
2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>

	* src/prep_cif.c (ffi_prep_cif): Move the validity check after
	the initialization.

From-SVN: r73309
2003-11-06 16:47:41 +01:00
Andreas Tobler
57f542b355 java_raw_api.c (ffi_java_ptrarray_to_raw): Replace FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>

        * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
        FFI_ASSERT(FALSE) with FFI_ASSERT(0).

From-SVN: r72865
2003-10-23 22:24:20 +02:00
David Daney
e61acf7242 ffitarget.h: Replace undefined UINT32 and friends with __attribute__((__mode__(__SI__))) and...
2003-10-22  David Daney  <ddaney@avtrex.com>

	* src/mips/ffitarget.h: Replace undefined UINT32 and friends with
	__attribute__((__mode__(__SI__))) and friends.

From-SVN: r72802
2003-10-22 15:32:13 +00:00
Andreas Schwab
2461c08bab * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
From-SVN: r72797
2003-10-22 13:57:12 +00:00
Andreas Tobler
1450eb7a07 [multiple changes]
2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.in: AC_LINK_FILES(ffitarget.h).
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	* fficonfig.h.in: Likewise.

2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
	    Richard Henderson  <rth@redhat.com>

	Avoid that ffi.h includes fficonfig.h.

	* Makefile.am (EXTRA_DIST): Include ffitarget.h files
	(TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
	(TARGET_SRC_MIPS_SGI): Removed.
	(MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
	(MIPS_SGI): Removed.
	(CLEANFILES): Removed.
	(mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
	targets.
	* acconfig.h: Removed.
	* configure.in: Compute sizeofs only for double and long double.
	Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
	into AC_DEFINE instead of using acconfig.h.  Create
	include/ffitarget.h instead of include/fficonfig.h.  Rename
	MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
	AC_DEFINE EH_FRAME_FLAGS.
	* include/Makefile.am (DISTCLEANFILES): New automake macro.
	(hack_DATA): Add ffitarget.h.
	* include/ffi.h.in: Remove all system specific definitions.
	Declare raw API even if it is not installed, why bother?
	Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
	not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
	ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
	(UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
	* include/ffi_common.h (bool): Do not define.
	(ffi_assert): Accept failed assertion.
	(ffi_type_test): Return void and accept file/line.
	(FFI_ASSERT): Pass stringized failed assertion.
	(FFI_ASSERT_AT): New macro.
	(FFI_ASSERT_VALID_TYPE): New macro.
	(UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
	UINT64, SINT64): Define here with gcc's __attribute__ macro
	instead of in ffi.h
	(FLOAT32, ALIGN): Define here instead of in ffi.h
	* include/ffi-mips.h: Removed.  Its content moved to
	src/mips/ffitarget.h after separating assembly and C sections.
	* src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
	src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
	src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
	src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
	SIZEOF_ARG -> FFI_SIZEOF_ARG.
	* src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
	* src/debug.c (ffi_assert): Accept stringized failed assertion.
	(ffi_type_test): Rewritten.
	* src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
	FFI_ASSERT_VALID_TYPE.
	* src/alpha/ffitarget.h, src/arm/ffitarget.h,
	src/ia64/ffitarget.h, src/m68k/ffitarget.h,
	src/mips/ffitarget.h, src/powerpc/ffitarget.h,
	src/s390/ffitarget.h, src/sh/ffitarget.h,
	src/sh64/ffitarget.h, src/sparc/ffitarget.h,
	src/x86/ffitarget.h: New files.
	* src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
	src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
	src/powerpc/aix.S, src/powerpc/darwin.S,
	src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
	src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
	src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
	src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
	src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
	include fficonfig.h

From-SVN: r72766
2003-10-21 21:01:58 +02:00
Rainer Orth
27d54b2a6c ffi.c: Use _ABIN32, _ABIO32 instead of external _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
libffi:
	* src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
	_MIPS_SIM_NABI32, _MIPS_SIM_ABI32.

	libstdc++-v3:
	* config/cpu/mips/atomicity.h (__atomic_add): Use _ABIO32 instead
	of external _MIPS_SIM_ABI32.

	boehm-gc:
	* mips_sgi_mach_dep.s: Use _ABIO32 instead of external
	_MIPS_SIM_ABI32.

	gcc:
	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
	Use it in _MIPS_SIM definition.
	* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.

From-SVN: r72713
2003-10-20 18:37:22 +00:00
Andreas Tobler
0df6970d65 ffi_darwin.c (ffi_prep_args): Declare bytes again.
2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>

        * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
        Used when FFI_DEBUG = 1.

From-SVN: r72691
2003-10-20 06:25:32 +02:00
Alan Modra
2612ffce1f types.c (double, longdouble): Default POWERPC64 to 8 byte size and align.
* src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
	and align.

From-SVN: r72432
2003-10-14 02:07:44 +09:30
Rainer Orth
d54f735472 ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs, FFI_MIPS_O32 for O32 ABI.
* include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
	FFI_MIPS_O32 for O32 ABI.

From-SVN: r72161
2003-10-06 19:18:35 +00:00
Andreas Tobler
7a54c8507f libffi-dg.exp: Set LD_LIBRARY_PATH_64 for SPARC64.
2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
	SPARC64. Cleanup whitespaces.

From-SVN: r71982
2003-10-01 19:11:02 +02:00
Andreas Tobler
9e3bfa9b75 closure_fn0.c: Xfail mips, arm, strongarm, xscale.
2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
	strongarm, xscale. Cleanup whitespaces.
	* testsuite/libffi.call/closure_fn1.c: Likewise.
	* testsuite/libffi.call/closure_fn2.c: Likewise.
	* testsuite/libffi.call/closure_fn3.c: Likewise.
	* testsuite/libffi.call/cls_12byte.c: Likewise.
	* testsuite/libffi.call/cls_16byte.c: Likewise.
	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte.c: Likewise.
	* testsuite/libffi.call/cls_24byte.c: Likewise.
	* testsuite/libffi.call/cls_2byte.c: Likewise.
	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
	* testsuite/libffi.call/cls_3byte1.c: Likewise.
	* testsuite/libffi.call/cls_3byte2.c: Likewise.
	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
	* testsuite/libffi.call/cls_4byte.c: Likewise.
	* testsuite/libffi.call/cls_5byte.c: Likewise.
	* testsuite/libffi.call/cls_6byte.c: Likewise.
	* testsuite/libffi.call/cls_7byte.c: Likewise.
	* testsuite/libffi.call/cls_8byte.c: Likewise.
	* testsuite/libffi.call/cls_double.c: Likewise.
	* testsuite/libffi.call/cls_float.c: Likewise.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/nested_struct.c: Likewise.
	* testsuite/libffi.call/nested_struct1.c: Likewise.
	* testsuite/libffi.call/problem1.c: Likewise.
	* testsuite/libffi.special/unwindtest.cc: Likewise.
	* testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.

From-SVN: r71584
2003-09-19 21:21:53 +02:00
David Edelsohn
3e86b595ac aix.S: Cleanup whitespaces.
* src/powerpc/aix.S: Cleanup whitespaces.
        * src/powerpc/aix_closure.S: Likewise.

From-SVN: r71542
2003-09-18 16:53:19 -04:00
Andreas Tobler
8d8369f85b darwin.S: Cleanup whitespaces, comment formatting.
2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>

	* src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
	* src/powerpc/darwin_closure.S: Likewise.
	* src/powerpc/ffi_darwin.c: Likewise.

From-SVN: r71533
2003-09-18 21:35:46 +02:00
Andreas Tobler
69b182fda6 types.c (double): Add AIX and Darwin to the right TYPEDEF.
2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
	    David Edelsohn  <edelsohn@gnu.org>

	* src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
	* src/powerpc/aix_closure.S: Remove the pointer to the outgoing
	parameter stack.
	* src/powerpc/darwin_closure.S: Likewise.
	* src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
	according to the Darwin/AIX ABI.
	(ffi_prep_cif_machdep): Likewise.
	(ffi_closure_helper_DARWIN): Likewise.
	Remove the outgoing parameter stack logic. Simplify the evaluation
	of the different CASE types.
	(ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
	statement in the trampoline code.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r71530
2003-09-18 20:23:47 +02:00
Kaz Kojima
df805cdc54 ffi.c (ffi_prep_args): Take account into the alignement for the register size.
* src/sh/ffi.c (ffi_prep_args): Take account into the alignement
	for the register size.
	(ffi_closure_helper_SYSV): Handle the structure return value
	address correctly.
	(ffi_closure_helper_SYSV): Return the appropriate type when
	the registers are used for the structure return value.
	* src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
	the 64-bit return value.  Update copyright years.

From-SVN: r71521
2003-09-18 14:08:20 +00:00
Rainer Orth
eb26c76c64 libffi-dg.exp (libffi_target_compile): Search in srcdir for ffi_mips.h.
* testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
	srcdir for ffi_mips.h.

From-SVN: r71469
2003-09-17 17:59:15 +00:00
Alan Modra
6350c02cb6 prep_cif.c (initialize_aggregate): Include tail padding in structure size.
* src/prep_cif.c (initialize_aggregate): Include tail padding in
	structure size.
	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
	placement of float result.
	* testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
	cast of "resp" for big-endian 64 bit machines.

From-SVN: r71323
2003-09-12 09:24:40 +09:30
Alan Modra
5af1c8062d types.c (double, longdouble): Merge identical SH and ARM typedefs, and add POWERPC64.
* src/types.c (double, longdouble): Merge identical SH and ARM
	typedefs, and add POWERPC64.
	* src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
	struct split over gpr and rest.
	(ffi_prep_cif_machdep): Correct intarg_count for structures.
	* src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.

From-SVN: r71295
2003-09-11 14:47:57 +09:30
Andreas Tobler
086a4bd7dd 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
* src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
	passing correctly.

From-SVN: r71238
2003-09-09 19:37:53 +02:00
Alan Modra
e517f63617 * libtool.m4 (LD): Correct powerpc64 host match.
From-SVN: r71229
2003-09-09 15:54:39 +09:30
Andreas Tobler
6f20d62741 Makefile.am: Remove build rules for ffitest.
2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am: Remove build rules for ffitest.
	* Makefile.in: Rebuilt.

From-SVN: r71078
2003-09-04 19:21:51 +02:00
Andreas Tobler
226660aff3 sorry forgot the changelog.
From-SVN: r71073
2003-09-04 16:58:22 +02:00
Andreas Tobler
bbf3057bf9 003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
	* Makefile.in: Rebuilt.
	* configure.in: Add dejagnu test framework.
	* configure: Rebuilt.

	* testsuite/Makefile.am: New file.
	* testsuite/Makefile.in: Built
	* testsuite/lib/libffi-dg.exp: New file.
	* testsuite/config/default.exp: Likewise.
	* testsuite/libffi.call/call.exp: Likewise.
	* testsuite/libffi.call/ffitest.h: Likewise.
	* testsuite/libffi.call/closure_fn0.c: Likewise.
	* testsuite/libffi.call/closure_fn1.c: Likewise.
	* testsuite/libffi.call/closure_fn2.c: Likewise.
	* testsuite/libffi.call/closure_fn3.c: Likewise.
	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
	* testsuite/libffi.call/cls_2byte.c: Likewise.
	* testsuite/libffi.call/cls_3byte1.c: Likewise.
	* testsuite/libffi.call/cls_3byte2.c: Likewise.
	* testsuite/libffi.call/cls_4byte.c: Likewise.
	* testsuite/libffi.call/cls_5byte.c: Likewise.
	* testsuite/libffi.call/cls_6byte.c: Likewise.
	* testsuite/libffi.call/cls_7byte.c: Likewise.
	* testsuite/libffi.call/cls_8byte.c: Likewise.
	* testsuite/libffi.call/cls_12byte.c: Likewise.
	* testsuite/libffi.call/cls_16byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte.c: Likewise.
	* testsuite/libffi.call/cls_24byte.c: Likewise.
	* testsuite/libffi.call/cls_double.c: Likewise.
	* testsuite/libffi.call/cls_float.c: Likewise.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/float.c: Likewise.
	* testsuite/libffi.call/float1.c: Likewise.
	* testsuite/libffi.call/float2.c: Likewise.
	* testsuite/libffi.call/many.c: Likewise.
	* testsuite/libffi.call/many_win32.c: Likewise.
	* testsuite/libffi.call/nested_struct.c: Likewise.
	* testsuite/libffi.call/nested_struct1.c: Likewise.
	* testsuite/libffi.call/pyobjc-tc.c: Likewise.
	* testsuite/libffi.call/problem1.c: Likewise.
	* testsuite/libffi.call/promotion.c: Likewise.
	* testsuite/libffi.call/return_ll.c: Likewise.
	* testsuite/libffi.call/return_sc.c: Likewise.
	* testsuite/libffi.call/return_uc.c: Likewise.
	* testsuite/libffi.call/strlen.c: Likewise.
	* testsuite/libffi.call/strlen_win32.c: Likewise.
	* testsuite/libffi.call/struct1.c: Likewise.
	* testsuite/libffi.call/struct2.c: Likewise.
	* testsuite/libffi.call/struct3.c: Likewise.
	* testsuite/libffi.call/struct4.c: Likewise.
	* testsuite/libffi.call/struct5.c: Likewise.
	* testsuite/libffi.call/struct6.c: Likewise.
	* testsuite/libffi.call/struct7.c: Likewise.
	* testsuite/libffi.call/struct8.c: Likewise.
	* testsuite/libffi.call/struct9.c: Likewise.
	* testsuite/libffi.special/special.exp: New file.
	* testsuite/libffi.special/ffitestcxx.h: Likewise.
	* testsuite/libffi.special/unwindtest.cc: Likewise.

From-SVN: r71068
2003-09-04 16:47:05 +02:00
Kaz Kojima
996b4f8f5a ffi.c (OFS_INT16): Set 0 for little endian case.
* src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
	copyright years.

From-SVN: r70421
2003-08-13 23:36:54 +00:00
Alan Modra
b00badcd91 ffi.c (ffi_prep_args64): Modify for changed gcc structure passing.
* src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
	structure passing.
	(ffi_closure_helper_LINUX64): Likewise.
	* src/powerpc/linux64.S: Remove code writing to parm save area.
	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
	address in lr from ffi_closure_helper_LINUX64 call to calculate
	table address.  Optimize function tail.

From-SVN: r70050
2003-08-02 00:49:01 +09:30
Andreas Tobler
c1516eae87 re PR libffi/11410 (ffitest failures on Solaris 8/SPARC)
2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>

        * src/sparc/ffi.c: Handle all floating point registers.
        * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.

From-SVN: r69951
2003-07-30 06:04:24 +02:00
Gerald Pfeifer
fc0e6222b1 README: Note that libffi is not part of GCC.
* README: Note that libffi is not part of GCC.  Update the project
	URL and status.

From-SVN: r69250
2003-07-11 22:13:16 +00:00
Franz Sirl
a1569df8f6 ppc_closure.S: Include ffi.h.
2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* src/powerpc/ppc_closure.S: Include ffi.h.

From-SVN: r68191
2003-06-19 11:55:56 +00:00
Rainer Orth
12e816bf16 sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
* src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
	Use C style comments.

From-SVN: r67891
2003-06-13 11:59:53 +00:00
Kaz Kojima
e860ed6dce Makefile.am: Add SHmedia support.
* Makefile.am: Add SHmedia support.  Fix a typo of SH support.
	* Makefile.in: Regenerate.
	* configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
	* configure: Regenerate.
	* include/ffi.h.in: Add SHmedia support.
	* src/sh64/ffi.c: New file.
	* src/sh64/sysv.S: New file.

From-SVN: r67869
2003-06-13 02:23:26 +00:00
Jakub Jelinek
a733b15e51 configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section should be read-only.
* configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
	should be read-only.
	* configure: Rebuilt.
	* fficonfig.h.in: Rebuilt.
	* include/ffi.h.in (EH_FRAME_FLAGS): Define.
	* src/alpha/osf.S: Use EH_FRAME_FLAGS.
	* src/powerpc/linux64.S: Likewise.
	* src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
	* src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
	if -fpic/-fPIC/-mrelocatable.
	* src/powerpc/powerpc_closure.S: Likewise.
	* src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
	#write in .eh_frame flags.
	* src/sparc/v9.S: Likewise.
	* src/x86/unix64.S: Use EH_FRAME_FLAGS.
	* src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
	* src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.

From-SVN: r66887
2003-05-17 00:09:22 +02:00
Jeff Sturm
bd19c9f4f2 Solaris 7 .register fix.
From-SVN: r66617
2003-05-08 20:41:24 +00:00
Jakub Jelinek
e9b841813c configure.in (powerpc64*-*-linux*): Remove.
* configure.in (powerpc64*-*-linux*): Remove.
	* configure: Rebuilt.
libffi/
	* include/ffi.h.in (POWERPC64): Define if 64-bit.
	(enum ffi_abi): Add FFI_LINUX64 on POWERPC.
	Make it the default on POWERPC64.
	(FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
	* configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
	* configure: Rebuilt.
	* src/powerpc/ffi.c (hidden): Define.
	(ffi_prep_args_SYSV): Renamed from
	ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
	(NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
	ASM_NEEDS_REGISTERS64): New.
	(ffi_prep_args64): New function.
	(ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
	(ffi_call): Likewise.
	(ffi_prep_closure): Likewise.
	(flush_icache): Surround by #ifndef POWERPC64.
	(ffi_dblfl): New union type.
	(ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
	(ffi_closure_helper_LINUX64): New function.
	* src/powerpc/ppc_closure.S: Surround whole file by #ifndef
	__powerpc64__.
	* src/powerpc/sysv.S: Likewise.
	(ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
	* src/powerpc/linux64.S: New file.
	* src/powerpc/linux64_closure.S: New file.
	* Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
	src/powerpc/linux64_closure.S.
	(TARGET_SRC_POWERPC): Likewise.

	* src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
	closure_test_fn3): Fix result printing on big-endian 64-bit
	machines.
	(main): Print tst2_arg instead of uninitialized tst2_result.

	* src/ffitest.c (main): Hide what closure pointer really points to
	from the compiler.

From-SVN: r65781
2003-04-18 14:32:36 +02:00
Richard Earnshaw
908a31e1b1 configure.in (arm-*-netbsdelf*): Add configuration.
* configure.in (arm-*-netbsdelf*): Add configuration.
(configure): Regenerated.

From-SVN: r65691
2003-04-16 18:25:33 +00:00
Loren J. Rittle
41a73c4c6c * include/Makefile.in: Regenerate.
From-SVN: r65264
2003-04-05 01:44:53 +00:00
Andreas Schwab
6db450f90a configure.in: Avoid trailing /.
2003-03-10  Andreas Schwab  <schwab@suse.de>

boehm-gc:
	* configure.in: Avoid trailing /. in toolexeclibdir.
	* configure: Rebuilt.

libf2c:
	* aclocal.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Avoid trailing /. in
	glibcpp_toolexeclibdir.
	* configure: Rebuilt.

libffi:
	* configure.in: Avoid trailing /. in toolexeclibdir.
	* configure: Rebuilt.

libjava:
	* configure.in: Avoid trailing /. in toolexeclibdir.
	* configure: Rebuilt.

libobjc:
	* aclocal.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Avoid trailing /. in
	glibcpp_toolexeclibdir.
	* configure: Rebuilt.

libstdc++-v3:
	* acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Avoid trailing /. in
	glibcpp_toolexeclibdir.
	* aclocal.m4, configure: Rebuilt.

zlib:
	* configure.in: Avoid trailing /. in toolexeclibdir.
	* configure: Rebuilt.

From-SVN: r64805
2003-03-24 15:29:54 +00:00
Zdenek Dvorak
cd41c847e7 ffi.h.in: Define X86 instead of X86_64 in 32 bit mode.
* libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
	bit mode.
	* libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
	Receive closure pointer through parameter, read args using
	__builtin_dwarf_cfa.
	(FFI_INIT_TRAMPOLINE): Send closure reference through eax.

From-SVN: r64663
2003-03-21 13:43:20 +00:00
Andreas Tobler
70144e9c6c Andreas Tobler <a.tobler@schweiz.ch>
* src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.

From-SVN: r64106
2003-03-10 20:10:26 +01:00
Andreas Tobler
79e43f898d darwin_closure.S: Fix alignement bug, allocate 8 bytes for the result.
2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>

        * libffi/src/powerpc/darwin_closure.S:
        Fix alignement bug, allocate 8 bytes for the result.
        * libffi/src/powerpc/aix_closure.S:
        Likewise.
        * libffi/src/powerpc/ffi_darwin.c:
        Update stackframe description for aix/darwin_closure.S.

From-SVN: r62514
2003-02-07 05:31:20 +01:00
Jakub Jelinek
0fcc9e55d4 ffi.c (ffi_closure_helper_SYSV): Add hidden visibility attribute.
* src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
	attribute.

From-SVN: r62454
2003-02-06 00:58:57 +01:00