aboutsummaryrefslogtreecommitdiff
path: root/libffi/src
AgeCommit message (Collapse)AuthorFilesLines
2004-07-11ffi.c (ffi_prep_args): Fix C aliasing violation.Ulrich Weigand1-10/+8
* src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation. (ffi_check_float_struct): Remove unused prototype. From-SVN: r84505
2004-06-30ffi_darwin.c (flush_icache): ';' is a comment character on Darwin, use ↵Geoffrey Keating1-5/+5
'\n\t' instead. * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment character on Darwin, use '\n\t' instead. From-SVN: r83899
2004-06-10unix.S (ffi_call_unix): Insert group barrier break fp_done.Jakub Jelinek1-2/+3
* src/ia64/unix.S (ffi_call_unix): Insert group barrier break fp_done. (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever changed from 8. From-SVN: r82904
2004-04-27Patch 14922Matt Austern2-2/+10
Patch 14922 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial FDE location. * src/powerpc/darwin_closure.S: Likewise. From-SVN: r81209
2004-03-20linux.S: Fix typo.Matthias Klose1-1/+1
2004-03-20 Matthias Klose <doko@debian.org> * src/pa/linux.S: Fix typo. From-SVN: r79739
2004-03-19[multiple changes]Matthias Klose4-2/+943
2004-03-19 Matthias Klose <doko@debian.org> * Makefile.am: Update * Makefile.in: Regenerate. * src/pa/ffi.h.in: Remove. * src/pa/ffitarget.h: New file. 2004-02-10 Randolph Chung <tausq@debian.org> * Makefile.am: Add PA support. * Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * configure.ac: Add PA target. * configure: Regenerate. * src/pa/ffi.c: New file. * src/pa/ffi.h.in: Add PA support. * src/pa/linux.S: New file. * prep_cif.c: Add PA support. From-SVN: r79702
2004-03-16types.c: Fix alignment size of X86_WIN32 case int64 and double.Hosaka Yuji3-6/+79
2004-03-16 Hosaka Yuji <hos@tamanegi.org> * src/types.c: Fix alignment size of X86_WIN32 case int64 and double. * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type with ecif->cif->flags. (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type with cif->flags. (ffi_prep_cif_machdep): Add X86_WIN32 struct case. (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32. * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b, sc_retstruct2b): Add for 1 or 2-bytes struct case. From-SVN: r79542
2004-03-12Enabled linkonce support for Darwin.Matt Austern2-11/+13
* target.h (struct gcc_target): New target hook, unwind_label. * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook. * output.h (default_emit_unwind_label): New function. * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro. (TARGET_USES_WEAK_UNWIND_INFO): New target macro. (TARGET_SUPPORTS_HIDDEN): New target macro. * dwarf2out.c (struct dw_fde_struct): Add field for function decl that corresponds to this FDE. (FRAME_BEGIN_LABEL): Allow target to override default label. (output_call_frame_info): If FDEs are linknonce, then use extra indirection for FDE encoding, output a label for each FDE, and output an empty label for each function without an FDE. (dwarf2out_begin_prologue): Set up decl field when creating an FDE. * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for decls with DECL_ONE_ONLY set, if that macro is defined. (make_decl_one_only): Don't use DECL_COMMON if we're compiling for a SUPPORTS_ONE_ONLY target. * config/darwin-protos.h (darwin_unique_section): Declare. (darwin_asm_named_section): Likewise. (darwin_section_type_flags): Likewise. (darwin_non_lazy_pcrel): Likewise. (darwin_emit_unwind_label): Likewise. (darwin_make_decl_one_only): Likewise. * config/darwin.c (machopic_finish): Get rid of tweak that eliminate stubs for symbols that are defined. (darwin_encode_section_info): Don't treat weak functions as defined. (darwin_make_decl_one_only): Define. (darwin_asm_named_section): Likewise. (darwin_section_type_flags): Likewise. (darwin_unique_section): Likewise. (darwin_emit_unwind_label): Likewise. (darwin_non_lazy_pcrel): Likewise. (darwin_asm_output_dwarf_delta): Difference between two labels is local only if both labels are local. * config/darwin.h (MAKE_DECL_ONE_ONLY): Define. (ASM_MAKE_LABEL_LINKONCE): Likewise. (TARGET_SUPPORTS_HIDDEN): Likewise. (TARGET_USES_WEAK_UNWIND_INFO): Likewise. (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise. (FRAME_BEGIN_LABEL): Likewise. (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect. (ASM_DECLARE_FUNCTION_NAME): Likewise. (darwin_eh_frame_section): Give __eh_frame section the coalesced flag. (TARGET_ASM_UNIQUE_SECTION): Define. (EH_FRAME_SECTION_NAME): Define. (EH_FRAME_SECTION_ATTR): Likewise. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. (TARGET_ASM_NAMED_SECTION): Likewise. (TARGET_SECTION_TYPE_FLAGS): Likewise. * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO, TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN, TARGET_ASM_EMIT_UNWIND_LABEL. * cp/decl2.c (maybe_make_one_only): Look at TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether to make an explicit instantiation weak. * cp/method.c (use_thunk): Make sure we call comdat_linkage when appropriate. * cp/pt.c (do_type_instantiation): On systems where weak symbols don't go in a static archive's TOC, explicit instantiation of a class must imply *explicit* instantiation of its memeber. From-SVN: r79394
2004-03-11ffi.c (ffi_prep_incoming_args_UNIX): Get floating point arguments from fp ↵Andreas Schwab1-8/+7
registers only for the first 8 parameter slots. * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point arguments from fp registers only for the first 8 parameter slots. Don't convert a float parameter when passed in memory. From-SVN: r79323
2004-02-26ffi.c (ffi_prep_args_SYSV): Change ecif->cif->bytes to bytes.Matt Kraai1-7/+9
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Change ecif->cif->bytes to bytes. (ffi_prep_cif_machdep): Add braces around nested if statement. From-SVN: r78477
2004-02-09* src/types.c (pointer): POWERPC64 has 8 byte pointers.Alan Modra1-1/+1
From-SVN: r77533
2004-02-09ffi.c (ffi_prep_args64): Correct long double handling.Alan Modra1-2/+19
* src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling. (ffi_closure_helper_LINUX64): Fix typo. * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128 for powerpc64-*-*. * testsuite/libffi.call/float.c: Likewise. * testsuite/libffi.call/float2.c: Likewise. From-SVN: r77522
2004-02-08ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct long double function ↵Alan Modra3-82/+97
return and long double arg handling. * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct long double function return and long double arg handling. (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var. Use "end_pfr" instead of "nf". Correct long double handling. Localise "temp". * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double return value. * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate space for long double return value. Adjust stack frame and offsets. Load f2 long double return. From-SVN: r77481
2004-02-07* src/types.c: Use 16 byte long double for POWERPC64.Alan Modra1-1/+1
From-SVN: r77441
2004-01-25ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure ↵Eric Botcazou3-87/+188
return address is passed in %o0. * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure return address is passed in %o0. (ffi_V9_return_struct): Rename into ffi_v9_layout_struct. (ffi_v9_layout_struct): Align the field following a nested structure on a word boundary. Use memmove instead of memcpy. (ffi_call): Update call to ffi_V9_return_struct. (ffi_prep_closure): Define 'ctx' only for V8. (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8 and ffi_closure_sparc_inner_v9. (ffi_closure_sparc_inner_v8): Return long doubles by reference. Always skip the structure return address. For structures and long doubles, copy the argument directly. (ffi_closure_sparc_inner_v9): Skip the structure return address only if required. Shift the maximum floating-point slot accordingly. For big structures, copy the argument directly; otherwise, left-justify the argument and call ffi_v9_layout_struct to lay out the structure on the stack. * src/sparc/v8.S: Undef STACKFRAME before defining it. (ffi_closure_v8): Pass the structure return address. Update call to ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling. Skip the 'unimp' insn when returning long doubles and structures. * src/sparc/v9.S: Undef STACKFRAME before defining it. (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit FFI_TYPE_INT handling. Load structures both in integers and floating-point registers on return. * README: Update status of the SPARC port. From-SVN: r76543
2004-01-21ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead of the LHS.Michael Ritzert1-1/+1
2004-01-21 Michael Ritzert <ritzert@t-online.de> * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead of the LHS. From-SVN: r76261
2003-12-02re PR libffi/13221 (libffi's closure couldn't pass sequence of char and/or ↵Hosaka Yuji1-4/+4
short arguments.) 2003-12-02 Hosaka Yuji <hos@tamanegi.org> PR other/13221 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Align arguments to 32 bits. From-SVN: r74161
2003-11-06prep_cif.c (ffi_prep_cif): Move the validity check after the initialization.Andreas Tobler1-2/+4
2003-11-06 Andreas Tobler <a.tobler@schweiz.ch> * src/prep_cif.c (ffi_prep_cif): Move the validity check after the initialization. From-SVN: r73309
2003-10-23java_raw_api.c (ffi_java_ptrarray_to_raw): Replace FFI_ASSERT(FALSE) with ↵Andreas Tobler1-1/+1
FFI_ASSERT(0). 2003-10-23 Andreas Tobler <a.tobler@schweiz.ch> * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace FFI_ASSERT(FALSE) with FFI_ASSERT(0). From-SVN: r72865
2003-10-22ffitarget.h: Replace undefined UINT32 and friends with ↵David Daney1-4/+4
__attribute__((__mode__(__SI__))) and... 2003-10-22 David Daney <ddaney@avtrex.com> * src/mips/ffitarget.h: Replace undefined UINT32 and friends with __attribute__((__mode__(__SI__))) and friends. From-SVN: r72802
2003-10-22* src/ia64/ffi.c: Replace FALSE/TRUE with false/true.Andreas Schwab1-13/+13
From-SVN: r72797
2003-10-21commit missing adds.Andreas Tobler11-0/+756
From-SVN: r72767
2003-10-21[multiple changes]Andreas Tobler32-173/+188
2003-10-21 Andreas Tobler <a.tobler@schweiz.ch> * configure.in: AC_LINK_FILES(ffitarget.h). * configure: Regenerate. * Makefile.in: Likewise. * include/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. * fficonfig.h.in: Likewise. 2003-10-21 Paolo Bonzini <bonzini@gnu.org> Richard Henderson <rth@redhat.com> Avoid that ffi.h includes fficonfig.h. * Makefile.am (EXTRA_DIST): Include ffitarget.h files (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX. (TARGET_SRC_MIPS_SGI): Removed. (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX. (MIPS_SGI): Removed. (CLEANFILES): Removed. (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New targets. * acconfig.h: Removed. * configure.in: Compute sizeofs only for double and long double. Use them to define and subst HAVE_LONG_DOUBLE. Include comments into AC_DEFINE instead of using acconfig.h. Create include/ffitarget.h instead of include/fficonfig.h. Rename MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree. AC_DEFINE EH_FRAME_FLAGS. * include/Makefile.am (DISTCLEANFILES): New automake macro. (hack_DATA): Add ffitarget.h. * include/ffi.h.in: Remove all system specific definitions. Declare raw API even if it is not installed, why bother? Use limits.h instead of SIZEOF_* to define ffi_type_*. Do not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include ffitarget.h instead of fficonfig.h. Remove ALIGN macro. (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead. * include/ffi_common.h (bool): Do not define. (ffi_assert): Accept failed assertion. (ffi_type_test): Return void and accept file/line. (FFI_ASSERT): Pass stringized failed assertion. (FFI_ASSERT_AT): New macro. (FFI_ASSERT_VALID_TYPE): New macro. (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32, UINT64, SINT64): Define here with gcc's __attribute__ macro instead of in ffi.h (FLOAT32, ALIGN): Define here instead of in ffi.h * include/ffi-mips.h: Removed. Its content moved to src/mips/ffitarget.h after separating assembly and C sections. * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c, src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S, src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c: SIZEOF_ARG -> FFI_SIZEOF_ARG. * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+). * src/debug.c (ffi_assert): Accept stringized failed assertion. (ffi_type_test): Rewritten. * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call FFI_ASSERT_VALID_TYPE. * src/alpha/ffitarget.h, src/arm/ffitarget.h, src/ia64/ffitarget.h, src/m68k/ffitarget.h, src/mips/ffitarget.h, src/powerpc/ffitarget.h, src/s390/ffitarget.h, src/sh/ffitarget.h, src/sh64/ffitarget.h, src/sparc/ffitarget.h, src/x86/ffitarget.h: New files. * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S, src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S, src/powerpc/aix.S, src/powerpc/darwin.S, src/powerpc/ffi_darwin.c, src/powerpc/linux64.S, src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S, src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S, src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S, src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S: include fficonfig.h From-SVN: r72766
2003-10-20ffi.c: Use _ABIN32, _ABIO32 instead of external _MIPS_SIM_NABI32, ↵Rainer Orth1-10/+10
_MIPS_SIM_ABI32. libffi: * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external _MIPS_SIM_NABI32, _MIPS_SIM_ABI32. libstdc++-v3: * config/cpu/mips/atomicity.h (__atomic_add): Use _ABIO32 instead of external _MIPS_SIM_ABI32. boehm-gc: * mips_sgi_mach_dep.s: Use _ABIO32 instead of external _MIPS_SIM_ABI32. gcc: * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32. Use it in _MIPS_SIM definition. * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise. From-SVN: r72713
2003-10-20ffi_darwin.c (ffi_prep_args): Declare bytes again.Andreas Tobler1-0/+1
2003-10-19 Andreas Tobler <a.tobler@schweiz.ch> * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again. Used when FFI_DEBUG = 1. From-SVN: r72691
2003-10-14types.c (double, longdouble): Default POWERPC64 to 8 byte size and align.Alan Modra1-1/+1
* src/types.c (double, longdouble): Default POWERPC64 to 8 byte size and align. From-SVN: r72432
2003-09-18aix.S: Cleanup whitespaces.David Edelsohn2-23/+22
* src/powerpc/aix.S: Cleanup whitespaces. * src/powerpc/aix_closure.S: Likewise. From-SVN: r71542
2003-09-18darwin.S: Cleanup whitespaces, comment formatting.Andreas Tobler3-224/+219
2003-09-18 Andreas Tobler <a.tobler@schweiz.ch> * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting. * src/powerpc/darwin_closure.S: Likewise. * src/powerpc/ffi_darwin.c: Likewise. From-SVN: r71533
2003-09-18types.c (double): Add AIX and Darwin to the right TYPEDEF.Andreas Tobler4-184/+168
2003-09-18 Andreas Tobler <a.tobler@schweiz.ch> David Edelsohn <edelsohn@gnu.org> * src/types.c (double): Add AIX and Darwin to the right TYPEDEF. * src/powerpc/aix_closure.S: Remove the pointer to the outgoing parameter stack. * src/powerpc/darwin_closure.S: Likewise. * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures according to the Darwin/AIX ABI. (ffi_prep_cif_machdep): Likewise. (ffi_closure_helper_DARWIN): Likewise. Remove the outgoing parameter stack logic. Simplify the evaluation of the different CASE types. (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch statement in the trampoline code. Co-Authored-By: David Edelsohn <edelsohn@gnu.org> From-SVN: r71530
2003-09-18ffi.c (ffi_prep_args): Take account into the alignement for the register size.Kaz Kojima2-20/+21
* src/sh/ffi.c (ffi_prep_args): Take account into the alignement for the register size. (ffi_closure_helper_SYSV): Handle the structure return value address correctly. (ffi_closure_helper_SYSV): Return the appropriate type when the registers are used for the structure return value. * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for the 64-bit return value. Update copyright years. From-SVN: r71521
2003-09-12prep_cif.c (initialize_aggregate): Include tail padding in structure size.Alan Modra2-1/+10
* src/prep_cif.c (initialize_aggregate): Include tail padding in structure size. * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct placement of float result. * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct cast of "resp" for big-endian 64 bit machines. From-SVN: r71323
2003-09-11types.c (double, longdouble): Merge identical SH and ARM typedefs, and add ↵Alan Modra3-13/+8
POWERPC64. * src/types.c (double, longdouble): Merge identical SH and ARM typedefs, and add POWERPC64. * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for struct split over gpr and rest. (ffi_prep_cif_machdep): Correct intarg_count for structures. * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets. From-SVN: r71295
2003-09-092003-09-09 Andreas Tobler <a.tobler@schweiz.ch>Andreas Tobler1-2/+14
* src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct passing correctly. From-SVN: r71238
2003-09-04java_raw_api.c: Include <stdlib.h> to fix compiler warning about implicit ↵Andreas Tobler1-0/+1
declaration of abort(). 2003-08-30 Andreas Tobler <a.tobler@schweiz.ch> * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning about implicit declaration of abort(). From-SVN: r71071
2003-08-13ffi.c (OFS_INT16): Set 0 for little endian case.Kaz Kojima1-2/+2
* src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update copyright years. From-SVN: r70421
2003-08-02ffi.c (ffi_prep_args64): Modify for changed gcc structure passing.Alan Modra3-95/+71
* src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc structure passing. (ffi_closure_helper_LINUX64): Likewise. * src/powerpc/linux64.S: Remove code writing to parm save area. * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return address in lr from ffi_closure_helper_LINUX64 call to calculate table address. Optimize function tail. From-SVN: r70050
2003-07-30re PR libffi/11410 (ffitest failures on Solaris 8/SPARC)Andreas Tobler2-17/+27
2003-07-28 Andreas Tobler <a.tobler@schweiz.ch> * src/sparc/ffi.c: Handle all floating point registers. * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410. From-SVN: r69951
2003-06-19ppc_closure.S: Include ffi.h.Franz Sirl1-0/+1
2003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * src/powerpc/ppc_closure.S: Include ffi.h. From-SVN: r68191
2003-06-13sysv.S: Avoid gas-only .uleb128/.sleb128 directives.Rainer Orth1-30/+30
* src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives. Use C style comments. From-SVN: r67891
2003-06-13Makefile.am: Add SHmedia support.Kaz Kojima2-0/+931
* Makefile.am: Add SHmedia support. Fix a typo of SH support. * Makefile.in: Regenerate. * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target. * configure: Regenerate. * include/ffi.h.in: Add SHmedia support. * src/sh64/ffi.c: New file. * src/sh64/sysv.S: New file. From-SVN: r67869
2003-05-17configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section should be ↵Jakub Jelinek10-62/+120
read-only. * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section should be read-only. * configure: Rebuilt. * fficonfig.h.in: Rebuilt. * include/ffi.h.in (EH_FRAME_FLAGS): Define. * src/alpha/osf.S: Use EH_FRAME_FLAGS. * src/powerpc/linux64.S: Likewise. * src/powerpc/linux64_closure.S: Likewise. Include ffi.h. * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding if -fpic/-fPIC/-mrelocatable. * src/powerpc/powerpc_closure.S: Likewise. * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include #write in .eh_frame flags. * src/sparc/v9.S: Likewise. * src/x86/unix64.S: Use EH_FRAME_FLAGS. * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC. * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h. From-SVN: r66887
2003-05-08Solaris 7 .register fix.Jeff Sturm1-1/+3
From-SVN: r66617
2003-04-18configure.in (powerpc64*-*-linux*): Remove.Jakub Jelinek6-112/+928
* configure.in (powerpc64*-*-linux*): Remove. * configure: Rebuilt. libffi/ * include/ffi.h.in (POWERPC64): Define if 64-bit. (enum ffi_abi): Add FFI_LINUX64 on POWERPC. Make it the default on POWERPC64. (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64. * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*. * configure: Rebuilt. * src/powerpc/ffi.c (hidden): Define. (ffi_prep_args_SYSV): Renamed from ffi_prep_args. Cast pointers to unsigned long to shut up warnings. (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64, ASM_NEEDS_REGISTERS64): New. (ffi_prep_args64): New function. (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI. (ffi_call): Likewise. (ffi_prep_closure): Likewise. (flush_icache): Surround by #ifndef POWERPC64. (ffi_dblfl): New union type. (ffi_closure_helper_SYSV): Use it to avoid aliasing problems. (ffi_closure_helper_LINUX64): New function. * src/powerpc/ppc_closure.S: Surround whole file by #ifndef __powerpc64__. * src/powerpc/sysv.S: Likewise. (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV. * src/powerpc/linux64.S: New file. * src/powerpc/linux64_closure.S: New file. * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and src/powerpc/linux64_closure.S. (TARGET_SRC_POWERPC): Likewise. * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2, closure_test_fn3): Fix result printing on big-endian 64-bit machines. (main): Print tst2_arg instead of uninitialized tst2_result. * src/ffitest.c (main): Hide what closure pointer really points to from the compiler. From-SVN: r65781
2003-03-21ffi.h.in: Define X86 instead of X86_64 in 32 bit mode.Zdenek Dvorak1-29/+16
* libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32 bit mode. * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Receive closure pointer through parameter, read args using __builtin_dwarf_cfa. (FFI_INIT_TRAMPOLINE): Send closure reference through eax. From-SVN: r64663
2003-03-10Andreas Tobler <a.tobler@schweiz.ch>Andreas Tobler1-91/+158
* src/powerpc/darwin_closure.S: Recode to fit dynamic libraries. From-SVN: r64106
2003-02-07darwin_closure.S: Fix alignement bug, allocate 8 bytes for the result.Andreas Tobler3-64/+68
2003-02-06 Andreas Tobler <a.tobler@schweiz.ch> * libffi/src/powerpc/darwin_closure.S: Fix alignement bug, allocate 8 bytes for the result. * libffi/src/powerpc/aix_closure.S: Likewise. * libffi/src/powerpc/ffi_darwin.c: Update stackframe description for aix/darwin_closure.S. From-SVN: r62514
2003-02-06ffi.c (ffi_closure_helper_SYSV): Add hidden visibility attribute.Jakub Jelinek1-3/+7
* src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility attribute. From-SVN: r62454
2003-01-29ppc_closure.S: Recode to fit shared libs.Franz Sirl1-73/+121
2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * src/powerpc/ppc_closure.S: Recode to fit shared libs. From-SVN: r62112
2003-01-28ffi.h.in: Enable FFI_CLOSURES for x86_64.Andrew Haley2-1/+227
2003-01-28 Andrew Haley <aph@redhat.com> * include/ffi.h.in: Enable FFI_CLOSURES for x86_64. * src/x86/ffi64.c (ffi_prep_closure): New. (ffi_closure_UNIX64_inner): New. * src/x86/unix64.S (ffi_closure_UNIX64): New. From-SVN: r61978
2003-01-22darwin.S (_ffi_call_AIX): Add Augmentation size to unwind info.Andrew Haley1-0/+1
2003-01-22 Andrew Haley <aph@redhat.com> * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to unwind info. From-SVN: r61608