OSDN Git Service

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