Age | Commit message (Collapse) | Author |
|
(ffi_prep_args_pa32): Likewise.
(ffi_size_stack_pa32): Likewise.
(ffi_prep_cif_machdep): Likewise.
(ffi_call): Likewise. Rename to ffi_call_int. Add closure argument
and update call to ffi_call_pa32.
(ffi_call, ffi_call_go, ffi_prep_go_closure): New.
(ffi_closure_inner_pa32): Update to handle go closures.
* src/pa/ffitarget.h (FFI_GO_CLOSURES): Define.
* src/pa/hpux32.S (ffi_call_pa32): Pass go closure argument in static
chain register (%ret1).
(ffi_closure_pa32): Set closure type argument to zero.
(ffi_go_closure_pa32): New function. Add unwind data for it.
* src/pa/linux.S: Likewise. Use cfi directives for unwind data.
* testsuite/libffi.go/static-chain.h (STATIC_CHAIN_REG): Define for
hppa.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239978 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/aarch64/ffitarget.h (FFI_SIZEOF_JAVA_RAW) [__ILP32__]:
Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234282 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
ppc32 starts using the stack for integer arg passing when we run out
of integer arg passing registers. Similarly, we start using the stack
for floating point args when we run out of floating point registers.
The decision on where an integer arg goes does not depend on number of
floating point args, nor does the decision on where a floating point
arg goes depend on number of integer args. Alignment of stack args
also simply depends on number of stack args.
This patch untangles the horrible mess we had, with intarg_count being
wrongly used to count both integer args and stack words.
* src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
gprs, and stack words separately.
(ffi_prep_args_SYSV): Similarly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228307 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/aarch64/ffitarget.h (ffi_arg): Use unsigned long long for ILP32.
(FFI_SIZEOF_ARG): Define to 64 for ILP32.
(ffi_sarg): Use signed long long for ILP32.
* src/aarch64/sysv.S (PTR_REG): New macro.
(PTR_SIZE): New macro.
(ffi_closure_SYSV): Load cif, fn and user_data using PTR_REG.
(ffi_go_closure_SYSV): Load cif and fn using PTR_REG.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220598 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Includes build fixes for Solaris and FreeBSD.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220222 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Includes build fixes for Solaris and Cygwin.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219860 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
(FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219538 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/x86/ffi.c (ffi_raw_call): Fill in frame.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219505 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219477 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
POWERPC64 is not defined.
* src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215155 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
(ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213049 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Currently it is not possible to build GCC's libjava support on Cygwin-64.
This patch fixes the current build-problems on Cygwin-64 and the most
fundamental bugs on that platform.
Note you must still add --enable-threads=posix to successfully build the
java language support.
boehm-gc/ChangeLog:
2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
Fix current cygwin-64 build problems.
* include/gc_config_macros.h (GC_PTHREADS): Use __CYGWIN__ instead
of __CYGWIN32__ here.
* win32_threads.c (GC_push_all_stacks): Push all X86_64 registers.
(GC_get_thread_stack_base): Get the stack base for X86_64.
libffi/ChangeLog:
2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
Fix current cygwin-64 build problems.
* src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
* src/x86/ffi.c: Add if defined(__CYGWIN__).
* src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
Added SEH information. Fixed formatting.
libgcc/ChangeLog:
2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
* unwind-seh.c (_Unwind_Backtrace): Uncommented, finished
implementation.
libjava/ChangeLog:
2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
Fix current cygwin-64 build problems.
* configure.host: Added handling for x86_64-*-cygwin/mingw.
* boehm.cc (_Jv_GCAttachThread, _Jv_GCDetachThread): Don't compile if
GC_WIN32_THREADS is defined.
* java/lang/natClass.cc (_Jv_InterfaceAssignableFrom): Rename interface
to source_interface.
libjava/classpath/ChangeLog:
2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
Fix current cygwin-64 build problems.
* native/fdlibm/mprec.c (_REENT_CHECK_MP, _REENT_MP_FREELIST,
_REENT_MP_P5S, __ULong, __Long): Undefine previous definitions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210386 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
main CFA reg; update cfi_rel_offset.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208515 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/sparc/v8.S: Assemble only if !SPARC64.
* src/sparc/v9.S: Remove obsolete comment.
* src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
(V8_ABI_P): New macro.
(V9_ABI_P): Likewise.
(FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
* src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
(ffi_prep_args_v9): Compile only if SPARC64.
(ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
(ffi_prep_cif_machdep): Guard access to nfixedargs field.
(ffi_prep_cif_machdep_var): Likewise.
(ffi_v9_layout_struct): Compile only if SPARC64.
(ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
(ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
(ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
(ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
to nfixedargs field.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207822 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
(FFI_EXTRA_CIF_FIELDS): Likewise.
(FFI_NATIVE_RAW_API): Move around.
* src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from...
(ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core.
(ffi_prep_cif_machdep_var): New function.
(ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in
FP registers.
* doc/libffi.texi (Introduction): Fix inaccuracy.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207763 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/powerpc/ffi_powerpc.h: Likewise.
* src/powerpc/ffi.c: Likewise.
* src/powerpc/ffi_sysv.c: Likewise.
* src/powerpc/ffi_linux64.c: Likewise.
* src/powerpc/sysv.S: Likewise.
* src/powerpc/ppc_closure.S: Likewise.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise.
* src/types.c: Likewise.
* Makefile.am (EXTRA_DIST): Add new src/powerpc files.
(nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
* configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
* include/ffi.h.in (ffi_prep_types): Declare.
* src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
* configure: Regenerate.
* fficonfig.h.in: Regenerate.
* Makefile.in: Regenerate.
* man/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205844 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204918 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/powerpc/ffitarget.h: Import from upstream.
* src/powerpc/ffi.c: Likewise.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise.
* doc/libffi.texi: Likewise.
* testsuite/libffi.call/cls_double_va.c: Likewise.
* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204917 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
before statements.
(ffi_prep_args64): Support little-endian.
(ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200383 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
symbol pc-relative.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196900 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Move default definition outside enclosing #if scope.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196527 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
DOUBLE equal LONGDOUBLE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195812 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194722 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/powerpc/linux64.S: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193015 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libffi/53014
* src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
soft-float.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190696 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
just return FFI_BAD_ABI when things are wrong.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190230 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libffi/53982
PR libffi/53973
* src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for
x32.
(FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189626 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Silence casting pointer to integer of different size warning.
Delete goto to previously deleted label.
(ffi_call): Silence possibly undefined warning.
(ffi_closure_helper_SYSV): Declare variable type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186091 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185955 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
just return FFI_BAD_ABI when things are wrong.
* src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185361 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
change to return value of ffi_closure_helper_DARWIN and load type
from return type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185152 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184897 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/x86/ffi.c (ffi_closure_raw_THISCALL): New
prototype.
(ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
thiscall-convention.
(ffi_raw_call): Use ffi_prep_args_raw.
* src/x86/win32.S (ffi_closure_raw_THISCALL): Add
implementation for stub.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184526 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
support for X86_WIN32.
(FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184155 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184129 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
also FFI_THISCALL.
* src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
(FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
(ffi_prep_closure_loc): Add FFI_THISCALL support.
* src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
* src/x86/win32.S (ffi_closure_THISCALL): New closure code
for thiscall-calling convention.
* testsuite/libffi.call/closure_thiscall.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184021 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
argument to prototype for specify calling-convention.
(ffi_call): Add support for stdcall/thiscall convention.
(ffi_prep_args): Likewise.
(ffi_raw_call): Likewise.
* src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
FFI_FASTCALL.
* src/x86/win32.S (_ffi_call_win32): Add support for
fastcall/thiscall calling-convention calls.
* testsuite/libffi.call/fastthis1_win32.c: New test.
* testsuite/libffi.call/fastthis2_win32.c: New test.
* testsuite/libffi.call/fastthis3_win32.c: New test.
* testsuite/libffi.call/strlen2_win32.c: New test.
* testsuite/libffi.call/many2_win32.c: New test.
* testsuite/libffi.call/struct1_win32.c: New test.
* testsuite/libffi.call/struct2_win32.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183676 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183451 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183301 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/mips/n32.S: Add ".set mips4".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182091 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/powerpc/darwin_closure.S (stubs): Make the stub binding
helper reference track the architecture pointer size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178512 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
instructions.
* src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178060 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176172 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Define.
Use them to handle ELF vs. ECOFF differences.
[__osf__] (_GLOBAL__F_ffi_call_osf): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173151 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
Handle case when CPU variant does not have long double support.
* libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
and cores with soft floating point.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169938 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* configure.ac: Add mips*-*-rtems* support.
* configure: Regenerate.
* src/mips/ffitarget.h: Ensure needed constants are available
for targets which do not have sgidefs.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169936 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168438 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libffi/29152
PR libffi/42378
* src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
update comments.
* src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
(FFI_TRAMPOLINE_SIZE): Update for Darwin64.
* src/powerpc/darwin.S: Provide Darwin64 implementation,
update comments.
* src/powerpc/ffi_darwin.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168016 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
(ffi_closure_VFP): Same.
(ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
directive.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167434 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
(.eh_frame): Use FDE_ENCODING.
(.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167251 138bc75d-0d04-0410-961f-82ee72b054a4
|