1. 07 Dec, 2005 1 commit
    • ffitarget.h: Remove obsolete sgidefs.h include. · 8a39029d
      2005-12-07  Thiemo Seufer  <ths@networkno.de>
      
      	* src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
      	missing parentheses.
      	* src/mips/o32.S (ffi_call_O32): Code formatting. Define
      	and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
      	(ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
      	A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
      	V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
      	FA_0_0_OFF2.
      	* src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
      	endianness bugs.
      	(ffi_prep_closure): Improve trampoline instruction scheduling.
      	(ffi_closure_mips_inner_O32): Fix endianness bugs.
      
      From-SVN: r108165
      Thiemo Seufer committed
  2. 03 Dec, 2005 1 commit
  3. 26 Sep, 2005 1 commit
    • float1.c (value_type): New typedef. · d674eb2f
      	* testsuite/libffi.call/float1.c (value_type): New typedef.
      	(CANARY): New define.
      	(main): Check for result buffer overflow.
      	* src/powerpc/linux64.S: Handle linux64 long double returns.
      	* src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
      	(ffi_prep_cif_machdep): Handle linux64 long double returns.
      
      From-SVN: r104660
      Tom Tromey committed
  4. 25 Aug, 2005 1 commit
  5. 11 Aug, 2005 1 commit
    • configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test. · 8a42356f
      	* configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
      	(AH_BOTTOM): Add FFI_HIDDEN definition.
      	* configure: Rebuilt.
      	* fficonfig.h.in: Rebuilt.
      	* src/powerpc/ffi.c (hidden): Remove.
      	(ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
      	ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
      	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
      	.ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
      	* src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
      	add FFI_HIDDEN to its prototype.
      	(ffi_closure_SYSV_inner): New.
      	* src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
      	* src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
      
      From-SVN: r103002
      Jakub Jelinek committed
  6. 09 Aug, 2005 1 commit
  7. 22 Jul, 2005 1 commit
  8. 20 Jul, 2005 1 commit
    • ffi.c (ffi_call): Handle small structures correctly. · 5d0317fc
      	* src/sh/ffi.c (ffi_call): Handle small structures correctly.
      	Remove empty line.
      	* src/sh64/ffi.c (simple_type): Remove.
      	(return_type): Handle small structures correctly.
      	(ffi_prep_args): Likewise.
      	(ffi_call): Likewise.
      	(ffi_closure_helper_SYSV): Likewise.
      	* src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
      	Emit position independent code if PIC and remove wrong datalabel
      	prefixes from EH data.
      
      From-SVN: r102210
      Kaz Kojima committed
  9. 19 Jul, 2005 1 commit
    • Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD. · 97067642
      2005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
      
      	* Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
      	* Makefile.in: Regenerate.
      	* include/Makefile.in: Likewise.
      	* testsuite/Makefile.in: Likewise.
      	* configure.ac: Add POWERPC_FREEBSD rules.
      	* configure: Regenerate.
      	* src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
      	(FFI_SYSV_TYPE_SMALL_STRUCT): Define.
      	* src/powerpc/ffi.c: Add flags to handle small structure returns
      	in ffi_call_SYSV.
      	(ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
      	Aka FFI_SYSV.
      	(ffi_closure_helper_SYSV): Likewise.
      	* src/powerpc/ppc_closure.S: Add return types for small structures.
      	* src/powerpc/sysv.S: Add bits to handle small structures for
      	final SYSV 4 ABI
      
      From-SVN: r102174
      Andreas Tobler committed
  10. 06 Jul, 2005 1 commit
    • ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3. · b65da304
      	* src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
      	as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
      	structures.  Kill compilation warnings.
      	(ffi_closure_inner_LINUX): Print return values as hex in debug
      	message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
      	Properly handle 5-7 byte structure returns.
      	* src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
      	(FFI_TYPE_SMALL_STRUCT2): Remove.
      	(FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
      	(FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
      	* src/pa/linux.S: Mark source file as using PA1.1 assembly.
      	(checksmst1, checksmst2): Remove.
      	(checksmst3): Optimize handling of 3-byte struct returns.
      	(checksmst567): Properly handle 5-7 byte struct returns.
      
      From-SVN: r101650
      Randolph Chung committed
  11. 15 Jun, 2005 1 commit
  12. 01 Jun, 2005 1 commit
  13. 08 May, 2005 1 commit
  14. 05 May, 2005 1 commit
    • ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in bit 11 of flags. · d56ea8d9
              * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
              bit 11 of flags.
              (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
              (ffi_prep_closure): Set carry bit if sse-used flag set.
              * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
              Only load sse registers if ssecount non-zero.
              (ffi_closure_unix64): Only save sse registers if carry set on entry.
      
      From-SVN: r99257
      Richard Henderson committed
  15. 18 Apr, 2005 1 commit
    • Makefile.am: Add CRIS support. · 614348bb
      	* Makefile.am: Add CRIS support.
      	* configure.ac: Likewise.
      	* Makefile.in, configure, testsuite/Makefile.in: Regenerate.
      	* src/cris: New directory.
      	* src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
      	* src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
      
      Co-Authored-By: Hans-Peter Nilsson <hp@axis.com>
      
      From-SVN: r98332
      Simon Posnjak committed
  16. 31 Mar, 2005 1 commit
  17. 30 Mar, 2005 1 commit
  18. 24 Mar, 2005 1 commit
  19. 23 Feb, 2005 1 commit
  20. 08 Feb, 2005 1 commit
  21. 31 Dec, 2004 2 commits
  22. 27 Dec, 2004 1 commit
  23. 25 Dec, 2004 1 commit
    • ffi64.c (struct register_args): Rename from stackLayout. · 1a0f488c
              * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
              (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
              (merge_classes): Check for it.
              (SSE_CLASS_P): New.
              (classify_argument): Pass byte_offset by value; perform all updates
              inside struct case.
              (examine_argument): Add classes argument; handle
              X86_64_COMPLEX_X87_CLASS.
              (ffi_prep_args): Merge into ...
              (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
              (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
              (ffi_fill_return_value): Remove.
              (ffi_prep_closure): Remove dead assert.
              (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
              Rewrite to use struct register_args instead of va_list.  Create
              flags for handling structure returns.
              * src/x86/unix64.S: Remove dead strings.
              (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
              stack frame with ffi_call.  Handle structure returns properly.
              (float2sse, floatfloat2sse, double2sse): Remove.
              (sse2float, sse2double, sse2floatfloat): Remove.
              (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
              to handle structure returns properly.
      
      From-SVN: r92602
      Richard Henderson committed
  24. 23 Nov, 2004 1 commit
  25. 22 Nov, 2004 1 commit
  26. 27 Oct, 2004 1 commit
  27. 25 Oct, 2004 1 commit
  28. 21 Oct, 2004 1 commit
  29. 18 Oct, 2004 1 commit
  30. 13 Oct, 2004 1 commit
    • Makefile.am: Add m32r support. · a472e9d4
      * Makefile.am: Add m32r support.
      * configure.ac: Likewise.
      * Makefile.in: Regenerate.
      * confiugre: Regenerate.
      * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
       (uint64, sint64, double, longdouble)
      * src/m32r: New directory.
      * src/m32r/ffi.c: New file.
      * src/m32r/sysv.S: Likewise.
      * src/m32r/ffitarget.h: Likewise.
      
      From-SVN: r88993
      Kazuhiro Inaoka committed
  31. 04 Sep, 2004 1 commit
  32. 02 Sep, 2004 2 commits
    • ffi_darwin.c: Add flag for longdouble return values. · 2fe7404a
      2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
      
      	* src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
      	(ffi_prep_args): Handle longdouble arguments.
      	(ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
      	longdouble.
      	(ffi_closure_helper_DARWIN): Add closure handling for longdouble.
      	* src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
      	values.
      	* src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
      	* src/types.c: Defined longdouble size and alignment for darwin.
      
      From-SVN: r86992
      Andreas Tobler committed
    • 004-09-02 Andreas Tobler <a.tobler@schweiz.ch> · 16070e45
      	* src/powerpc/aix.S: Remove whitespaces.
      	* src/powerpc/aix_closure.S: Likewise.
      	* src/powerpc/asm.h: Likewise.
      	* src/powerpc/ffi.c: Likewise.
      	* src/powerpc/ffitarget.h: Likewise.
      	* src/powerpc/linux64.S: Likewise.
      	* src/powerpc/linux64_closure.S: Likewise.
      	* src/powerpc/ppc_closure.S: Likewise.
      	* src/powerpc/sysv.S: Likewise.
      
      From-SVN: r86991
      Andreas Tobler committed
  33. 30 Aug, 2004 1 commit
    • Makefile.am: Add frv support. · 88d8c771
      2004-08-30  Anthony Green  <green@redhat.com>
      
              * Makefile.am: Add frv support.
              * Makefile.in, testsuite/Makefile.in: Rebuilt.
              * configure.ac: Read configure.host.
              * configure, aclocal.m4: Rebuilt.
              * configure.host: New file.  frv-elf needs libgloss.
              * include/ffi.h.in: Force ffi_closure to have a nice big (8)
              alignment.  This is needed to frv and should harm the others.
              * include/ffi_common.h (ALIGN_DOWN): New macro.
              * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
      
      From-SVN: r86779
      Anthony Green committed
  34. 23 Aug, 2004 1 commit
    • re PR libffi/13141 (FAIL: InvokeReturn output - source compiled test <libffi problem>) · 39dca114
      2004-08-23  David Daney <daney@avtrex.com>
      
      	PR libgcj/13141
      	* src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
      	* src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
      	(ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
      	parameters and return types.
      	(ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
      	(ffi_prep_closure): Ditto.
      	(ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
      	alignment calculations.
      	* src/mips/o32.S (ffi_closure_O32): Don't use floating point
      	instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
      
      From-SVN: r86429
      David Daney committed
  35. 15 Aug, 2004 1 commit
    • ffi.c (ffi_pref_cif_machdep): set `cif->flags' to contain `FFI_TYPE_UINT64' as… · b790003a
      ffi.c (ffi_pref_cif_machdep): set `cif->flags' to contain `FFI_TYPE_UINT64' as return type for any 64-bit...
      
      2004-08-14  Casey Marshall <csm@gnu.org>
      
      	* src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
      	contain `FFI_TYPE_UINT64' as return type for any 64-bit
      	integer (O32 ABI only).
      	(ffi_prep_closure): new function.
      	(ffi_closure_mips_inner_O32): new function.
      	* src/mips/ffitarget.h: Define `FFI_CLOSURES' and
      	`FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
      	* src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
      	64 bit integers correctly.
      	(ffi_closure_O32): new function.
      	Added DWARF-2 unwind info for both functions.
      
      From-SVN: r86019
      Casey Marshall committed
  36. 10 Aug, 2004 1 commit
  37. 11 Jul, 2004 1 commit
  38. 30 Jun, 2004 1 commit