aboutsummaryrefslogtreecommitdiff
path: root/libffi
AgeCommit message (Collapse)AuthorFilesLines
2006-01-21configure.ac: Enable libffi for sparc64-*-freebsd*.Andreas Tobler3-2/+7
2006-01-21 Andreas Tobler <a.tobler@schweiz.ch> * configure.ac: Enable libffi for sparc64-*-freebsd*. * configure: Rebuilt. From-SVN: r110073
2006-01-18sysv.S (smst_two_register): Don't call __ashldi3, instead do the shifting ↵Jakub Jelinek3-36/+46
inline. * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3, instead do the shifting inline. * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4 and 8 byte structs, for the remaining struct sizes don't call __lshrdi3, instead do the shifting inline. From-SVN: r109879
2005-12-07ffitarget.h: Remove obsolete sgidefs.h include.Thiemo Seufer4-156/+195
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
2005-12-03ffi.c: Formatting.Alan Modra2-257/+345
* src/powerpc/ffi.c: Formatting. (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions. (ffi_prep_args64): Likewise. From-SVN: r107963
2005-10-31.cvsignore are not needed for subversion, remove them.Andreas Jaeger1-1/+0
From-SVN: r106279
2005-10-01libffi-dg.exp (libffi_target_compile): For darwin, use -shared-libgcc not ↵Geoffrey Keating2-2/+12
-lgcc_s, and explain why. * testsuite/lib/libffi-dg.exp (libffi_target_compile): For darwin, use -shared-libgcc not -lgcc_s, and explain why. From-SVN: r104847
2005-09-26float1.c (value_type): New typedef.Tom Tromey4-5/+41
* 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
2005-08-25re PR target/23404 (gij trashes args of functions with more than 8 fp args)Alan Modra2-2/+11
PR target/23404 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack homed fp args. (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same. From-SVN: r103462
2005-08-11configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.Jakub Jelinek9-116/+433
* 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
2005-08-10re PR libffi/21819 (i*86-*-gnu* not enabled in configure.ac)Alfred M. Szmidt3-0/+8
2005-08-10 Alfred M. Szmidt <ams@gnu.org> PR libffi/21819: * configure: Rebuilt. * configure.ac: Handle i*86-*-gnu*. From-SVN: r102953
2005-08-09ppc_closure.S (ffi_closure_SYSV): Use DW_CFA_offset_extended_sf rather than ↵Jakub Jelinek3-4/+11
DW_CFA_GNU_negative_offset_extended. * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use DW_CFA_offset_extended_sf rather than DW_CFA_GNU_negative_offset_extended. * src/powerpc/sysv.S (ffi_call_SYSV): Likewise. From-SVN: r102900
2005-07-22sysv.S (ffi_call_SYSV): Stop argument popping correctly on sh3.SUGIOKA Toshinobu3-40/+78
* src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly on sh3. (ffi_closure_SYSV): Change the stack layout for sh3 struct argument. * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is partially on register. (ffi_closure_helper_SYSV): Likewise. (ffi_prep_cif_machdep): Don't set too many cif->flags. From-SVN: r102298
2005-07-20ffi.c (ffi_call): Handle small structures correctly.Kaz Kojima4-54/+119
* 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
2005-07-192005-07-19 Andreas Tobler <a.tobler@schweiz.ch>Andreas Tobler1-0/+19
push the missing CL. From-SVN: r102175
2005-07-19Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.Andreas Tobler10-53/+229
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
2005-07-10cls_5_1_byte.c: New test file.Andreas Tobler4-0/+366
2005-07-10 Andreas Tobler <a.tobler@schweiz.ch> * testsuite/libffi.call/cls_5_1_byte.c: New test file. * testsuite/libffi.call/cls_6_1_byte.c: Likewise. * testsuite/libffi.call/cls_7_1_byte.c: Likewise. From-SVN: r101855
2005-07-06ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1 as ↵Randolph Chung4-34/+101
FFI_TYPE_SMALL_STRUCT3. * 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
2005-06-15re PR libffi/21943 (O32 libffi.so fails to link on IRIX 6)Rainer Orth3-2/+10
PR libgcj/21943 * src/mips/n32.S: Enforce PIC code. * src/mips/o32.S: Likewise. From-SVN: r100961
2005-06-14configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.Rainer Orth3-0/+7
* configure.ac: Treat i*86-*-solaris2.10 and up as X86_64. * configure: Regenerate. From-SVN: r100959
2005-06-01ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET to call ↵Alan Modra3-2/+8
ffi_closure_helper_SYSV. * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET to call ffi_closure_helper_SYSV. Append @local instead. * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV. From-SVN: r100416
2005-05-18Fixup the date of last entryR. Kelley Cook1-1/+1
From-SVN: r99881
2005-05-18configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.Kelley Cook9-112/+816
2005-05-03 Kelley Cook <kcook@gcc.gnu.org> * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS. Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF. * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config. * aclocal.m4, configure, fficonfig.h.in, Makefile.in, include/Makefile.in, testsuite/Makefile.in: Regenerate. From-SVN: r99879
2005-05-10* configure: Regenerate.Mike Stump2-1/+5
From-SVN: r99498
2005-05-08re PR libffi/21285 (gij fails to handle NullPointerException exception)Richard Henderson2-45/+54
PR libffi/21285 * src/alpha/osf.S: Update unwind into to match code. From-SVN: r99415
2005-05-04ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in bit 11 of flags.Richard Henderson3-52/+107
* 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
2005-04-29Fix typo in previous patch.Ralf Corsepius2-2/+2
From-SVN: r98984
2005-04-29configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*, powerpc-*rtems*, ↵Ralf Corsepius3-0/+16
arm*-*-rtems*, sh-*-rtems*. 2005-05-29 Ralf Corsepius <ralf.corsepius@rtems.org> * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*, powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*. * configure: Regenerate. From-SVN: r98983
2005-04-20libffi-dg.exp (libffi-dg-test-1): In regsub use, have Tcl8.3-compatible ↵Hans-Peter Nilsson2-2/+7
intermediate variable. * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use, have Tcl8.3-compatible intermediate variable. From-SVN: r98453
2005-04-18Add include/Makefile.in to last entryHans-Peter Nilsson1-1/+2
From-SVN: r98333
2005-04-18Makefile.am: Add CRIS support.Simon Posnjak11-24/+737
* 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
2005-04-18libffi-dg.exp (libffi-dg-test-1): Replace \n with \r?\n in output tests.Hans-Peter Nilsson2-0/+21
* testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with \r?\n in output tests. From-SVN: r98329
2005-04-13* configure: Regenerate.Mike Stump2-1/+66
From-SVN: r98065
2005-03-31* src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.Hans Boehm2-2/+6
From-SVN: r97303
2005-03-30* src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.Steve Ellcey3-37/+26
(ffi_sarg) Ditto. * src/ia64/unix.S (ffi_closure_unix): Extend gp to 64 bits in ILP32 mode. Load 64 bits even for short data. From-SVN: r97283
2005-03-24darwin.S: Update for -m64 multilib.Mike Stump3-20/+48
* src/powerpc/darwin.S: Update for -m64 multilib. * src/powerpc/darwin_closure.S: Likewise. From-SVN: r96967
2005-03-21configure.ac: Do not invoke TL_AC_GCC_VERSION.Zack Weinberg8-58/+26
* configure.ac: Do not invoke TL_AC_GCC_VERSION. Do not set tool_include_dir. * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in: Regenerate. * include/Makefile.am: Set gcc_version and toollibffidir. * include/Makefile.in: Regenerate. From-SVN: r96823
2005-02-23re PR libffi/20104 (gij fails on ppc and not on x86)Andrew Haley2-3/+12
2005-02-22 Andrew Haley <aph@redhat.com> PR libffi/20104 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to odd-numbered register pairs for 64-bit integer types. From-SVN: r95455
2005-02-23re PR libffi/20104 (gij fails on ppc and not on x86)Andreas Tobler2-0/+47
2005-02-23 Andreas Tobler <a.tobler@schweiz.ch> PR libffi/20104 * testsuite/libffi.call/return_ll1.c: New test case. From-SVN: r95454
2005-02-11cls_align_longdouble.c: Remove dg-options.Janis Johnson5-4/+7
* testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options. * testsuite/libffi.call/float.c: Ditto. * testsuite/libffi.call/float2.c: Ditto. * testsuite/libffi.call/float3.c: Ditto. From-SVN: r94899
2005-02-08ffitarget.h: Remove PPC stuff which does not belong to frv.Andreas Tobler2-30/+6
2005-02-08 Andreas Tobler <a.tobler@schweiz.ch> * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv. From-SVN: r94747
2005-01-12special.exp (cxx_options): Add -shared-libgcc.Eric Botcazou2-1/+6
* testsuite/libffi.special/special.exp (cxx_options): Add -shared-libgcc. From-SVN: r93221
2004-12-31types.c (FFI_AGGREGATE_TYPEDEF): Remove.Richard Henderson2-66/+35
* src/types.c (FFI_AGGREGATE_TYPEDEF): Remove. (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and offset parameters with a type parameter; deduce size and structure alignment. Update all users. From-SVN: r92775
2004-12-31types.c (FFI_TYPE_POINTER): Define with sizeof.Richard Henderson6-857/+957
* src/types.c (FFI_TYPE_POINTER): Define with sizeof. (FFI_TYPE_LONGDOUBLE): Fix for ia64. * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move into ffi_prep_closure. * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite from scratch. From-SVN: r92774
2004-12-27* src/x86/unix64.S: Fix typo in unwind info.Richard Henderson2-1/+5
From-SVN: r92636
2004-12-25ffi64.c (struct register_args): Rename from stackLayout.Richard Henderson3-640/+592
* 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
2004-12-08Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and PICFLAG.David Edelsohn3-4/+6
* Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and PICFLAG. * Makefile.in: Regenerated. From-SVN: r91905
2004-12-02Introduce and use config/gcc-version.m4.Richard Sandiford7-13/+38
From-SVN: r91625
2004-11-29libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Re-import linux-gnu case from CVS ↵Kelley Cook2-9/+6
libtool to always pass_all. 2004-11-29 Kelley Cook <kcook@gcc.gnu.org> * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Re-import linux-gnu case from CVS libtool to always pass_all. * libjava/configure, libffi/configure, libjava/configure, libobjc/configure, boehm-gc/configure: Regenerated. From-SVN: r91495
2004-11-25libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Revert previous change.Kelley Cook2-2/+13
2004-11-24 Kelley Cook <kcook@gcc.gnu.org> * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Revert previous change. * boehm-gc/configure: Regenerate. * libffi/configure: Regenerate. * libgfortran/configure: Regenerate. * libjava/configure: Regenerate. * libobjc/configure: Regenerate. * libstdc++-v3/configure: Regenerate. * zlib/configure: Regenerate. From-SVN: r91293
2004-11-25* ChangeLog: Remove duplication.John David Anglin1-1908/+0
From-SVN: r91265