1. 10 May, 2007 3 commits
  2. 13 Apr, 2007 1 commit
  3. 06 Apr, 2007 1 commit
    • configure.ac: Tidy target case. · bf8da5fc
              * configure.ac: Tidy target case.
              (HAVE_LONG_DOUBLE): Allow the target to override.
              * configure: Regenerate.
              * include/ffi.h.in: Don't define ffi_type_foo if
              LIBFFI_HIDE_BASIC_TYPES is defined.
              (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
              to ffi_type_double.
              * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
              (FFI_TYPEDEF, ffi_type_void): Mark the data const.
              (ffi_type_longdouble): Special case for Alpha.  Don't define
              if long double == double.
      
              * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
              (ffi_prep_cif_machdep): Handle it as the 128-bit type.
              (ffi_call, ffi_closure_osf_inner): Likewise.
              (ffi_closure_osf_inner): Likewise.  Mark hidden.
              (ffi_call_osf, ffi_closure_osf): Mark hidden.
              * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
              * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
              (load_table): Handle 128-bit long double.
      
              * testsuite/libffi.call/float4.c: Add -mieee for alpha.
      
      From-SVN: r123622
      Richard Henderson committed
  4. 03 Apr, 2007 1 commit
    • closures.c: Include sys/statfs.h. · f0920e6c
      	* src/closures.c: Include sys/statfs.h.
      	(_GNU_SOURCE): Define on Linux.
      	(FFI_MMAP_EXEC_SELINUX): Define.
      	(selinux_enabled): New variable.
      	(selinux_enabled_check): New function.
      	(is_selinux_enabled): Define.
      	(dlmmap): Use it.
      
      	* configure.ac (NO_EXECUTE_PERMISSION): Set by default.
      	* configure: Rebuilt.
      
      From-SVN: r123457
      Jakub Jelinek committed
  5. 08 Mar, 2007 1 commit
  6. 07 Mar, 2007 2 commits
    • ffi.h.in (ffi_closure_alloc, [...]): New. · 18fa3240
      libffi/ChangeLog:
      * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
      (ffi_prep_closure_loc): New.
      (ffi_prep_raw_closure_loc): New.
      (ffi_prep_java_raw_closure_loc): New.
      * src/closures.c: New file.
      * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
      Replace sflags with exec_offset.
      [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
      sub_segment_exec_offset): New macros.
      (get_segment_flags, set_segment_flags, check_segment_merge): New
      macros.
      (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
      (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
      destroy_mspace): Use new macros.
      (sys_alloc): Silence warning.
      * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
      * Makefile.in: Rebuilt.
      * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
      terms of ffi_prep_closure_loc.
      * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
      from...
      (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
      renamed version.
      * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
      adjusted from...
      (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
      the renamed version.
      * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
      (ffi_prep_closure): ... this.
      * src/pa/ffi.c: Likewise.
      * src/cris/ffi.c: Likewise.  Adjust.
      * src/frv/ffi.c: Likewise.
      * src/ia64/ffi.c: Likewise.
      * src/mips/ffi.c: Likewise.
      * src/powerpc/ffi_darwin.c: Likewise.
      * src/s390/ffi.c: Likewise.
      * src/sh/ffi.c: Likewise.
      * src/sh64/ffi.c: Likewise.
      * src/sparc/ffi.c: Likewise.
      * src/x86/ffi64.c: Likewise.
      * src/x86/ffi.c: Likewise.
      (FFI_INIT_TRAMPOLINE): Adjust.
      (ffi_prep_raw_closure_loc): Renamed and adjusted from...
      (ffi_prep_raw_closure): ... this.
      * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
      (ffi_prep_closure): ... this.
      (flush_icache): Adjust.
      boehm-gc/ChangeLog:
      * include/gc.h (GC_REGISTER_FINALIZER_UNREACHABLE): New.
      (GC_register_finalizer_unreachable): Declare.
      (GC_debug_register_finalizer_unreachable): Declare.
      * finalize.c (GC_unreachable_finalize_mark_proc): New.
      (GC_register_finalizer_unreachable): New.
      (GC_finalize): Handle it.
      * dbg_mlc.c (GC_debug_register_finalizer_unreachable): New.
      (GC_debug_register_finalizer_no_order): Fix whitespace.
      libjava/ChangeLog:
      * include/jvm.h (_Jv_ClosureListFinalizer): New.
      (_Jv_Linker::create_error_method): Adjust.
      * boehm.cc (_Jv_ClosureListFinalizer): New.
      * nogc.cc (_Jv_ClosureListFinalizer): New.
      * java/lang/Class.h (class _Jv_ClosureList): New.
      (class java::lang::Class): Declare it as friend.
      * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures): New.
      (_Jv_ClosureList::registerClousure): New.
      * include/execution.h (_Jv_ExecutionEngine): Add get_closure_list.
      (_Jv_CompiledEngine::do_get_closure_list): New.
      (_Jv_CompiledEngine::_Jv_CompiledEngine): Use it.
      (_Jv_IndirectCompiledClass): Add closures.
      (_Jv_IndirectCompiledEngine::get_aux_info): New.
      (_Jv_IndirectCompiledEngine::do_allocate_field_initializers): Use
      it.
      (_Jv_IndirectCompiledEngine::do_get_closure_list): New.
      (_Jv_IndirectCompiledEngine::_Jv_IndirectCompiledEngine): Use it.
      (_Jv_InterpreterEngine::do_get_closure_list): Declare.
      (_Jv_InterpreterEngine::_Jv_InterpreterEngine): Use it.
      * interpret.cc (FFI_PREP_RAW_CLOSURE): Use _loc variants.
      (node_closure): Add closure list.
      (_Jv_InterpMethod::ncode): Add jclass argument.  Use
      ffi_closure_alloc and the separate code pointer.  Register the
      closure for finalization.
      (_Jv_JNIMethod::ncode): Likewise.
      (_Jv_InterpreterEngine::do_create_ncode): Pass klass to ncode.
      (_Jv_InterpreterEngine::do_get_closure_list): New.
      * include/java-interp.h (_Jv_InterpMethod::ncode): Adjust.
      (_Jv_InterpClass): Add closures field.
      (_Jv_JNIMethod::ncode): Adjust.
      * defineclass.cc (_Jv_ClassReader::handleCodeAttribute): Adjust.
      (_Jv_ClassReader::handleMethodsEnd): Likewise.
      * link.cc (struct method_closure): Add closure list.
      (_Jv_Linker::create_error_method): Add jclass argument.  Use
      ffi_closure_alloc and the separate code pointer.  Register the
      closure for finalization.
      (_Jv_Linker::link_symbol_table): Remove outdated comment about
      sharing of otable and atable.  Adjust.
      * java/lang/reflect/natVMProxy.cc (ncode_closure): Add closure
      list.
      (ncode): Add jclass argument.  Use ffi_closure_alloc and the
      separate code pointer.  Register the closure for finalization.
      (java::lang::reflect::VMProxy::generateProxyClass): Adjust.
      * testsuite/libjava.jar/TestClosureGC.java: New.
      * testsuite/libjava.jar/TestClosureGC.out: New.
      * testsuite/libjava.jar/TestClosureGC.xfail: New.
      * testsuite/libjava.jar/TestClosureGC.jar: New.
      
      From-SVN: r122652
      Alexandre Oliva committed
    • dlmalloc.c: New file, imported version 2.8.3 of Doug Lea's malloc. · dd778331
      * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
      Lea's malloc.
      
      From-SVN: r122651
      Alexandre Oliva committed
  7. 13 Feb, 2007 1 commit
  8. 02 Feb, 2007 1 commit
  9. 14 Dec, 2006 1 commit
    • configure.ac: Add TARGET for x86_64-*-darwin*. · f4f7486b
      2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
      
      	* configure.ac: Add TARGET for x86_64-*-darwin*.
      	* Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
      	for X86_DARWIN.
      	* src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
      	* src/x86/darwin64.S: New file for x86_64-*-darwin* support.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
      	ffi_call only.
      
      From-SVN: r119856
      Andreas Tobler committed
  10. 01 Nov, 2006 1 commit
    • In gcc/: PR 23067 · 58182de3
      In gcc/:
      	PR 23067
      	* c-decl.c (start_struct): Don't create self-containing
      	structures.
      	* config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
      	New.
      	* config/rs6000/rs6000-protos.h
      	(darwin_rs6000_special_round_type_align): New.
      	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
      	(ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
      In gcc/testsuite/:
      	PR 23067
      	* gcc.target/powerpc/darwin-abi-3.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-6.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-7.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-8.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-9.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-10.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-11.c: Remove XFAIL.
      In libobjc/:
      	* encoding.c (darwin_rs6000_special_round_type_align): New.
      In libffi/:
      	* src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
      	(ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
      	Darwin.
      	* testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
      	* testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
      
      From-SVN: r118365
      Geoffrey Keating committed
  11. 10 Oct, 2006 1 commit
    • configure.ac [...]: Set X86_DARWIN symbol and conditional. · a3bd50cc
      2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
      	    Sandro Tolaini  <tolaini@libero.it>
      
      	* configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and 
      	conditional.
      	* configure: Regenerated.
      	* Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
      	(EXTRA_DIST): Add src/x86/darwin.S.
      	* Makefile.in: Regenerated.
      	* include/Makefile.in: Regenerated.
      	* testsuite/Makefile.in: Regenerated.
      
      	* src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
      	X86_WIN32, and additionally align stack to 16 bytes.
      	* src/x86/darwin.S: New, based on sysv.S.
      	* src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
      
      
      Co-Authored-By: Sandro Tolaini <tolaini@libero.it>
      
      From-SVN: r117602
      Paolo Bonzini committed
  12. 19 May, 2006 1 commit
  13. 22 Apr, 2006 1 commit
    • README: Remove notice about 'Crazy Comments'. · ac6ed182
      2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
      
      	* README: Remove notice about 'Crazy Comments'.
      	* src/debug.c: Remove lint directives. Cleanup white spaces.
      	* src/java_raw_api.c: Likewise.
      	* src/prep_cif.c: Likewise.
      	* src/raw_api.c: Likewise.
      	* src/ffitest.c: Delete. No longer needed, all test cases migrated
      	to the testsuite.
      	* src/arm/ffi.c: Remove lint directives.
      	* src/m32r/ffi.c: Likewise.
      	* src/pa/ffi.c: Likewise.
      	* src/powerpc/ffi.c: Likewise.
      	* src/powerpc/ffi_darwin.c: Likewise.
      	* src/sh/ffi.c: Likewise.
      	* src/sh64/ffi.c: Likewise.
      	* src/x86/ffi.c: Likewise.
      	* testsuite/libffi.call/float2.c: Likewise.
      	* testsuite/libffi.call/promotion.c: Likewise.
      	* testsuite/libffi.call/struct1.c: Likewise.
      
      From-SVN: r113181
      Andreas Tobler committed
  14. 12 Apr, 2006 2 commits
  15. 05 Apr, 2006 1 commit
    • Makefile.am: Add PA_HPUX port. · e6c300ef
      2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
      	    Andreas Tobler  <a.tobler@schweiz.ch>
      
      	* Makefile.am: Add PA_HPUX port.
      	* Makefile.in: Regenerate.
      	* include/Makefile.in: Likewise.
      	* testsuite/Makefile.in: Likewise.
      	* configure.ac: Add PA_HPUX rules.
      	* configure: Regenerate.
      	* src/pa/ffitarget.h: Rename linux target to PA_LINUX.
      	Add PA_HPUX and PA64_HPUX.
      	Rename FFI_LINUX ABI to FFI_PA32 ABI.
      	(FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
      	(FFI_TYPE_SMALL_STRUCT2): Define.
      	(FFI_TYPE_SMALL_STRUCT4): Likewise.
      	(FFI_TYPE_SMALL_STRUCT8): Likewise.
      	(FFI_TYPE_SMALL_STRUCT3): Redefine.
      	(FFI_TYPE_SMALL_STRUCT5): Likewise.
      	(FFI_TYPE_SMALL_STRUCT6): Likewise.
      	(FFI_TYPE_SMALL_STRUCT7): Likewise.
      	* src/pa/ffi.c (ROUND_DOWN): Delete.
      	(fldw, fstw, fldd, fstd): Use '__asm__'.
      	(ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
      	FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
      	(ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
      	Simplify incrementing of stack slot variable. Change type of local
      	'n' to unsigned int.
      	(ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
      	double on PA_HPUX.
      	(ffi_prep_cif_machdep): Likewise.
      	(ffi_call): Likewise.
      	(ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
      	return type to ffi_status. Simplify incrementing of stack slot
      	variable. Only copy floating point argument registers when PA_LINUX
      	is true. Reformat debug statement.
      	Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
      	FFI_TYPE_SMALL_STRUCT8.
      	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
      	declaration.
      	(ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
      	Add nops to cache flush.  Add trampoline for PA_HPUX.
      	* src/pa/hpux32.S: New file.
      	* src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
      	ffi_prep_args_LINUX to ffi_prep_args_pa32.
      	Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
      	unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
      	argument type checks so that common argument types appear first.
      	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
      	ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
      
      Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>
      
      From-SVN: r112719
      John David Anglin committed
  16. 23 Mar, 2006 1 commit
    • ffitarget.h (enum ffi_abi): Add FFI_LINUX. · 75b8b1be
      	* src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
      	for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
      	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
      	FFI_TYPE_LONGDOUBLE.
      	(ffi_prep_args64): Assert using IBM extended double.
      	(ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
      	Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
      	(ffi_call): Handle FFI_LINUX.
      	(ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
      	gpr3 return pointer as for struct return.  Handle FFI_LINUX
      	FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
      	unnecessarily.
      	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
      	for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
      	Don't use r6 as pointer to results, instead use sp offset.  Don't
      	make a special call to load lr with case table address, instead
      	use offset from previous call.
      	* src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
      	* src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
      	return.
      
      From-SVN: r112340
      Alan Modra committed
  17. 15 Mar, 2006 1 commit
  18. 22 Feb, 2006 1 commit
  19. 18 Feb, 2006 1 commit
  20. 18 Jan, 2006 1 commit
  21. 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
  22. 03 Dec, 2005 1 commit
  23. 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
  24. 25 Aug, 2005 1 commit
  25. 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
  26. 09 Aug, 2005 1 commit
  27. 22 Jul, 2005 1 commit
  28. 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
  29. 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
  30. 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
  31. 15 Jun, 2005 1 commit
  32. 01 Jun, 2005 1 commit
  33. 08 May, 2005 1 commit
  34. 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
  35. 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
  36. 31 Mar, 2005 1 commit