OSDN Git Service

4c076867022f9b5312781ced1fa544c366723766
[pf3gnuchains/gcc-fork.git] / libffi / ChangeLog
1 2009-12-25  Matthias Klose  <doko@ubuntu.com>
2
3         * man/ffi_call.3: Fix #include in examples.
4         * doc/libffi.texi: Add dircategory.
5
6 2009-12-25  Frank Everdij <f.p.x.everdij@tudelft.nl>
7
8         * include/ffi.h.in: Placed '__GNUC__' ifdef around
9         '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
10         IRIX MIPSPro c99.
11         * include/ffi_common.h: Added '__sgi' define to non
12         '__attribute__((__mode__()))' integer typedefs.
13         * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
14         ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
15         (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
16         FFI_LONGDOUBLE support and alignment(N32 only).
17         * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
18         fixed non '__attribute__((__mode__()))' integer typedefs.
19         * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
20         since they are Linux/GNU Assembler specific.
21
22 2009-12-25  Bradley Smith  <brad@brad-smith.co.uk>
23
24         * configure.ac, Makefile.am, src/avr32/ffi.c,
25         src/avr32/ffitarget.h,
26         src/avr32/sysv.S: Add AVR32 port.
27         * configure, Makefile.in: Rebuilt.
28
29 2009-12-21  Andreas Tobler  <a.tobler@schweiz.org>
30
31         * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
32         * configure: Regenerate.
33
34 2009-12-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35
36         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
37
38 2009-12-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39
40         * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
41         type on HP-UX.
42
43 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
44
45         * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
46         double' arguments.
47
48 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
49
50         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
51
52 2009-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
53
54         PR libffi/40700
55         * src/closures.c [X86_64 && __sun__ && __svr4__]
56         (FFI_MMAP_EXEC_WRIT): Define.
57
58 2009-12-08  David Daney  <ddaney@caviumnetworks.com>
59
60         * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
61         * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
62         * testsuite/libffi.call/stret_large.c: Same.
63         * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
64         * testsuite/libffi.call/stret_large2.c: Same.
65         * testsuite/libffi.call/stret_medium2.c: Same.
66
67 2009-12-07  David Edelsohn  <edelsohn@gnu.org>
68
69         * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
70         typo.
71
72 2009-12-05  David Edelsohn  <edelsohn@gnu.org>
73
74         * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
75         code.
76         * src/powerpc/aix_closure.S: Same.
77
78 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
79
80         * Makefile.in: Regenerate.
81         * configure: Regenerate.
82         * include/Makefile.in: Regenerate.
83         * man/Makefile.in: Regenerate.
84         * testsuite/Makefile.in: Regenerate.
85
86 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
87
88         * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
89         linux64_closure.S.
90
91 2009-12-04  Uros Bizjak  <ubizjak@gmail.com>
92
93         PR libffi/41908
94         * src/x86/ffi64.c (classify_argument): Update from
95         gcc/config/i386/i386.c.
96         (ffi_closure_unix64_inner): Do not use the address of two consecutive
97         SSE registers directly.
98         * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
99         for x86_64 linux targets.
100
101 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
102
103         * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
104         pfr for long double split between fpr13 and stack.
105
106 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
107
108         * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
109         fparg_count twice for long double.
110
111 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
112
113         PR libffi/42243
114         * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
115
116 2009-12-03  Uros Bizjak  <ubizjak@gmail.com>
117
118         * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
119         Remove xfails for x86 linux targets.
120
121 2009-12-02  David Edelsohn  <edelsohn@gnu.org>
122
123         * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
124         case.
125
126 2009-12-01  David Edelsohn  <edelsohn@gnu.org>
127
128         * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
129         register usage.  Call ffi_prep_args directly.  Add long double
130         return value support.
131         * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
132         applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
133         Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
134         (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
135         mode.
136         (ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
137         into case.
138         * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
139         Allocate result area between params and FPRs.
140
141 2009-11-30  David Edelsohn  <edelsohn@gnu.org>
142
143         PR target/35484
144         * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
145         AIX64.
146         * src/powerpc/aix.S: Implement AIX64 version.
147         * src/powerpc/aix_closure.S: Implement AIX64 version.
148         (ffi_closure_ASM): Use extsb, lha and displament addresses.
149         * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
150         support.
151         (ffi_prep_cif_machdep): Same.
152         (ffi_call): Same.
153         (ffi_closure_helper_DARWIN): Same.
154
155 2009-11-02  Andreas Tobler  <a.tobler@schweiz.org>
156
157         PR libffi/41908
158         * testsuite/libffi.call/testclosure.c: New test.
159
160 2009-09-28  Kai Tietz  <kai.tietz@onevision.com>
161
162         * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
163         assembly version use of ___chkstk.
164
165 2009-09-23  Matthias Klose  <doko@ubuntu.com>
166
167         PR libffi/40242, PR libffi/41443
168         * src/arm/sysv.S (__ARM_ARCH__): Define for processors
169         __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
170         __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
171         Change the conditionals to __SOFTFP__ || __ARM_EABI__
172         for -mfloat-abi=softfp to work.
173
174 2009-09-17  Loren J. Rittle  <ljrittle@acm.org>
175
176         PR testsuite/32843 (strikes again)
177         * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
178         enable proper extension on char and short.
179
180 2009-09-15  David Daney  <ddaney@caviumnetworks.com>
181
182         * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
183         handling for FFI_TYPE_POINTER.
184         * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
185         FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
186         FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
187         FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
188         (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
189         (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
190         * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
191         structure and pointer returns.
192         (ffi_closure_N32): Add handling for pointer returns.
193         * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
194         calc_n32_return_struct_flags): Handle soft-float.
195         (ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
196         (ffi_call_N32): Declare proper argument types.
197         (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
198         soft-float.
199
200 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
201
202         * configure.ac (AC_PREREQ): Bump to 2.64.
203
204 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
205
206         * Makefile.am (install-html, install-pdf): Remove.
207         * Makefile.in: Regenerate.
208
209         * Makefile.in: Regenerate.
210         * aclocal.m4: Regenerate.
211         * configure: Regenerate.
212         * fficonfig.h.in: Regenerate.
213         * include/Makefile.in: Regenerate.
214         * man/Makefile.in: Regenerate.
215         * testsuite/Makefile.in: Regenerate.
216
217 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
218
219         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
220
221 2009-07-24  Dave Korn  <dave.korn.cygwin@gmail.com>
222
223         PR libffi/40807
224         * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
225         return types for X86_WIN32.
226         * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
227         (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
228         _ffi_closure_STDCALL): Likewise.
229
230         * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
231         (dlmmap, dlmunmap): Also use these functions on Cygwin.
232
233 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
234
235         PR testsuite/40699
236         PR testsuite/40707
237         PR testsuite/40709
238         * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
239         2009-06-30 commits.
240
241 2009-07-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
242
243         * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
244         to "" before adding paths.  (This reinstates an assignment that
245         was removed by my 2009-06-30 commit, but changes the initial
246         value from "." to "".)
247
248 2009-07-01  H.J. Lu  <hongjiu.lu@intel.com>
249
250         PR testsuite/40601
251         * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
252         gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
253         empty.
254
255 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
256
257         * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
258         to ld_library_path.  Use add_path.  Add just find_libgcc_s
259         to ld_library_path, not every libgcc multilib directory.
260
261 2009-06-16  Wim Lewis  <wiml@hhhh.org>
262
263         * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
264         supposed to be callee-saved.
265         * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
266         return buffer for odd-size structs.
267
268 2009-06-16  Andreas Tobler  <a.tobler@schweiz.org>
269
270         PR libffi/40444
271         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
272         allow_stack_execute for Darwin.
273
274 2009-06-16  Andrew Haley  <aph@redhat.com>
275
276         * configure.ac (TARGETDIR): Add missing blank lines.
277         * configure: Regenerate.
278
279 2009-06-16  Andrew Haley  <aph@redhat.com>
280
281         * testsuite/libffi.call/cls_align_sint64.c,
282         testsuite/libffi.call/cls_align_uint64.c,
283         testsuite/libffi.call/cls_longdouble_va.c,
284         testsuite/libffi.call/cls_ulonglong.c,
285         testsuite/libffi.call/return_ll1.c,
286         testsuite/libffi.call/stret_medium2.c: Fix printf format
287         specifiers.
288         * testsuite/libffi.call/ffitest.h,
289         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
290
291 2009-06-15  Andrew Haley  <aph@redhat.com>
292
293         * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
294         * testsuite/libffi.call/err_bad_abi.c: Likewise.
295         
296 2009-06-12  Andrew Haley  <aph@redhat.com>
297
298         * Makefile.am: Remove info_TEXINFOS.
299
300 2009-06-12  Andrew Haley  <aph@redhat.com>
301
302         * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
303         testsuite/libffi.call/cls_align_uint64.c,
304         testsuite/libffi.call/cls_ulonglong.c,
305         testsuite/libffi.call/return_ll1.c,
306         testsuite/libffi.call/stret_medium2.c: Fix printf format
307         specifiers.
308         testsuite/libffi.special/unwindtest.cc: include stdint.h.
309
310 2009-06-11  Timothy Wall  <twall@users.sf.net>
311
312         * Makefile.am,
313         configure.ac,
314         include/ffi.h.in,
315         include/ffi_common.h,
316         src/closures.c,
317         src/dlmalloc.c,
318         src/x86/ffi.c,
319         src/x86/ffitarget.h,
320         src/x86/win64.S (new),
321         README: Added win64 support (mingw or MSVC)
322         * Makefile.in,
323         include/Makefile.in,
324         man/Makefile.in,
325         testsuite/Makefile.in,
326         configure,
327         aclocal.m4: Regenerated
328         * ltcf-c.sh: properly escape cygwin/w32 path
329         * man/ffi_call.3: Clarify size requirements for return value.
330         * src/x86/ffi64.c: Fix filename in comment.
331         * src/x86/win32.S: Remove unused extern.
332
333         * testsuite/libffi.call/closure_fn0.c,
334         testsuite/libffi.call/closure_fn1.c,
335         testsuite/libffi.call/closure_fn2.c,
336         testsuite/libffi.call/closure_fn3.c,
337         testsuite/libffi.call/closure_fn4.c,
338         testsuite/libffi.call/closure_fn5.c,
339         testsuite/libffi.call/closure_fn6.c,
340         testsuite/libffi.call/closure_stdcall.c,
341         testsuite/libffi.call/cls_12byte.c,
342         testsuite/libffi.call/cls_16byte.c,
343         testsuite/libffi.call/cls_18byte.c,
344         testsuite/libffi.call/cls_19byte.c,
345         testsuite/libffi.call/cls_1_1byte.c,
346         testsuite/libffi.call/cls_20byte.c,
347         testsuite/libffi.call/cls_20byte1.c,
348         testsuite/libffi.call/cls_24byte.c,
349         testsuite/libffi.call/cls_2byte.c,
350         testsuite/libffi.call/cls_3_1byte.c,
351         testsuite/libffi.call/cls_3byte1.c,
352         testsuite/libffi.call/cls_3byte2.c,
353         testsuite/libffi.call/cls_4_1byte.c,
354         testsuite/libffi.call/cls_4byte.c,
355         testsuite/libffi.call/cls_5_1_byte.c,
356         testsuite/libffi.call/cls_5byte.c,
357         testsuite/libffi.call/cls_64byte.c,
358         testsuite/libffi.call/cls_6_1_byte.c,
359         testsuite/libffi.call/cls_6byte.c,
360         testsuite/libffi.call/cls_7_1_byte.c,
361         testsuite/libffi.call/cls_7byte.c,
362         testsuite/libffi.call/cls_8byte.c,
363         testsuite/libffi.call/cls_9byte1.c,
364         testsuite/libffi.call/cls_9byte2.c,
365         testsuite/libffi.call/cls_align_double.c,
366         testsuite/libffi.call/cls_align_float.c,
367         testsuite/libffi.call/cls_align_longdouble.c,
368         testsuite/libffi.call/cls_align_longdouble_split.c,
369         testsuite/libffi.call/cls_align_longdouble_split2.c,
370         testsuite/libffi.call/cls_align_pointer.c,
371         testsuite/libffi.call/cls_align_sint16.c,
372         testsuite/libffi.call/cls_align_sint32.c,
373         testsuite/libffi.call/cls_align_sint64.c,
374         testsuite/libffi.call/cls_align_uint16.c,
375         testsuite/libffi.call/cls_align_uint32.c,
376         testsuite/libffi.call/cls_align_uint64.c,
377         testsuite/libffi.call/cls_dbls_struct.c,
378         testsuite/libffi.call/cls_double.c,
379         testsuite/libffi.call/cls_double_va.c,
380         testsuite/libffi.call/cls_float.c,
381         testsuite/libffi.call/cls_longdouble.c,
382         testsuite/libffi.call/cls_longdouble_va.c,
383         testsuite/libffi.call/cls_multi_schar.c,
384         testsuite/libffi.call/cls_multi_sshort.c,
385         testsuite/libffi.call/cls_multi_sshortchar.c,
386         testsuite/libffi.call/cls_multi_uchar.c,
387         testsuite/libffi.call/cls_multi_ushort.c,
388         testsuite/libffi.call/cls_multi_ushortchar.c,
389         testsuite/libffi.call/cls_pointer.c,
390         testsuite/libffi.call/cls_pointer_stack.c,
391         testsuite/libffi.call/cls_schar.c,
392         testsuite/libffi.call/cls_sint.c,
393         testsuite/libffi.call/cls_sshort.c,
394         testsuite/libffi.call/cls_uchar.c,
395         testsuite/libffi.call/cls_uint.c,
396         testsuite/libffi.call/cls_ulonglong.c,
397         testsuite/libffi.call/cls_ushort.c,
398         testsuite/libffi.call/err_bad_abi.c,
399         testsuite/libffi.call/err_bad_typedef.c,
400         testsuite/libffi.call/float2.c,
401         testsuite/libffi.call/huge_struct.c,
402         testsuite/libffi.call/nested_struct.c,
403         testsuite/libffi.call/nested_struct1.c,
404         testsuite/libffi.call/nested_struct10.c,
405         testsuite/libffi.call/nested_struct2.c,
406         testsuite/libffi.call/nested_struct3.c,
407         testsuite/libffi.call/nested_struct4.c,
408         testsuite/libffi.call/nested_struct5.c,
409         testsuite/libffi.call/nested_struct6.c,
410         testsuite/libffi.call/nested_struct7.c,
411         testsuite/libffi.call/nested_struct8.c,
412         testsuite/libffi.call/nested_struct9.c,
413         testsuite/libffi.call/problem1.c,
414         testsuite/libffi.call/return_ldl.c,
415         testsuite/libffi.call/return_ll1.c,
416         testsuite/libffi.call/stret_large.c,
417         testsuite/libffi.call/stret_large2.c,
418         testsuite/libffi.call/stret_medium.c,
419         testsuite/libffi.call/stret_medium2.c,
420         testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
421         of checking for MMAP.  Use intptr_t instead of long casts.
422
423 2009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
424
425         * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
426         * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
427         * testsuite/libffi.call/err_bad_typedef.c: Likewise.
428
429 2009-06-09  Andrew Haley  <aph@redhat.com>
430
431         * src/x86/freebsd.S: Add missing file.
432
433 2009-06-08  Andrew Haley  <aph@redhat.com>
434
435         Import from libffi 3.0.8:
436
437         * doc/libffi.texi: New file.
438         * doc/libffi.info: Likewise.
439         * doc/stamp-vti: Likewise.
440         * man/Makefile.am: New file.
441         * man/ffi_call.3: New file.
442
443         * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
444         src/dlmalloc.c.
445         (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
446
447         * configure.ac: Bump version to 3.0.8.
448         parisc*-*-linux*: Add.
449         i386-*-freebsd* | i386-*-openbsd*: Add.
450         powerpc-*-beos*: Add.
451         AM_CONDITIONAL X86_FREEBSD: Add.
452         AC_CONFIG_FILES: Add man/Makefile.
453
454         * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
455
456 2009-06-08  Andrew Haley  <aph@redhat.com>
457
458         * README: Import from libffi 3.0.8.
459
460 2009-06-08  Andrew Haley  <aph@redhat.com>
461
462         * testsuite/libffi.call/err_bad_abi.c: Add xfails.
463         * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
464         * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
465         * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
466
467         * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
468         * testsuite/libffi.call/stret_medium.c: Likewise.
469         * testsuite/libffi.call/stret_large2.c: Likewise.
470         * testsuite/libffi.call/stret_large.c:  Likewise.
471
472 2008-12-26  Timothy Wall  <twall@users.sf.net>
473
474         * testsuite/libffi.call/cls_longdouble.c,
475         testsuite/libffi.call/cls_longdouble_va.c,
476         testsuite/libffi.call/cls_align_longdouble.c,
477         testsuite/libffi.call/cls_align_longdouble_split.c,
478         testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
479         failures on x86_64 cygwin/mingw.
480
481 2008-12-22  Timothy Wall  <twall@users.sf.net>
482
483         * testsuite/libffi.call/closure_fn0.c,
484         testsuite/libffi.call/closure_fn1.c,
485         testsuite/libffi.call/closure_fn2.c,
486         testsuite/libffi.call/closure_fn3.c,
487         testsuite/libffi.call/closure_fn4.c,
488         testsuite/libffi.call/closure_fn5.c,
489         testsuite/libffi.call/closure_fn6.c,
490         testsuite/libffi.call/closure_loc_fn0.c,
491         testsuite/libffi.call/closure_stdcall.c,
492         testsuite/libffi.call/cls_align_pointer.c,
493         testsuite/libffi.call/cls_pointer.c,
494         testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
495         pointer to integer (intptr_t).
496         * testsuite/libffi.call/cls_longdouble.c: disable for win64.
497
498 2008-07-24  Anthony Green  <green@redhat.com>
499
500         * testsuite/libffi.call/cls_dbls_struct.c,
501         testsuite/libffi.call/cls_double_va.c,
502         testsuite/libffi.call/cls_longdouble.c,
503         testsuite/libffi.call/cls_longdouble_va.c,
504         testsuite/libffi.call/cls_pointer.c,
505         testsuite/libffi.call/cls_pointer_stack.c,
506         testsuite/libffi.call/err_bad_abi.c: Clean up failures from
507         compiler warnings.
508
509 2008-03-04  Anthony Green  <green@redhat.com>
510             Blake Chaffin
511             hos@tamanegi.org
512
513         * testsuite/libffi.call/cls_align_longdouble_split2.c
514           testsuite/libffi.call/cls_align_longdouble_split.c
515           testsuite/libffi.call/cls_dbls_struct.c
516           testsuite/libffi.call/cls_double_va.c
517           testsuite/libffi.call/cls_longdouble.c
518           testsuite/libffi.call/cls_longdouble_va.c
519           testsuite/libffi.call/cls_pointer.c
520           testsuite/libffi.call/cls_pointer_stack.c
521           testsuite/libffi.call/err_bad_abi.c
522           testsuite/libffi.call/err_bad_typedef.c
523           testsuite/libffi.call/stret_large2.c
524           testsuite/libffi.call/stret_large.c
525           testsuite/libffi.call/stret_medium2.c
526           testsuite/libffi.call/stret_medium.c: New tests from Apple.
527
528 2009-06-05  Andrew Haley  <aph@redhat.com>
529
530         * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
531         libffi.
532
533 2009-06-04  Andrew Haley  <aph@redhat.com>
534
535         * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
536         stdcall changes.
537
538 2008-02-26  Anthony Green  <green@redhat.com>
539             Thomas Heller  <theller@ctypes.org>
540
541         * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
542         comment.
543
544 2008-02-03  Timothy Wall  <twall@users.sf.net>
545
546         * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
547           offset based on code pointer, not data pointer.
548
549 2008-01-31  Timothy Wall <twall@users.sf.net>
550
551         * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
552         closures.
553         * src/x86/ffitarget.h: Increase size of trampoline for stdcall
554         closures.
555         * src/x86/win32.S: Add assembly for stdcall closure.
556         * src/x86/ffi.c: Initialize stdcall closure trampoline.
557
558 2009-06-04  Andrew Haley  <aph@redhat.com>
559
560         * include/ffi.h.in: Change void (*)() to void (*)(void).
561         * src/x86/ffi.c: Likewise.
562
563 2009-06-04  Andrew Haley  <aph@redhat.com>
564
565         * src/powerpc/ppc_closure.S: Insert licence header.
566         * src/powerpc/linux64_closure.S: Likewise.
567         * src/m68k/sysv.S: Likewise.
568
569         * src/sh64/ffi.c: Change void (*)() to void (*)(void).
570         * src/powerpc/ffi.c: Likewise.
571         * src/powerpc/ffi_darwin.c: Likewise.
572         * src/m32r/ffi.c: Likewise.
573         * src/sh64/ffi.c: Likewise.
574         * src/x86/ffi64.c: Likewise.
575         * src/alpha/ffi.c: Likewise.
576         * src/alpha/osf.S: Likewise.
577         * src/frv/ffi.c: Likewise.
578         * src/s390/ffi.c: Likewise.
579         * src/pa/ffi.c: Likewise.
580         * src/pa/hpux32.S: Likewise.
581         * src/ia64/unix.S: Likewise.
582         * src/ia64/ffi.c: Likewise.
583         * src/sparc/ffi.c: Likewise.
584         * src/mips/ffi.c: Likewise.
585         * src/sh/ffi.c: Likewise.
586
587 2008-02-15  David Daney  <ddaney@avtrex.com>
588
589         * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
590         Define (conditionally), and use it to include cachectl.h.
591         (ffi_prep_closure_loc): Fix cache flushing.
592         * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
593
594 2009-06-04  Andrew Haley  <aph@redhat.com>
595
596         include/ffi.h.in,
597         src/arm/ffitarget.h,
598         src/arm/ffi.c,
599         src/arm/sysv.S,
600         src/powerpc/ffitarget.h,
601         src/closures.c,
602         src/sh64/ffitarget.h,
603         src/sh64/ffi.c,
604         src/sh64/sysv.S,
605         src/types.c,
606         src/x86/ffi64.c,
607         src/x86/ffitarget.h,
608         src/x86/win32.S,
609         src/x86/darwin.S,
610         src/x86/ffi.c,
611         src/x86/sysv.S,
612         src/x86/unix64.S,
613         src/alpha/ffitarget.h,
614         src/alpha/ffi.c,
615         src/alpha/osf.S,
616         src/m68k/ffitarget.h,
617         src/frv/ffitarget.h,
618         src/frv/ffi.c,
619         src/s390/ffitarget.h,
620         src/s390/sysv.S,
621         src/cris/ffitarget.h,
622         src/pa/linux.S,
623         src/pa/ffitarget.h,
624         src/pa/ffi.c,
625         src/raw_api.c,
626         src/ia64/ffitarget.h,
627         src/ia64/unix.S,
628         src/ia64/ffi.c,
629         src/ia64/ia64_flags.h,
630         src/java_raw_api.c,
631         src/debug.c,
632         src/sparc/v9.S,
633         src/sparc/ffitarget.h,
634         src/sparc/ffi.c,
635         src/sparc/v8.S,
636         src/mips/ffitarget.h,
637         src/mips/n32.S,
638         src/mips/o32.S,
639         src/mips/ffi.c,
640         src/prep_cif.c,
641         src/sh/ffitarget.h,
642         src/sh/ffi.c,
643         src/sh/sysv.S: Update license text.
644
645 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
646
647         * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
648         (.eh_frame):  Add FDE for it.
649
650 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
651
652         * configure.ac:  Also check if assembler supports pc-relative
653         relocs on X86_WIN32 targets.
654         * configure:  Regenerate.
655         * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
656         (_ffi_call_SYSV):  Add missing function type symbol .def and
657         add EH markup labels.
658         (_ffi_call_STDCALL):  Likewise.
659         (_ffi_closure_SYSV):  Likewise.
660         (_ffi_closure_raw_SYSV):  Likewise.
661         (.eh_frame):  Add hand-crafted EH data.
662
663 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
664
665         * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
666         version 3 of the GNU General Public License and to point readers
667         at the COPYING3 file and the FSF's license web page.
668         * testsuite/libffi.call/call.exp: Likewise.
669         * testsuite/libffi.special/special.exp: Likewise.
670
671 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
672
673         * configure: Regenerate.
674
675 2008-12-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
676
677         PR libffi/26048
678         * configure.ac (HAVE_AS_X86_PCREL): New test.
679         * configure: Regenerate.
680         * fficonfig.h.in: Regenerate.
681         * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
682         RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
683         RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
684         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
685         * src/x86/unix64.S (.Lstore_table): Move to .text section.
686         (.Lload_table): Likewise.
687         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
688
689 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
690
691         * configure: Regenerate.
692
693 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
694
695         * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
696         signed/unsigned int8/16 return values.
697         * src/sparc/v8.S (ffi_call_v8): Likewise.
698         (ffi_closure_v8): Likewise.
699
700 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
701             Steve Ellcey  <sje@cup.hp.com>
702
703         * configure: Regenerate for new libtool.
704         * Makefile.in: Ditto.
705         * include/Makefile.in: Ditto.
706         * aclocal.m4: Ditto.
707
708 2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
709
710         * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
711         FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
712         Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
713         Adjust copyright notice.
714         * src/powerpc/ffi.c: Add two new flags to indicate if we have one
715         register or two register to use for FFI_SYSV structs.
716         (ffi_prep_cif_machdep): Pass the right register flag introduced above.
717         (ffi_closure_helper_SYSV): Fix the return type for
718         FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
719         Adjust copyright notice.
720
721 2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
722
723         * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
724         int.
725
726 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
727
728         * configure: Regenerate.
729         * include/Makefile.in: Regenerate.
730         * testsuite/Makefile.in: Regenerate.
731
732 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
733
734         * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
735         powerpc-*-beos*): Remove.
736         * configure: Regenerate.
737
738 2008-05-09  Julian Brown  <julian@codesourcery.com>
739
740         * Makefile.am (LTLDFLAGS): New.
741         (libffi_la_LDFLAGS): Use above.
742         * Makefile.in: Regenerate.
743
744 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
745
746         PR bootstrap/35457
747         * aclocal.m4: Regenerate.
748         * configure: Regenerate.
749
750 2008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>
751
752         * src/sh/sysv.S: Add .note.GNU-stack on Linux.
753         * src/sh64/sysv.S: Likewise.
754
755 2008-03-26  Daniel Jacobowitz  <dan@debian.org>
756
757         * src/arm/sysv.S: Fix ARM comment marker.
758
759 2008-03-26  Jakub Jelinek  <jakub@redhat.com>
760
761         * src/alpha/osf.S: Add .note.GNU-stack on Linux.
762         * src/s390/sysv.S: Likewise.
763         * src/powerpc/ppc_closure.S: Likewise.
764         * src/powerpc/sysv.S: Likewise.
765         * src/x86/unix64.S: Likewise.
766         * src/x86/sysv.S: Likewise.
767         * src/sparc/v8.S: Likewise.
768         * src/sparc/v9.S: Likewise.
769         * src/m68k/sysv.S: Likewise.
770         * src/arm/sysv.S: Likewise.
771
772 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
773
774         * aclocal.m4: Regenerate.
775         * configure: Likewise.
776         * Makefile.in: Likewise.
777         * include/Makefile.in: Likewise.
778         * testsuite/Makefile.in: Likewise.
779
780 2008-02-12  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
781             Andreas Tobler  <a.tobler@schweiz.org>
782
783         * configure.ac: Add amd64-*-freebsd* target.
784         * configure: Regenerate.
785
786 2008-01-30  H.J. Lu  <hongjiu.lu@intel.com>
787
788         PR libffi/34612
789         * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
790         returning struct.
791
792         * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
793         tests.
794
795 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
796
797         * configure: Regenerate.
798
799 2008-01-06  Andreas Tobler  <a.tobler@schweiz.org>
800
801         * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
802
803 2008-01-05  Andreas Tobler  <a.tobler@schweiz.org>
804
805         PR testsuite/32843
806         * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
807         signed/unsigned int8/16 for X86_DARWIN.
808         Updated copyright info.
809         Handle one and two byte structs with special cif->flags.
810         * src/x86/ffitarget.h: Add special types for one and two byte structs.
811         Updated copyright info.
812         * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
813         sysv.S
814         Remove code to pop args from the stack after call.
815         Special-case signed/unsigned for int8/16, one and two byte structs.
816         (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
817         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
818         FFI_TYPE_SINT32.
819         Updated copyright info.
820
821 2007-12-08  David Daney  <ddaney@avtrex.com>
822
823         * src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with 
824         SUBU, add with ADDU and use smaller code sequences.
825
826 2007-12-07  David Daney  <ddaney@avtrex.com>
827
828         * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
829         type.
830
831 2007-12-06  David Daney  <ddaney@avtrex.com>
832
833         * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
834         defined.
835         (ffi_java_raw): New typedef.
836         (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
837         ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
838         ffi_java_raw.
839         (ffi_java_raw_closure) : Same.
840         (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
841         parameter types.
842         * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
843         FFI_SIZEOF_JAVA_RAW.
844         (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
845         Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
846         sizeof(ffi_java_raw) for alignment calculations.
847         (ffi_java_ptrarray_to_raw): Same.
848         (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
849         if FFI_SIZEOF_JAVA_RAW == 4.
850         (ffi_java_raw_to_rvalue): Same.
851         (ffi_java_raw_call): Change type of raw to ffi_java_raw.
852         (ffi_java_translate_args): Same.
853         (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
854         parameter types.
855         * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
856
857 2007-12-06  David Daney  <ddaney@avtrex.com>
858
859         * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on 
860         pointer values.
861
862 2007-12-01  Andreas Tobler  <a.tobler@schweiz.org>
863
864         PR libffi/31937
865         * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
866         Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
867         * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
868         set the NUM_FPR_ARG_REGISTERS according to.
869         Add support for potential soft-float support under hard-float
870         architecture.
871         (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
872         FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
873         to the FFI_LINUX_SOFT_FLOAT ABI.
874         (ffi_prep_cif_machdep): Likewise.
875         (ffi_closure_helper_SYSV): Likewise.
876         * src/powerpc/ppc_closure.S: Make sure not to store float/double
877         on archs where __NO_FPRS__ is true.
878         Add FFI_TYPE_UINT128 support.
879         * src/powerpc/sysv.S: Add support for soft-float long-double-128.
880         Adjust copyright notice.
881
882 2007-11-25  Andreas Tobler  <a.tobler@schweiz.org>
883
884         * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
885         * include/ffi_common.h: ... here.
886         Update copyright.
887
888 2007-11-17  Andreas Tobler  <a.tobler@schweiz.org>
889
890         * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
891         * src/powerpc/linux64.S: Likewise.
892         * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
893         * testsuite/libffi.call/return_ldl.c: New test.
894
895 2007-09-04    <aph@redhat.com>
896
897         * src/arm/sysv.S (UNWIND): New.
898         (Whole file): Conditionally compile unwinder directives.
899         * src/arm/sysv.S: Add unwinder directives.
900
901         * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
902         Only treat r0 as a struct address if we're actually returning a
903         struct by address.
904         Only copy the bytes that are actually within a struct.
905         (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
906         is returned in r0, not passed by address.
907         (ffi_call): Allocate a word-sized temporary for the case where
908         a composite is returned in r0.
909         (ffi_prep_incoming_args_SYSV): Align as necessary.
910
911 2007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>
912
913         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of 
914         directly using the sys_cacheflush syscall.
915
916 2007-07-27  Andrew Haley  <aph@redhat.com>
917
918         * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
919
920 2007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>
921
922         * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
923         * configure.ac: Likewise.
924         * Makefile.in: Regenerate.
925         * include/Makefile.in: Likewise.
926         * testsuite/Makefile.in: Likewise.
927         * configure: Likewise.
928
929 2007-08-24  David Daney  <ddaney@avtrex.com>
930
931         * testsuite/libffi.call/return_sl.c: New test.
932
933 2007-08-10  David Daney  <ddaney@avtrex.com>
934
935         * testsuite/libffi.call/cls_multi_ushort.c,
936         testsuite/libffi.call/cls_align_uint16.c,
937         testsuite/libffi.call/nested_struct1.c,
938         testsuite/libffi.call/nested_struct3.c,
939         testsuite/libffi.call/cls_7_1_byte.c,
940         testsuite/libffi.call/nested_struct5.c,
941         testsuite/libffi.call/cls_double.c,
942         testsuite/libffi.call/nested_struct7.c,
943         testsuite/libffi.call/cls_sint.c,
944         testsuite/libffi.call/nested_struct9.c,
945         testsuite/libffi.call/cls_20byte1.c,
946         testsuite/libffi.call/cls_multi_sshortchar.c,
947         testsuite/libffi.call/cls_align_sint64.c,
948         testsuite/libffi.call/cls_3byte2.c,
949         testsuite/libffi.call/cls_multi_schar.c,
950         testsuite/libffi.call/cls_multi_uchar.c,
951         testsuite/libffi.call/cls_19byte.c,
952         testsuite/libffi.call/cls_9byte1.c,
953         testsuite/libffi.call/cls_align_float.c,
954         testsuite/libffi.call/closure_fn1.c,
955         testsuite/libffi.call/problem1.c,
956         testsuite/libffi.call/closure_fn3.c,
957         testsuite/libffi.call/cls_sshort.c,
958         testsuite/libffi.call/closure_fn5.c,
959         testsuite/libffi.call/cls_align_double.c,
960         testsuite/libffi.call/nested_struct.c,
961         testsuite/libffi.call/cls_2byte.c,
962         testsuite/libffi.call/nested_struct10.c,
963         testsuite/libffi.call/cls_4byte.c,
964         testsuite/libffi.call/cls_6byte.c,
965         testsuite/libffi.call/cls_8byte.c,
966         testsuite/libffi.call/cls_multi_sshort.c,
967         testsuite/libffi.call/cls_align_sint16.c,
968         testsuite/libffi.call/cls_align_uint32.c,
969         testsuite/libffi.call/cls_20byte.c,
970         testsuite/libffi.call/cls_float.c,
971         testsuite/libffi.call/nested_struct2.c,
972         testsuite/libffi.call/cls_5_1_byte.c,
973         testsuite/libffi.call/nested_struct4.c,
974         testsuite/libffi.call/cls_24byte.c,
975         testsuite/libffi.call/nested_struct6.c,
976         testsuite/libffi.call/cls_64byte.c,
977         testsuite/libffi.call/nested_struct8.c,
978         testsuite/libffi.call/cls_uint.c,
979         testsuite/libffi.call/cls_multi_ushortchar.c,
980         testsuite/libffi.call/cls_schar.c,
981         testsuite/libffi.call/cls_uchar.c,
982         testsuite/libffi.call/cls_align_uint64.c,
983         testsuite/libffi.call/cls_ulonglong.c,
984         testsuite/libffi.call/cls_align_longdouble.c,
985         testsuite/libffi.call/cls_1_1byte.c,
986         testsuite/libffi.call/cls_12byte.c,
987         testsuite/libffi.call/cls_3_1byte.c,
988         testsuite/libffi.call/cls_3byte1.c,
989         testsuite/libffi.call/cls_4_1byte.c,
990         testsuite/libffi.call/cls_6_1_byte.c,
991         testsuite/libffi.call/cls_16byte.c,
992         testsuite/libffi.call/cls_18byte.c,
993         testsuite/libffi.call/closure_fn0.c,
994         testsuite/libffi.call/cls_9byte2.c,
995         testsuite/libffi.call/closure_fn2.c,
996         testsuite/libffi.call/closure_fn4.c,
997         testsuite/libffi.call/cls_ushort.c,
998         testsuite/libffi.call/closure_fn6.c,
999         testsuite/libffi.call/cls_5byte.c,
1000         testsuite/libffi.call/cls_align_pointer.c,
1001         testsuite/libffi.call/cls_7byte.c,
1002         testsuite/libffi.call/cls_align_sint32.c,
1003         testsuite/libffi.special/unwindtest_ffi_call.cc,
1004         testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1005
1006 2007-08-10  David Daney  <ddaney@avtrex.com>
1007
1008         PR libffi/28313
1009         * configure.ac: Don't treat mips64 as a special case.
1010         * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1011         * configure: Regenerate
1012         * Makefile.in: Ditto.
1013         * fficonfig.h.in: Ditto.
1014         * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1015         (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1016         (FFI_DEFAULT_ABI): Set for n64 case.
1017         (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1018         * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1019         (ffi_closure_N32): New function.
1020         (.eh_frame): New section
1021         * src/mips/o32.S: Clean up comments.
1022         (ffi_closure_O32): Pass ffi_closure parameter in $12.
1023         * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1024         _MIPS_SIM == _ABIN32 throughout.
1025         (FFI_MIPS_STOP_HERE): New, use in place of
1026         ffi_stop_here.
1027         (ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
1028         to support n32/n64 ABIs.
1029         (calc_n32_struct_flags): Rewrite.
1030         (calc_n32_return_struct_flags): Remove unused variable.  Reverse
1031         position of flag bits.
1032         (ffi_prep_cif_machdep): Rewrite n32 portion.
1033         (ffi_call): Enable for n64.  Add special handling for small structure
1034         return values.
1035         (ffi_prep_closure_loc): Add n32 and n64 support.
1036         (ffi_closure_mips_inner_O32): Add cast to silence warning.
1037         (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1038
1039 2007-08-08  David Daney  <ddaney@avtrex.com>
1040
1041         * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1042         * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1043         specifiers.
1044         * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1045         * testsuite/libffi.call/cls_sint.c (main): Ditto.
1046         * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1047         * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1048         * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1049         * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1050         * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1051         * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1052         * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1053         * testsuite/libffi.call/return_fl3.c (main): Ditto.
1054         * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1055         * testsuite/libffi.call/nested_struct.c (main): Ditto.
1056         * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1057         * testsuite/libffi.call/return_ll1.c (main): Ditto.
1058         * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1059         * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1060         * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1061         * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1062         * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1063         * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1064         * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1065         * testsuite/libffi.call/cls_uint.c (main): Ditto.
1066         * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1067         * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1068         * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1069         * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1070         * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1071         * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1072         * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1073         * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1074         * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1075
1076 2007-08-07  Andrew Haley  <aph@redhat.com>
1077
1078         * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1079         checkin.
1080
1081 2007-08-06  Andrew Haley  <aph@redhat.com>
1082
1083         PR testsuite/32843
1084         * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1085         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1086         FFI_TYPE_SINT32.
1087
1088 2007-08-02  David Daney  <ddaney@avtrex.com>
1089
1090         * testsuite/libffi.call/return_ul.c (main): Define return type as
1091         ffi_arg.  Use proper printf conversion specifier.
1092         
1093 2007-07-30  Andrew Haley  <aph@redhat.com>
1094
1095         PR testsuite/32843
1096         * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1097         signed/unsigned int8/16.
1098         * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1099         Use a jump table.
1100         Remove code to pop args from the stack after call.
1101         Special-case signed/unsigned int8/16.
1102         * testsuite/libffi.call/return_sc.c (main): Revert.
1103
1104 2007-07-26  Richard Guenther  <rguenther@suse.de>
1105
1106         PR testsuite/32843
1107         * testsuite/libffi.call/return_sc.c (main): Verify call
1108         result as signed char, not ffi_arg.
1109
1110 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1111
1112         * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1113         * configure: Regenerate.
1114
1115 2007-07-11  David Daney  <ddaney@avtrex.com>
1116
1117         * src/mips/ffi.c: Don't include sys/cachectl.h.
1118         (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1119         cacheflush().
1120
1121 2007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
1122
1123         * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1124         from (ffi_prep_closure): ... this.
1125         (FFI_INIT_TRAMPOLINE): Adjust.
1126
1127 2005-12-31  Phil Blundell  <pb@reciva.com>
1128
1129         * src/arm/ffi.c (ffi_prep_incoming_args_SYSV, 
1130         ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
1131         * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1132         * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1133         (FFI_CLOSURES): Enable closure support.
1134
1135 2007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
1136
1137         * testsuite/libffi.call/cls_multi_ushort.c,
1138         testsuite/libffi.call/cls_align_uint16.c,
1139         testsuite/libffi.call/nested_struct1.c,
1140         testsuite/libffi.call/nested_struct3.c,
1141         testsuite/libffi.call/cls_7_1_byte.c,
1142         testsuite/libffi.call/cls_double.c,
1143         testsuite/libffi.call/nested_struct5.c,
1144         testsuite/libffi.call/nested_struct7.c,
1145         testsuite/libffi.call/cls_sint.c,
1146         testsuite/libffi.call/nested_struct9.c,
1147         testsuite/libffi.call/cls_20byte1.c,
1148         testsuite/libffi.call/cls_multi_sshortchar.c,
1149         testsuite/libffi.call/cls_align_sint64.c,
1150         testsuite/libffi.call/cls_3byte2.c,
1151         testsuite/libffi.call/cls_multi_schar.c,
1152         testsuite/libffi.call/cls_multi_uchar.c,
1153         testsuite/libffi.call/cls_19byte.c,
1154         testsuite/libffi.call/cls_9byte1.c,
1155         testsuite/libffi.call/cls_align_float.c,
1156         testsuite/libffi.call/closure_fn1.c,
1157         testsuite/libffi.call/problem1.c,
1158         testsuite/libffi.call/closure_fn3.c,
1159         testsuite/libffi.call/cls_sshort.c,
1160         testsuite/libffi.call/closure_fn5.c,
1161         testsuite/libffi.call/cls_align_double.c,
1162         testsuite/libffi.call/cls_2byte.c,
1163         testsuite/libffi.call/nested_struct.c,
1164         testsuite/libffi.call/nested_struct10.c,
1165         testsuite/libffi.call/cls_4byte.c,
1166         testsuite/libffi.call/cls_6byte.c,
1167         testsuite/libffi.call/cls_8byte.c,
1168         testsuite/libffi.call/cls_multi_sshort.c,
1169         testsuite/libffi.call/cls_align_uint32.c,
1170         testsuite/libffi.call/cls_align_sint16.c,
1171         testsuite/libffi.call/cls_float.c,
1172         testsuite/libffi.call/cls_20byte.c,
1173         testsuite/libffi.call/cls_5_1_byte.c,
1174         testsuite/libffi.call/nested_struct2.c,
1175         testsuite/libffi.call/cls_24byte.c,
1176         testsuite/libffi.call/nested_struct4.c,
1177         testsuite/libffi.call/nested_struct6.c,
1178         testsuite/libffi.call/cls_64byte.c,
1179         testsuite/libffi.call/nested_struct8.c,
1180         testsuite/libffi.call/cls_uint.c,
1181         testsuite/libffi.call/cls_multi_ushortchar.c,
1182         testsuite/libffi.call/cls_schar.c,
1183         testsuite/libffi.call/cls_uchar.c,
1184         testsuite/libffi.call/cls_align_uint64.c,
1185         testsuite/libffi.call/cls_ulonglong.c,
1186         testsuite/libffi.call/cls_align_longdouble.c,
1187         testsuite/libffi.call/cls_1_1byte.c,
1188         testsuite/libffi.call/cls_12byte.c,
1189         testsuite/libffi.call/cls_3_1byte.c,
1190         testsuite/libffi.call/cls_3byte1.c,
1191         testsuite/libffi.call/cls_4_1byte.c,
1192         testsuite/libffi.call/cls_6_1_byte.c,
1193         testsuite/libffi.call/cls_16byte.c,
1194         testsuite/libffi.call/cls_18byte.c,
1195         testsuite/libffi.call/closure_fn0.c,
1196         testsuite/libffi.call/cls_9byte2.c,
1197         testsuite/libffi.call/closure_fn2.c,
1198         testsuite/libffi.call/closure_fn4.c,
1199         testsuite/libffi.call/cls_ushort.c,
1200         testsuite/libffi.call/closure_fn6.c,
1201         testsuite/libffi.call/cls_5byte.c,
1202         testsuite/libffi.call/cls_align_pointer.c,
1203         testsuite/libffi.call/cls_7byte.c,
1204         testsuite/libffi.call/cls_align_sint32.c,
1205         testsuite/libffi.special/unwindtest_ffi_call.cc,
1206         testsuite/libffi.special/unwindtest.cc: Enable for ARM.
1207
1208 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1209
1210         * aclocal.m4: Regenerated.
1211
1212 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
1213
1214         * configure: Regenerate.
1215
1216 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
1217
1218         * Makefile.in: Regenerate.
1219         * configure: Regenerate.
1220         * aclocal.m4: Regenerate.
1221         * include/Makefile.in: Regenerate.
1222         * testsuite/Makefile.in: Regenerate.
1223
1224 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
1225
1226         * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1227         ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1228         * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1229         * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1230         (FFI_CLOSURES): Enable closure support.
1231
1232 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
1233
1234         * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1235         * configure: Regenerate.
1236         * fficonfig.h.in: Regenerate.
1237         * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1238         CFI_OFFSET,CFI_DEF_CFA): New macros.
1239         (ffi_call_SYSV): Add callframe annotation.
1240
1241 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
1242
1243         * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1244         numerous test suite failures.
1245         * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1246
1247 2007-04-11  Paolo Bonzini  <bonzini@gnu.org>
1248
1249         * Makefile.am (EXTRA_DIST): Bring up to date.
1250         * Makefile.in: Regenerate.
1251         * src/frv/eabi.S: Remove RCS keyword.
1252
1253 2007-04-06  Richard Henderson  <rth@redhat.com>
1254
1255         * configure.ac: Tidy target case.
1256         (HAVE_LONG_DOUBLE): Allow the target to override.
1257         * configure: Regenerate.
1258         * include/ffi.h.in: Don't define ffi_type_foo if
1259         LIBFFI_HIDE_BASIC_TYPES is defined.
1260         (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1261         to ffi_type_double.
1262         * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1263         (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1264         (ffi_type_longdouble): Special case for Alpha.  Don't define
1265         if long double == double.
1266
1267         * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1268         (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1269         (ffi_call, ffi_closure_osf_inner): Likewise.
1270         (ffi_closure_osf_inner): Likewise.  Mark hidden.
1271         (ffi_call_osf, ffi_closure_osf): Mark hidden.
1272         * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1273         * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1274         (load_table): Handle 128-bit long double.
1275
1276         * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1277
1278 2007-04-06  Tom Tromey  <tromey@redhat.com>
1279
1280         PR libffi/31491:
1281         * README: Fixed bug in example.
1282
1283 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
1284
1285         * src/closures.c: Include sys/statfs.h.
1286         (_GNU_SOURCE): Define on Linux.
1287         (FFI_MMAP_EXEC_SELINUX): Define.
1288         (selinux_enabled): New variable.
1289         (selinux_enabled_check): New function.
1290         (is_selinux_enabled): Define.
1291         (dlmmap): Use it.
1292
1293 2007-03-24  Uros Bizjak  <ubizjak@gmail.com>
1294
1295         * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1296         Use 'volatile float sum' to create sum of floats to avoid false
1297         negative due to excess precision on ix86 targets.
1298         (main): Ditto. 
1299
1300 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
1301
1302         * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1303         patch.
1304         (ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
1305
1306 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
1307
1308         * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1309         (ffi_prep_closure_loc): New.
1310         (ffi_prep_raw_closure_loc): New.
1311         (ffi_prep_java_raw_closure_loc): New.
1312         * src/closures.c: New file.
1313         * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1314         Replace sflags with exec_offset.
1315         [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1316         sub_segment_exec_offset): New macros.
1317         (get_segment_flags, set_segment_flags, check_segment_merge): New
1318         macros.
1319         (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1320         (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1321         destroy_mspace): Use new macros.
1322         (sys_alloc): Silence warning.
1323         * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1324         * Makefile.in: Rebuilt.
1325         * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1326         terms of ffi_prep_closure_loc.
1327         * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1328         from...
1329         (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
1330         renamed version.
1331         * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1332         adjusted from...
1333         (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
1334         the renamed version.
1335         * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1336         (ffi_prep_closure): ... this.
1337         * src/pa/ffi.c: Likewise.
1338         * src/cris/ffi.c: Likewise.  Adjust.
1339         * src/frv/ffi.c: Likewise.
1340         * src/ia64/ffi.c: Likewise.
1341         * src/mips/ffi.c: Likewise.
1342         * src/powerpc/ffi_darwin.c: Likewise.
1343         * src/s390/ffi.c: Likewise.
1344         * src/sh/ffi.c: Likewise.
1345         * src/sh64/ffi.c: Likewise.
1346         * src/sparc/ffi.c: Likewise.
1347         * src/x86/ffi64.c: Likewise.
1348         * src/x86/ffi.c: Likewise.
1349         (FFI_INIT_TRAMPOLINE): Adjust.
1350         (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1351         (ffi_prep_raw_closure): ... this.
1352         * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1353         (ffi_prep_closure): ... this.
1354         (flush_icache): Adjust.
1355
1356 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
1357
1358         * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1359         Lea's malloc.
1360
1361 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1362
1363         * Makefile.am: Add dummy install-pdf target.
1364         * Makefile.in: Regenerate
1365
1366 2007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
1367
1368         * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1369         ffi_closure_helper_SYSV): Add long double handling.
1370
1371 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1372
1373         * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1374         immediately after bctrl instruction.
1375
1376 2007-01-18  Alexandre Oliva  <aoliva@redhat.com>
1377
1378         * Makefile.am (all-recursive, install-recursive,
1379         mostlyclean-recursive, clean-recursive, distclean-recursive,
1380         maintainer-clean-recursive): Add missing targets.
1381         * Makefile.in: Rebuilt.
1382
1383 2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
1384
1385         * configure.ac: Add TARGET for x86_64-*-darwin*.
1386         * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1387         for X86_DARWIN.
1388         * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1389         * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1390         * configure: Regenerate.
1391         * Makefile.in: Regenerate.
1392         * include/Makefile.in: Regenerate.
1393         * testsuite/Makefile.in: Regenerate.
1394         * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1395         ffi_call only.
1396
1397 2006-12-13  Andreas Tobler <a.tobler@schweiz.org>
1398
1399         * aclocal.m4: Regenerate with aclocal -I .. as written in the
1400         Makefile.am.
1401
1402 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1403
1404         * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1405         (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1406         Darwin.
1407         * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1408         * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1409
1410 2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
1411             Sandro Tolaini  <tolaini@libero.it>
1412
1413         * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and 
1414         conditional.
1415         * configure: Regenerated.
1416         * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1417         (EXTRA_DIST): Add src/x86/darwin.S.
1418         * Makefile.in: Regenerated.
1419         * include/Makefile.in: Regenerated.
1420         * testsuite/Makefile.in: Regenerated.
1421
1422         * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1423         X86_WIN32, and additionally align stack to 16 bytes.
1424         * src/x86/darwin.S: New, based on sysv.S.
1425         * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1426
1427 2006-09-12  David Daney  <ddaney@avtrex.com>
1428
1429         PR libffi/23935
1430         * include/Makefile.am: Install both ffi.h and ffitarget.h in
1431         $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1432         * aclocal.m4: Regenerated for automake 1.9.6.
1433         * Makefile.in: Regenerated.
1434         * include/Makefile.in: Regenerated.
1435         * testsuite/Makefile.in: Regenerated.
1436
1437 2006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
1438
1439         * include/ffi_common.h (struct): Revert accidental commit.
1440
1441 2006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
1442
1443         * include/ffi_common.h: Remove lint directives.
1444         * include/ffi.h.in: Likewise.
1445
1446 2006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
1447
1448         * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1449         for 32-bit architectures.
1450         * testsuite/libffi.call/return_ul.c: New test case.
1451
1452 2006-07-19  David Daney  <ddaney@avtrex.com>
1453
1454         * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1455         xfail remains for mips64.
1456
1457 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
1458
1459         * Makefile.am: Add install-html target. Add install-html to .PHONY
1460         * Makefile.in: Regenerate.
1461         * aclocal.m4: Regenerate.
1462         * include/Makefile.in: Regenerate.
1463         * testsuite/Makefile.in: Regenerate.
1464
1465 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1466
1467         * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1468         stack slot.
1469
1470 2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
1471
1472         * README: Remove notice about 'Crazy Comments'.
1473         * src/debug.c: Remove lint directives. Cleanup white spaces.
1474         * src/java_raw_api.c: Likewise.
1475         * src/prep_cif.c: Likewise.
1476         * src/raw_api.c: Likewise.
1477         * src/ffitest.c: Delete. No longer needed, all test cases migrated
1478         to the testsuite.
1479         * src/arm/ffi.c: Remove lint directives.
1480         * src/m32r/ffi.c: Likewise.
1481         * src/pa/ffi.c: Likewise.
1482         * src/powerpc/ffi.c: Likewise.
1483         * src/powerpc/ffi_darwin.c: Likewise.
1484         * src/sh/ffi.c: Likewise.
1485         * src/sh64/ffi.c: Likewise.
1486         * src/x86/ffi.c: Likewise.
1487         * testsuite/libffi.call/float2.c: Likewise.
1488         * testsuite/libffi.call/promotion.c: Likewise.
1489         * testsuite/libffi.call/struct1.c: Likewise.
1490
1491 2006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
1492
1493         * src/pa/hpux32.S: Correct unwind offset calculation for
1494         ffi_closure_pa32.
1495         * src/pa/linux.S: Likewise.
1496
1497 2006-04-12  James E Wilson  <wilson@specifix.com>
1498
1499         PR libgcj/26483
1500         * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
1501         (hfa_type_load): Call stf_spill.
1502         (hfa_type_store): Call ldf_fill.
1503         (ffi_call): Adjust calls to above routines.  Add local temps for
1504         macro result.
1505
1506 2006-04-10  Matthias Klose  <doko@debian.org>
1507
1508         * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
1509         directory names containing underscores.
1510
1511 2006-04-07  James E Wilson  <wilson@specifix.com>
1512
1513         * testsuite/libffi.call/float4.c: New testcase.
1514
1515 2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1516             Andreas Tobler  <a.tobler@schweiz.ch>
1517
1518         * Makefile.am: Add PA_HPUX port.
1519         * Makefile.in: Regenerate.
1520         * include/Makefile.in: Likewise.
1521         * testsuite/Makefile.in: Likewise.
1522         * configure.ac: Add PA_HPUX rules.
1523         * configure: Regenerate.
1524         * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
1525         Add PA_HPUX and PA64_HPUX.
1526         Rename FFI_LINUX ABI to FFI_PA32 ABI.
1527         (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
1528         (FFI_TYPE_SMALL_STRUCT2): Define.
1529         (FFI_TYPE_SMALL_STRUCT4): Likewise.
1530         (FFI_TYPE_SMALL_STRUCT8): Likewise.
1531         (FFI_TYPE_SMALL_STRUCT3): Redefine.
1532         (FFI_TYPE_SMALL_STRUCT5): Likewise.
1533         (FFI_TYPE_SMALL_STRUCT6): Likewise.
1534         (FFI_TYPE_SMALL_STRUCT7): Likewise.
1535         * src/pa/ffi.c (ROUND_DOWN): Delete.
1536         (fldw, fstw, fldd, fstd): Use '__asm__'.
1537         (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
1538         FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
1539         (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
1540         Simplify incrementing of stack slot variable. Change type of local
1541         'n' to unsigned int.
1542         (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
1543         double on PA_HPUX.
1544         (ffi_prep_cif_machdep): Likewise.
1545         (ffi_call): Likewise.
1546         (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
1547         return type to ffi_status. Simplify incrementing of stack slot
1548         variable. Only copy floating point argument registers when PA_LINUX
1549         is true. Reformat debug statement.
1550         Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
1551         FFI_TYPE_SMALL_STRUCT8.
1552         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
1553         declaration.
1554         (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
1555         Add nops to cache flush.  Add trampoline for PA_HPUX.
1556         * src/pa/hpux32.S: New file.
1557         * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
1558         ffi_prep_args_LINUX to ffi_prep_args_pa32.
1559         Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
1560         unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
1561         argument type checks so that common argument types appear first.
1562         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
1563         ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
1564
1565 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
1566
1567         * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
1568         for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
1569         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
1570         FFI_TYPE_LONGDOUBLE.
1571         (ffi_prep_args64): Assert using IBM extended double.
1572         (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
1573         Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
1574         (ffi_call): Handle FFI_LINUX.
1575         (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
1576         gpr3 return pointer as for struct return.  Handle FFI_LINUX
1577         FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
1578         unnecessarily.
1579         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
1580         for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
1581         Don't use r6 as pointer to results, instead use sp offset.  Don't
1582         make a special call to load lr with case table address, instead
1583         use offset from previous call.
1584         * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
1585         * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
1586         return.
1587
1588 2006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1589
1590         * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
1591         passed with FP registers correctly.
1592         (ffi_closure_helper_SYSV): Likewise.
1593         * src/sh64/sysv.S: Likewise.
1594
1595 2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
1596
1597         * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
1598         args and userdata unused.
1599         (closure_test_fn1): Mark cif and userdata unused.
1600         (main): Remove unused res.
1601
1602 2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
1603
1604         * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
1605         -O2, -O3, -Os and the warning flags -W -Wall.
1606         * testsuite/libffi.special/special.exp: Likewise.
1607         * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
1608         unused parameter unused for gcc or else do nothing.
1609         * testsuite/libffi.special/ffitestcxx.h: Likewise.
1610         * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
1611         and userdata unused.
1612         * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
1613         * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
1614         * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
1615         * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
1616         * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
1617         * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
1618         * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
1619         * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
1620         * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
1621         * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
1622         * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
1623         * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
1624         * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
1625         * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
1626         * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
1627         * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
1628         * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
1629         * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
1630         * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
1631         * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
1632         * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
1633         * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
1634         * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
1635         * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
1636         Likewise.
1637         * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
1638         Likewise.
1639         * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
1640         Likewise.
1641         * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
1642         void* to avoid compiler warning.
1643         (main): Likewise.
1644         (cls_struct_align_gn): Mark cif and userdata unused.
1645         * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
1646         Likewise.
1647         * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
1648         Likewise.
1649         * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
1650         Likewise.
1651         * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
1652         Likewise.
1653         * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
1654         Likewise.
1655         * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
1656         * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
1657         * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
1658         data unused.
1659         (main): Cast res_call to silence gcc.
1660         * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
1661         data unused.
1662         (main): Cast res_call to silence gcc.
1663         * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
1664         and data unused.
1665         (main): Cast res_call to silence gcc.
1666         * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
1667         data unused.
1668         (main): Cast res_call to silence gcc.
1669         * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
1670         data unused.
1671         (main): Cast res_call to silence gcc.
1672         * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
1673         and data unused.
1674         (main): Cast res_call to silence gcc.
1675         * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
1676         userdata unused.
1677         (cls_ret_schar_fn): Cast printf parameter to silence gcc.
1678         * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
1679         userdata unused.
1680         (cls_ret_sint_fn): Cast printf parameter to silence gcc.
1681         * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
1682         userdata unused.
1683         (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
1684         * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
1685         userdata unused.
1686         (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
1687         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
1688         userdata unused.
1689         (cls_ret_uint_fn): Cast printf parameter to silence gcc.
1690         * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
1691         and userdata unused.
1692         * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
1693         userdata unused.
1694         (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
1695         * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
1696         * testsuite/libffi.call/float1.c (main): Remove unused variable i.
1697         Cleanup white spaces.
1698         * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
1699         * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
1700         cif and userdata unused.
1701         * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
1702         Likewise.
1703         * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
1704         * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
1705         formatters to silence gcc.
1706         (B_gn): Mark cif and userdata unused.
1707         * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
1708         unused.
1709         * testsuite/libffi.call/nested_struct4.c: Mention related PR.
1710         (B_gn): Mark cif and userdata unused.
1711         * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
1712         unused.
1713         * testsuite/libffi.call/nested_struct6.c: Mention related PR.
1714         (B_gn): Mark cif and userdata unused.
1715         * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
1716         unused.
1717         * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
1718         * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
1719         * testsuite/libffi.call/problem1.c (stub): Likewise.
1720         * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
1721         gcc.
1722         * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
1723         in the last commit for this test case in the test case itself.
1724         * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
1725         unused.
1726         * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
1727         * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
1728         * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
1729         * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
1730         * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
1731         * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
1732
1733 2006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1734
1735         * src/sh/sysv.S: Fix register numbers in the FDE for
1736         ffi_closure_SYSV.
1737
1738 2006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
1739
1740         * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
1741         declaration to avoid a false negative on ix86. See PR323.
1742
1743 2006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1744
1745         * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
1746         and cast integer to void * if needed.  Update the pointer to
1747         the FP register saved area correctly.
1748         
1749 2006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
1750
1751         * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
1752         is fixed.
1753         * testsuite/libffi.call/nested_struct4.c: Likewise.
1754
1755 2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
1756
1757         * testsuite/libffi.call/return_dbl.c: New test case.
1758         * testsuite/libffi.call/return_dbl1.c: Likewise.
1759         * testsuite/libffi.call/return_dbl2.c: Likewise.
1760         * testsuite/libffi.call/return_fl.c: Likewise.
1761         * testsuite/libffi.call/return_fl1.c: Likewise.
1762         * testsuite/libffi.call/return_fl2.c: Likewise.
1763         * testsuite/libffi.call/return_fl3.c: Likewise.
1764         * testsuite/libffi.call/closure_fn6.c: Likewise.
1765
1766         * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
1767         definition.
1768         * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
1769         here to be used by other test cases too.
1770
1771         * testsuite/libffi.call/nested_struct10.c: New test case.
1772         * testsuite/libffi.call/nested_struct9.c: Likewise.
1773         * testsuite/libffi.call/nested_struct8.c: Likewise.
1774         * testsuite/libffi.call/nested_struct7.c: Likewise.
1775         * testsuite/libffi.call/nested_struct6.c: Likewise.
1776         * testsuite/libffi.call/nested_struct5.c: Likewise.
1777         * testsuite/libffi.call/nested_struct4.c: Likewise.
1778
1779 2006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
1780
1781         * configure.ac: Enable libffi for sparc64-*-freebsd*.
1782         * configure: Rebuilt.
1783
1784 2006-01-18  Jakub Jelinek  <jakub@redhat.com>
1785
1786         * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
1787         instead do the shifting inline.
1788         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
1789         shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
1790         and 8 byte structs, for the remaining struct sizes don't call
1791         __lshrdi3, instead do the shifting inline.
1792
1793 2005-12-07  Thiemo Seufer  <ths@networkno.de>
1794
1795         * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
1796         missing parentheses.
1797         * src/mips/o32.S (ffi_call_O32): Code formatting. Define
1798         and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
1799         (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
1800         A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
1801         V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
1802         FA_0_0_OFF2.
1803         * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
1804         endianness bugs.
1805         (ffi_prep_closure): Improve trampoline instruction scheduling.
1806         (ffi_closure_mips_inner_O32): Fix endianness bugs.
1807
1808 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
1809
1810         * src/powerpc/ffi.c: Formatting.
1811         (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
1812         (ffi_prep_args64): Likewise.
1813
1814 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
1815
1816         * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
1817         darwin, use -shared-libgcc not -lgcc_s, and explain why.
1818
1819 2005-09-26  Tom Tromey  <tromey@redhat.com>
1820
1821         * testsuite/libffi.call/float1.c (value_type): New typedef.
1822         (CANARY): New define.
1823         (main): Check for result buffer overflow.
1824         * src/powerpc/linux64.S: Handle linux64 long double returns.
1825         * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
1826         (ffi_prep_cif_machdep): Handle linux64 long double returns.
1827
1828 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
1829
1830         PR target/23404
1831         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
1832         homed fp args.
1833         (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
1834
1835 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
1836
1837         * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
1838         (AH_BOTTOM): Add FFI_HIDDEN definition.
1839         * configure: Rebuilt.
1840         * fficonfig.h.in: Rebuilt.
1841         * src/powerpc/ffi.c (hidden): Remove.
1842         (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
1843         ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
1844         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
1845         .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
1846         * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
1847         add FFI_HIDDEN to its prototype.
1848         (ffi_closure_SYSV_inner): New.
1849         * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1850         * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1851
1852 2005-08-10  Alfred M. Szmidt  <ams@gnu.org>
1853
1854         PR libffi/21819:
1855         * configure: Rebuilt.
1856         * configure.ac: Handle i*86-*-gnu*.
1857
1858 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
1859
1860         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
1861         DW_CFA_offset_extended_sf rather than
1862         DW_CFA_GNU_negative_offset_extended.
1863         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
1864
1865 2005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
1866
1867         * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
1868         on sh3.
1869         (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
1870         * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
1871         partially on register.
1872         (ffi_closure_helper_SYSV): Likewise.
1873         (ffi_prep_cif_machdep): Don't set too many cif->flags.
1874
1875 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1876
1877         * src/sh/ffi.c (ffi_call): Handle small structures correctly.
1878         Remove empty line.
1879         * src/sh64/ffi.c (simple_type): Remove.
1880         (return_type): Handle small structures correctly.
1881         (ffi_prep_args): Likewise.
1882         (ffi_call): Likewise.
1883         (ffi_closure_helper_SYSV): Likewise.
1884         * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
1885         Emit position independent code if PIC and remove wrong datalabel
1886         prefixes from EH data.
1887
1888 2005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
1889
1890         * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
1891         * Makefile.in: Regenerate.
1892         * include/Makefile.in: Likewise.
1893         * testsuite/Makefile.in: Likewise.
1894         * configure.ac: Add POWERPC_FREEBSD rules.
1895         * configure: Regenerate.
1896         * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
1897         (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
1898         * src/powerpc/ffi.c: Add flags to handle small structure returns
1899         in ffi_call_SYSV.
1900         (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
1901         Aka FFI_SYSV.
1902         (ffi_closure_helper_SYSV): Likewise.
1903         * src/powerpc/ppc_closure.S: Add return types for small structures.
1904         * src/powerpc/sysv.S: Add bits to handle small structures for
1905         final SYSV 4 ABI.
1906
1907 2005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
1908
1909         * testsuite/libffi.call/cls_5_1_byte.c: New test file.
1910         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1911         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1912
1913 2005-07-05  Randolph Chung  <tausq@debian.org>
1914
1915         * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
1916         as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
1917         structures.  Kill compilation warnings.
1918         (ffi_closure_inner_LINUX): Print return values as hex in debug
1919         message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
1920         Properly handle 5-7 byte structure returns.
1921         * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
1922         (FFI_TYPE_SMALL_STRUCT2): Remove.
1923         (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
1924         (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
1925         * src/pa/linux.S: Mark source file as using PA1.1 assembly.
1926         (checksmst1, checksmst2): Remove.
1927         (checksmst3): Optimize handling of 3-byte struct returns.
1928         (checksmst567): Properly handle 5-7 byte struct returns.
1929
1930 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1931
1932         PR libgcj/21943
1933         * src/mips/n32.S: Enforce PIC code.
1934         * src/mips/o32.S: Likewise.
1935
1936 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1937
1938         * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1939         * configure: Regenerate.
1940         
1941 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
1942
1943         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1944         to call ffi_closure_helper_SYSV.  Append @local instead.
1945         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1946
1947 2005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
1948
1949         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1950         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1951         * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1952         * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1953         include/Makefile.in, testsuite/Makefile.in: Regenerate.
1954         
1955 2005-05-09  Mike Stump  <mrs@apple.com>
1956
1957         * configure: Regenerate.
1958
1959 2005-05-08  Richard Henderson  <rth@redhat.com>
1960
1961         PR libffi/21285
1962         * src/alpha/osf.S: Update unwind into to match code.
1963
1964 2005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
1965             Richard Henderson  <rth@redhat.com>
1966
1967         * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1968         bit 11 of flags.
1969         (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
1970         (ffi_prep_closure): Set carry bit if sse-used flag set.
1971         * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1972         Only load sse registers if ssecount non-zero.
1973         (ffi_closure_unix64): Only save sse registers if carry set on entry.
1974
1975 2005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
1976
1977         * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1978         powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1979         * configure: Regenerate.
1980
1981 2005-04-20  Hans-Peter Nilsson  <hp@axis.com>
1982
1983         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1984         have Tcl8.3-compatible intermediate variable.
1985
1986 2005-04-18  Simon Posnjak <simon.posnjak@siol.net> 
1987             Hans-Peter Nilsson  <hp@axis.com>
1988
1989         * Makefile.am: Add CRIS support.
1990         * configure.ac: Likewise.
1991         * Makefile.in, configure, testsuite/Makefile.in,
1992         include/Makefile.in: Regenerate.
1993         * src/cris: New directory.
1994         * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1995         * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
1996
1997         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1998         \r?\n in output tests.
1999
2000 2005-04-12  Mike Stump  <mrs@apple.com>
2001
2002         * configure: Regenerate.
2003
2004 2005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
2005
2006         * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
2007         
2008 2005-03-30  Steve Ellcey  <sje@cup.hp.com>
2009
2010         * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2011         (ffi_sarg) Ditto.
2012         * src/ia64/unix.S (ffi_closure_unix): Extend gp
2013         to 64 bits in ILP32 mode.
2014         Load 64 bits even for short data.
2015
2016 2005-03-23  Mike Stump  <mrs@apple.com>
2017
2018         * src/powerpc/darwin.S: Update for -m64 multilib.
2019         * src/powerpc/darwin_closure.S: Likewise.
2020
2021 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
2022
2023         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2024         Do not set tool_include_dir.
2025         * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2026         Regenerate.
2027         * include/Makefile.am: Set gcc_version and toollibffidir.
2028         * include/Makefile.in: Regenerate.
2029
2030 2005-02-22  Andrew Haley  <aph@redhat.com>
2031
2032         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2033         odd-numbered register pairs for 64-bit integer types.
2034
2035 2005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
2036
2037         PR libffi/20104
2038         * testsuite/libffi.call/return_ll1.c: New test case.
2039
2040 2005-02-11  Janis Johnson  <janis187@us.ibm.com>
2041
2042         * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2043         * testsuite/libffi.call/float.c: Ditto.
2044         * testsuite/libffi.call/float2.c: Ditto.
2045         * testsuite/libffi.call/float3.c: Ditto.
2046
2047 2005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
2048
2049         * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2050
2051 2005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2052
2053         * testsuite/libffi.special/special.exp (cxx_options): Add
2054         -shared-libgcc.
2055
2056 2004-12-31  Richard Henderson  <rth@redhat.com>
2057
2058         * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2059         (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
2060         offset parameters with a type parameter; deduce size and structure
2061         alignment.  Update all users.
2062
2063 2004-12-31  Richard Henderson  <rth@redhat.com>
2064
2065         * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2066         (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2067         * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2068         into ffi_prep_closure.
2069         * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2070         from scratch.
2071
2072 2004-12-27  Richard Henderson  <rth@redhat.com>
2073
2074         * src/x86/unix64.S: Fix typo in unwind info.
2075
2076 2004-12-25  Richard Henderson  <rth@redhat.com>
2077
2078         * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2079         (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2080         (merge_classes): Check for it.
2081         (SSE_CLASS_P): New.
2082         (classify_argument): Pass byte_offset by value; perform all updates
2083         inside struct case.
2084         (examine_argument): Add classes argument; handle
2085         X86_64_COMPLEX_X87_CLASS.
2086         (ffi_prep_args): Merge into ...
2087         (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
2088         (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2089         (ffi_fill_return_value): Remove.
2090         (ffi_prep_closure): Remove dead assert.
2091         (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2092         Rewrite to use struct register_args instead of va_list.  Create
2093         flags for handling structure returns.
2094         * src/x86/unix64.S: Remove dead strings.
2095         (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
2096         stack frame with ffi_call.  Handle structure returns properly.
2097         (float2sse, floatfloat2sse, double2sse): Remove.
2098         (sse2float, sse2double, sse2floatfloat): Remove.
2099         (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
2100         to handle structure returns properly.
2101
2102 2004-12-08  David Edelsohn  <edelsohn@gnu.org>
2103
2104         * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2105         PICFLAG.
2106         * Makefile.in: Regenerated.
2107
2108 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2109
2110         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2111         * configure, aclocal.m4, Makefile.in: Regenerate.
2112         * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2113
2114 2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
2115
2116         * configure: Regenerate for libtool change.
2117
2118 2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
2119
2120         * configure: Regenerate for libtool reversion.
2121
2122 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2123
2124         * configure: Regenerate for libtool change.
2125
2126 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2127
2128         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2129
2130 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
2131
2132         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2133         of jal.  Use an absolute encoding for the frame information.
2134
2135 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
2136
2137         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
2138         * acinclude.m4: Delete logic for sincludes.
2139         * aclocal.m4, Makefile.in, configure: Regenerate.
2140         * include/Makefile: Likewise.
2141         * testsuite/Makefile: Likewise.
2142
2143 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2144
2145         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2146         on a 8-byte boundary.
2147         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2148
2149 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
2150
2151         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2152         long long values.  Round stack allocation to a multiple of 8 bytes
2153         for ATPCS compatibility.
2154         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2155         names.  Handle returning long long types.  Add Thumb and interworking
2156         support.  Improve soft-float code.
2157
2158 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
2159
2160         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2161         (libffi_exit): New function.
2162         (libffi_init): Build the testglue wrapper if needed.
2163
2164 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2165
2166         PR other/18138
2167         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2168
2169 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2170
2171         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2172
2173 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2174
2175         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2176         * testsuite/libffi.call/float3.c: New test case.
2177
2178 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2179
2180         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2181         the function returning a structure pointed with R2.
2182         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2183         the structure return value if T bit set.  Emit position
2184         independent code and EH data if PIC.
2185
2186 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2187
2188         * Makefile.am: Add m32r support.
2189         * configure.ac: Likewise.
2190         * Makefile.in: Regenerate.
2191         * confiugre: Regenerate.
2192         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2193         (uint64, sint64, double, longdouble)
2194         * src/m32r: New directory.
2195         * src/m32r/ffi.c: New file.
2196         * src/m32r/sysv.S: Likewise.
2197         * src/m32r/ffitarget.h: Likewise.
2198
2199 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2200
2201         * testsuite/libffi.call/negint.c: New test case.
2202
2203 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2204
2205         PR libgcj/17465
2206         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2207         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2208         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2209         DYLD_LIBRARY_PATH.
2210
2211 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
2212
2213         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2214         * testsuite/libffi.call/promotion.c: Likewise.
2215         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2216         whitespaces.
2217         * testsuite/libffi.call/return_sc.c: Likewise.
2218         * testsuite/libffi.call/return_uc.c: Likewise.
2219
2220 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
2221
2222         * src/powerpc/darwin.S: Fix comments and identation.
2223         * src/powerpc/darwin_closure.S: Likewise.
2224
2225 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
2226
2227         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2228         (ffi_prep_args): Handle longdouble arguments.
2229         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2230         longdouble.
2231         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2232         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2233         values.
2234         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2235         * src/types.c: Defined longdouble size and alignment for darwin.
2236
2237 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
2238
2239         * src/powerpc/aix.S: Remove whitespaces.
2240         * src/powerpc/aix_closure.S: Likewise.
2241         * src/powerpc/asm.h: Likewise.
2242         * src/powerpc/ffi.c: Likewise.
2243         * src/powerpc/ffitarget.h: Likewise.
2244         * src/powerpc/linux64.S: Likewise.
2245         * src/powerpc/linux64_closure.S: Likewise.
2246         * src/powerpc/ppc_closure.S: Likewise.
2247         * src/powerpc/sysv.S: Likewise.
2248
2249 2004-08-30  Anthony Green  <green@redhat.com>
2250
2251         * Makefile.am: Add frv support.
2252         * Makefile.in, testsuite/Makefile.in: Rebuilt.
2253         * configure.ac: Read configure.host.
2254         * configure.in: Read configure.host.
2255         * configure.host: New file.  frv-elf needs libgloss.
2256         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2257         alignment.  This is needed to frv and shouldn't harm the others.
2258         * include/ffi_common.h (ALIGN_DOWN): New macro.
2259         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2260
2261 2004-08-24  David Daney  <daney@avtrex.com>
2262
2263         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2264         * testsuite/libffi.call/closure_fn1.c: Likewise.
2265         * testsuite/libffi.call/closure_fn2.c  Likewise.
2266         * testsuite/libffi.call/closure_fn3.c: Likewise.
2267         * testsuite/libffi.call/closure_fn4.c: Likewise.
2268         * testsuite/libffi.call/closure_fn5.c: Likewise.
2269         * testsuite/libffi.call/cls_18byte.c: Likewise.
2270         * testsuite/libffi.call/cls_19byte.c: Likewise.
2271         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2272         * testsuite/libffi.call/cls_20byte.c: Likewise.
2273         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2274         * testsuite/libffi.call/cls_24byte.c: Likewise.
2275         * testsuite/libffi.call/cls_2byte.c: Likewise.
2276         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2277         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2278         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2279         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2280         * testsuite/libffi.call/cls_4byte.c: Likewise.
2281         * testsuite/libffi.call/cls_64byte.c: Likewise.
2282         * testsuite/libffi.call/cls_6byte.c: Likewise.
2283         * testsuite/libffi.call/cls_7byte.c: Likewise.
2284         * testsuite/libffi.call/cls_8byte.c: Likewise.
2285         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2286         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2287         * testsuite/libffi.call/cls_align_double.c: Likewise.
2288         * testsuite/libffi.call/cls_align_float.c: Likewise.
2289         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2290         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2291         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2292         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2293         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2294         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2295         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2296         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2297         * testsuite/libffi.call/cls_double.c: Likewise.
2298         * testsuite/libffi.call/cls_float.c: Likewise.
2299         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2300         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2301         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2302         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2303         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2304         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2305         * testsuite/libffi.call/cls_schar.c: Likewise.
2306         * testsuite/libffi.call/cls_sint.c: Likewise.
2307         * testsuite/libffi.call/cls_sshort.c: Likewise.
2308         * testsuite/libffi.call/cls_uchar.c: Likewise.
2309         * testsuite/libffi.call/cls_uint.c: Likewise.
2310         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2311         * testsuite/libffi.call/cls_ushort.c: Likewise.
2312         * testsuite/libffi.call/nested_struct.c: Likewise.
2313         * testsuite/libffi.call/nested_struct1.c: Likewise.
2314         * testsuite/libffi.call/nested_struct2.c: Likewise.
2315         * testsuite/libffi.call/nested_struct3.c: Likewise.
2316         * testsuite/libffi.call/problem1.c: Likewise.
2317         * testsuite/libffi.special/unwindtest.cc: Likewise.
2318         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2319         to zero.
2320         * testsuite/libffi.call/cls_16byte.c: Likewise.
2321         * testsuite/libffi.call/cls_5byte.c: Likewise.
2322
2323 2004-08-23  David Daney <daney@avtrex.com>
2324
2325         PR libgcj/13141
2326         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2327         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2328         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2329         parameters and return types.
2330         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2331         (ffi_prep_closure): Ditto.
2332         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2333         alignment calculations.
2334         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2335         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2336
2337 2004-08-14  Casey Marshall <csm@gnu.org>
2338
2339         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2340         contain `FFI_TYPE_UINT64' as return type for any 64-bit
2341         integer (O32 ABI only).
2342         (ffi_prep_closure): new function.
2343         (ffi_closure_mips_inner_O32): new function.
2344         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2345         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2346         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2347         64 bit integers correctly.
2348         (ffi_closure_O32): new function.
2349         Added DWARF-2 unwind info for both functions.
2350
2351 2004-08-10  Andrew Haley  <aph@redhat.com>
2352
2353         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2354
2355 2004-08-01  Robert Millan  <robertmh@gnu.org>
2356
2357         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2358         * configure: Regenerate.
2359
2360 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
2361
2362         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2363         and mmap() explicitly instead of relying on preset autoconf cache
2364         variables.
2365         * aclocal.m4: Regenerate.
2366         * configure: Regenerate.
2367
2368 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2369
2370         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2371         (ffi_check_float_struct): Remove unused prototype.
2372
2373 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
2374
2375         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2376         character on Darwin, use '\n\t' instead.
2377
2378 2004-06-26  Matthias Klose  <doko@debian.org>
2379
2380         * libtool-version: Fix typo in revision/age.
2381
2382 2004-06-17  Matthias Klose  <doko@debian.org>
2383
2384         * libtool-version: New.
2385         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2386         * Makefile.in: Regenerate.
2387
2388 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2389
2390         * Makefile.am: Remove useless multilib rules.
2391         * Makefile.in: Regenerate.
2392         * aclocal.m4: Regenerate with automake 1.8.5.
2393         * configure.ac: Remove useless multilib configury.
2394         * configure: Regenerate.
2395
2396 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2397
2398         * .cvsignore: New file.
2399
2400 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2401
2402         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2403         fp_done.
2404         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2405         changed from 8.
2406
2407 2004-06-06  Sean McNeil  <sean@mcneil.com>
2408
2409         * configure.ac: Add x86_64-*-freebsd* support.
2410         * configure: Regenerate.
2411
2412 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
2413
2414         Bug 15093
2415         * configure.ac: Test for existence of mmap and sys/mman.h before
2416         checking blacklist.  Fix suggested by Jim Wilson.
2417         * configure: Regenerate.
2418
2419 2004-04-26  Matt Austern  <austern@apple.com>
2420
2421         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2422         FDE location.
2423         * src/powerpc/darwin_closure.S: Likewise.
2424
2425 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
2426
2427         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2428         error. Reported by Thomas Heller <theller@python.net>.
2429         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2430         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2431
2432 2004-03-20  Matthias Klose  <doko@debian.org>
2433
2434         * src/pa/linux.S: Fix typo.
2435
2436 2004-03-19  Matthias Klose  <doko@debian.org>
2437
2438         * Makefile.am: Update.
2439         * Makefile.in: Regenerate.
2440         * src/pa/ffi.h.in: Remove.
2441         * src/pa/ffitarget.h: New file.
2442
2443 2004-02-10  Randolph Chung  <tausq@debian.org>
2444
2445         * Makefile.am: Add PA support.
2446         * Makefile.in: Regenerate.
2447         * include/Makefile.in: Regenerate.
2448         * configure.ac: Add PA target.
2449         * configure: Regenerate.
2450         * src/pa/ffi.c: New file.
2451         * src/pa/ffi.h.in: Add PA support.
2452         * src/pa/linux.S: New file.
2453         * prep_cif.c: Add PA support.
2454
2455 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
2456
2457         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2458         double.
2459         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2460         with ecif->cif->flags.
2461         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2462         with cif->flags.
2463         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2464         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2465         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2466         sc_retstruct2b): Add for 1 or 2-bytes struct case.
2467
2468 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2469
2470         * configure.in: Rename file to ...
2471         * configure.ac: ... this.
2472         * fficonfig.h.in: Regenerate.
2473         * Makefile.in: Regenerate.
2474         * include/Makefile.in: Regenerate.
2475         * testsuite/Makefile.in: Regenerate.
2476
2477 2004-03-12  Matt Austern  <austern@apple.com>
2478
2479         * src/powerpc/darwin.S: Fix EH information so it corresponds to
2480         changes in EH format resulting from addition of linkonce support.
2481         * src/powerpc/darwin_closure.S: Likewise.
2482
2483 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
2484             Paolo Bonzini  <bonzini@gnu.org>
2485
2486         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2487         Remove VPATH. Remove rules for object files. Remove multilib support.
2488         (AM_CCASFLAGS): Add.
2489         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2490         (AC_PREREQ): Bump version to 2.59.
2491         (AC_INIT): Fill with version info and bug address.
2492         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2493         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2494         De-precious CC so that the right flags are passed down to multilibs.
2495         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2496         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2497         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2498         * configure: Rebuilt.
2499         * aclocal.m4: Likewise.
2500         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2501         * fficonfig.h.in: Likewise.
2502
2503 2004-03-11  Andreas Schwab  <schwab@suse.de>
2504
2505         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
2506         arguments from fp registers only for the first 8 parameter slots.
2507         Don't convert a float parameter when passed in memory.
2508
2509 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
2510
2511         * configure: Regenerate for config/accross.m4 correction.
2512
2513 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
2514
2515         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
2516         ecif->cif->bytes to bytes.
2517         (ffi_prep_cif_machdep): Add braces around nested if statement.
2518
2519 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
2520
2521         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
2522
2523         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
2524         (ffi_closure_helper_LINUX64): Fix typo.
2525         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
2526         for powerpc64-*-*.
2527         * testsuite/libffi.call/float.c: Likewise.
2528         * testsuite/libffi.call/float2.c: Likewise.
2529
2530 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
2531
2532         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
2533         long double function return and long double arg handling.
2534         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
2535         Use "end_pfr" instead of "nf".  Correct long double handling.
2536         Localise "temp".
2537         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
2538         return value.
2539         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
2540         space for long double return value.  Adjust stack frame and offsets.
2541         Load f2 long double return.
2542
2543 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
2544
2545         * src/types.c: Use 16 byte long double for POWERPC64.
2546
2547 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2548
2549         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
2550         when the structure return address is passed in %o0.
2551         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
2552         (ffi_v9_layout_struct): Align the field following a nested structure
2553         on a word boundary.  Use memmove instead of memcpy.
2554         (ffi_call): Update call to ffi_V9_return_struct.
2555         (ffi_prep_closure): Define 'ctx' only for V8.
2556         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
2557         and ffi_closure_sparc_inner_v9.
2558         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
2559         Always skip the structure return address.  For structures and long
2560         doubles, copy the argument directly.
2561         (ffi_closure_sparc_inner_v9): Skip the structure return address only
2562         if required.  Shift the maximum floating-point slot accordingly.  For
2563         big structures, copy the argument directly; otherwise, left-justify the
2564         argument and call ffi_v9_layout_struct to lay out the structure on
2565         the stack.
2566         * src/sparc/v8.S: Undef STACKFRAME before defining it.
2567         (ffi_closure_v8): Pass the structure return address.  Update call to
2568         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
2569         Skip the 'unimp' insn when returning long doubles and structures.
2570         * src/sparc/v9.S: Undef STACKFRAME before defining it.
2571         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
2572         FFI_TYPE_INT handling.  Load structures both in integers and
2573         floating-point registers on return.
2574         * README: Update status of the SPARC port.
2575
2576 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
2577
2578         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
2579         as of type ffi_arg.
2580         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
2581
2582 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
2583
2584         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
2585         value as of type ffi_arg, not unsigned int.
2586
2587 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
2588
2589         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
2590         of the LHS.
2591
2592 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
2593
2594         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
2595         Solaris.
2596
2597 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2598
2599         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
2600         to void *.
2601
2602 2003-12-10  Richard Henderson  <rth@redhat.com>
2603
2604         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
2605         size_t instead of int.
2606
2607 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
2608
2609         * testsuite/libffi.call/many_win32.c: Include <float.h>.
2610         * testsuite/libffi.call/many_win32.c (main): Replace variable
2611         int i with unsigned long ul.
2612
2613         * testsuite/libffi.call/cls_align_uint64.c: New test case.
2614         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2615         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2616         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2617         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2618         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2619         * testsuite/libffi.call/cls_align_float.c: Likewise.
2620         * testsuite/libffi.call/cls_align_double.c: Likewise.
2621         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2622         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2623
2624 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
2625
2626         PR other/13221
2627         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
2628         Align arguments to 32 bits.
2629
2630 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
2631
2632         PR other/13221
2633         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
2634         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2635         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2636         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2637         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2638         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2639
2640         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
2641
2642 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2643
2644         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
2645         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2646
2647 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
2648
2649         * Makefile.in: Rebuilt.
2650         * configure: Likewise.
2651         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
2652         the right type.
2653
2654 2003-11-21  Andreas Jaeger  <aj@suse.de>
2655             Andreas Tobler  <a.tobler@schweiz.ch>
2656
2657         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
2658         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
2659         * Makefile.in: Rebuilt.
2660         * aclocal.m4: Likewise.
2661         * configure: Likewise.
2662         * fficonfig.h.in: Likewise.
2663         * testsuite/lib/libffi-dg.exp: Add include dir.
2664         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
2665         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2666         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
2667         for ffi_closure if available.
2668         * testsuite/libffi.call/closure_fn1.c: Likewise.
2669         * testsuite/libffi.call/closure_fn2.c: Likewise.
2670         * testsuite/libffi.call/closure_fn3.c: Likewise.
2671         * testsuite/libffi.call/closure_fn4.c: Likewise.
2672         * testsuite/libffi.call/closure_fn5.c: Likewise.
2673         * testsuite/libffi.call/cls_12byte.c: Likewise.
2674         * testsuite/libffi.call/cls_16byte.c: Likewise.
2675         * testsuite/libffi.call/cls_18byte.c: Likewise.
2676         * testsuite/libffi.call/cls_19byte.c: Likewise.
2677         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2678         * testsuite/libffi.call/cls_20byte.c: Likewise.
2679         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2680         * testsuite/libffi.call/cls_24byte.c: Likewise.
2681         * testsuite/libffi.call/cls_2byte.c: Likewise.
2682         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2683         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2684         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2685         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2686         * testsuite/libffi.call/cls_4byte.c: Likewise.
2687         * testsuite/libffi.call/cls_5byte.c: Likewise.
2688         * testsuite/libffi.call/cls_64byte.c: Likewise.
2689         * testsuite/libffi.call/cls_6byte.c: Likewise.
2690         * testsuite/libffi.call/cls_7byte.c: Likewise.
2691         * testsuite/libffi.call/cls_8byte.c: Likewise.
2692         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2693         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2694         * testsuite/libffi.call/cls_double.c: Likewise.
2695         * testsuite/libffi.call/cls_float.c: Likewise.
2696         * testsuite/libffi.call/cls_schar.c: Likewise.
2697         * testsuite/libffi.call/cls_sint.c: Likewise.
2698         * testsuite/libffi.call/cls_sshort.c: Likewise.
2699         * testsuite/libffi.call/cls_uchar.c: Likewise.
2700         * testsuite/libffi.call/cls_uint.c: Likewise.
2701         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2702         * testsuite/libffi.call/cls_ushort.c: Likewise.
2703         * testsuite/libffi.call/nested_struct.c: Likewise.
2704         * testsuite/libffi.call/nested_struct1.c: Likewise.
2705         * testsuite/libffi.call/nested_struct2.c: Likewise.
2706         * testsuite/libffi.call/nested_struct3.c: Likewise.
2707         * testsuite/libffi.call/problem1.c: Likewise.
2708         * testsuite/libffi.special/unwindtest.cc: Likewise.
2709
2710 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
2711
2712         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
2713
2714 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
2715
2716         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2717         Add -lgcc_s to additional flags.
2718
2719 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
2720
2721         * configure.in, include/Makefile.am: PR libgcj/11147, install
2722         the ffitarget.h header file in a gcc versioned and target
2723         dependent place.
2724         * configure: Regenerated.
2725         * Makefile.in, include/Makefile.in: Likewise.
2726         * testsuite/Makefile.in: Likewise.
2727
2728 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
2729
2730         * testsuite/libffi.call/closure_fn0.c: Print result and check
2731         with dg-output to make debugging easier.
2732         * testsuite/libffi.call/closure_fn1.c: Likewise.
2733         * testsuite/libffi.call/closure_fn2.c: Likewise.
2734         * testsuite/libffi.call/closure_fn3.c: Likewise.
2735         * testsuite/libffi.call/closure_fn4.c: Likewise.
2736         * testsuite/libffi.call/closure_fn5.c: Likewise.
2737         * testsuite/libffi.call/cls_12byte.c: Likewise.
2738         * testsuite/libffi.call/cls_16byte.c: Likewise.
2739         * testsuite/libffi.call/cls_18byte.c: Likewise.
2740         * testsuite/libffi.call/cls_19byte.c: Likewise.
2741         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2742         * testsuite/libffi.call/cls_20byte.c: Likewise.
2743         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2744         * testsuite/libffi.call/cls_24byte.c: Likewise.
2745         * testsuite/libffi.call/cls_2byte.c: Likewise.
2746         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2747         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2748         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2749         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2750         * testsuite/libffi.call/cls_4byte.c: Likewise.
2751         * testsuite/libffi.call/cls_5byte.c: Likewise.
2752         * testsuite/libffi.call/cls_64byte.c: Likewise.
2753         * testsuite/libffi.call/cls_6byte.c: Likewise.
2754         * testsuite/libffi.call/cls_7byte.c: Likewise.
2755         * testsuite/libffi.call/cls_8byte.c: Likewise.
2756         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2757         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2758         * testsuite/libffi.call/cls_double.c: Likewise.
2759         * testsuite/libffi.call/cls_float.c: Likewise.
2760         * testsuite/libffi.call/cls_schar.c: Likewise.
2761         * testsuite/libffi.call/cls_sint.c: Likewise.
2762         * testsuite/libffi.call/cls_sshort.c: Likewise.
2763         * testsuite/libffi.call/cls_uchar.c: Likewise.
2764         * testsuite/libffi.call/cls_uint.c: Likewise.
2765         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2766         * testsuite/libffi.call/cls_ushort.c: Likewise.
2767         * testsuite/libffi.call/problem1.c: Likewise.
2768
2769         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
2770         static.
2771
2772 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
2773
2774         * testsuite/libffi.call/cls_9byte2.c: New test case.
2775         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2776         * testsuite/libffi.call/cls_64byte.c: Likewise.
2777         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2778         * testsuite/libffi.call/cls_19byte.c: Likewise.
2779         * testsuite/libffi.call/cls_18byte.c: Likewise.
2780         * testsuite/libffi.call/closure_fn4.c: Likewise.
2781         * testsuite/libffi.call/closure_fn5.c: Likewise.
2782         * testsuite/libffi.call/cls_schar.c: Likewise.
2783         * testsuite/libffi.call/cls_sint.c: Likewise.
2784         * testsuite/libffi.call/cls_sshort.c: Likewise.
2785         * testsuite/libffi.call/nested_struct2.c: Likewise.
2786         * testsuite/libffi.call/nested_struct3.c: Likewise.
2787
2788 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
2789
2790         * testsuite/libffi.call/cls_double.c: Do a check on the result.
2791         * testsuite/libffi.call/cls_uchar.c: Likewise.
2792         * testsuite/libffi.call/cls_uint.c: Likewise.
2793         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2794         * testsuite/libffi.call/cls_ushort.c: Likewise.
2795         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2796
2797 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
2798
2799         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
2800         the initialization.
2801
2802 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
2803
2804         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
2805         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2806
2807 2003-10-22  David Daney  <ddaney@avtrex.com>
2808
2809         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2810         __attribute__((__mode__(__SI__))) and friends.
2811
2812 2003-10-22  Andreas Schwab  <schwab@suse.de>
2813
2814         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2815
2816 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
2817
2818         * configure.in: AC_LINK_FILES(ffitarget.h).
2819         * configure: Regenerate.
2820         * Makefile.in: Likewise.
2821         * include/Makefile.in: Likewise.
2822         * testsuite/Makefile.in: Likewise.
2823         * fficonfig.h.in: Likewise.
2824
2825 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
2826             Richard Henderson  <rth@redhat.com>
2827
2828         Avoid that ffi.h includes fficonfig.h.
2829
2830         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
2831         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2832         (TARGET_SRC_MIPS_SGI): Removed.
2833         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2834         (MIPS_SGI): Removed.
2835         (CLEANFILES): Removed.
2836         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2837         targets.
2838         * acconfig.h: Removed.
2839         * configure.in: Compute sizeofs only for double and long double.
2840         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
2841         into AC_DEFINE instead of using acconfig.h.  Create
2842         include/ffitarget.h instead of include/fficonfig.h.  Rename
2843         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2844         AC_DEFINE EH_FRAME_FLAGS.
2845         * include/Makefile.am (DISTCLEANFILES): New automake macro.
2846         (hack_DATA): Add ffitarget.h.
2847         * include/ffi.h.in: Remove all system specific definitions.
2848         Declare raw API even if it is not installed, why bother?
2849         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
2850         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
2851         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
2852         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2853         * include/ffi_common.h (bool): Do not define.
2854         (ffi_assert): Accept failed assertion.
2855         (ffi_type_test): Return void and accept file/line.
2856         (FFI_ASSERT): Pass stringized failed assertion.
2857         (FFI_ASSERT_AT): New macro.
2858         (FFI_ASSERT_VALID_TYPE): New macro.
2859         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2860         UINT64, SINT64): Define here with gcc's __attribute__ macro
2861         instead of in ffi.h
2862         (FLOAT32, ALIGN): Define here instead of in ffi.h
2863         * include/ffi-mips.h: Removed.  Its content moved to
2864         src/mips/ffitarget.h after separating assembly and C sections.
2865         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2866         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2867         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2868         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2869         SIZEOF_ARG -> FFI_SIZEOF_ARG.
2870         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2871         * src/debug.c (ffi_assert): Accept stringized failed assertion.
2872         (ffi_type_test): Rewritten.
2873         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2874         FFI_ASSERT_VALID_TYPE.
2875         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
2876         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2877         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2878         src/s390/ffitarget.h, src/sh/ffitarget.h,
2879         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2880         src/x86/ffitarget.h: New files.
2881         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2882         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2883         src/powerpc/aix.S, src/powerpc/darwin.S,
2884         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2885         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2886         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2887         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2888         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2889         include fficonfig.h
2890
2891 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2892
2893         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2894         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2895
2896 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
2897
2898         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2899         Used when FFI_DEBUG = 1.
2900
2901 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
2902
2903         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2904         and align.
2905
2906 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2907
2908         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2909         FFI_MIPS_O32 for O32 ABI.
2910
2911 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
2912
2913         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2914         SPARC64. Cleanup whitespaces.
2915
2916 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
2917
2918         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2919         strongarm, xscale. Cleanup whitespaces.
2920         * testsuite/libffi.call/closure_fn1.c: Likewise.
2921         * testsuite/libffi.call/closure_fn2.c: Likewise.
2922         * testsuite/libffi.call/closure_fn3.c: Likewise.
2923         * testsuite/libffi.call/cls_12byte.c: Likewise.
2924         * testsuite/libffi.call/cls_16byte.c: Likewise.
2925         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2926         * testsuite/libffi.call/cls_20byte.c: Likewise.
2927         * testsuite/libffi.call/cls_24byte.c: Likewise.
2928         * testsuite/libffi.call/cls_2byte.c: Likewise.
2929         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2930         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2931         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2932         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2933         * testsuite/libffi.call/cls_4byte.c: Likewise.
2934         * testsuite/libffi.call/cls_5byte.c: Likewise.
2935         * testsuite/libffi.call/cls_6byte.c: Likewise.
2936         * testsuite/libffi.call/cls_7byte.c: Likewise.
2937         * testsuite/libffi.call/cls_8byte.c: Likewise.
2938         * testsuite/libffi.call/cls_double.c: Likewise.
2939         * testsuite/libffi.call/cls_float.c: Likewise.
2940         * testsuite/libffi.call/cls_uchar.c: Likewise.
2941         * testsuite/libffi.call/cls_uint.c: Likewise.
2942         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2943         * testsuite/libffi.call/cls_ushort.c: Likewise.
2944         * testsuite/libffi.call/nested_struct.c: Likewise.
2945         * testsuite/libffi.call/nested_struct1.c: Likewise.
2946         * testsuite/libffi.call/problem1.c: Likewise.
2947         * testsuite/libffi.special/unwindtest.cc: Likewise.
2948         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2949
2950 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
2951
2952         * src/powerpc/aix.S: Cleanup whitespaces.
2953         * src/powerpc/aix_closure.S: Likewise.
2954
2955 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
2956
2957         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2958         * src/powerpc/darwin_closure.S: Likewise.
2959         * src/powerpc/ffi_darwin.c: Likewise.
2960
2961 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
2962             David Edelsohn  <edelsohn@gnu.org>
2963
2964         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2965         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2966         parameter stack.
2967         * src/powerpc/darwin_closure.S: Likewise.
2968         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2969         according to the Darwin/AIX ABI.
2970         (ffi_prep_cif_machdep): Likewise.
2971         (ffi_closure_helper_DARWIN): Likewise.
2972         Remove the outgoing parameter stack logic. Simplify the evaluation
2973         of the different CASE types.
2974         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2975         statement in the trampoline code.
2976
2977 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2978
2979         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2980         for the register size.
2981         (ffi_closure_helper_SYSV): Handle the structure return value
2982         address correctly.
2983         (ffi_closure_helper_SYSV): Return the appropriate type when
2984         the registers are used for the structure return value.
2985         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2986         the 64-bit return value.  Update copyright years.
2987
2988 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2989
2990         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2991         srcdir for ffi_mips.h.
2992
2993 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
2994
2995         * src/prep_cif.c (initialize_aggregate): Include tail padding in
2996         structure size.
2997         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2998         placement of float result.
2999         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3000         cast of "resp" for big-endian 64 bit machines.
3001
3002 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
3003
3004         * src/types.c (double, longdouble): Merge identical SH and ARM
3005         typedefs, and add POWERPC64.
3006         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3007         struct split over gpr and rest.
3008         (ffi_prep_cif_machdep): Correct intarg_count for structures.
3009         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3010
3011 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
3012
3013         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3014         passing correctly.
3015
3016 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
3017
3018         * configure: Regenerate.
3019
3020 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
3021
3022         * Makefile.am: Remove build rules for ffitest.
3023         * Makefile.in: Rebuilt.
3024
3025 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
3026
3027         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3028         about implicit declaration of abort().
3029
3030 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
3031
3032         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3033         * Makefile.in: Rebuilt.
3034         * configure.in: Add dejagnu test framework.
3035         * configure: Rebuilt.
3036
3037         * testsuite/Makefile.am: New file.
3038         * testsuite/Makefile.in: Built
3039         * testsuite/lib/libffi-dg.exp: New file.
3040         * testsuite/config/default.exp: Likewise.
3041         * testsuite/libffi.call/call.exp: Likewise.
3042         * testsuite/libffi.call/ffitest.h: Likewise.
3043         * testsuite/libffi.call/closure_fn0.c: Likewise.
3044         * testsuite/libffi.call/closure_fn1.c: Likewise.
3045         * testsuite/libffi.call/closure_fn2.c: Likewise.
3046         * testsuite/libffi.call/closure_fn3.c: Likewise.
3047         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3048         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3049         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3050         * testsuite/libffi.call/cls_2byte.c: Likewise.
3051         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3052         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3053         * testsuite/libffi.call/cls_4byte.c: Likewise.
3054         * testsuite/libffi.call/cls_5byte.c: Likewise.
3055         * testsuite/libffi.call/cls_6byte.c: Likewise.
3056         * testsuite/libffi.call/cls_7byte.c: Likewise.
3057         * testsuite/libffi.call/cls_8byte.c: Likewise.
3058         * testsuite/libffi.call/cls_12byte.c: Likewise.
3059         * testsuite/libffi.call/cls_16byte.c: Likewise.
3060         * testsuite/libffi.call/cls_20byte.c: Likewise.
3061         * testsuite/libffi.call/cls_24byte.c: Likewise.
3062         * testsuite/libffi.call/cls_double.c: Likewise.
3063         * testsuite/libffi.call/cls_float.c: Likewise.
3064         * testsuite/libffi.call/cls_uchar.c: Likewise.
3065         * testsuite/libffi.call/cls_uint.c: Likewise.
3066         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3067         * testsuite/libffi.call/cls_ushort.c: Likewise.
3068         * testsuite/libffi.call/float.c: Likewise.
3069         * testsuite/libffi.call/float1.c: Likewise.
3070         * testsuite/libffi.call/float2.c: Likewise.
3071         * testsuite/libffi.call/many.c: Likewise.
3072         * testsuite/libffi.call/many_win32.c: Likewise.
3073         * testsuite/libffi.call/nested_struct.c: Likewise.
3074         * testsuite/libffi.call/nested_struct1.c: Likewise.
3075         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3076         * testsuite/libffi.call/problem1.c: Likewise.
3077         * testsuite/libffi.call/promotion.c: Likewise.
3078         * testsuite/libffi.call/return_ll.c: Likewise.
3079         * testsuite/libffi.call/return_sc.c: Likewise.
3080         * testsuite/libffi.call/return_uc.c: Likewise.
3081         * testsuite/libffi.call/strlen.c: Likewise.
3082         * testsuite/libffi.call/strlen_win32.c: Likewise.
3083         * testsuite/libffi.call/struct1.c: Likewise.
3084         * testsuite/libffi.call/struct2.c: Likewise.
3085         * testsuite/libffi.call/struct3.c: Likewise.
3086         * testsuite/libffi.call/struct4.c: Likewise.
3087         * testsuite/libffi.call/struct5.c: Likewise.
3088         * testsuite/libffi.call/struct6.c: Likewise.
3089         * testsuite/libffi.call/struct7.c: Likewise.
3090         * testsuite/libffi.call/struct8.c: Likewise.
3091         * testsuite/libffi.call/struct9.c: Likewise.
3092         * testsuite/libffi.special/special.exp: New file.
3093         * testsuite/libffi.special/ffitestcxx.h: Likewise.
3094         * testsuite/libffi.special/unwindtest.cc: Likewise.
3095
3096
3097 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3098
3099         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
3100         copyright years.
3101
3102 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
3103
3104         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3105         structure passing.
3106         (ffi_closure_helper_LINUX64): Likewise.
3107         * src/powerpc/linux64.S: Remove code writing to parm save area.
3108         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3109         address in lr from ffi_closure_helper_LINUX64 call to calculate
3110         table address.  Optimize function tail.
3111
3112 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
3113
3114         * src/sparc/ffi.c: Handle all floating point registers.
3115         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3116
3117 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3118
3119         * README: Note that libffi is not part of GCC.  Update the project
3120         URL and status.
3121
3122 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3123
3124         * src/powerpc/ppc_closure.S: Include ffi.h.
3125
3126 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3127
3128         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3129         Use C style comments.
3130
3131 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
3132
3133         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
3134         * Makefile.in: Regenerate.
3135         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3136         * configure: Regenerate.
3137         * include/ffi.h.in: Add SHmedia support.
3138         * src/sh64/ffi.c: New file.
3139         * src/sh64/sysv.S: New file.
3140
3141 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
3142
3143         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3144         should be read-only.
3145         * configure: Rebuilt.
3146         * fficonfig.h.in: Rebuilt.
3147         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3148         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3149         * src/powerpc/linux64.S: Likewise.
3150         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
3151         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
3152         if -fpic/-fPIC/-mrelocatable.
3153         * src/powerpc/powerpc_closure.S: Likewise.
3154         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3155         #write in .eh_frame flags.
3156         * src/sparc/v9.S: Likewise.
3157         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3158         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
3159         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
3160
3161 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
3162
3163         Fixes PR bootstrap/10656
3164         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3165         support for .register pseudo-op.
3166         * src/sparc/v8.S: Use it.
3167         * fficonfig.h.in: Rebuilt.
3168         * configure: Rebuilt.
3169
3170 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
3171
3172         * include/ffi.h.in (POWERPC64): Define if 64-bit.
3173         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3174         Make it the default on POWERPC64.
3175         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3176         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3177         * configure: Rebuilt.
3178         * src/powerpc/ffi.c (hidden): Define.
3179         (ffi_prep_args_SYSV): Renamed from
3180         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
3181         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3182         ASM_NEEDS_REGISTERS64): New.
3183         (ffi_prep_args64): New function.
3184         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3185         (ffi_call): Likewise.
3186         (ffi_prep_closure): Likewise.
3187         (flush_icache): Surround by #ifndef POWERPC64.
3188         (ffi_dblfl): New union type.
3189         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3190         (ffi_closure_helper_LINUX64): New function.
3191         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3192         __powerpc64__.
3193         * src/powerpc/sysv.S: Likewise.
3194         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3195         * src/powerpc/linux64.S: New file.
3196         * src/powerpc/linux64_closure.S: New file.
3197         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3198         src/powerpc/linux64_closure.S.
3199         (TARGET_SRC_POWERPC): Likewise.
3200
3201         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3202         closure_test_fn3): Fix result printing on big-endian 64-bit
3203         machines.
3204         (main): Print tst2_arg instead of uninitialized tst2_result.
3205
3206         * src/ffitest.c (main): Hide what closure pointer really points to
3207         from the compiler.
3208
3209 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
3210
3211         * configure.in (arm-*-netbsdelf*): Add configuration.
3212         (configure): Regenerated.
3213
3214 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
3215
3216         * include/Makefile.in: Regenerate.
3217
3218 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3219
3220         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3221         bit mode.
3222         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3223         Receive closure pointer through parameter, read args using
3224         __builtin_dwarf_cfa.
3225         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3226
3227 2003-03-12  Andreas Schwab  <schwab@suse.de>
3228
3229         * configure.in: Avoid trailing /. in toolexeclibdir.
3230         * configure: Rebuilt.
3231
3232 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
3233
3234         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3235
3236 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
3237
3238         * libffi/src/powerpc/darwin_closure.S:
3239         Fix alignement bug, allocate 8 bytes for the result.
3240         * libffi/src/powerpc/aix_closure.S:
3241         Likewise.
3242         * libffi/src/powerpc/ffi_darwin.c:
3243         Update stackframe description for aix/darwin_closure.S.
3244
3245 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
3246
3247         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3248         attribute.
3249
3250 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
3251             Andreas Schwab  <schwab@suse.de>
3252
3253         * configure.in: Adjust command to source config-ml.in to account
3254         for changes to the libffi_basedir definition.
3255         (libffi_basedir): Remove ${srcdir} from value and include trailing
3256         slash if nonempty.
3257
3258         * configure: Regenerate.
3259
3260 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3261
3262         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3263
3264 2003-01-28  Andrew Haley  <aph@redhat.com>
3265
3266         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3267         * src/x86/ffi64.c (ffi_prep_closure): New.
3268         (ffi_closure_UNIX64_inner): New.
3269         * src/x86/unix64.S (ffi_closure_UNIX64): New.
3270
3271 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
3272
3273         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3274         Remove USE_LIBDIR conditional.
3275         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3276         * Makefile.in, configure: Rebuilt.
3277
3278 2003-01027  David Edelsohn  <edelsohn@gnu.org>
3279
3280         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3281         * Makefile.in: Regenerate.
3282
3283 2003-01-22  Andrew Haley  <aph@redhat.com>
3284
3285         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3286         unwind info.
3287
3288 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
3289
3290         * src/powerpc/darwin.S: Add unwind info.
3291         * src/powerpc/darwin_closure.S: Likewise.
3292
3293 2003-01-14  Andrew Haley  <aph@redhat.com>
3294
3295         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3296         (ffi_prep_cif_machdep): Likewise.
3297         * src/x86/unix64.S: Add unwind info.
3298
3299 2003-01-14  Andreas Jaeger  <aj@suse.de>
3300
3301         * src/ffitest.c (main): Only use ffi_closures if those are
3302         supported.
3303
3304 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3305
3306         * libffi/src/ffitest.c
3307          add closure testcases
3308
3309 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3310
3311         * libffi/src/powerpc/ffi.c
3312          fix alignment bug for float (4 byte aligned iso 8 byte)
3313
3314 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
3315
3316         * src/powerpc/ffi_darwin.c: Remove RCS version string.
3317         * src/powerpc/darwin.S: Remove RCS version string.
3318
3319 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
3320
3321         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3322         * src/ffitest.c (main): Use static storage for closure.
3323         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3324         * src/sparc/v8.S (ffi_closure_v8): New.
3325         * src/sparc/v9.S (ffi_closure_v9): New.
3326
3327 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
3328
3329         * include/ffi.h.in: Added FFI_STDCALL ffi_type
3330           enumeration for X86_WIN32.
3331         * src/x86/win32.S: Added ffi_call_STDCALL function
3332           definition.
3333         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3334           switch cases for recognising FFI_STDCALL and
3335           calling ffi_call_STDCALL if target is X86_WIN32.
3336         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3337           stdcall versions of the "my_strlen" and "many"
3338           test functions (for X86_WIN32).
3339           Added test cases to test stdcall invocation using
3340           these functions.
3341
3342 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3343
3344         * src/sh/sysv.S: Add DWARF2 unwind info.
3345
3346 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
3347
3348         * src/s390/sysv.S (.eh_frame section): Make section read-only.
3349
3350 2002-11-26  Jim Wilson  <wilson@redhat.com>
3351
3352         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3353
3354 2002-11-23  H.J. Lu <hjl@gnu.org>
3355
3356         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3357         Include ../config/accross.m4.
3358         * aclocal.m4; Rebuild.
3359         * configure: Likewise.
3360
3361 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
3362
3363         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3364
3365 2002-11-11  DJ Delorie  <dj@redhat.com>
3366
3367         * configure.in: Look for common files in the right place.
3368
3369 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
3370
3371         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3372         raw data as _Jv_word values, not ffi_raw.
3373         (ffi_java_ptrarray_to_raw): Likewise.
3374         (ffi_java_rvalue_to_raw): New function.
3375         (ffi_java_raw_call): Call it.
3376         (ffi_java_raw_to_rvalue): New function.
3377         (ffi_java_translate_args): Call it.
3378         * src/ffitest.c (closure_test_fn): Interpret return value
3379         as ffi_arg, not int.
3380         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3381         FFI_TYPE_POINTER case.
3382         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
3383         values extended to word size.
3384
3385 2002-10-02  Andreas Jaeger  <aj@suse.de>
3386
3387         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3388
3389 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
3390
3391         * include/ffi.h.in: Fix i386 win32 compilation.
3392
3393 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3394
3395         * configure.in: Add s390x-*-linux-* target.
3396         * configure: Regenerate.
3397         * include/ffi.h.in: Define S390X for s390x targets.
3398         (FFI_CLOSURES): Define for s390/s390x.
3399         (FFI_TRAMPOLINE_SIZE): Likewise.
3400         (FFI_NATIVE_RAW_API): Likewise.
3401         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3402         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3403         * src/s390/ffi.c: Major rework of existing code.  Add support for
3404         s390x targets.  Add closure support.
3405         * src/s390/sysv.S: Likewise.
3406
3407 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
3408
3409         * src/arm/sysv.S: Fix typo.
3410
3411 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
3412
3413         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3414         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3415         (ffi_call_SYSV): Handle soft-float.
3416
3417 2002-09-27  Bo Thorsen  <bo@suse.de>
3418
3419         * include/ffi.h.in: Fix multilib x86-64 support.
3420
3421 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3422
3423         * Makefile.am (all-multi): Fix multilib parallel build.
3424
3425 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3426
3427         * configure.in (sh[34]*-*-linux*): Add brackets.
3428         * configure: Regenerate.
3429
3430 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3431
3432         * Makefile.am: Add SH support.
3433         * Makefile.in: Regenerate.
3434         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3435         * configure: Regenerate.
3436         * include/ffi.h.in: Add SH support.
3437         * src/sh/ffi.c: New file.
3438         * src/sh/sysv.S: New file.
3439         * src/types.c: Add SH support.
3440
3441 2002-07-16  Bo Thorsen  <bo@suse.de>
3442
3443         * src/x86/ffi64.c: New file that adds x86-64 support.
3444         * src/x86/unix64.S: New file that handles argument setup for
3445         x86-64.
3446         * src/x86/sysv.S: Don't use this on x86-64.
3447         * src/x86/ffi.c: Don't use this on x86-64.
3448         Remove unused vars.
3449         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3450         for x86-64.
3451         * src/ffitest.c (struct6): New test that tests a special case in
3452         the x86-64 ABI.
3453         (struct7): Likewise.
3454         (struct8): Likewise.
3455         (struct9): Likewise.
3456         (closure_test_fn): Silence warning about this when it's not used.
3457         (main): Add the new tests.
3458         (main): Fix a couple of wrong casts and silence some compiler warnings.
3459         * include/ffi.h.in: Add x86-64 ABI definition.
3460         * fficonfig.h.in: Regenerate.
3461         * Makefile.am: Add x86-64 support.
3462         * configure.in: Likewise.
3463         * Makefile.in: Regenerate.
3464         * configure: Likewise.
3465
3466 2002-06-24  Bo Thorsen  <bo@suse.de>
3467
3468         * src/types.c: Merge settings for similar architectures.
3469         Add x86-64 sizes and alignments.
3470
3471 2002-06-23  Bo Thorsen  <bo@suse.de>
3472
3473         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3474         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3475         * src/mips/ffi.c (ffi_prep_args): Likewise.
3476         * src/m68k/ffi.c (ffi_prep_args): Likewise.
3477
3478 2002-07-18  H.J. Lu  (hjl@gnu.org)
3479
3480         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3481         (libffi_la_SOURCES): Support MIPS_LINUX.
3482         (libffi_convenience_la_SOURCES): Likewise.
3483         * Makefile.in: Regenerated.
3484
3485         * configure.in (mips64*-*): Skip.
3486         (mips*-*-linux*): New.
3487         * configure: Regenerated.
3488
3489         * src/mips/ffi.c: Include <sgidefs.h>.
3490
3491 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
3492
3493         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
3494
3495 2002-05-27  Roger Sayle  <roger@eyesopen.com>
3496
3497         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3498
3499 2002-05-27  Bo Thorsen  <bo@suse.de>
3500
3501         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3502         fix formatting.
3503
3504 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
3505
3506         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
3507         beginning of function (for older apple cc).
3508
3509 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
3510
3511         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
3512         script entry, and set LD to it when configuring multilibs.
3513         * configure: Rebuilt.
3514
3515 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3516
3517         * configure.in (sparc64-*-netbsd*): Add target.
3518         (sparc-*-netbsdelf*): Likewise.
3519         * configure: Regenerate.
3520
3521 2002-04-28  David S. Miller  <davem@redhat.com>
3522
3523         * configure.in, configure: Fix SPARC test in previous change.
3524
3525 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
3526
3527         * Makefile.am: Add Linux for S/390 support.
3528         * Makefile.in: Regenerate.
3529         * configure.in: Add Linux for S/390 support.
3530         * configure: Regenerate.
3531         * include/ffi.h.in: Add Linux for S/390 support.
3532         * src/s390/ffi.c: New file from libffi CVS tree.
3533         * src/s390/sysv.S: New file from libffi CVS tree.
3534
3535 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3536
3537         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
3538         %r_disp32().
3539         * src/sparc/v8.S: Use it.
3540         * src/sparc/v9.S: Likewise.
3541         * fficonfig.h.in: Rebuilt.
3542         * configure: Rebuilt.
3543
3544 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
3545
3546         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
3547         correctly.
3548         * src/ia64/unix.S: Add unwind information. Fix comments.
3549         Save sp in a way that's compatible with unwind info.
3550         (ffi_call_unix): Correctly restore sp in all cases.
3551         * src/ia64/ffi.c: Add, fix comments.
3552
3553 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
3554
3555         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
3556
3557 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
3558
3559         * configure.in (alpha*-*-netbsd*): Add target.
3560         * configure: Regenerate.
3561
3562 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
3563
3564         * src/sparc/v8.S: Add unwind info.
3565         * src/sparc/v9.S: Likewise.
3566
3567 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
3568
3569         * configure.in: Enable i*86-*-netbsdelf*.
3570         * configure: Rebuilt.
3571
3572 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
3573
3574         PR other/2620
3575         * src/mips/n32.s: Delete
3576         * src/mips/o32.s: Delete
3577
3578 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
3579
3580         * configure.in: Enable alpha*-*-freebsd*.
3581         * configure: Rebuilt.
3582
3583 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3584
3585         * Makefile.am: libfficonvenience -> libffi_convenience.
3586         * Makefile.in: Rebuilt.
3587
3588         * Makefile.am: Define ffitest_OBJECTS.
3589         * Makefile.in: Rebuilt.
3590
3591 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
3592             David Edelsohn  <edelsohn@gnu.org>
3593
3594         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
3595         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
3596         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
3597         * Makefile.in: Regenerate.
3598         * include/ffi.h.in: Add AIX and Darwin closure definitions.
3599         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
3600         (flush_icache, flush_range): New functions.
3601         (ffi_closure_helper_DARWIN): New function.
3602         * src/powerpc/aix_closure.S: New file.
3603         * src/powerpc/darwin_closure.S: New file.
3604
3605 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
3606
3607         * include/ffi.h.in: Add typedef for ffi_arg.
3608         * src/ffitest.c (main): Declare rint with ffi_arg.
3609
3610 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
3611
3612         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
3613         number of GPRs for floating-point arguments.
3614
3615 2002-01-31  Anthony Green  <green@redhat.com>
3616
3617         * configure: Rebuilt.
3618         * configure.in: Replace CHECK_SIZEOF and endian tests with
3619         cross-compiler friendly macros.
3620         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
3621         macros.
3622
3623 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
3624
3625         * src/powerpc/darwin.S (_ffi_call_AIX): New.
3626         * src/powerpc/aix.S (ffi_call_DARWIN): New.
3627
3628 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
3629
3630         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
3631         (TARGET_SRC_POWERPC_AIX): New.
3632         (POWERPC_AIX): New stanza.
3633         * Makefile.in: Regenerate.
3634         * configure.in: Add AIX case.
3635         * configure: Regenerate.
3636         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
3637         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
3638         size.  Fix "long double" support.
3639         (ffi_call): Add FFI_AIX case.
3640         * src/powerpc/aix.S: New.
3641
3642 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
3643
3644         Implement Darwin PowerPC ABI.
3645         * configure.in: Handle powerpc-*-darwin*.
3646         * Makefile.am: Set source files for POWERPC_DARWIN.
3647         * configure: Rebuilt.
3648         * Makefile.in: Rebuilt.
3649         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
3650         POWERPC_DARWIN.
3651         * src/powerpc/darwin.S: New file.
3652         * src/powerpc/ffi_darwin.c: New file.
3653
3654 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3655
3656         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
3657
3658 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3659
3660         * src/x86/sysv.S: Avoid gas-only .balign directive.
3661         Use C style comments.
3662
3663 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3664
3665         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
3666         Fixes PR bootstrap/3563.
3667
3668 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3669
3670         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
3671
3672 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3673
3674         * configure.in: Recognize sparc*-sun-* host.
3675         * configure: Regenerate.
3676
3677 2001-06-06  Andrew Haley  <aph@redhat.com>
3678
3679         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
3680
3681 2001-06-03  Andrew Haley  <aph@redhat.com>
3682
3683         * src/alpha/osf.S: Add unwind info.
3684         * src/powerpc/sysv.S: Add unwind info.
3685         * src/powerpc/ppc_closure.S: Likewise.
3686
3687 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
3688
3689         * configure.in: Fix AC_ARG_ENABLE usage.
3690         * configure: Rebuilt.
3691
3692 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3693
3694         * configure.in: Remove warning about beta code.
3695         * configure: Rebuilt.
3696
3697 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
3698
3699         * src/ia64/unix.S: Restore stack pointer when returning from
3700         ffi_closure_UNIX.
3701         * src/ia64/ffi.c: Fix typo in comment.
3702
3703 2001-04-18  Jim Wilson  <wilson@redhat.com>
3704
3705         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
3706         to eliminate RAW DV.
3707
3708 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
3709
3710         * Makefile.am: Make a libtool convenience library.
3711         * Makefile.in: Rebuilt.
3712
3713 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
3714
3715         * configure.in: Use different syntax for subdirectory creation.
3716         * configure: Rebuilt.
3717
3718 2001-03-27  Jon Beniston  <jon@beniston.com>
3719
3720         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
3721         * configure: Rebuilt.
3722         * Makefile.am: Added X86_WIN32 target support.
3723         * Makefile.in: Rebuilt.
3724
3725         * include/ffi.h.in: Added X86_WIN32 target support.
3726
3727         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
3728         * src/types.c: Added X86_WIN32 target support.
3729
3730         * src/x86/win32.S: New file. Based on sysv.S, but with EH
3731         stuff removed and made to work with CygWin's gas.
3732
3733 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
3734
3735         * configure.in: Make target subdirectory in build dir.
3736         * Makefile.am: Override suffix based rules to specify correct output
3737         subdirectory.
3738         * Makefile.in: Rebuilt.
3739         * configure: Rebuilt.
3740
3741 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
3742
3743         * src/powerpc/ppc_closure.S: New file.
3744         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
3745         involving long long and register pairs.
3746         (ffi_prep_closure): New function.
3747         (flush_icache): Likewise.
3748         (ffi_closure_helper_SYSV): Likewise.
3749         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
3750         (FFI_TRAMPOLINE_SIZE): Likewise.
3751         (FFI_NATIVE_RAW_API): Likewise.
3752         * Makefile.in: Rebuilt.
3753         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
3754         (TARGET_SRC_POWERPC): Likewise.
3755
3756 2001-03-19  Tom Tromey  <tromey@redhat.com>
3757
3758         * Makefile.in: Rebuilt.
3759         * Makefile.am (ffitest_LDFLAGS): New macro.
3760
3761 2001-03-02  Nick Clifton  <nickc@redhat.com>
3762
3763         * include/ffi.h.in: Remove RCS ident string.
3764         * include/ffi_mips.h: Remove RCS ident string.
3765         * src/debug.c: Remove RCS ident string.
3766         * src/ffitest.c: Remove RCS ident string.
3767         * src/prep_cif.c: Remove RCS ident string.
3768         * src/types.c: Remove RCS ident string.
3769         * src/alpha/ffi.c: Remove RCS ident string.
3770         * src/alpha/osf.S: Remove RCS ident string.
3771         * src/arm/ffi.c: Remove RCS ident string.
3772         * src/arm/sysv.S: Remove RCS ident string.
3773         * src/mips/ffi.c: Remove RCS ident string.
3774         * src/mips/n32.S: Remove RCS ident string.
3775         * src/mips/o32.S: Remove RCS ident string.
3776         * src/sparc/ffi.c: Remove RCS ident string.
3777         * src/sparc/v8.S: Remove RCS ident string.
3778         * src/sparc/v9.S: Remove RCS ident string.
3779         * src/x86/ffi.c: Remove RCS ident string.
3780         * src/x86/sysv.S: Remove RCS ident string.
3781
3782 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
3783
3784         * include/ffi.h.in: Change sourceware.cygnus.com references to
3785         gcc.gnu.org.
3786
3787 2000-12-09  Richard Henderson  <rth@redhat.com>
3788
3789         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
3790         (ffi_closure_osf_inner): Index rather than increment avalue
3791         and arg_types.  Give ffi_closure_osf the raw return value type.
3792         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
3793         promotion.
3794
3795 2000-12-07  Richard Henderson  <rth@redhat.com>
3796
3797         * src/raw_api.c (ffi_translate_args): Fix typo.
3798         (ffi_prep_closure): Likewise.
3799
3800         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3801         FFI_TRAMPOLINE_SIZE.
3802         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3803         cif->bytes for new ffi_call_osf implementation.
3804         (ffi_prep_args): Absorb into ...
3805         (ffi_call): ... here.  Do all stack allocation here and
3806         avoid a callback function.
3807         (ffi_prep_closure, ffi_closure_osf_inner): New.
3808         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3809         (ffi_closure_osf): New.
3810
3811 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
3812
3813         * config.guess, config.sub, install-sh: Removed.
3814         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3815         * Makefile.in: Rebuilt.
3816
3817         * acinclude.m4: Include libtool macros from the top level.
3818         * aclocal.m4, configure: Rebuilt.
3819
3820 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
3821
3822         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3823         * configure: Rebuilt.
3824
3825 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
3826
3827         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3828         memory correctly.  Use conditional instructions, not branches where
3829         possible.
3830
3831 2000-05-04  Tom Tromey  <tromey@cygnus.com>
3832
3833         * configure: Rebuilt.
3834         * configure.in: Match `arm*-*-linux-*'.
3835         From Chris Dornan <cdornan@arm.com>.
3836
3837 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
3838
3839         * Makefile.am (SUBDIRS): Define.
3840         (AM_MAKEFLAGS): Likewise.
3841         (Multilib support.): Add section.
3842         * Makefile.in: Rebuilt.
3843         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
3844         New variables. Set for gcc using -print-multi-lib. Export them
3845         to libtool.
3846         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3847         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3848         for -shared links.
3849         (extra_compiler_flags_value, extra_compiler_flags): Check these
3850         for extra compiler options which need to be passed down in
3851         compiler_flags.
3852
3853 2000-04-16  Anthony Green  <green@redhat.com>
3854
3855         * configure: Rebuilt.
3856         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3857
3858 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
3859
3860         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3861         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3862         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3863         Replace all void * sizeofs with sizeof(int).
3864         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3865         different than DOUBLE.
3866         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3867         (ffi_prep_args_v9): New function.
3868         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3869         (ffi_V9_return_struct): New function.
3870         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3871         32bit code (not yet cross-arch calls).
3872         * src/sparc/v8.S: Add struct return delay nop.
3873         Handle long long.
3874         * src/sparc/v9.S: New file.
3875         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
3876         is used on sparc64 only for structures larger than 32 bytes.
3877         Pass by reference for structures is done for structure arguments
3878         larger than 16 bytes.
3879         * src/ffitest.c (main): Use 64bit rint on sparc64.
3880         Run long long tests on sparc.
3881         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3882         sparc64.
3883         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3884         on sparc64.
3885         * configure.in (sparc-*-linux*): New supported target.
3886         (sparc64-*-linux*): Likewise.
3887         * configure: Rebuilt.
3888         * Makefile.am: Add v9.S to SPARC files.
3889         * Makefile.in: Likewise.
3890         (LINK): Surround $(CCLD) into double quotes, so that multilib
3891         compiles work correctly.
3892
3893 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3894
3895         * configure: Rebuilt.
3896         * configure.in: (i*86-*-solaris*): New libffi target. Patch
3897         proposed by Bryce McKinlay.
3898
3899 2000-03-20  Tom Tromey  <tromey@cygnus.com>
3900
3901         * Makefile.in: Hand edit for java_raw_api.lo.
3902
3903 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
3904
3905         * config.guess, config.sub: Update from the gcc tree.
3906         Fix for PR libgcj/168.
3907
3908 2000-03-03  Tom Tromey  <tromey@cygnus.com>
3909
3910         * Makefile.in: Fixed ia64 by hand.
3911
3912         * configure: Rebuilt.
3913         * configure.in (--enable-multilib): New option.
3914         (libffi_basedir): New subst.
3915         (AC_OUTPUT): Added multilib code.
3916
3917 2000-03-02  Tom Tromey  <tromey@cygnus.com>
3918
3919         * Makefile.in: Rebuilt.
3920         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3921         directory name.
3922
3923 2000-02-25  Hans Boehm <boehm@acm.org>
3924
3925         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3926         files.
3927         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
3928         list.
3929         (ffi_prep_raw_closure): Use ffi_translate_args, not
3930         ffi_closure_translate.
3931         * src/java_raw_api.c: New file.
3932         * src/ffitest.c (closure_test_fn): New function.
3933         (main): Define `rint' as long long on IA64.  Added new test when
3934         FFI_CLOSURES is defined.
3935         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3936         (ffi_abi): Recognize IA64.
3937         (ffi_raw): Added `flt' field.
3938         Added "Java raw API" code.
3939         * configure.in: Recognize ia64.
3940         * Makefile.am (TARGET_SRC_IA64): New macro.
3941         (libffi_la_common_SOURCES): Added java_raw_api.c.
3942         (libffi_la_SOURCES): Define in IA64 case.
3943
3944 2000-01-04  Tom Tromey  <tromey@cygnus.com>
3945
3946         * Makefile.in: Rebuilt with newer automake.
3947
3948 1999-12-31  Tom Tromey  <tromey@cygnus.com>
3949
3950         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3951
3952 1999-09-01  Tom Tromey  <tromey@cygnus.com>
3953
3954         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3955         undefs.
3956         * fficonfig.h.in: Rebuilt.
3957         * configure: Rebuilt.
3958         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3959         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3960         * acconfig.h: Don't #undef PACKAGE or VERSION.
3961
3962 1999-08-09  Anthony Green  <green@cygnus.com>
3963
3964         * include/ffi.h.in: Try to work around messy header problem
3965         with PACKAGE and VERSION.
3966
3967         * configure: Rebuilt.
3968         * configure.in: Change version to 2.00-beta.
3969
3970         * fficonfig.h.in: Rebuilt.
3971         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3972
3973         * src/x86/ffi.c (ffi_raw_call): Rename.
3974
3975 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
3976
3977         * src/x86/ffi.c (ffi_closure_SYSV): New function.
3978         (ffi_prep_incoming_args_SYSV): Ditto.
3979         (ffi_prep_closure): Ditto.
3980         (ffi_closure_raw_SYSV): Ditto.
3981         (ffi_prep_raw_closure): More ditto.
3982         (ffi_call_raw): Final ditto.
3983
3984         * include/ffi.h.in: Add definitions for closure and raw API.
3985
3986         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
3987         FFI_TYPE_UINT64.
3988
3989         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3990
3991         * src/raw_api.c: New file.
3992
3993         * include/ffi.h.in (ffi_raw): New type.
3994         (UINT_ARG, SINT_ARG): New defines.
3995         (ffi_closure, ffi_raw_closure): New types.
3996         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
3997
3998         * configure.in: Add check for endianness and sizeof void*.
3999
4000         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4001         instead of directly.
4002
4003         * configure: Rebuilt.
4004
4005 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
4006
4007         * configure.in: Add x86 and powerpc BeOS configurations.
4008         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4009
4010 1999-05-09  Anthony Green  <green@cygnus.com>
4011
4012         * configure.in: Add warning about this being beta code.
4013         Remove src/Makefile.am from the picture.
4014         * configure: Rebuilt.
4015
4016         * Makefile.am: Move logic from src/Makefile.am.  Add changes
4017         to support libffi as a target library.
4018         * Makefile.in: Rebuilt.
4019
4020         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4021         Upgraded to new autoconf, automake, libtool.
4022
4023         * README: Tweaks.
4024
4025         * LICENSE: Update copyright date.
4026
4027         * src/Makefile.am, src/Makefile.in: Removed.
4028
4029 1998-11-29  Anthony Green  <green@cygnus.com>
4030
4031         * include/ChangeLog: Removed.
4032         * src/ChangeLog: Removed.
4033         * src/mips/ChangeLog: Removed.
4034         * src/sparc/ChangeLog: Remboved.
4035         * src/x86/ChangeLog: Removed.
4036
4037         * ChangeLog.v1: Created.