summaryrefslogtreecommitdiff
path: root/libffi/src
Commit message (Collapse)AuthorAgeFilesLines
* 2004-03-20 Matthias Klose <doko@debian.org>doko2004-03-201-1/+1
| | | | | | | * src/pa/linux.S: Fix typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79739 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-03-19 Matthias Klose <doko@debian.org>doko2004-03-194-2/+943
| | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79702 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-03-16 Hosaka Yuji <hos@tamanegi.org>andreast2004-03-163-6/+79
| | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79542 138bc75d-0d04-0410-961f-82ee72b054a4
* Enabled linkonce support for Darwin.austern2004-03-122-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79394 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating pointschwab2004-03-111-8/+7
| | | | | | | | arguments from fp registers only for the first 8 parameter slots. Don't convert a float parameter when passed in memory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79323 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffi.c (ffi_prep_args_SYSV): Changekraai2004-02-261-7/+9
| | | | | | | | ecif->cif->bytes to bytes. (ffi_prep_cif_machdep): Add braces around nested if statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78477 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/types.c (pointer): POWERPC64 has 8 byte pointers.amodra2004-02-091-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77533 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.amodra2004-02-091-2/+19
| | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77522 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correctamodra2004-02-083-82/+97
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77481 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/types.c: Use 16 byte long double for POWERPC64.amodra2004-02-071-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77441 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter arrayebotcazou2004-01-253-87/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76543 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-01-21 Michael Ritzert <ritzert@t-online.de>aj2004-01-211-1/+1
| | | | | | | | * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead of the LHS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76261 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-12-02 Hosaka Yuji <hos@tamanegi.org>andreast2003-12-021-4/+4
| | | | | | | | | PR other/13221 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Align arguments to 32 bits. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74161 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-11-06 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-11-061-2/+4
| | | | | | | | * src/prep_cif.c (ffi_prep_cif): Move the validity check after the initialization. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73309 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-23 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-10-231-1/+1
| | | | | | | | * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace FFI_ASSERT(FALSE) with FFI_ASSERT(0). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72865 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-22 David Daney <ddaney@avtrex.com>daney2003-10-221-4/+4
| | | | | | | | * src/mips/ffitarget.h: Replace undefined UINT32 and friends with __attribute__((__mode__(__SI__))) and friends. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72802 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.schwab2003-10-221-13/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72797 138bc75d-0d04-0410-961f-82ee72b054a4
* commit missing adds.andreast2003-10-2111-0/+756
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72767 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-21 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-10-2132-173/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72766 138bc75d-0d04-0410-961f-82ee72b054a4
* libffi:ro2003-10-201-10/+10
| | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72713 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-19 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-10-201-0/+1
| | | | | | | | * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again. Used when FFI_DEBUG = 1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72691 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/types.c (double, longdouble): Default POWERPC64 to 8 byte sizeamodra2003-10-131-1/+1
| | | | | | | and align. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72432 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/aix.S: Cleanup whitespaces.dje2003-09-182-23/+22
| | | | | | | * src/powerpc/aix_closure.S: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71542 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-09-183-224/+219
| | | | | | | | | * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting. * src/powerpc/darwin_closure.S: Likewise. * src/powerpc/ffi_darwin.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71533 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-09-184-184/+168
| | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71530 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/sh/ffi.c (ffi_prep_args): Take account into the alignementkkojima2003-09-182-20/+21
| | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71521 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/prep_cif.c (initialize_aggregate): Include tail padding inamodra2003-09-112-1/+10
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71323 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/types.c (double, longdouble): Merge identical SH and ARMamodra2003-09-113-13/+8
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71295 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-09-091-2/+14
| | | | | | | | * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct passing correctly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71238 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-08-30 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-09-041-0/+1
| | | | | | | | * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning about implicit declaration of abort(). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71071 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Updatekkojima2003-08-131-2/+2
| | | | | | | copyright years. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70421 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gccamodra2003-08-013-95/+71
| | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70050 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-07-28 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-07-302-17/+27
| | | | | | | | * src/sparc/ffi.c: Handle all floating point registers. * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69951 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2003-06-191-0/+1
| | | | | | | * src/powerpc/ppc_closure.S: Include ffi.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68191 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.ro2003-06-131-30/+30
| | | | | | | Use C style comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67891 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.am: Add SHmedia support. Fix a typo of SH support.kkojima2003-06-132-0/+931
| | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67869 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame sectionjakub2003-05-1610-62/+120
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66887 138bc75d-0d04-0410-961f-82ee72b054a4
* Solaris 7 .register fix.green2003-05-081-1/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66617 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in (powerpc64*-*-linux*): Remove.jakub2003-04-186-112/+928
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65781 138bc75d-0d04-0410-961f-82ee72b054a4
* * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32rakdver2003-03-211-29/+16
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64663 138bc75d-0d04-0410-961f-82ee72b054a4
* Andreas Tobler <a.tobler@schweiz.ch>andreast2003-03-101-91/+158
| | | | | | | * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64106 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>andreast2003-02-073-64/+68
| | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62514 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibilityjakub2003-02-051-3/+7
| | | | | | | attribute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62454 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2003-01-291-73/+121
| | | | | | | * src/powerpc/ppc_closure.S: Recode to fit shared libs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62112 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-28 Andrew Haley <aph@redhat.com>aph2003-01-282-1/+227
| | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61978 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-22 Andrew Haley <aph@redhat.com>aph2003-01-221-0/+1
| | | | | | | | * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to unwind info. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61608 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-21 Andreas Tobler <a.tobler@schweiz.ch>tromey2003-01-212-25/+131
| | | | | | | | * src/powerpc/darwin.S: Add unwind info. * src/powerpc/darwin_closure.S: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61568 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-14 Andrew Haley <aph@redhat.com>aph2003-01-142-3/+46
| | | | | | | | | * src/x86/ffi64.c (ffi_prep_args): Check for void retval. (ffi_prep_cif_machdep): Likewise. * src/x86/unix64.S: Add unwind info. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61291 138bc75d-0d04-0410-961f-82ee72b054a4
* * src/ffitest.c (main): Only use ffi_closures if those areaj2003-01-141-1/+3
| | | | | | | supported. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61273 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>tromey2003-01-142-30/+265
| | | | | | | | | | | | | * libffi/src/ffitest.c add closure testcases 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca> * libffi/src/powerpc/ffi.c fix alignment bug for float (4 byte aligned iso 8 byte) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61263 138bc75d-0d04-0410-961f-82ee72b054a4