Alan Modra
e73d2479dd
ffitarget.h: Import from upstream.
...
* src/powerpc/ffitarget.h: Import from upstream.
* src/powerpc/ffi_powerpc.h: Likewise.
* src/powerpc/ffi.c: Likewise.
* src/powerpc/ffi_sysv.c: Likewise.
* src/powerpc/ffi_linux64.c: Likewise.
* src/powerpc/sysv.S: Likewise.
* src/powerpc/ppc_closure.S: Likewise.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise.
* src/types.c: Likewise.
* Makefile.am (EXTRA_DIST): Add new src/powerpc files.
(nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
* configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
* include/ffi.h.in (ffi_prep_types): Declare.
* src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
* configure: Regenerate.
* fficonfig.h.in: Regenerate.
* Makefile.in: Regenerate.
* man/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
From-SVN: r205844
2013-12-10 11:12:14 +10:30
Alan Modra
fd4da58cd8
ppc_closure.S: Don't bl .Luint128.
...
* src/powerpc/ppc_closure.S: Don't bl .Luint128.
From-SVN: r204918
2013-11-18 01:14:03 +10:30
Alan Modra
3521ba8b2e
PowerPC64 ELFv2 support
...
PowerPC64 ELFv2 support
* src/powerpc/ffitarget.h: Import from upstream.
* src/powerpc/ffi.c: Likewise.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise.
* doc/libffi.texi: Likewise.
* testsuite/libffi.call/cls_double_va.c: Likewise.
* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
From-SVN: r204917
2013-11-18 01:05:08 +10:30
Alan Modra
3cbe17f7de
libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match.
...
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
ppc host match. Support little-endian powerpc linux hosts.
Regenerate configure throughout.
From-SVN: r202773
2013-09-20 19:17:52 +09:30
Alan Modra
40b45a6d76
ffi.c (ffi_prep_args_SYSV): Move var declaration before statements.
...
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
before statements.
(ffi_prep_args64): Support little-endian.
(ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
From-SVN: r200383
2013-06-25 09:38:47 +09:30
Dominique d'Humieres
1e1ba2d795
Fix several libffi testsuite failures on 64-bit SPARC and PowerPC (PR libffi/56033)
...
PR libffi/56033
* testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
ffi_arg *.
* testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
* testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
* testsuite/libffi.call/va_struct1.c (main): Likewise.
Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
From-SVN: r199194
2013-05-22 11:47:52 +00:00
Kai Tietz
8280eba03b
win64.S: Make use of ffi_closure_win64_inner symbol pc-relative.
...
* src/x86/win64.S: Make use of ffi_closure_win64_inner
symbol pc-relative.
From-SVN: r196900
2013-03-22 10:38:55 +01:00
Dave Korn
bb78d7c4a2
closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside enclosing #if scope.
...
* src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
Move default definition outside enclosing #if scope.
From-SVN: r196527
2013-03-07 22:25:20 +00:00
Andreas Tobler
8f093ea0b1
ffi.c (ffi_prep_cif_machdep): Fix case where DOUBLE equal LONGDOUBLE.
...
2013-02-06 Andreas Tobler <andreast@fgznet.ch>
* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
DOUBLE equal LONGDOUBLE.
From-SVN: r195812
2013-02-06 18:32:41 +01:00
Thorsten Glaser
7b045477e2
re PR libffi/56000 (FAIL: libffi.call/cls_uchar_va.c -O0 -W -Wall output pattern test)
...
2013-01-07 Thorsten Glaser <tg@mirbsd.org>
PR middle-end/56000
* testsuite/libffi.call/cls_uchar_va.c,
testsuite/libffi.call/cls_ushort_va.c,
testsuite/libffi.call/va_1.c: Testsuite fixes.
From-SVN: r195277
2013-01-17 19:24:08 +01:00
Andreas Schwab
4e70f25ffe
* Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
...
(STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES)
(MAINTAINERCLEANFILES): Define.
(all-local, stamp-geninsrc, stamp-build-info): New targets.
(doc/libffi.info): Depend on $(STAMP_BUILD_INFO)
* configure.ac: Check for modern makeinfo. Add support for
--enable-generated-files-in-srcdir.
* libffi/mdate-sh: New file.
* testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite
lib dir.
(libffi-init): Properly set library paths for multilibs and add
path to libstdc++.
* configure: Regenerate.
* aclocal.m4: Regenerate.
* Makefile.in: Regenerate.
* doc/stamp-vti: Regenerate.
* doc/version.texi: Regenerate.
* fficonfig.h.in: Regenerate.
* include/Makefile.in: Regenerate.
* man/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
From-SVN: r194752
2012-12-29 16:25:27 +00:00
Anthony Green
b4b575ce78
libffi merge
...
From-SVN: r194722
2012-12-26 16:28:02 +00:00
Alan Modra
7054d980c1
linux64_closure.S: Add new ABI support.
...
* src/powerpc/linux64_closure.S: Add new ABI support.
* src/powerpc/linux64.S: Likewise.
From-SVN: r193015
2012-10-31 14:15:34 +10:30
David Edelsohn
cbbd536a26
* configure: Regenerated.
...
From-SVN: r191320
2012-09-14 19:31:56 -04:00
Andrew Pinski
c5a3fffaab
re PR libffi/53014 (libffi failures on mips64-linux-gnu with soft-float)
...
2012-08-26 Andrew Pinski <apinski@cavium.com>
PR libffi/53014
* src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
soft-float.
From-SVN: r190696
2012-08-26 11:29:21 -07:00
Uros Bizjak
aa5d8db019
ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong.
...
* src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
just return FFI_BAD_ABI when things are wrong.
From-SVN: r190230
2012-08-08 16:48:43 +02:00
Uros Bizjak
1ff8c79bc5
ChangeLog.libgcj: Move last two entries ...
...
* ChangeLog.libgcj: Move last two entries ...
* ChangeLog: ... here.
From-SVN: r189627
2012-07-18 21:40:46 +02:00
H.J. Lu
d6a89122a6
Define FFI_SIZEOF_JAVA_RAW to 4 for x32
...
PR libffi/53982
PR libffi/53973
* src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for
x32.
(FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
From-SVN: r189626
2012-07-18 12:19:34 -07:00
H.J. Lu
e6d5f8c9c4
Regenerate configure files for libtool.m4 change
...
boehm-gc/
* configure: Regenerated.
gcc/
* configure: Regenerated.
libatomic/
* configure: Regenerated.
libffi/
* configure: Regenerated.
libgfortran/
* configure: Regenerated.
libgomp/
* configure: Regenerated.
libitm/
* configure: Regenerated.
libjava/classpath/
* configure: Regenerated.
libjava/
* configure: Regenerated.
libmudflap/
* configure: Regenerated.
libobjc/
* configure: Regenerated.
libquadmath/
* configure: Regenerated.
libssp/
* configure: Regenerated.
libstdc++-v3/
* configure: Regenerated.
lto-plugin/
* configure: Regenerated.
zlib/
* configure: Regenerated.
From-SVN: r187616
2012-05-16 15:11:18 -07:00
Peter Bergner
efe2a4b70e
ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
...
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
Silence casting pointer to integer of different size warning.
Delete goto to previously deleted label.
(ffi_call): Silence possibly undefined warning.
(ffi_closure_helper_SYSV): Declare variable type.
From-SVN: r186091
2012-04-02 13:29:22 -05:00
Anthony Green
6adb730866
Restore trampled commits
...
From-SVN: r185955
2012-03-29 12:41:52 +00:00
David Edelsohn
e555251484
Add missing ChangeLog entry from 2012-03-09 commit.
...
From-SVN: r185499
2012-03-17 20:45:24 -04:00
Kaz Kojima
60f9021b2a
ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong.
...
* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
just return FFI_BAD_ABI when things are wrong.
* src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
From-SVN: r185361
2012-03-13 22:50:16 +00:00
David Edelsohn
935a74eea2
aix_closure.S (ffi_closure_ASM): Adjust for Darwin64 change to return value of ffi_closure_helper_DARWIN and...
...
* src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
change to return value of ffi_closure_helper_DARWIN and load type
from return type.
From-SVN: r185152
2012-03-09 14:51:54 -05:00
Anthony Green
34fa7690ac
Merge upstream libffi
...
From-SVN: r184897
2012-03-04 21:11:09 +00:00
Mikael Pettersson
2c2a780f7f
re PR libffi/52223 (libffi's man page install breaks with multilibs and overridden mandir)
...
PR libffi/52223
* Makefile.am (FLAGS_TO_PASS): Define.
* Makefile.in: Regenerate.
From-SVN: r184592
2012-02-27 11:00:12 +01:00
Kai Tietz
9ebe314b13
Correct date in ChangeLog
...
From-SVN: r184527
2012-02-23 22:03:13 +01:00
Kai Tietz
ffc81ae2c8
re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.)
...
PR libffi/52221
* src/x86/ffi.c (ffi_closure_raw_THISCALL): New
prototype.
(ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
thiscall-convention.
(ffi_raw_call): Use ffi_prep_args_raw.
* src/x86/win32.S (ffi_closure_raw_THISCALL): Add
implementation for stub.
From-SVN: r184526
2012-02-23 22:02:27 +01:00
Kai Tietz
d86c2d9495
re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.)
...
PR libffi/52221
* src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
support for X86_WIN32.
(FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
From-SVN: r184155
2012-02-13 16:18:14 +01:00
Eric Botcazou
a0dfc1fed5
* src/sparc/v9.S (STACKFRAME): Bump to 176.
...
From-SVN: r184129
2012-02-11 11:00:40 +00:00
Kai Tietz
1e98f62d74
configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 windows target.
...
* configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
windows target.
* configure: Regenerated.
From-SVN: r184103
2012-02-10 17:44:08 +01:00
Kai Tietz
893f430128
prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 also FFI_THISCALL.
...
* src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
also FFI_THISCALL.
* src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
(FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
(ffi_prep_closure_loc): Add FFI_THISCALL support.
* src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
* src/x86/win32.S (ffi_closure_THISCALL): New closure code
for thiscall-calling convention.
* testsuite/libffi.call/closure_thiscall.c: New test.
From-SVN: r184021
2012-02-08 22:35:19 +01:00
Kai Tietz
9b850dd969
ffi.c (ffi_call_win32): Add new argument to prototype for specify calling-convention.
...
* src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
argument to prototype for specify calling-convention.
(ffi_call): Add support for stdcall/thiscall convention.
(ffi_prep_args): Likewise.
(ffi_raw_call): Likewise.
* src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
FFI_FASTCALL.
* src/x86/win32.S (_ffi_call_win32): Add support for
fastcall/thiscall calling-convention calls.
* testsuite/libffi.call/fastthis1_win32.c: New test.
* testsuite/libffi.call/fastthis2_win32.c: New test.
* testsuite/libffi.call/fastthis3_win32.c: New test.
* testsuite/libffi.call/strlen2_win32.c: New test.
* testsuite/libffi.call/many2_win32.c: New test.
* testsuite/libffi.call/struct1_win32.c: New test.
* testsuite/libffi.call/struct2_win32.c: New test.
From-SVN: r183676
2012-01-29 14:29:53 +01:00
Andreas Schwab
c1d5e72390
sysv.S (ffi_call_SYSV): Properly test for plain mc68000.
...
* src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
From-SVN: r183451
2012-01-23 20:00:44 +00:00
Jakub Jelinek
01ddefeba7
re PR target/48496 ('asm' operand requires impossible reload)
...
PR rtl-optimization/48496
* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
From-SVN: r183301
2012-01-19 11:47:59 +01:00
Rainer Orth
51a9af17e0
Build 64-bit libffi multilib for i?86-linux
...
* configure.ac (i?86-*-*): Set TARGET to X86_64.
* configure: Regenerate.
From-SVN: r183017
2012-01-09 16:20:18 +00:00
Andrew Pinski
69090788c1
re PR libffi/50051 (MIPS libffi does not compile for mips64octeon-linux-gnu)
...
2011-12-07 Andrew Pinski <apinski@cavium.com>
PR libffi/50051
* src/mips/n32.S: Add ".set mips4".
From-SVN: r182092
2011-12-07 14:59:06 -08:00
Andrew Pinski
3b21983d06
n32.S: Add ".set mips4".
...
2011-12-07 Andrew Pinski <apinski@cavium.com>
* src/mips/n32.S: Add ".set mips4".
From-SVN: r182091
2011-12-07 14:58:31 -08:00
Andreas Tobler
c6084f681e
Additional fixes for FreeBSD-10 build:
...
/: * libtool.m4: Additional FreeBSD 10 fixes.
boehm-gc/: * configure: Regenerate.
gcc/: * configure: Regenerate.
libffi/: * configure: Regenerate.
libgfortran/: * configure: Regenerate.
libgomp/: * configure: Regenerate.
libitm/: * configure: Regenerate.
libjava/: * configure.ac: Fix some more FreeBSD 10 issues..
* configure: Regenerate.
libjava/libltdl/: * acinclude.m4: Additional FreeBSD 10 fixes.
* configure: Regenerate.
libmudflap/: * configure: Regenerate.
libobjc/: * configure: Regenerate.
libquadmath/: * configure: Regenerate.
libssp/: * configure: Regenerate.
libstdc++-v3/: * configure: Regenerate.
lto-plugin/: * configure: Regenerate.
zlib/: * configure: Regenerate.
From-SVN: r181593
2011-11-21 20:22:35 +01:00
Richard Henderson
8b01bdb087
configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
...
* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
* configure, aclocal.m4: Rebuild.
From-SVN: r181266
2011-11-10 11:34:57 -08:00
Iain Sandoe
b90c2c4c0b
re PR libffi/49594 (bootstrap failure in libffi:darwin_closure for powerpc-darwin8)
...
PR libffi/49594
* src/powerpc/darwin_closure.S (stubs): Make the stub binding
helper reference track the architecture pointer size.
From-SVN: r178512
2011-09-04 19:19:39 +00:00
Andrew Haley
4ac9cf2b5d
ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly instructions.
...
2011-08-25 Andrew Haley <aph@redhat.com>
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
instructions.
* src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
From-SVN: r178060
2011-08-25 10:37:36 +00:00
Andrew Haley
4d4a9b72be
ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
...
2011-07-11 Andrew Haley <aph@redhat.com>
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
From-SVN: r176172
2011-07-11 17:50:04 +00:00
Rainer Orth
902233e09c
cls_double_va.c: Move PR number to comment.
...
* testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
From-SVN: r175632
2011-06-29 12:47:56 +00:00
Rainer Orth
2ac88e57d7
re PR libffi/46660 (cls_double_va.c, cls_longdouble_va.c FAIL on IRIX 6.5)
...
PR libffi/46660
* testsuite/libffi.call/cls_double_va.c: xfail dg-output on
mips-sgi-irix6*.
* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
From-SVN: r175618
2011-06-29 07:31:05 +00:00
Rainer Orth
652de9ffb6
huge_struct.c (test_large_fn): Use PRIu8, PRId8 instead of %hhu, %hhd.
...
* testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
PRId8 instead of %hhu, %hhd.
* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
PRIu8): Define.
[__sgi__] (PRId8, PRIu8): Define.
From-SVN: r175032
2011-06-14 15:54:22 +00:00
Rainer Orth
9d9305ea5d
osf.S (UA_SI, [...]): Define.
...
* src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
Define.
Use them to handle ELF vs. ECOFF differences.
[__osf__] (_GLOBAL__F_ffi_call_osf): Define.
From-SVN: r173151
2011-04-29 08:49:08 +00:00
Ralf Wildenhues
029c8f3e77
Remove freebsd1 from libtool.m4 macros and config.rpath.
...
/:
Import from Libtool and gnulib:
2011-01-27 Gerald Pfeifer <gerald@pfeifer.com>
Prepare for supporting FreeBSD 10.
* config.rpath: Remove handling of freebsd1* which soon would
match FreeBSD 10.0.
2011-01-20 Gerald Pfeifer <gerald@pfeifer.com> (tiny change)
Remove support for FreeBSD 1.x.
* libtool.m4 (_LT_LINKER_SHLIBS)
(_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which
soon would incorrectly match FreeBSD 10.0.
boehm-gc/:
* configure: Regenerate.
gcc/:
* configure: Regenerate.
libffi/:
* configure: Regenerate.
libgfortran/:
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* configure: Likewise.
libgo/:
* config/libtool.m4: (_LT_LINKER_SHLIBS)
(_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which
soon would incorrectly match FreeBSD 10.0.
* configure: Regenerate.
libgomp/:
* configure: Regenerate.
libjava/:
* configure: Regenerate.
* shlibpath.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling
of freebsd1* which soon would incorrectly match FreeBSD 10.0.
libjava/classpath/:
* config.rpath, ltcf-c.sh, ltcf-gcj.sh, ltconfig: Remove
handling of freebsd1* which soon would match FreeBSD 10.0.
* configure: Regenerate.
libjava/libltdl/:
* acinclude.m4 (AC_LIBTOOL_PROG_LD_SHLIBS)
(AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling
of freebsd1* which soon would incorrectly match FreeBSD 10.0.
* configure: Regenerate.
libmudflap/:
* configure: Regenerate.
libobjc/:
* configure: Regenerate.
libquadmath/:
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* configure: Likewise.
libssp/:
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* configure: Likewise.
libstdc++-v3/:
* configure: Regenerate.
lto-plugin/:
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.
zlib/:
* configure: Regenerate.
From-SVN: r170106
2011-02-13 11:45:53 +00:00
Rainer Orth
1bbb474148
re PR libffi/46661 (32-bit cls_pointer.c, cls_pointer_stack.c FAIL on IRIX 6.5)
...
PR libffi/46661
* testsuite/libffi.call/cls_pointer.c (main): Cast void * to
uintptr_t first.
* testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
From-SVN: r169963
2011-02-09 10:01:07 +00:00
Joel Sherrill
9993cf6070
ffi.c: Add RTEMS support for cache flushing.
...
2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
Handle case when CPU variant does not have long double support.
* libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
and cores with soft floating point.
From-SVN: r169938
2011-02-08 19:19:01 +00:00