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