Commit Graph

30 Commits

Author SHA1 Message Date
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
Loren J. Rittle
41a73c4c6c * include/Makefile.in: Regenerate.
From-SVN: r65264
2003-04-05 01:44:53 +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
Andrew Haley
fd2e49b2ac ffi.h.in: Enable FFI_CLOSURES for x86_64.
2003-01-28  Andrew Haley  <aph@redhat.com>

        * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
        * src/x86/ffi64.c (ffi_prep_closure): New.
        (ffi_closure_UNIX64_inner): New.
        * src/x86/unix64.S (ffi_closure_UNIX64): New.

From-SVN: r61978
2003-01-28 15:54:28 +00:00
Jeff Sturm
c75c7793f5 ffi.h.in: Add closure defines for SPARC, SPARC64.
* include/ffi.h.in: Add closure defines for SPARC, SPARC64.
* src/ffitest.c (main): Use static storage for closure.
* src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
* src/sparc/v8.S (ffi_closure_v8): New.
* src/sparc/v9.S (ffi_closure_v9): New.

From-SVN: r60857
2003-01-03 23:08:56 +00:00
Ranjit Mathew
eb3c46a17e ffi.h.in: Added FFI_STDCALL ffi_type enumeration for X86_WIN32.
2002-11-10  Ranjit Mathew <rmathew@hotmail.com>

	* include/ffi.h.in: Added FFI_STDCALL ffi_type
	  enumeration for X86_WIN32.
	* src/x86/win32.S: Added ffi_call_STDCALL function
	  definition.
	* src/x86/ffi.c (ffi_call/ffi_raw_call): Added
	  switch cases for recognising FFI_STDCALL and
	  calling ffi_call_STDCALL if target is X86_WIN32.
	* src/ffitest.c (my_stdcall_strlen/stdcall_many):
	  stdcall versions of the "my_strlen" and "many"
	  test functions (for X86_WIN32).
	  Added test cases to test stdcall invocation using
	  these functions.

From-SVN: r59878
2002-12-06 01:16:45 +00:00
Bo Thorsen
5d2975841c * include/ffi.h.in: Fix i386 win32 compilation.
From-SVN: r57691
2002-10-01 17:38:00 +02:00
Ulrich Weigand
c4f17c6f58 configure.in: Add s390x-*-linux-* target.
* configure.in: Add s390x-*-linux-* target.
	* configure: Regenerate.
	* include/ffi.h.in: Define S390X for s390x targets.
	(FFI_CLOSURES): Define for s390/s390x.
	(FFI_TRAMPOLINE_SIZE): Likewise.
	(FFI_NATIVE_RAW_API): Likewise.
	* src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
	* src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
	* src/s390/ffi.c: Major rework of existing code.  Add support for
	s390x targets.  Add closure support.
	* src/s390/sysv.S: Likewise.

From-SVN: r57646
2002-09-30 11:59:42 +00:00
Bo Thorsen
0b0f416385 ffi.h.in: Fix multilib x86-64 support.
2002-09-27  Bo Thorsen  <bo@suse.de>

        * include/ffi.h.in: Fix multilib x86-64 support.

From-SVN: r57589
2002-09-27 16:37:23 +02:00
Kaz Kojima
ddebdfebad Makefile.am: Add SH support.
* Makefile.am: Add SH support.
	* Makefile.in: Regenerate.
	* configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
	* configure: Regenerate.
	* include/ffi.h.in: Add SH support.
	* src/sh/ffi.c: New file.
	* src/sh/sysv.S: New file.
	* src/types.c: Add SH support.

From-SVN: r55574
2002-07-19 01:08:43 +00:00
Bo Thorsen
c94974caed [multiple changes]
2002-07-16  Bo Thorsen  <bo@suse.de>

	* src/x86/ffi64.c: New file that adds x86-64 support.
	* src/x86/unix64.S: New file that handles argument setup for
	x86-64.
	* src/x86/sysv.S: Don't use this on x86-64.
	* src/x86/ffi.c: Don't use this on x86-64.
	Remove unused vars.
	* src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
	for x86-64.
	* src/ffitest.c (struct6): New test that tests a special case in
	the x86-64 ABI.
	(struct7): Likewise.
	(struct8): Likewise.
	(struct9): Likewise.
	(closure_test_fn): Silence warning about this when it's not used.
	(main): Add the new tests.
	(main): Fix a couple of wrong casts and silence some compiler warnings.
	* include/ffi.h.in: Add x86-64 ABI definition.
	* fficonfig.h.in: Regenerate.
	* Makefile.am: Add x86-64 support.
	* configure.in: Likewise.
	* Makefile.in: Regenerate.
	* configure: Likewise.

2002-06-24  Bo Thorsen  <bo@suse.de>

	* src/types.c: Merge settings for similar architectures.
	Add x86-64 sizes and alignments.

2002-06-23  Bo Thorsen  <bo@suse.de>

	* src/arm/ffi.c (ffi_prep_args): Remove unused vars.
	* src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
	* src/mips/ffi.c (ffi_prep_args): Likewise.
	* src/m68k/ffi.c (ffi_prep_args): Likewise.

From-SVN: r55571
2002-07-19 01:08:31 +02:00
Gerhard Tonn
22bcf65c52 Makefile.am: Add Linux for S/390 support.
2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>

	* Makefile.am: Add Linux for S/390 support.
	* Makefile.in: Regenerate.
	* configure.in: Add Linux for S/390 support.
	* configure: Regenerate.
	* include/ffi.h.in: Add Linux for S/390 support.
	* src/s390/ffi.c: New file from libffi CVS tree.
	* src/s390/sysv.S: New file from libffi CVS tree.

From-SVN: r52873
2002-04-29 05:14:44 +01:00
Andreas Tobler
073ae293d9 Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
	    David Edelsohn  <edelsohn@gnu.org>

	* Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
	(TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
	(TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
	* Makefile.in: Regenerate.
	* include/ffi.h.in: Add AIX and Darwin closure definitions.
	* src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
	(flush_icache, flush_range): New functions.
	(ffi_closure_helper_DARWIN): New function.
	* src/powerpc/aix_closure.S: New file.
	* src/powerpc/darwin_closure.S: New file.

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

From-SVN: r50408
2002-03-07 13:24:42 -05:00
Jeff Sturm
02c521f439 ffi.h.in: Add typedef for ffi_arg.
* include/ffi.h.in: Add typedef for ffi_arg.
        * src/ffitest.c (main): Declare rint with ffi_arg.

From-SVN: r50006
2002-02-24 17:31:45 +00:00
David Edelsohn
2f4006f8c7 Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
* Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
        (TARGET_SRC_POWERPC_AIX): New.
        (POWERPC_AIX): New stanza.
        * Makefile.in: Regenerate.
        * configure.in: Add AIX case.
        * configure: Regenerate.
        * include/ffi.h.in (ffi_abi): Add FFI_AIX.
        * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
        size.  Fix "long double" support.
        (ffi_call): Add FFI_AIX case.
        * src/powerpc/aix.S: New.

From-SVN: r48956
2002-01-17 11:04:21 -05:00
John Hornkvist
3c017635c9 Implement Darwin PowerPC ABI.
2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>

        Implement Darwin PowerPC ABI.
        * configure.in: Handle powerpc-*-darwin*.
        * Makefile.am: Set source files for POWERPC_DARWIN.
        * configure: Rebuilt.
        * Makefile.in: Rebuilt.
        * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
        POWERPC_DARWIN.
        * src/powerpc/darwin.S: New file.
        * src/powerpc/ffi_darwin.c: New file.

From-SVN: r46112
2001-10-09 06:32:16 +01:00
Jon Beniston
d6c4152ac0 configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
2001-03-27  Jon Beniston  <jon@beniston.com>

	* configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
	* configure: Rebuilt.
	* Makefile.am: Added X86_WIN32 target support.
	* Makefile.in: Rebuilt.

	* include/ffi.h.in: Added X86_WIN32 target support.

	* src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
	* src/types.c: Added X86_WIN32 target support.

	* src/x86/win32.S: New file. Based on sysv.S, but with EH
	stuff removed and made to work with CygWin's gas.

From-SVN: r40860
2001-03-27 03:39:16 +01:00
Kevin B Hendricks
cc4c8975aa ppc_closure.S: New file.
* src/powerpc/ppc_closure.S: New file.
	* src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
	involving long long and register pairs.
	(ffi_prep_closure): New function.
	(flush_icache): Likewise.
	(ffi_closure_helper_SYSV): Likewise.
	* include/ffi.h.in (FFI_CLOSURES): Define on PPC.
	(FFI_TRAMPOLINE_SIZE): Likewise.
	(FFI_NATIVE_RAW_API): Likewise.
	* Makefile.in: Rebuilt.
	* Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
	(TARGET_SRC_POWERPC): Likewise.

From-SVN: r40807
2001-03-24 03:26:28 +00:00
Nick Clifton
4d2cf7156f Remove RCS ident strings to allow comparisions with multiple source checkouts to work
From-SVN: r40195
2001-03-02 22:21:24 +00:00
Joseph Myers
7e5fd99fd3 gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
gcc/java/:
	* gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.

libffi/:
	* include/ffi.h.in: Change sourceware.cygnus.com references to
	gcc.gnu.org.

libjava/:
	* README, gij.cc, java/lang/natClass.cc, java/lang/natSystem.cc:
	Change sources.redhat.com and sourceware.cygnus.com references to
	gcc.gnu.org.

From-SVN: r39531
2001-02-08 01:49:53 +00:00
Richard Henderson
29fe047981 libffi closures for Alpha
From-SVN: r38136
2000-12-08 19:41:15 +00:00
Jakub Jelinek
3791773c93 Port to sparc 32 and 64 Linux.
From-SVN: r33196
2000-04-17 02:15:32 +00:00
Tom Tromey
3c18f2d1d0 configure: Rebuilt.
* configure: Rebuilt.
	* configure.in (--enable-multilib): New option.
	(libffi_basedir): New subst.
	(AC_OUTPUT): Added multilib code.

From-SVN: r32311
2000-03-03 16:58:42 +00:00
Hans Boehm
dc5de37072 ffi.c, [...]: New files.
2000-02-25  Hans Boehm <boehm@acm.org>

	* src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
	files.
	* src/raw_api.c (ffi_translate_args): Fixed typo in argument
	list.
	(ffi_prep_raw_closure): Use ffi_translate_args, not
	ffi_closure_translate.
	* src/java_raw_api.c: New file.
	* src/ffitest.c (closure_test_fn): New function.
	(main): Define `rint' as long long on IA64.  Added new test when
	FFI_CLOSURES is defined.
	* include/ffi.h.in (ALIGN): Use size_t, not unsigned.
	(ffi_abi): Recognize IA64.
	(ffi_raw): Added `flt' field.
	Added "Java raw API" code.
	* configure.in: Recognize ia64.
	* Makefile.am (TARGET_SRC_IA64): New macro.
	(libffi_la_common_SOURCES): Added java_raw_api.c.
	(libffi_la_SOURCES): Define in IA64 case.

From-SVN: r32151
2000-02-25 19:13:44 +00:00
Tom Tromey
d79229bd58 * Makefile.in: Rebuilt with newer automake.
From-SVN: r31220
2000-01-04 23:06:17 +00:00
Tom Tromey
2c33b220da * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
From-SVN: r31152
1999-12-31 22:44:09 +00:00
Tom Tromey
6ba9e3b09e ffi.h.in: Removed PACKAGE and VERSION defines and undefs.
* include/ffi.h.in: Removed PACKAGE and VERSION defines and
	undefs.
	* fficonfig.h.in: Rebuilt.
	* configure: Rebuilt.
	* configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
	Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
	* acconfig.h: Don't #undef PACKAGE or VERSION.

From-SVN: r29038
1999-09-01 23:16:34 +00:00
Rainer Orth
0721f64ea4 Makefile.in: Rebuilt.
* include/Makefile.in: Rebuilt.
	* Makefile.in: Rebuilt
	* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
	builds.
	Use USE_LIBDIR.

	* configure: Rebuilt.
	* configure.in (USE_LIBDIR): Define for native builds.
	Use lowercase in configure --help explanations.

From-SVN: r28639
1999-08-10 05:29:27 +00:00
Anthony Green
8d25f6084d * include/ffi.h.in (FFI_FN): Remove `...'.
From-SVN: r28610
1999-08-09 02:52:58 +00:00
Anthony Green
248c0b6908 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
        * Makefile.am (AM_CFLAGS): Compile with -fexceptions.

        * src/x86/sysv.S: Add exception handling metadata.

also, add missing files.

From-SVN: r28601
1999-08-08 22:58:30 +00:00