Commit Graph

161 Commits

Author SHA1 Message Date
Alan Modra
12001e0ff9 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
From-SVN: r77533
2004-02-09 23:40:37 +10:30
Alan Modra
4243752ca1 ffi.c (ffi_prep_args64): Correct long double handling.
* src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
	(ffi_closure_helper_LINUX64): Fix typo.
	* testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
	for powerpc64-*-*.
	* testsuite/libffi.call/float.c: Likewise.
	* testsuite/libffi.call/float2.c: Likewise.

From-SVN: r77522
2004-02-09 14:09:48 +10:30
Alan Modra
bf310028ad ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct long double function return and long double arg handling.
* src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
	long double function return and long double arg handling.
	(ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
	Use "end_pfr" instead of "nf".  Correct long double handling.
	Localise "temp".
	* src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
	return value.
	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
	space for long double return value.  Adjust stack frame and offsets.
	Load f2 long double return.

From-SVN: r77481
2004-02-08 22:41:25 +10:30
Alan Modra
dd5f9ea23b * src/types.c: Use 16 byte long double for POWERPC64.
From-SVN: r77441
2004-02-07 13:41:59 +10:30
Eric Botcazou
0ce78f010d ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure return address is passed in %o0.
* src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
	when the structure return address is passed in %o0.
	(ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
	(ffi_v9_layout_struct): Align the field following a nested structure
	on a word boundary.  Use memmove instead of memcpy.
	(ffi_call): Update call to ffi_V9_return_struct.
	(ffi_prep_closure): Define 'ctx' only for V8.
	(ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
	and ffi_closure_sparc_inner_v9.
	(ffi_closure_sparc_inner_v8): Return long doubles by reference.
	Always skip the structure return address.  For structures and long
	doubles, copy the argument directly.
	(ffi_closure_sparc_inner_v9): Skip the structure return address only
	if required.  Shift the maximum floating-point slot accordingly.  For
	big structures, copy the argument directly; otherwise, left-justify the
	argument and call ffi_v9_layout_struct to lay out the structure on
	the stack.
	* src/sparc/v8.S: Undef STACKFRAME before defining it.
	(ffi_closure_v8): Pass the structure return address.  Update call to
	ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
	Skip the 'unimp' insn when returning long doubles and structures.
	* src/sparc/v9.S: Undef STACKFRAME before defining it.
	(ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
	FFI_TYPE_INT handling.  Load structures both in integers and
	floating-point registers on return.
	* README: Update status of the SPARC port.

From-SVN: r76543
2004-01-25 06:58:33 +00:00
Andreas Tobler
7fcc1d9baf pyobjc-tc.c (main): Treat result value as of type ffi_arg.
2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
	as of type ffi_arg.
	* testsuite/libffi.call/struct3.c (main): Fix CHECK.

From-SVN: r76513
2004-01-24 17:13:48 +01:00
Ulrich Weigand
6ed0ecaf30 cls_uint.c (cls_ret_uint_fn): Treat result value as of type ffi_arg, not unsigned int.
* testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
	value as of type ffi_arg, not unsigned int.

From-SVN: r76377
2004-01-22 23:05:13 +00:00
Michael Ritzert
c930d8a53c ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead of the LHS.
2004-01-21  Michael Ritzert  <ritzert@t-online.de>

	* ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
	of the LHS.

From-SVN: r76261
2004-01-21 07:11:09 +01:00
Andreas Tobler
7b2e3e60a6 libffi-dg.exp: Set LD_LIBRARY_PATH_32 for Solaris.
2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
	Solaris.

From-SVN: r75760
2004-01-12 21:49:14 +01:00
Rainer Orth
2e89756b55 ffitest.h (allocate_mmap): Cast MAP_FAILED to void *.
* testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
	to void *.

From-SVN: r75548
2004-01-08 12:15:17 +00:00
Richard Henderson
628b26f8b2 cls_align_pointer.c: Cast pointers to size_t instead of int.
* testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
        size_t instead of int.

From-SVN: r74492
2003-12-10 01:43:29 -08:00
Hosaka Yuji
0ee646d6ac many_win32.c: Include <float.h>.
2003-12-04  Hosaka Yuji  <hos@tamanegi.org>

	* testsuite/libffi.call/many_win32.c: Include <float.h>.
	* testsuite/libffi.call/many_win32.c (main): Replace variable
	int i with unsigned long ul.

	* testsuite/libffi.call/cls_align_uint64.c: New test case.
	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
	* testsuite/libffi.call/cls_align_float.c: Likewise.
	* testsuite/libffi.call/cls_align_double.c: Likewise.
	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
	* testsuite/libffi.call/cls_align_pointer.c: Likewise.

From-SVN: r74282
2003-12-04 18:51:17 +01:00
Hosaka Yuji
2c4ed4565a re PR libffi/13221 (libffi's closure couldn't pass sequence of char and/or short arguments.)
2003-12-02  Hosaka Yuji  <hos@tamanegi.org>

	PR other/13221
	* src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
	Align arguments to 32 bits.

From-SVN: r74161
2003-12-02 06:39:06 +01:00
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