summaryrefslogtreecommitdiffstats
path: root/libffi/src
Commit message (Collapse)AuthorAgeFilesLines
* * src/powerpc/linux64.S: Emit .note.GNU-stack even whenjakub2014-09-112-4/+6
| | | | | | | | POWERPC64 is not defined. * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@215156 138bc75d-0d04-0410-961f-82ee72b054a4
* libffi/yufeng2014-03-121-4/+4
| | | | | | | | * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the main CFA reg; update cfi_rel_offset. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208515 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libffi/60073ebotcazou2014-02-174-187/+236
| | | | | | | | | | | | | | | | | | | | | | | * src/sparc/v8.S: Assemble only if !SPARC64. * src/sparc/v9.S: Remove obsolete comment. * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9. (V8_ABI_P): New macro. (V9_ABI_P): Likewise. (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64. * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64. (ffi_prep_args_v9): Compile only if SPARC64. (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate. (ffi_prep_cif_machdep): Guard access to nfixedargs field. (ffi_prep_cif_machdep_var): Likewise. (ffi_v9_layout_struct): Compile only if SPARC64. (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings. (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates. (ffi_closure_sparc_inner_v8): Compile only if !SPARC64. (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access to nfixedargs field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207822 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libffi/60073ebotcazou2014-02-132-8/+28
| | | | | | | | | | | | | | | * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define. (FFI_EXTRA_CIF_FIELDS): Likewise. (FFI_NATIVE_RAW_API): Move around. * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from... (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core. (ffi_prep_cif_machdep_var): New function. (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in FP registers. * doc/libffi.texi (Introduction): Fix inaccuracy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207763 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffitarget.h: Import from upstream.amodra2013-12-1011-1762/+2093
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205844 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ppc_closure.S: Don't bl .Luint128.amodra2013-11-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204918 138bc75d-0d04-0410-961f-82ee72b054a4
* PowerPC64 ELFv2 supportamodra2013-11-174-216/+718
| | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204917 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declarationamodra2013-06-253-7/+84
| | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200383 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/x86/win64.S: Make use of ffi_closure_win64_innerktietz2013-03-221-1/+1
| | | | | | | | symbol pc-relative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196900 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):davek2013-03-071-2/+4
| | | | | | | | Move default definition outside enclosing #if scope. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196527 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-06 Andreas Tobler <andreast@fgznet.ch>andreast2013-02-061-0/+2
| | | | | | | | * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where DOUBLE equal LONGDOUBLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195812 138bc75d-0d04-0410-961f-82ee72b054a4
* libffi mergegreen2012-12-2621-103/+2947
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194722 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/linux64_closure.S: Add new ABI support.amodra2012-10-312-4/+37
| | | | | | | | * src/powerpc/linux64.S: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193015 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-08-26 Andrew Pinski <apinski@cavium.com>pinskia2012-08-261-2/+9
| | | | | | | | | | PR libffi/53014 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with soft-float. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190696 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,uros2012-08-081-1/+2
| | | | | | | | just return FFI_BAD_ABI when things are wrong. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190230 138bc75d-0d04-0410-961f-82ee72b054a4
* Define FFI_SIZEOF_JAVA_RAW to 4 for x32hjl2012-07-181-1/+2
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189626 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.bergner2012-04-021-7/+6
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186091 138bc75d-0d04-0410-961f-82ee72b054a4
* Restore trampled commitsgreen2012-03-293-7/+50
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185955 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,kkojima2012-03-132-4/+6
| | | | | | | | | just return FFI_BAD_ABI when things are wrong. * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185361 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64dje2012-03-091-1/+3
| | | | | | | | change to return value of ffi_closure_helper_DARWIN and load type from return type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185152 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge upstream libffigreen2012-03-0445-553/+5603
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184897 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libffi/52221ktietz2012-02-232-4/+34
| | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184526 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libffi/52221ktietz2012-02-131-3/+16
| | | | | | | | | * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall support for X86_WIN32. (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184155 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/sparc/v9.S (STACKFRAME): Bump to 176.ebotcazou2012-02-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184129 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32ktietz2012-02-084-1/+67
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184021 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/libffi/src/x86/ffi.c (ffi_call_win32): Add newktietz2012-01-293-19/+181
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183676 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plainschwab2012-01-231-8/+8
| | | | | | | mc68000. Test for __HAVE_68881__ in addition to __MC68881__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183451 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/48496jakub2012-01-191-3/+7
| | | | | | | * src/ia64/ffi.c (ffi_call): Fix up aliasing violations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183301 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-07 Andrew Pinski <apinski@cavium.com>pinskia2011-12-071-0/+1
| | | | | | | | * src/mips/n32.S: Add ".set mips4". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182091 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libffi/49594iains2011-09-041-3/+4
| | | | | | | | | * src/powerpc/darwin_closure.S (stubs): Make the stub binding helper reference track the architecture pointer size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178512 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-25 Andrew Haley <aph@redhat.com>aph2011-08-252-3/+8
| | | | | | | | | | * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly instructions. * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178060 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-07-11 Andrew Haley <aph@redhat.com>aph2011-07-111-1/+5
| | | | | | | | * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176172 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):ro2011-04-291-18/+39
| | | | | | | | | Define. Use them to handle ELF vs. ECOFF differences. [__osf__] (_GLOBAL__F_ffi_call_osf): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173151 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>joel2011-02-082-0/+46
| | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169938 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>joel2011-02-081-0/+8
| | | | | | | | | | | * configure.ac: Add mips*-*-rtems* support. * configure: Regenerate. * src/mips/ffitarget.h: Ensure needed constants are available for targets which do not have sgidefs.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169936 138bc75d-0d04-0410-961f-82ee72b054a4
* Update Copyright years for files modified in 2010.jakub2011-01-033-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168438 138bc75d-0d04-0410-961f-82ee72b054a4
* libffi:iains2010-12-184-347/+1181
| | | | | | | | | | | | | | | | PR libffi/29152 PR libffi/42378 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation, update comments. * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New, (FFI_TRAMPOLINE_SIZE): Update for Darwin64. * src/powerpc/darwin.S: Provide Darwin64 implementation, update comments. * src/powerpc/ffi_darwin.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168016 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-03 Chung-Lin Tang <cltang@codesourcery.com>cltang2010-12-031-74/+78
| | | | | | | | | | * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive. (ffi_closure_VFP): Same. (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp' directive. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167434 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-29 Richard Henderson <rth@redhat.com>ro2010-11-291-25/+26
| | | | | | | | | | | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define. (.eh_frame): Use FDE_ENCODING. (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167251 138bc75d-0d04-0410-961f-82ee72b054a4
* Add ARM VFP ABI support to libffi.green2010-10-283-30/+392
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166032 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libffi/45677jakub2010-10-011-2/+2
| | | | | | | | | * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is a multiple of 8. * testsuite/libffi.call/many2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164829 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_rmark2010-09-031-1/+1
| | | | | | | returns NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163809 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove warningsgreen2010-08-063-12/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162959 138bc75d-0d04-0410-961f-82ee72b054a4
* Add OS/2 Supportgreen2010-08-063-8/+77
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162946 138bc75d-0d04-0410-961f-82ee72b054a4
* Define libffi macros carefullygreen2010-08-063-0/+10
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162945 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix spelling errorsgreen2010-08-062-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162938 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix SELinux testgreen2010-08-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162937 138bc75d-0d04-0410-961f-82ee72b054a4
* Improve libffi commentsgreen2010-08-062-7/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162936 138bc75d-0d04-0410-961f-82ee72b054a4
* Enable build with microsoft compilergreen2010-08-063-259/+417
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162935 138bc75d-0d04-0410-961f-82ee72b054a4
* Enable build with sun compilergreen2010-08-061-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162933 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud