OSDN Git Service

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