aboutsummaryrefslogtreecommitdiff
path: root/libffi/src
AgeCommit message (Collapse)AuthorFilesLines
2010-05-19configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as output, too.Rainer Orth1-1/+11
* configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as output, too. (libffi_cv_as_ascii_pseudo_op): Check for .ascii. (libffi_cv_as_string_pseudo_op): Check for .string. * configure: Regenerate. * fficonfig.h.in: Regenerate. * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error. From-SVN: r159570
2010-03-15configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.Rainer Orth1-0/+4
* configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test. * configure: Regenerate. * fficonfig.h.in: Regenerate. * libffi/src/x86/unix64.S (.eh_frame) [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type. From-SVN: r157466
2010-02-15sysv.S (__ARM_ARCH__): Define for processor __ARM_ARCH_7EM__.Matthias Klose1-1/+2
2010-02-15 Matthias Klose <doko@ubuntu.com> * src/arm/sysv.S (__ARM_ARCH__): Define for processor __ARM_ARCH_7EM__. From-SVN: r156771
2010-01-06* src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.Rainer Orth1-4/+4
From-SVN: r155674
2009-12-28ffi_darwin.c (ffi_prep_args): Copy abi and nargs to local variables.David Edelsohn1-13/+62
* src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to local variables. (aix_adjust_aggregate_sizes): New function. (ffi_prep_cif_machdep): Call it. From-SVN: r155492
2009-12-26configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.Andreas Tobler1-5/+0
2009-12-26 Andreas Tobler <a.tobler@schweiz.org> * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets. * configure: Regenerate. * fficonfig.h.in: Likewise. * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for Solaris/x86. From-SVN: r155475
2009-12-26ffi.c (ffi_prep_args_SYSV): Advance intarg_count when a float arguments is ↵Andreas Schwab1-0/+3
passed in memory. * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count when a float arguments is passed in memory. (ffi_closure_helper_SYSV): Mark general registers as used up when a 64bit or soft-float long double argument is passed in memory. From-SVN: r155473
2009-12-26IRIX supportFrank Everdij3-9/+34
From-SVN: r155470
2009-12-26avr32 libffi portBradley Smith3-0/+679
From-SVN: r155469
2009-12-14ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE type on HP-UX.John David Anglin1-0/+7
* src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE type on HP-UX. From-SVN: r155205
2009-12-11ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long double' arguments.Eric Botcazou1-0/+5
* src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long double' arguments. From-SVN: r155152
2009-12-10re PR libffi/40700 (All amd64 libffi execution tests fail on Solaris 10/x86)Rainer Orth1-1/+6
PR libffi/40700 * src/closures.c [X86_64 && __sun__ && __svr4__] (FFI_MMAP_EXEC_WRIT): Define. From-SVN: r155124
2009-12-07aix_closure.S (libffi_closure_ASM): Fix tablejump typo.David Edelsohn1-1/+1
* src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump typo. From-SVN: r155070
2009-12-05aix.S: Update AIX32 code to be consistent with AIX64 code.David Edelsohn2-174/+185
* src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64 code. * src/powerpc/aix_closure.s: Same. From-SVN: r155016
2009-12-04aix_closure.S: Reorganize 64-bit code to match linux64_closure.S.David Edelsohn1-86/+105
* src/powerpc/aix_closure.S: Reorganize 64-bit code to match linux64_closure.S. From-SVN: r155001
2009-12-04re PR libffi/41908 (closures fail for some structure arguments containing ↵Uros Bizjak1-17/+71
floats) PR libffi/41908 * src/x86/ffi64.c (classify_argument): Update from gcc/config/i386/i386.c. (ffi_closure_unix64_inner): Do not use the address of two consecutive SSE registers directly. * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail for x86_64 linux targets. From-SVN: r154988
2009-12-04ffi_darwin.c (ffi_closure_helper_DARWIN): Increment pfr for long double ↵David Edelsohn1-1/+2
split between fpr13 and stack. * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment pfr for long double split between fpr13 and stack. From-SVN: r154983
2009-12-03ffi_darwin.c (ffi_prep_args): Increment next_arg and fparg_count twice for ↵David Edelsohn1-0/+2
long double. * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and fparg_count twice for long double. From-SVN: r154967
2009-12-03re PR libffi/42243 (powerpc-apple-darwin9 libffi failures)David Edelsohn1-14/+12
PR libffi/42243 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses. From-SVN: r154956
2009-12-02ffi_darwin.c (ffi_prep_args): Fix typo in INT64 case.David Edelsohn1-1/+1
* src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64 case. From-SVN: r154932
2009-12-01aix.S (ffi_call_AIX): Convert to more standard register usage.David Edelsohn3-115/+85
* src/powerpc/aix.S (ffi_call_AIX): Convert to more standard register usage. Call ffi_prep_args directly. Add long double return value support. * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo. Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases. (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit mode. (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp into case. * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment. Allocate result area between params and FPRs. From-SVN: r154892
2009-11-30re PR libffi/35484 (libffi doesn't support AIX 64bit)David Edelsohn4-77/+454
2009-11-30 David Edelsohn <edelsohn@gnu.org> PR target/35484 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and AIX64. * src/powerpc/aix.S: Implement AIX64 version. * src/powerpc/aix_closure.S: Implement AIX64 version. (ffi_closure_ASM): Use extsb, lha and displament addresses. * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64 support. (ffi_prep_cif_machdep): Same. (ffi_call): Same. (ffi_closure_helper_DARWIN): Same. From-SVN: r154855
2009-09-29win64.S (_ffi_call_win64 stack): Remove for gnu assembly version use of ↵Kai Tietz1-2/+0
___chkstk. 2009-09-28 Kai Tietz <kai.tietz@onevision.com> * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu assembly version use of ___chkstk. From-SVN: r152256
2009-09-23PR libffi/40242, PR libffi/41443Matthias Klose1-8/+15
2009-09-23 Matthias Klose <doko@ubuntu.com> PR libffi/40242, PR libffi/41443 * src/arm/sysv.S (__ARM_ARCH__): Define for processors __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__, __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__. Change the conditionals to __SOFTFP__ || __ARM_EABI__ for -mfloat-abi=softfp to work. From-SVN: r152075
2009-09-17PR testsuite/32843 (strikes again)Loren J. Rittle1-1/+1
2009-09-17 Loren J. Rittle <ljrittle@acm.org> PR testsuite/32843 (strikes again) * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to enable proper extension on char and short. From-SVN: r151819
2009-09-15java_raw_api.c (ffi_java_raw_to_rvalue): Remove special handling for ↵David Daney4-34/+199
FFI_TYPE_POINTER. 2009-09-15 David Daney <ddaney@caviumnetworks.com> * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special handling for FFI_TYPE_POINTER. * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT, FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT, FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT, FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines. (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations. (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float. * src/mips/n32.S (ffi_call_N32): Add handling for soft-float structure and pointer returns. (ffi_closure_N32): Add handling for pointer returns. * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags, calc_n32_return_struct_flags): Handle soft-float. (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling. (ffi_call_N32): Declare proper argument types. (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle soft-float. From-SVN: r151726
2009-07-24re PR libffi/40807 (libffi.call/return_sc.c)Dave Korn3-134/+370
PR libffi/40807 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending return types for X86_WIN32. * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types. (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV, _ffi_closure_STDCALL): Likewise. * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin. (dlmmap, dlmunmap): Also use these functions on Cygwin. From-SVN: r150042
2009-06-16ffi.c: Avoid clobbering cr3 and cr4, which are supposed to be callee-saved.Wim Lewis2-29/+19
2009-06-16 Wim Lewis <wiml@hhhh.org> * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are supposed to be callee-saved. * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of return buffer for odd-size structs. From-SVN: r148543
2009-06-12[multiple changes]Andrew Haley7-94/+818
2009-06-12 Andrew Haley <aph@redhat.com> * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c, testsuite/libffi.call/cls_align_uint64.c, testsuite/libffi.call/cls_ulonglong.c, testsuite/libffi.call/return_ll1.c, testsuite/libffi.call/stret_medium2.c: Fix printf format specifiers. testsuite/libffi.special/unwindtest.cc: include stdint.h. 2009-06-11 Timothy Wall <twall@users.sf.net> * Makefile.am, configure.ac, include/ffi.h.in, include/ffi_common.h, src/closures.c, src/dlmalloc.c, src/x86/ffi.c, src/x86/ffitarget.h, src/x86/win64.S (new), README: Added win64 support (mingw or MSVC) * Makefile.in, include/Makefile.in, man/Makefile.in, testsuite/Makefile.in, configure, aclocal.m4: Regenerated * ltcf-c.sh: properly escape cygwin/w32 path * man/ffi_call.3: Clarify size requirements for return value. * src/x86/ffi64.c: Fix filename in comment. * src/x86/win32.S: Remove unused extern. * testsuite/libffi.call/closure_fn0.c, testsuite/libffi.call/closure_fn1.c, testsuite/libffi.call/closure_fn2.c, testsuite/libffi.call/closure_fn3.c, testsuite/libffi.call/closure_fn4.c, testsuite/libffi.call/closure_fn5.c, testsuite/libffi.call/closure_fn6.c, testsuite/libffi.call/closure_stdcall.c, testsuite/libffi.call/cls_12byte.c, testsuite/libffi.call/cls_16byte.c, testsuite/libffi.call/cls_18byte.c, testsuite/libffi.call/cls_19byte.c, testsuite/libffi.call/cls_1_1byte.c, testsuite/libffi.call/cls_20byte.c, testsuite/libffi.call/cls_20byte1.c, testsuite/libffi.call/cls_24byte.c, testsuite/libffi.call/cls_2byte.c, testsuite/libffi.call/cls_3_1byte.c, testsuite/libffi.call/cls_3byte1.c, testsuite/libffi.call/cls_3byte2.c, testsuite/libffi.call/cls_4_1byte.c, testsuite/libffi.call/cls_4byte.c, testsuite/libffi.call/cls_5_1_byte.c, testsuite/libffi.call/cls_5byte.c, testsuite/libffi.call/cls_64byte.c, testsuite/libffi.call/cls_6_1_byte.c, testsuite/libffi.call/cls_6byte.c, testsuite/libffi.call/cls_7_1_byte.c, testsuite/libffi.call/cls_7byte.c, testsuite/libffi.call/cls_8byte.c, testsuite/libffi.call/cls_9byte1.c, testsuite/libffi.call/cls_9byte2.c, testsuite/libffi.call/cls_align_double.c, testsuite/libffi.call/cls_align_float.c, testsuite/libffi.call/cls_align_longdouble.c, testsuite/libffi.call/cls_align_longdouble_split.c, testsuite/libffi.call/cls_align_longdouble_split2.c, testsuite/libffi.call/cls_align_pointer.c, testsuite/libffi.call/cls_align_sint16.c, testsuite/libffi.call/cls_align_sint32.c, testsuite/libffi.call/cls_align_sint64.c, testsuite/libffi.call/cls_align_uint16.c, testsuite/libffi.call/cls_align_uint32.c, testsuite/libffi.call/cls_align_uint64.c, testsuite/libffi.call/cls_dbls_struct.c, testsuite/libffi.call/cls_double.c, testsuite/libffi.call/cls_double_va.c, testsuite/libffi.call/cls_float.c, testsuite/libffi.call/cls_longdouble.c, testsuite/libffi.call/cls_longdouble_va.c, testsuite/libffi.call/cls_multi_schar.c, testsuite/libffi.call/cls_multi_sshort.c, testsuite/libffi.call/cls_multi_sshortchar.c, testsuite/libffi.call/cls_multi_uchar.c, testsuite/libffi.call/cls_multi_ushort.c, testsuite/libffi.call/cls_multi_ushortchar.c, testsuite/libffi.call/cls_pointer.c, testsuite/libffi.call/cls_pointer_stack.c, testsuite/libffi.call/cls_schar.c, testsuite/libffi.call/cls_sint.c, testsuite/libffi.call/cls_sshort.c, testsuite/libffi.call/cls_uchar.c, testsuite/libffi.call/cls_uint.c, testsuite/libffi.call/cls_ulonglong.c, testsuite/libffi.call/cls_ushort.c, testsuite/libffi.call/err_bad_abi.c, testsuite/libffi.call/err_bad_typedef.c, testsuite/libffi.call/float2.c, testsuite/libffi.call/huge_struct.c, testsuite/libffi.call/nested_struct.c, testsuite/libffi.call/nested_struct1.c, testsuite/libffi.call/nested_struct10.c, testsuite/libffi.call/nested_struct2.c, testsuite/libffi.call/nested_struct3.c, testsuite/libffi.call/nested_struct4.c, testsuite/libffi.call/nested_struct5.c, testsuite/libffi.call/nested_struct6.c, testsuite/libffi.call/nested_struct7.c, testsuite/libffi.call/nested_struct8.c, testsuite/libffi.call/nested_struct9.c, testsuite/libffi.call/problem1.c, testsuite/libffi.call/return_ldl.c, testsuite/libffi.call/return_ll1.c, testsuite/libffi.call/stret_large.c, testsuite/libffi.call/stret_large2.c, testsuite/libffi.call/stret_medium.c, testsuite/libffi.call/stret_medium2.c, testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead of checking for MMAP. Use intptr_t instead of long casts. 2009-06-12 Andrew Haley <aph@redhat.com> * Makefile.am: Remove info_TEXINFOS. From-SVN: r148433
2009-06-09freebsd.S: Add missing file.Andrew Haley1-0/+458
2009-06-09 Andrew Haley <aph@redhat.com> * src/x86/freebsd.S: Add missing file. From-SVN: r148313
2009-06-05ffitarget.h, ffi.c: Merge stdcall changes from libffi.Andrew Haley2-9/+45
2009-06-05 Andrew Haley <aph@redhat.com> * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from libffi. From-SVN: r148207
2009-06-04ffitarget.h, [...]: Back out stdcall changes.Andrew Haley3-62/+104
2009-06-04 Andrew Haley <aph@redhat.com> * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out stdcall changes. From-SVN: r148178
2009-06-04[multiple changes]Andrew Haley3-104/+62
2008-02-26 Anthony Green <green@redhat.com> Thomas Heller <theller@ctypes.org> * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C comment. 2008-02-03 Timothy Wall <twall@users.sf.net> * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return offset based on code pointer, not data pointer. 2008-01-31 Timothy Wall <twall@users.sf.net> * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall closures. * src/x86/ffitarget.h: Increase size of trampoline for stdcall closures. * src/x86/win32.S: Add assembly for stdcall closure. * src/x86/ffi.c: Initialize stdcall closure trampoline. From-SVN: r148174
2009-06-04ffi.h.in: Change void (*)() to void (*)(void).Andrew Haley1-6/+6
2009-06-04 Andrew Haley <aph@redhat.com> * include/ffi.h.in: Change void (*)() to void (*)(void). * src/x86/ffi.c: Likewise. From-SVN: r148173
2009-06-04[multiple changes]Andrew Haley32-65/+196
2009-06-04 Andrew Haley <aph@redhat.com> * src/powerpc/ppc_closure.S: Insert licence header. * src/powerpc/linux64_closure.S: Likewise. * src/m68k/sysv.S: Likewise. * src/sh64/ffi.c: Change void (*)() to void (*)(void). * src/powerpc/ffi.c: Likewise. * src/powerpc/ffi_darwin.c: Likewise. * src/m32r/ffi.c: Likewise. * src/sh64/ffi.c: Likewise. * src/x86/ffi64.c: Likewise. * src/alpha/ffi.c: Likewise. * src/alpha/osf.S: Likewise. * src/frv/ffi.c: Likewise. * src/s390/ffi.c: Likewise. * src/pa/ffi.c: Likewise. * src/pa/hpux32.S: Likewise. * src/ia64/unix.S: Likewise. * src/ia64/ffi.c: Likewise. * src/sparc/ffi.c: Likewise. * src/mips/ffi.c: Likewise. * src/sh/ffi.c: Likewise. 2008-02-15 David Daney <ddaney@avtrex.com> * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE): Define (conditionally), and use it to include cachectl.h. (ffi_prep_closure_loc): Fix cache flushing. * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define. From-SVN: r148172
2009-06-042009-06-04 Andrew Haley <aph@redhat.com>Andrew Haley49-339/+390
include/ffi.h.in, src/arm/ffitarget.h, src/arm/ffi.c, src/arm/sysv.S, src/powerpc/ffitarget.h, src/closures.c, src/sh64/ffitarget.h, src/sh64/ffi.c, src/sh64/sysv.S, src/types.c, src/x86/ffi64.c, src/x86/ffitarget.h, src/x86/win32.S, src/x86/darwin.S, src/x86/ffi.c, src/x86/sysv.S, src/x86/unix64.S, src/alpha/ffitarget.h, src/alpha/ffi.c, src/alpha/osf.S, src/m68k/ffitarget.h, src/frv/ffitarget.h, src/frv/ffi.c, src/s390/ffitarget.h, src/s390/sysv.S, src/cris/ffitarget.h, src/pa/linux.S, src/pa/ffitarget.h, src/pa/ffi.c, src/raw_api.c, src/ia64/ffitarget.h, src/ia64/unix.S, src/ia64/ffi.c, src/ia64/ia64_flags.h, src/java_raw_api.c, src/debug.c, src/sparc/v9.S, src/sparc/ffitarget.h, src/sparc/ffi.c, src/sparc/v8.S, src/mips/ffitarget.h, src/mips/n32.S, src/mips/o32.S, src/mips/ffi.c, src/prep_cif.c, src/sh/ffitarget.h, src/sh/ffi.c, src/sh/sysv.S: Update license text. From-SVN: r148171
2009-05-22win32.S (_ffi_closure_STDCALL): New function.Dave Korn1-0/+95
* src/x86/win32.S (_ffi_closure_STDCALL): New function. (.eh_frame): Add FDE for it. From-SVN: r147802
2009-05-22configure.ac: Also check if assembler supports pc-relative relocs on ↵Dave Korn1-14/+195
X86_WIN32 targets. * configure.ac: Also check if assembler supports pc-relative relocs on X86_WIN32 targets. * configure: Regenerate. * src/x86/win32.S (ffi_prep_args): Declare extern, not global. (_ffi_call_SYSV): Add missing function type symbol .def and add EH markup labels. (_ffi_call_STDCALL): Likewise. (_ffi_closure_SYSV): Likewise. (_ffi_closure_raw_SYSV): Likewise. (.eh_frame): Add hand-crafted EH data. From-SVN: r147800
2008-12-19re PR libffi/26048 (libffi doesn't build on Solaris 10/x86 with native ↵Rainer Orth2-10/+32
assembler) PR libffi/26048 * configure.ac (HAVE_AS_X86_PCREL): New test. * configure: Regenerate. * fficonfig.h.in: Regenerate. * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET, RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler. (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL. * src/x86/unix64.S (.Lstore_table): Move to .text section. (.Lload_table): Likewise. (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL. From-SVN: r142835
2008-11-21ffi.c (ffi_prep_cif_machdep): Add support for signed/unsigned int8/16 return ↵Eric Botcazou2-20/+71
values. * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for signed/unsigned int8/16 return values. * src/sparc/v8.S (ffi_call_v8): Likewise. (ffi_closure_v8): Likewise. From-SVN: r142102
2008-08-25ffitarget.h (ffi_abi): Add FFI_LINUX and FFI_LINUX_SOFT_FLOAT to the ↵Andreas Tobler2-7/+20
POWERPC_FREEBSD enum. 2008-08-25 Andreas Tobler <a.tobler@schweiz.org> * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum. Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT. Adjust copyright notice. * src/powerpc/ffi.c: Add two new flags to indicate if we have one register or two register to use for FFI_SYSV structs. (ffi_prep_cif_machdep): Pass the right register flag introduced above. (ffi_closure_helper_SYSV): Fix the return type for FFI_SYSV_TYPE_SMALL_STRUCT. Comment. Adjust copyright notice. From-SVN: r139567
2008-07-16ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned int.Kaz Kojima1-2/+3
* src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned int. From-SVN: r137883
2008-03-27sysv.S: Add .note.GNU-stack on Linux.Kaz Kojima2-2/+10
* src/sh/sysv.S: Add .note.GNU-stack on Linux. * src/sh64/sysv.S: Likewise. From-SVN: r133623
2008-03-26[multiple changes]Matthias Klose10-0/+38
2008-03-26 Daniel Jacobowitz <dan@debian.org> * src/arm/sysv.S: Fix ARM comment marker. 2008-03-26 Jakub Jelinek <jakub@redhat.com> * src/alpha/osf.S: Add .note.GNU-stack on Linux. * src/s390/sysv.S: Likewise. * src/powerpc/ppc_closure.S: Likewise. * src/powerpc/sysv.S: Likewise. * src/x86/unix64.S: Likewise. * src/x86/sysv.S: Likewise. * src/sparc/v8.S: Likewise. * src/sparc/v9.S: Likewise. * src/m68k/sysv.S: Likewise. * src/arm/sysv.S: Likewise. From-SVN: r133594
2008-01-30re PR libffi/34612 ([4.1/4.2] libffi doesn't work with -fomit-frame-pointer ↵H.J. Lu1-0/+6
on ia32) 2008-01-30 H.J. Lu <hongjiu.lu@intel.com> PR libffi/34612 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when returning struct. * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer" tests. From-SVN: r131964
2008-01-06ffi.c (ffi_prep_cif_machdep): Fix thinko.Andreas Tobler1-3/+2
2008-01-06 Andreas Tobler <a.tobler@schweiz.org> * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko. From-SVN: r131351
2008-01-05re PR testsuite/32843 (libffi.call/return_sc.c)Andreas Tobler3-59/+106
2008-01-05 Andreas Tobler <a.tobler@schweiz.org> PR testsuite/32843 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for signed/unsigned int8/16 for X86_DARWIN. Updated copyright info. Handle one and two byte structs with special cif->flags. * src/x86/ffitarget.h: Add special types for one and two byte structs. Updated copyright info. * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like sysv.S Remove code to pop args from the stack after call. Special-case signed/unsigned for int8/16, one and two byte structs. (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8, FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32, FFI_TYPE_SINT32. Updated copyright info. From-SVN: r131343
2007-12-08n32.S (ffi_call_N32): Replace dadd with ADDU...David Daney1-23/+12
2007-12-08 David Daney <ddaney@avtrex.com> * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with SUBU, add with ADDU and use smaller code sequences. From-SVN: r130711
2007-12-07ffi.c (ffi_prep_cif_machdep): Handle long double return type.David Daney1-1/+7
2007-12-07 David Daney <ddaney@avtrex.com> * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return type. From-SVN: r130699
2007-12-06ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already defined.David Daney2-21/+34
2007-12-06 David Daney <ddaney@avtrex.com> * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already defined. (ffi_java_raw): New typedef. (ffi_java_raw_call, ffi_java_ptrarray_to_raw, ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to ffi_java_raw. (ffi_java_raw_closure) : Same. (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change parameter types. * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw. Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use sizeof(ffi_java_raw) for alignment calculations. (ffi_java_ptrarray_to_raw): Same. (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER if FFI_SIZEOF_JAVA_RAW == 4. (ffi_java_raw_to_rvalue): Same. (ffi_java_raw_call): Change type of raw to ffi_java_raw. (ffi_java_translate_args): Same. (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change parameter types. * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI. 2007-12-06 David Daney <ddaney@avtrex.com> * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout. (ncode_closure, ffi_closure_fun): Define versions for non-FFI_NATIVE_RAW_API case. * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to replace ffi_raw throughout. * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout. From-SVN: r130660