OSDN Git Service

PR testsuite/32843
[pf3gnuchains/gcc-fork.git] / libffi / ChangeLog
1 2007-08-06  Andrew Haley  <aph@redhat.com>
2
3         PR testsuite/32843
4         * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
5         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
6         FFI_TYPE_SINT32.
7
8 2007-08-02  David Daney  <ddaney@avtrex.com>
9
10         * testsuite/libffi.call/return_ul.c (main): Define return type as
11         ffi_arg.  Use proper printf conversion specifier.
12         
13 2007-07-30  Andrew Haley  <aph@redhat.com>
14
15         PR testsuite/32843
16         * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
17         signed/unsigned int8/16.
18         * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
19         Use a jump table.
20         Remove code to pop args from the stack after call.
21         Special-case signed/unsigned int8/16.
22         * testsuite/libffi.call/return_sc.c (main): Revert.
23
24 2007-07-26  Richard Guenther  <rguenther@suse.de>
25
26         PR testsuite/32843
27         * testsuite/libffi.call/return_sc.c (main): Verify call
28         result as signed char, not ffi_arg.
29
30 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31
32         * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
33         * configure: Regenerate.
34
35 2007-07-11  David Daney  <ddaney@avtrex.com>
36
37         * src/mips/ffi.c: Don't include sys/cachectl.h.
38         (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
39         cacheflush().
40
41 2007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
42
43         * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
44         from (ffi_prep_closure): ... this.
45         (FFI_INIT_TRAMPOLINE): Adjust.
46
47 2005-12-31  Phil Blundell  <pb@reciva.com>
48
49         * src/arm/ffi.c (ffi_prep_incoming_args_SYSV, 
50         ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
51         * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
52         * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
53         (FFI_CLOSURES): Enable closure support.
54
55 2007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
56
57         * testsuite/libffi.call/cls_multi_ushort.c,
58         testsuite/libffi.call/cls_align_uint16.c,
59         testsuite/libffi.call/nested_struct1.c,
60         testsuite/libffi.call/nested_struct3.c,
61         testsuite/libffi.call/cls_7_1_byte.c,
62         testsuite/libffi.call/cls_double.c,
63         testsuite/libffi.call/nested_struct5.c,
64         testsuite/libffi.call/nested_struct7.c,
65         testsuite/libffi.call/cls_sint.c,
66         testsuite/libffi.call/nested_struct9.c,
67         testsuite/libffi.call/cls_20byte1.c,
68         testsuite/libffi.call/cls_multi_sshortchar.c,
69         testsuite/libffi.call/cls_align_sint64.c,
70         testsuite/libffi.call/cls_3byte2.c,
71         testsuite/libffi.call/cls_multi_schar.c,
72         testsuite/libffi.call/cls_multi_uchar.c,
73         testsuite/libffi.call/cls_19byte.c,
74         testsuite/libffi.call/cls_9byte1.c,
75         testsuite/libffi.call/cls_align_float.c,
76         testsuite/libffi.call/closure_fn1.c,
77         testsuite/libffi.call/problem1.c,
78         testsuite/libffi.call/closure_fn3.c,
79         testsuite/libffi.call/cls_sshort.c,
80         testsuite/libffi.call/closure_fn5.c,
81         testsuite/libffi.call/cls_align_double.c,
82         testsuite/libffi.call/cls_2byte.c,
83         testsuite/libffi.call/nested_struct.c,
84         testsuite/libffi.call/nested_struct10.c,
85         testsuite/libffi.call/cls_4byte.c,
86         testsuite/libffi.call/cls_6byte.c,
87         testsuite/libffi.call/cls_8byte.c,
88         testsuite/libffi.call/cls_multi_sshort.c,
89         testsuite/libffi.call/cls_align_uint32.c,
90         testsuite/libffi.call/cls_align_sint16.c,
91         testsuite/libffi.call/cls_float.c,
92         testsuite/libffi.call/cls_20byte.c,
93         testsuite/libffi.call/cls_5_1_byte.c,
94         testsuite/libffi.call/nested_struct2.c,
95         testsuite/libffi.call/cls_24byte.c,
96         testsuite/libffi.call/nested_struct4.c,
97         testsuite/libffi.call/nested_struct6.c,
98         testsuite/libffi.call/cls_64byte.c,
99         testsuite/libffi.call/nested_struct8.c,
100         testsuite/libffi.call/cls_uint.c,
101         testsuite/libffi.call/cls_multi_ushortchar.c,
102         testsuite/libffi.call/cls_schar.c,
103         testsuite/libffi.call/cls_uchar.c,
104         testsuite/libffi.call/cls_align_uint64.c,
105         testsuite/libffi.call/cls_ulonglong.c,
106         testsuite/libffi.call/cls_align_longdouble.c,
107         testsuite/libffi.call/cls_1_1byte.c,
108         testsuite/libffi.call/cls_12byte.c,
109         testsuite/libffi.call/cls_3_1byte.c,
110         testsuite/libffi.call/cls_3byte1.c,
111         testsuite/libffi.call/cls_4_1byte.c,
112         testsuite/libffi.call/cls_6_1_byte.c,
113         testsuite/libffi.call/cls_16byte.c,
114         testsuite/libffi.call/cls_18byte.c,
115         testsuite/libffi.call/closure_fn0.c,
116         testsuite/libffi.call/cls_9byte2.c,
117         testsuite/libffi.call/closure_fn2.c,
118         testsuite/libffi.call/closure_fn4.c,
119         testsuite/libffi.call/cls_ushort.c,
120         testsuite/libffi.call/closure_fn6.c,
121         testsuite/libffi.call/cls_5byte.c,
122         testsuite/libffi.call/cls_align_pointer.c,
123         testsuite/libffi.call/cls_7byte.c,
124         testsuite/libffi.call/cls_align_sint32.c,
125         testsuite/libffi.special/unwindtest_ffi_call.cc,
126         testsuite/libffi.special/unwindtest.cc: Enable for ARM.
127
128 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
129
130         * aclocal.m4: Regenerated.
131
132 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
133
134         * configure: Regenerate.
135
136 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
137
138         * Makefile.in: Regenerate.
139         * configure: Regenerate.
140         * aclocal.m4: Regenerate.
141         * include/Makefile.in: Regenerate.
142         * testsuite/Makefile.in: Regenerate.
143
144 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
145
146         * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
147         ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
148         * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
149         * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
150         (FFI_CLOSURES): Enable closure support.
151
152 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
153
154         * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
155         * configure: Regenerate.
156         * fficonfig.h.in: Regenerate.
157         * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
158         CFI_OFFSET,CFI_DEF_CFA): New macros.
159         (ffi_call_SYSV): Add callframe annotation.
160
161 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
162
163         * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
164         numerous test suite failures.
165         * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
166
167 2007-04-11  Paolo Bonzini  <bonzini@gnu.org>
168
169         * Makefile.am (EXTRA_DIST): Bring up to date.
170         * Makefile.in: Regenerate.
171         * src/frv/eabi.S: Remove RCS keyword.
172
173 2007-04-06  Richard Henderson  <rth@redhat.com>
174
175         * configure.ac: Tidy target case.
176         (HAVE_LONG_DOUBLE): Allow the target to override.
177         * configure: Regenerate.
178         * include/ffi.h.in: Don't define ffi_type_foo if
179         LIBFFI_HIDE_BASIC_TYPES is defined.
180         (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
181         to ffi_type_double.
182         * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
183         (FFI_TYPEDEF, ffi_type_void): Mark the data const.
184         (ffi_type_longdouble): Special case for Alpha.  Don't define
185         if long double == double.
186
187         * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
188         (ffi_prep_cif_machdep): Handle it as the 128-bit type.
189         (ffi_call, ffi_closure_osf_inner): Likewise.
190         (ffi_closure_osf_inner): Likewise.  Mark hidden.
191         (ffi_call_osf, ffi_closure_osf): Mark hidden.
192         * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
193         * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
194         (load_table): Handle 128-bit long double.
195
196         * testsuite/libffi.call/float4.c: Add -mieee for alpha.
197
198 2007-04-06  Tom Tromey  <tromey@redhat.com>
199
200         PR libffi/31491:
201         * README: Fixed bug in example.
202
203 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
204
205         * src/closures.c: Include sys/statfs.h.
206         (_GNU_SOURCE): Define on Linux.
207         (FFI_MMAP_EXEC_SELINUX): Define.
208         (selinux_enabled): New variable.
209         (selinux_enabled_check): New function.
210         (is_selinux_enabled): Define.
211         (dlmmap): Use it.
212
213 2007-03-24  Uros Bizjak  <ubizjak@gmail.com>
214
215         * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
216         Use 'volatile float sum' to create sum of floats to avoid false
217         negative due to excess precision on ix86 targets.
218         (main): Ditto. 
219
220 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
221
222         * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
223         patch.
224         (ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
225
226 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
227
228         * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
229         (ffi_prep_closure_loc): New.
230         (ffi_prep_raw_closure_loc): New.
231         (ffi_prep_java_raw_closure_loc): New.
232         * src/closures.c: New file.
233         * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
234         Replace sflags with exec_offset.
235         [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
236         sub_segment_exec_offset): New macros.
237         (get_segment_flags, set_segment_flags, check_segment_merge): New
238         macros.
239         (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
240         (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
241         destroy_mspace): Use new macros.
242         (sys_alloc): Silence warning.
243         * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
244         * Makefile.in: Rebuilt.
245         * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
246         terms of ffi_prep_closure_loc.
247         * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
248         from...
249         (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
250         renamed version.
251         * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
252         adjusted from...
253         (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
254         the renamed version.
255         * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
256         (ffi_prep_closure): ... this.
257         * src/pa/ffi.c: Likewise.
258         * src/cris/ffi.c: Likewise.  Adjust.
259         * src/frv/ffi.c: Likewise.
260         * src/ia64/ffi.c: Likewise.
261         * src/mips/ffi.c: Likewise.
262         * src/powerpc/ffi_darwin.c: Likewise.
263         * src/s390/ffi.c: Likewise.
264         * src/sh/ffi.c: Likewise.
265         * src/sh64/ffi.c: Likewise.
266         * src/sparc/ffi.c: Likewise.
267         * src/x86/ffi64.c: Likewise.
268         * src/x86/ffi.c: Likewise.
269         (FFI_INIT_TRAMPOLINE): Adjust.
270         (ffi_prep_raw_closure_loc): Renamed and adjusted from...
271         (ffi_prep_raw_closure): ... this.
272         * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
273         (ffi_prep_closure): ... this.
274         (flush_icache): Adjust.
275
276 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
277
278         * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
279         Lea's malloc.
280
281 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
282
283         * Makefile.am: Add dummy install-pdf target.
284         * Makefile.in: Regenerate
285
286 2007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
287
288         * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
289         ffi_closure_helper_SYSV): Add long double handling.
290
291 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
292
293         * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
294         immediately after bctrl instruction.
295
296 2007-01-18  Alexandre Oliva  <aoliva@redhat.com>
297
298         * Makefile.am (all-recursive, install-recursive,
299         mostlyclean-recursive, clean-recursive, distclean-recursive,
300         maintainer-clean-recursive): Add missing targets.
301         * Makefile.in: Rebuilt.
302
303 2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
304
305         * configure.ac: Add TARGET for x86_64-*-darwin*.
306         * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
307         for X86_DARWIN.
308         * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
309         * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
310         * configure: Regenerate.
311         * Makefile.in: Regenerate.
312         * include/Makefile.in: Regenerate.
313         * testsuite/Makefile.in: Regenerate.
314         * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
315         ffi_call only.
316
317 2006-12-13  Andreas Tobler <a.tobler@schweiz.org>
318
319         * aclocal.m4: Regenerate with aclocal -I .. as written in the
320         Makefile.am.
321
322 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
323
324         * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
325         (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
326         Darwin.
327         * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
328         * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
329
330 2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
331             Sandro Tolaini  <tolaini@libero.it>
332
333         * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and 
334         conditional.
335         * configure: Regenerated.
336         * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
337         (EXTRA_DIST): Add src/x86/darwin.S.
338         * Makefile.in: Regenerated.
339         * include/Makefile.in: Regenerated.
340         * testsuite/Makefile.in: Regenerated.
341
342         * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
343         X86_WIN32, and additionally align stack to 16 bytes.
344         * src/x86/darwin.S: New, based on sysv.S.
345         * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
346
347 2006-09-12  David Daney  <ddaney@avtrex.com>
348
349         PR libffi/23935
350         * include/Makefile.am: Install both ffi.h and ffitarget.h in
351         $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
352         * aclocal.m4: Regenerated for automake 1.9.6.
353         * Makefile.in: Regenerated.
354         * include/Makefile.in: Regenerated.
355         * testsuite/Makefile.in: Regenerated.
356
357 2006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
358
359         * include/ffi_common.h (struct): Revert accidental commit.
360
361 2006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
362
363         * include/ffi_common.h: Remove lint directives.
364         * include/ffi.h.in: Likewise.
365
366 2006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
367
368         * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
369         for 32-bit architectures.
370         * testsuite/libffi.call/return_ul.c: New test case.
371
372 2006-07-19  David Daney  <ddaney@avtrex.com>
373
374         * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
375         xfail remains for mips64.
376
377 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
378
379         * Makefile.am: Add install-html target. Add install-html to .PHONY
380         * Makefile.in: Regenerate.
381         * aclocal.m4: Regenerate.
382         * include/Makefile.in: Regenerate.
383         * testsuite/Makefile.in: Regenerate.
384
385 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
386
387         * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
388         stack slot.
389
390 2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
391
392         * README: Remove notice about 'Crazy Comments'.
393         * src/debug.c: Remove lint directives. Cleanup white spaces.
394         * src/java_raw_api.c: Likewise.
395         * src/prep_cif.c: Likewise.
396         * src/raw_api.c: Likewise.
397         * src/ffitest.c: Delete. No longer needed, all test cases migrated
398         to the testsuite.
399         * src/arm/ffi.c: Remove lint directives.
400         * src/m32r/ffi.c: Likewise.
401         * src/pa/ffi.c: Likewise.
402         * src/powerpc/ffi.c: Likewise.
403         * src/powerpc/ffi_darwin.c: Likewise.
404         * src/sh/ffi.c: Likewise.
405         * src/sh64/ffi.c: Likewise.
406         * src/x86/ffi.c: Likewise.
407         * testsuite/libffi.call/float2.c: Likewise.
408         * testsuite/libffi.call/promotion.c: Likewise.
409         * testsuite/libffi.call/struct1.c: Likewise.
410
411 2006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
412
413         * src/pa/hpux32.S: Correct unwind offset calculation for
414         ffi_closure_pa32.
415         * src/pa/linux.S: Likewise.
416
417 2006-04-12  James E Wilson  <wilson@specifix.com>
418
419         PR libgcj/26483
420         * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
421         (hfa_type_load): Call stf_spill.
422         (hfa_type_store): Call ldf_fill.
423         (ffi_call): Adjust calls to above routines.  Add local temps for
424         macro result.
425
426 2006-04-10  Matthias Klose  <doko@debian.org>
427
428         * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
429         directory names containing underscores.
430
431 2006-04-07  James E Wilson  <wilson@specifix.com>
432
433         * testsuite/libffi.call/float4.c: New testcase.
434
435 2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
436             Andreas Tobler  <a.tobler@schweiz.ch>
437
438         * Makefile.am: Add PA_HPUX port.
439         * Makefile.in: Regenerate.
440         * include/Makefile.in: Likewise.
441         * testsuite/Makefile.in: Likewise.
442         * configure.ac: Add PA_HPUX rules.
443         * configure: Regenerate.
444         * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
445         Add PA_HPUX and PA64_HPUX.
446         Rename FFI_LINUX ABI to FFI_PA32 ABI.
447         (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
448         (FFI_TYPE_SMALL_STRUCT2): Define.
449         (FFI_TYPE_SMALL_STRUCT4): Likewise.
450         (FFI_TYPE_SMALL_STRUCT8): Likewise.
451         (FFI_TYPE_SMALL_STRUCT3): Redefine.
452         (FFI_TYPE_SMALL_STRUCT5): Likewise.
453         (FFI_TYPE_SMALL_STRUCT6): Likewise.
454         (FFI_TYPE_SMALL_STRUCT7): Likewise.
455         * src/pa/ffi.c (ROUND_DOWN): Delete.
456         (fldw, fstw, fldd, fstd): Use '__asm__'.
457         (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
458         FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
459         (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
460         Simplify incrementing of stack slot variable. Change type of local
461         'n' to unsigned int.
462         (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
463         double on PA_HPUX.
464         (ffi_prep_cif_machdep): Likewise.
465         (ffi_call): Likewise.
466         (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
467         return type to ffi_status. Simplify incrementing of stack slot
468         variable. Only copy floating point argument registers when PA_LINUX
469         is true. Reformat debug statement.
470         Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
471         FFI_TYPE_SMALL_STRUCT8.
472         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
473         declaration.
474         (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
475         Add nops to cache flush.  Add trampoline for PA_HPUX.
476         * src/pa/hpux32.S: New file.
477         * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
478         ffi_prep_args_LINUX to ffi_prep_args_pa32.
479         Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
480         unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
481         argument type checks so that common argument types appear first.
482         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
483         ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
484
485 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
486
487         * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
488         for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
489         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
490         FFI_TYPE_LONGDOUBLE.
491         (ffi_prep_args64): Assert using IBM extended double.
492         (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
493         Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
494         (ffi_call): Handle FFI_LINUX.
495         (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
496         gpr3 return pointer as for struct return.  Handle FFI_LINUX
497         FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
498         unnecessarily.
499         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
500         for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
501         Don't use r6 as pointer to results, instead use sp offset.  Don't
502         make a special call to load lr with case table address, instead
503         use offset from previous call.
504         * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
505         * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
506         return.
507
508 2006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
509
510         * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
511         passed with FP registers correctly.
512         (ffi_closure_helper_SYSV): Likewise.
513         * src/sh64/sysv.S: Likewise.
514
515 2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
516
517         * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
518         args and userdata unused.
519         (closure_test_fn1): Mark cif and userdata unused.
520         (main): Remove unused res.
521
522 2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
523
524         * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
525         -O2, -O3, -Os and the warning flags -W -Wall.
526         * testsuite/libffi.special/special.exp: Likewise.
527         * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
528         unused parameter unused for gcc or else do nothing.
529         * testsuite/libffi.special/ffitestcxx.h: Likewise.
530         * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
531         and userdata unused.
532         * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
533         * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
534         * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
535         * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
536         * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
537         * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
538         * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
539         * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
540         * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
541         * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
542         * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
543         * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
544         * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
545         * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
546         * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
547         * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
548         * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
549         * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
550         * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
551         * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
552         * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
553         * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
554         * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
555         * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
556         Likewise.
557         * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
558         Likewise.
559         * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
560         Likewise.
561         * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
562         void* to avoid compiler warning.
563         (main): Likewise.
564         (cls_struct_align_gn): Mark cif and userdata unused.
565         * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
566         Likewise.
567         * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
568         Likewise.
569         * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
570         Likewise.
571         * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
572         Likewise.
573         * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
574         Likewise.
575         * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
576         * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
577         * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
578         data unused.
579         (main): Cast res_call to silence gcc.
580         * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
581         data unused.
582         (main): Cast res_call to silence gcc.
583         * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
584         and data unused.
585         (main): Cast res_call to silence gcc.
586         * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
587         data unused.
588         (main): Cast res_call to silence gcc.
589         * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
590         data unused.
591         (main): Cast res_call to silence gcc.
592         * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
593         and data unused.
594         (main): Cast res_call to silence gcc.
595         * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
596         userdata unused.
597         (cls_ret_schar_fn): Cast printf parameter to silence gcc.
598         * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
599         userdata unused.
600         (cls_ret_sint_fn): Cast printf parameter to silence gcc.
601         * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
602         userdata unused.
603         (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
604         * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
605         userdata unused.
606         (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
607         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
608         userdata unused.
609         (cls_ret_uint_fn): Cast printf parameter to silence gcc.
610         * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
611         and userdata unused.
612         * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
613         userdata unused.
614         (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
615         * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
616         * testsuite/libffi.call/float1.c (main): Remove unused variable i.
617         Cleanup white spaces.
618         * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
619         * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
620         cif and userdata unused.
621         * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
622         Likewise.
623         * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
624         * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
625         formatters to silence gcc.
626         (B_gn): Mark cif and userdata unused.
627         * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
628         unused.
629         * testsuite/libffi.call/nested_struct4.c: Mention related PR.
630         (B_gn): Mark cif and userdata unused.
631         * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
632         unused.
633         * testsuite/libffi.call/nested_struct6.c: Mention related PR.
634         (B_gn): Mark cif and userdata unused.
635         * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
636         unused.
637         * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
638         * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
639         * testsuite/libffi.call/problem1.c (stub): Likewise.
640         * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
641         gcc.
642         * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
643         in the last commit for this test case in the test case itself.
644         * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
645         unused.
646         * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
647         * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
648         * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
649         * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
650         * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
651         * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
652
653 2006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
654
655         * src/sh/sysv.S: Fix register numbers in the FDE for
656         ffi_closure_SYSV.
657
658 2006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
659
660         * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
661         declaration to avoid a false negative on ix86. See PR323.
662
663 2006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
664
665         * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
666         and cast integer to void * if needed.  Update the pointer to
667         the FP register saved area correctly.
668         
669 2006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
670
671         * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
672         is fixed.
673         * testsuite/libffi.call/nested_struct4.c: Likewise.
674
675 2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
676
677         * testsuite/libffi.call/return_dbl.c: New test case.
678         * testsuite/libffi.call/return_dbl1.c: Likewise.
679         * testsuite/libffi.call/return_dbl2.c: Likewise.
680         * testsuite/libffi.call/return_fl.c: Likewise.
681         * testsuite/libffi.call/return_fl1.c: Likewise.
682         * testsuite/libffi.call/return_fl2.c: Likewise.
683         * testsuite/libffi.call/return_fl3.c: Likewise.
684         * testsuite/libffi.call/closure_fn6.c: Likewise.
685
686         * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
687         definition.
688         * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
689         here to be used by other test cases too.
690
691         * testsuite/libffi.call/nested_struct10.c: New test case.
692         * testsuite/libffi.call/nested_struct9.c: Likewise.
693         * testsuite/libffi.call/nested_struct8.c: Likewise.
694         * testsuite/libffi.call/nested_struct7.c: Likewise.
695         * testsuite/libffi.call/nested_struct6.c: Likewise.
696         * testsuite/libffi.call/nested_struct5.c: Likewise.
697         * testsuite/libffi.call/nested_struct4.c: Likewise.
698
699 2006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
700
701         * configure.ac: Enable libffi for sparc64-*-freebsd*.
702         * configure: Rebuilt.
703
704 2006-01-18  Jakub Jelinek  <jakub@redhat.com>
705
706         * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
707         instead do the shifting inline.
708         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
709         shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
710         and 8 byte structs, for the remaining struct sizes don't call
711         __lshrdi3, instead do the shifting inline.
712
713 2005-12-07  Thiemo Seufer  <ths@networkno.de>
714
715         * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
716         missing parentheses.
717         * src/mips/o32.S (ffi_call_O32): Code formatting. Define
718         and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
719         (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
720         A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
721         V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
722         FA_0_0_OFF2.
723         * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
724         endianness bugs.
725         (ffi_prep_closure): Improve trampoline instruction scheduling.
726         (ffi_closure_mips_inner_O32): Fix endianness bugs.
727
728 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
729
730         * src/powerpc/ffi.c: Formatting.
731         (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
732         (ffi_prep_args64): Likewise.
733
734 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
735
736         * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
737         darwin, use -shared-libgcc not -lgcc_s, and explain why.
738
739 2005-09-26  Tom Tromey  <tromey@redhat.com>
740
741         * testsuite/libffi.call/float1.c (value_type): New typedef.
742         (CANARY): New define.
743         (main): Check for result buffer overflow.
744         * src/powerpc/linux64.S: Handle linux64 long double returns.
745         * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
746         (ffi_prep_cif_machdep): Handle linux64 long double returns.
747
748 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
749
750         PR target/23404
751         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
752         homed fp args.
753         (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
754
755 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
756
757         * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
758         (AH_BOTTOM): Add FFI_HIDDEN definition.
759         * configure: Rebuilt.
760         * fficonfig.h.in: Rebuilt.
761         * src/powerpc/ffi.c (hidden): Remove.
762         (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
763         ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
764         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
765         .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
766         * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
767         add FFI_HIDDEN to its prototype.
768         (ffi_closure_SYSV_inner): New.
769         * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
770         * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
771
772 2005-08-10  Alfred M. Szmidt  <ams@gnu.org>
773
774         PR libffi/21819:
775         * configure: Rebuilt.
776         * configure.ac: Handle i*86-*-gnu*.
777
778 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
779
780         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
781         DW_CFA_offset_extended_sf rather than
782         DW_CFA_GNU_negative_offset_extended.
783         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
784
785 2005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
786
787         * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
788         on sh3.
789         (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
790         * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
791         partially on register.
792         (ffi_closure_helper_SYSV): Likewise.
793         (ffi_prep_cif_machdep): Don't set too many cif->flags.
794
795 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
796
797         * src/sh/ffi.c (ffi_call): Handle small structures correctly.
798         Remove empty line.
799         * src/sh64/ffi.c (simple_type): Remove.
800         (return_type): Handle small structures correctly.
801         (ffi_prep_args): Likewise.
802         (ffi_call): Likewise.
803         (ffi_closure_helper_SYSV): Likewise.
804         * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
805         Emit position independent code if PIC and remove wrong datalabel
806         prefixes from EH data.
807
808 2005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
809
810         * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
811         * Makefile.in: Regenerate.
812         * include/Makefile.in: Likewise.
813         * testsuite/Makefile.in: Likewise.
814         * configure.ac: Add POWERPC_FREEBSD rules.
815         * configure: Regenerate.
816         * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
817         (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
818         * src/powerpc/ffi.c: Add flags to handle small structure returns
819         in ffi_call_SYSV.
820         (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
821         Aka FFI_SYSV.
822         (ffi_closure_helper_SYSV): Likewise.
823         * src/powerpc/ppc_closure.S: Add return types for small structures.
824         * src/powerpc/sysv.S: Add bits to handle small structures for
825         final SYSV 4 ABI.
826
827 2005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
828
829         * testsuite/libffi.call/cls_5_1_byte.c: New test file.
830         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
831         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
832
833 2005-07-05  Randolph Chung  <tausq@debian.org>
834
835         * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
836         as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
837         structures.  Kill compilation warnings.
838         (ffi_closure_inner_LINUX): Print return values as hex in debug
839         message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
840         Properly handle 5-7 byte structure returns.
841         * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
842         (FFI_TYPE_SMALL_STRUCT2): Remove.
843         (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
844         (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
845         * src/pa/linux.S: Mark source file as using PA1.1 assembly.
846         (checksmst1, checksmst2): Remove.
847         (checksmst3): Optimize handling of 3-byte struct returns.
848         (checksmst567): Properly handle 5-7 byte struct returns.
849
850 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
851
852         PR libgcj/21943
853         * src/mips/n32.S: Enforce PIC code.
854         * src/mips/o32.S: Likewise.
855
856 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
857
858         * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
859         * configure: Regenerate.
860         
861 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
862
863         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
864         to call ffi_closure_helper_SYSV.  Append @local instead.
865         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
866
867 2005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
868
869         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
870         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
871         * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
872         * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
873         include/Makefile.in, testsuite/Makefile.in: Regenerate.
874         
875 2005-05-09  Mike Stump  <mrs@apple.com>
876
877         * configure: Regenerate.
878
879 2005-05-08  Richard Henderson  <rth@redhat.com>
880
881         PR libffi/21285
882         * src/alpha/osf.S: Update unwind into to match code.
883
884 2005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
885             Richard Henderson  <rth@redhat.com>
886
887         * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
888         bit 11 of flags.
889         (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
890         (ffi_prep_closure): Set carry bit if sse-used flag set.
891         * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
892         Only load sse registers if ssecount non-zero.
893         (ffi_closure_unix64): Only save sse registers if carry set on entry.
894
895 2005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
896
897         * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
898         powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
899         * configure: Regenerate.
900
901 2005-04-20  Hans-Peter Nilsson  <hp@axis.com>
902
903         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
904         have Tcl8.3-compatible intermediate variable.
905
906 2005-04-18  Simon Posnjak <simon.posnjak@siol.net> 
907             Hans-Peter Nilsson  <hp@axis.com>
908
909         * Makefile.am: Add CRIS support.
910         * configure.ac: Likewise.
911         * Makefile.in, configure, testsuite/Makefile.in,
912         include/Makefile.in: Regenerate.
913         * src/cris: New directory.
914         * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
915         * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
916
917         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
918         \r?\n in output tests.
919
920 2005-04-12  Mike Stump  <mrs@apple.com>
921
922         * configure: Regenerate.
923
924 2005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
925
926         * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
927         
928 2005-03-30  Steve Ellcey  <sje@cup.hp.com>
929
930         * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
931         (ffi_sarg) Ditto.
932         * src/ia64/unix.S (ffi_closure_unix): Extend gp
933         to 64 bits in ILP32 mode.
934         Load 64 bits even for short data.
935
936 2005-03-23  Mike Stump  <mrs@apple.com>
937
938         * src/powerpc/darwin.S: Update for -m64 multilib.
939         * src/powerpc/darwin_closure.S: Likewise.
940
941 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
942
943         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
944         Do not set tool_include_dir.
945         * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
946         Regenerate.
947         * include/Makefile.am: Set gcc_version and toollibffidir.
948         * include/Makefile.in: Regenerate.
949
950 2005-02-22  Andrew Haley  <aph@redhat.com>
951
952         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
953         odd-numbered register pairs for 64-bit integer types.
954
955 2005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
956
957         PR libffi/20104
958         * testsuite/libffi.call/return_ll1.c: New test case.
959
960 2005-02-11  Janis Johnson  <janis187@us.ibm.com>
961
962         * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
963         * testsuite/libffi.call/float.c: Ditto.
964         * testsuite/libffi.call/float2.c: Ditto.
965         * testsuite/libffi.call/float3.c: Ditto.
966
967 2005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
968
969         * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
970
971 2005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
972
973         * testsuite/libffi.special/special.exp (cxx_options): Add
974         -shared-libgcc.
975
976 2004-12-31  Richard Henderson  <rth@redhat.com>
977
978         * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
979         (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
980         offset parameters with a type parameter; deduce size and structure
981         alignment.  Update all users.
982
983 2004-12-31  Richard Henderson  <rth@redhat.com>
984
985         * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
986         (FFI_TYPE_LONGDOUBLE): Fix for ia64.
987         * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
988         into ffi_prep_closure.
989         * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
990         from scratch.
991
992 2004-12-27  Richard Henderson  <rth@redhat.com>
993
994         * src/x86/unix64.S: Fix typo in unwind info.
995
996 2004-12-25  Richard Henderson  <rth@redhat.com>
997
998         * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
999         (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
1000         (merge_classes): Check for it.
1001         (SSE_CLASS_P): New.
1002         (classify_argument): Pass byte_offset by value; perform all updates
1003         inside struct case.
1004         (examine_argument): Add classes argument; handle
1005         X86_64_COMPLEX_X87_CLASS.
1006         (ffi_prep_args): Merge into ...
1007         (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
1008         (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
1009         (ffi_fill_return_value): Remove.
1010         (ffi_prep_closure): Remove dead assert.
1011         (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
1012         Rewrite to use struct register_args instead of va_list.  Create
1013         flags for handling structure returns.
1014         * src/x86/unix64.S: Remove dead strings.
1015         (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
1016         stack frame with ffi_call.  Handle structure returns properly.
1017         (float2sse, floatfloat2sse, double2sse): Remove.
1018         (sse2float, sse2double, sse2floatfloat): Remove.
1019         (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
1020         to handle structure returns properly.
1021
1022 2004-12-08  David Edelsohn  <edelsohn@gnu.org>
1023
1024         * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
1025         PICFLAG.
1026         * Makefile.in: Regenerated.
1027
1028 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
1029
1030         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1031         * configure, aclocal.m4, Makefile.in: Regenerate.
1032         * include/Makefile.in, testsuite/Makefile.in: Regenerate.
1033
1034 2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
1035
1036         * configure: Regenerate for libtool change.
1037
1038 2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
1039
1040         * configure: Regenerate for libtool reversion.
1041
1042 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
1043
1044         * configure: Regenerate for libtool change.
1045
1046 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1047
1048         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
1049
1050 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
1051
1052         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1053         of jal.  Use an absolute encoding for the frame information.
1054
1055 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
1056
1057         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
1058         * acinclude.m4: Delete logic for sincludes.
1059         * aclocal.m4, Makefile.in, configure: Regenerate.
1060         * include/Makefile: Likewise.
1061         * testsuite/Makefile: Likewise.
1062
1063 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1064
1065         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1066         on a 8-byte boundary.
1067         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1068
1069 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
1070
1071         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1072         long long values.  Round stack allocation to a multiple of 8 bytes
1073         for ATPCS compatibility.
1074         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1075         names.  Handle returning long long types.  Add Thumb and interworking
1076         support.  Improve soft-float code.
1077
1078 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
1079
1080         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1081         (libffi_exit): New function.
1082         (libffi_init): Build the testglue wrapper if needed.
1083
1084 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1085
1086         PR other/18138
1087         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1088
1089 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1090
1091         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1092
1093 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1094
1095         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1096         * testsuite/libffi.call/float3.c: New test case.
1097
1098 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1099
1100         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1101         the function returning a structure pointed with R2.
1102         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1103         the structure return value if T bit set.  Emit position
1104         independent code and EH data if PIC.
1105
1106 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1107
1108         * Makefile.am: Add m32r support.
1109         * configure.ac: Likewise.
1110         * Makefile.in: Regenerate.
1111         * confiugre: Regenerate.
1112         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1113         (uint64, sint64, double, longdouble)
1114         * src/m32r: New directory.
1115         * src/m32r/ffi.c: New file.
1116         * src/m32r/sysv.S: Likewise.
1117         * src/m32r/ffitarget.h: Likewise.
1118
1119 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1120
1121         * testsuite/libffi.call/negint.c: New test case.
1122
1123 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1124
1125         PR libgcj/17465
1126         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1127         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1128         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1129         DYLD_LIBRARY_PATH.
1130
1131 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
1132
1133         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
1134         * testsuite/libffi.call/promotion.c: Likewise.
1135         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
1136         whitespaces.
1137         * testsuite/libffi.call/return_sc.c: Likewise.
1138         * testsuite/libffi.call/return_uc.c: Likewise.
1139
1140 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
1141
1142         * src/powerpc/darwin.S: Fix comments and identation.
1143         * src/powerpc/darwin_closure.S: Likewise.
1144
1145 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
1146
1147         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
1148         (ffi_prep_args): Handle longdouble arguments.
1149         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
1150         longdouble.
1151         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
1152         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
1153         values.
1154         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
1155         * src/types.c: Defined longdouble size and alignment for darwin.
1156
1157 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
1158
1159         * src/powerpc/aix.S: Remove whitespaces.
1160         * src/powerpc/aix_closure.S: Likewise.
1161         * src/powerpc/asm.h: Likewise.
1162         * src/powerpc/ffi.c: Likewise.
1163         * src/powerpc/ffitarget.h: Likewise.
1164         * src/powerpc/linux64.S: Likewise.
1165         * src/powerpc/linux64_closure.S: Likewise.
1166         * src/powerpc/ppc_closure.S: Likewise.
1167         * src/powerpc/sysv.S: Likewise.
1168
1169 2004-08-30  Anthony Green  <green@redhat.com>
1170
1171         * Makefile.am: Add frv support.
1172         * Makefile.in, testsuite/Makefile.in: Rebuilt.
1173         * configure.ac: Read configure.host.
1174         * configure.in: Read configure.host.
1175         * configure.host: New file.  frv-elf needs libgloss.
1176         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
1177         alignment.  This is needed to frv and shouldn't harm the others.
1178         * include/ffi_common.h (ALIGN_DOWN): New macro.
1179         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
1180
1181 2004-08-24  David Daney  <daney@avtrex.com>
1182
1183         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
1184         * testsuite/libffi.call/closure_fn1.c: Likewise.
1185         * testsuite/libffi.call/closure_fn2.c  Likewise.
1186         * testsuite/libffi.call/closure_fn3.c: Likewise.
1187         * testsuite/libffi.call/closure_fn4.c: Likewise.
1188         * testsuite/libffi.call/closure_fn5.c: Likewise.
1189         * testsuite/libffi.call/cls_18byte.c: Likewise.
1190         * testsuite/libffi.call/cls_19byte.c: Likewise.
1191         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1192         * testsuite/libffi.call/cls_20byte.c: Likewise.
1193         * testsuite/libffi.call/cls_20byte1.c: Likewise.
1194         * testsuite/libffi.call/cls_24byte.c: Likewise.
1195         * testsuite/libffi.call/cls_2byte.c: Likewise.
1196         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1197         * testsuite/libffi.call/cls_3byte1.c: Likewise.
1198         * testsuite/libffi.call/cls_3byte2.c: Likewise.
1199         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1200         * testsuite/libffi.call/cls_4byte.c: Likewise.
1201         * testsuite/libffi.call/cls_64byte.c: Likewise.
1202         * testsuite/libffi.call/cls_6byte.c: Likewise.
1203         * testsuite/libffi.call/cls_7byte.c: Likewise.
1204         * testsuite/libffi.call/cls_8byte.c: Likewise.
1205         * testsuite/libffi.call/cls_9byte1.c: Likewise.
1206         * testsuite/libffi.call/cls_9byte2.c: Likewise.
1207         * testsuite/libffi.call/cls_align_double.c: Likewise.
1208         * testsuite/libffi.call/cls_align_float.c: Likewise.
1209         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1210         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1211         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1212         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1213         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1214         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1215         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1216         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1217         * testsuite/libffi.call/cls_double.c: Likewise.
1218         * testsuite/libffi.call/cls_float.c: Likewise.
1219         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1220         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
1221         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1222         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1223         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1224         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1225         * testsuite/libffi.call/cls_schar.c: Likewise.
1226         * testsuite/libffi.call/cls_sint.c: Likewise.
1227         * testsuite/libffi.call/cls_sshort.c: Likewise.
1228         * testsuite/libffi.call/cls_uchar.c: Likewise.
1229         * testsuite/libffi.call/cls_uint.c: Likewise.
1230         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1231         * testsuite/libffi.call/cls_ushort.c: Likewise.
1232         * testsuite/libffi.call/nested_struct.c: Likewise.
1233         * testsuite/libffi.call/nested_struct1.c: Likewise.
1234         * testsuite/libffi.call/nested_struct2.c: Likewise.
1235         * testsuite/libffi.call/nested_struct3.c: Likewise.
1236         * testsuite/libffi.call/problem1.c: Likewise.
1237         * testsuite/libffi.special/unwindtest.cc: Likewise.
1238         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
1239         to zero.
1240         * testsuite/libffi.call/cls_16byte.c: Likewise.
1241         * testsuite/libffi.call/cls_5byte.c: Likewise.
1242
1243 2004-08-23  David Daney <daney@avtrex.com>
1244
1245         PR libgcj/13141
1246         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
1247         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
1248         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
1249         parameters and return types.
1250         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
1251         (ffi_prep_closure): Ditto.
1252         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
1253         alignment calculations.
1254         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
1255         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
1256
1257 2004-08-14  Casey Marshall <csm@gnu.org>
1258
1259         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
1260         contain `FFI_TYPE_UINT64' as return type for any 64-bit
1261         integer (O32 ABI only).
1262         (ffi_prep_closure): new function.
1263         (ffi_closure_mips_inner_O32): new function.
1264         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
1265         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
1266         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
1267         64 bit integers correctly.
1268         (ffi_closure_O32): new function.
1269         Added DWARF-2 unwind info for both functions.
1270
1271 2004-08-10  Andrew Haley  <aph@redhat.com>
1272
1273         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
1274
1275 2004-08-01  Robert Millan  <robertmh@gnu.org>
1276
1277         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
1278         * configure: Regenerate.
1279
1280 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
1281
1282         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1283         and mmap() explicitly instead of relying on preset autoconf cache
1284         variables.
1285         * aclocal.m4: Regenerate.
1286         * configure: Regenerate.
1287
1288 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
1289
1290         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
1291         (ffi_check_float_struct): Remove unused prototype.
1292
1293 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
1294
1295         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
1296         character on Darwin, use '\n\t' instead.
1297
1298 2004-06-26  Matthias Klose  <doko@debian.org>
1299
1300         * libtool-version: Fix typo in revision/age.
1301
1302 2004-06-17  Matthias Klose  <doko@debian.org>
1303
1304         * libtool-version: New.
1305         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
1306         * Makefile.in: Regenerate.
1307
1308 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1309
1310         * Makefile.am: Remove useless multilib rules.
1311         * Makefile.in: Regenerate.
1312         * aclocal.m4: Regenerate with automake 1.8.5.
1313         * configure.ac: Remove useless multilib configury.
1314         * configure: Regenerate.
1315
1316 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1317
1318         * .cvsignore: New file.
1319
1320 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1321
1322         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
1323         fp_done.
1324         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
1325         changed from 8.
1326
1327 2004-06-06  Sean McNeil  <sean@mcneil.com>
1328
1329         * configure.ac: Add x86_64-*-freebsd* support.
1330         * configure: Regenerate.
1331
1332 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
1333
1334         Bug 15093
1335         * configure.ac: Test for existence of mmap and sys/mman.h before
1336         checking blacklist.  Fix suggested by Jim Wilson.
1337         * configure: Regenerate.
1338
1339 2004-04-26  Matt Austern  <austern@apple.com>
1340
1341         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
1342         FDE location.
1343         * src/powerpc/darwin_closure.S: Likewise.
1344
1345 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
1346
1347         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
1348         error. Reported by Thomas Heller <theller@python.net>.
1349         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
1350         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
1351
1352 2004-03-20  Matthias Klose  <doko@debian.org>
1353
1354         * src/pa/linux.S: Fix typo.
1355
1356 2004-03-19  Matthias Klose  <doko@debian.org>
1357
1358         * Makefile.am: Update.
1359         * Makefile.in: Regenerate.
1360         * src/pa/ffi.h.in: Remove.
1361         * src/pa/ffitarget.h: New file.
1362
1363 2004-02-10  Randolph Chung  <tausq@debian.org>
1364
1365         * Makefile.am: Add PA support.
1366         * Makefile.in: Regenerate.
1367         * include/Makefile.in: Regenerate.
1368         * configure.ac: Add PA target.
1369         * configure: Regenerate.
1370         * src/pa/ffi.c: New file.
1371         * src/pa/ffi.h.in: Add PA support.
1372         * src/pa/linux.S: New file.
1373         * prep_cif.c: Add PA support.
1374
1375 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
1376
1377         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
1378         double.
1379         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
1380         with ecif->cif->flags.
1381         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
1382         with cif->flags.
1383         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
1384         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
1385         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
1386         sc_retstruct2b): Add for 1 or 2-bytes struct case.
1387
1388 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
1389
1390         * configure.in: Rename file to ...
1391         * configure.ac: ... this.
1392         * fficonfig.h.in: Regenerate.
1393         * Makefile.in: Regenerate.
1394         * include/Makefile.in: Regenerate.
1395         * testsuite/Makefile.in: Regenerate.
1396
1397 2004-03-12  Matt Austern  <austern@apple.com>
1398
1399         * src/powerpc/darwin.S: Fix EH information so it corresponds to
1400         changes in EH format resulting from addition of linkonce support.
1401         * src/powerpc/darwin_closure.S: Likewise.
1402
1403 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
1404             Paolo Bonzini  <bonzini@gnu.org>
1405
1406         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
1407         Remove VPATH. Remove rules for object files. Remove multilib support.
1408         (AM_CCASFLAGS): Add.
1409         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
1410         (AC_PREREQ): Bump version to 2.59.
1411         (AC_INIT): Fill with version info and bug address.
1412         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
1413         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
1414         De-precious CC so that the right flags are passed down to multilibs.
1415         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
1416         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
1417         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
1418         * configure: Rebuilt.
1419         * aclocal.m4: Likewise.
1420         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
1421         * fficonfig.h.in: Likewise.
1422
1423 2004-03-11  Andreas Schwab  <schwab@suse.de>
1424
1425         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
1426         arguments from fp registers only for the first 8 parameter slots.
1427         Don't convert a float parameter when passed in memory.
1428
1429 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
1430
1431         * configure: Regenerate for config/accross.m4 correction.
1432
1433 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
1434
1435         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
1436         ecif->cif->bytes to bytes.
1437         (ffi_prep_cif_machdep): Add braces around nested if statement.
1438
1439 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
1440
1441         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
1442
1443         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
1444         (ffi_closure_helper_LINUX64): Fix typo.
1445         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
1446         for powerpc64-*-*.
1447         * testsuite/libffi.call/float.c: Likewise.
1448         * testsuite/libffi.call/float2.c: Likewise.
1449
1450 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
1451
1452         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
1453         long double function return and long double arg handling.
1454         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
1455         Use "end_pfr" instead of "nf".  Correct long double handling.
1456         Localise "temp".
1457         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
1458         return value.
1459         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
1460         space for long double return value.  Adjust stack frame and offsets.
1461         Load f2 long double return.
1462
1463 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
1464
1465         * src/types.c: Use 16 byte long double for POWERPC64.
1466
1467 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1468
1469         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
1470         when the structure return address is passed in %o0.
1471         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
1472         (ffi_v9_layout_struct): Align the field following a nested structure
1473         on a word boundary.  Use memmove instead of memcpy.
1474         (ffi_call): Update call to ffi_V9_return_struct.
1475         (ffi_prep_closure): Define 'ctx' only for V8.
1476         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
1477         and ffi_closure_sparc_inner_v9.
1478         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
1479         Always skip the structure return address.  For structures and long
1480         doubles, copy the argument directly.
1481         (ffi_closure_sparc_inner_v9): Skip the structure return address only
1482         if required.  Shift the maximum floating-point slot accordingly.  For
1483         big structures, copy the argument directly; otherwise, left-justify the
1484         argument and call ffi_v9_layout_struct to lay out the structure on
1485         the stack.
1486         * src/sparc/v8.S: Undef STACKFRAME before defining it.
1487         (ffi_closure_v8): Pass the structure return address.  Update call to
1488         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
1489         Skip the 'unimp' insn when returning long doubles and structures.
1490         * src/sparc/v9.S: Undef STACKFRAME before defining it.
1491         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
1492         FFI_TYPE_INT handling.  Load structures both in integers and
1493         floating-point registers on return.
1494         * README: Update status of the SPARC port.
1495
1496 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
1497
1498         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
1499         as of type ffi_arg.
1500         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
1501
1502 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
1503
1504         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
1505         value as of type ffi_arg, not unsigned int.
1506
1507 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
1508
1509         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
1510         of the LHS.
1511
1512 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1513
1514         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
1515         Solaris.
1516
1517 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1518
1519         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
1520         to void *.
1521
1522 2003-12-10  Richard Henderson  <rth@redhat.com>
1523
1524         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
1525         size_t instead of int.
1526
1527 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
1528
1529         * testsuite/libffi.call/many_win32.c: Include <float.h>.
1530         * testsuite/libffi.call/many_win32.c (main): Replace variable
1531         int i with unsigned long ul.
1532
1533         * testsuite/libffi.call/cls_align_uint64.c: New test case.
1534         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1535         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1536         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1537         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1538         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1539         * testsuite/libffi.call/cls_align_float.c: Likewise.
1540         * testsuite/libffi.call/cls_align_double.c: Likewise.
1541         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1542         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1543
1544 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
1545
1546         PR other/13221
1547         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
1548         Align arguments to 32 bits.
1549
1550 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
1551
1552         PR other/13221
1553         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
1554         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1555         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1556         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1557         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1558         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1559
1560         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
1561
1562 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1563
1564         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
1565         * testsuite/libffi.special/ffitestcxx.h: Likewise.
1566
1567 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
1568
1569         * Makefile.in: Rebuilt.
1570         * configure: Likewise.
1571         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
1572         the right type.
1573
1574 2003-11-21  Andreas Jaeger  <aj@suse.de>
1575             Andreas Tobler  <a.tobler@schweiz.ch>
1576
1577         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
1578         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
1579         * Makefile.in: Rebuilt.
1580         * aclocal.m4: Likewise.
1581         * configure: Likewise.
1582         * fficonfig.h.in: Likewise.
1583         * testsuite/lib/libffi-dg.exp: Add include dir.
1584         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
1585         * testsuite/libffi.special/ffitestcxx.h: Likewise.
1586         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
1587         for ffi_closure if available.
1588         * testsuite/libffi.call/closure_fn1.c: Likewise.
1589         * testsuite/libffi.call/closure_fn2.c: Likewise.
1590         * testsuite/libffi.call/closure_fn3.c: Likewise.
1591         * testsuite/libffi.call/closure_fn4.c: Likewise.
1592         * testsuite/libffi.call/closure_fn5.c: Likewise.
1593         * testsuite/libffi.call/cls_12byte.c: Likewise.
1594         * testsuite/libffi.call/cls_16byte.c: Likewise.
1595         * testsuite/libffi.call/cls_18byte.c: Likewise.
1596         * testsuite/libffi.call/cls_19byte.c: Likewise.
1597         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1598         * testsuite/libffi.call/cls_20byte.c: Likewise.
1599         * testsuite/libffi.call/cls_20byte1.c: Likewise.
1600         * testsuite/libffi.call/cls_24byte.c: Likewise.
1601         * testsuite/libffi.call/cls_2byte.c: Likewise.
1602         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1603         * testsuite/libffi.call/cls_3byte1.c: Likewise.
1604         * testsuite/libffi.call/cls_3byte2.c: Likewise.
1605         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1606         * testsuite/libffi.call/cls_4byte.c: Likewise.
1607         * testsuite/libffi.call/cls_5byte.c: Likewise.
1608         * testsuite/libffi.call/cls_64byte.c: Likewise.
1609         * testsuite/libffi.call/cls_6byte.c: Likewise.
1610         * testsuite/libffi.call/cls_7byte.c: Likewise.
1611         * testsuite/libffi.call/cls_8byte.c: Likewise.
1612         * testsuite/libffi.call/cls_9byte1.c: Likewise.
1613         * testsuite/libffi.call/cls_9byte2.c: Likewise.
1614         * testsuite/libffi.call/cls_double.c: Likewise.
1615         * testsuite/libffi.call/cls_float.c: Likewise.
1616         * testsuite/libffi.call/cls_schar.c: Likewise.
1617         * testsuite/libffi.call/cls_sint.c: Likewise.
1618         * testsuite/libffi.call/cls_sshort.c: Likewise.
1619         * testsuite/libffi.call/cls_uchar.c: Likewise.
1620         * testsuite/libffi.call/cls_uint.c: Likewise.
1621         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1622         * testsuite/libffi.call/cls_ushort.c: Likewise.
1623         * testsuite/libffi.call/nested_struct.c: Likewise.
1624         * testsuite/libffi.call/nested_struct1.c: Likewise.
1625         * testsuite/libffi.call/nested_struct2.c: Likewise.
1626         * testsuite/libffi.call/nested_struct3.c: Likewise.
1627         * testsuite/libffi.call/problem1.c: Likewise.
1628         * testsuite/libffi.special/unwindtest.cc: Likewise.
1629
1630 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
1631
1632         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
1633
1634 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
1635
1636         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
1637         Add -lgcc_s to additional flags.
1638
1639 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
1640
1641         * configure.in, include/Makefile.am: PR libgcj/11147, install
1642         the ffitarget.h header file in a gcc versioned and target
1643         dependent place.
1644         * configure: Regenerated.
1645         * Makefile.in, include/Makefile.in: Likewise.
1646         * testsuite/Makefile.in: Likewise.
1647
1648 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
1649
1650         * testsuite/libffi.call/closure_fn0.c: Print result and check
1651         with dg-output to make debugging easier.
1652         * testsuite/libffi.call/closure_fn1.c: Likewise.
1653         * testsuite/libffi.call/closure_fn2.c: Likewise.
1654         * testsuite/libffi.call/closure_fn3.c: Likewise.
1655         * testsuite/libffi.call/closure_fn4.c: Likewise.
1656         * testsuite/libffi.call/closure_fn5.c: Likewise.
1657         * testsuite/libffi.call/cls_12byte.c: Likewise.
1658         * testsuite/libffi.call/cls_16byte.c: Likewise.
1659         * testsuite/libffi.call/cls_18byte.c: Likewise.
1660         * testsuite/libffi.call/cls_19byte.c: Likewise.
1661         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1662         * testsuite/libffi.call/cls_20byte.c: Likewise.
1663         * testsuite/libffi.call/cls_20byte1.c: Likewise.
1664         * testsuite/libffi.call/cls_24byte.c: Likewise.
1665         * testsuite/libffi.call/cls_2byte.c: Likewise.
1666         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1667         * testsuite/libffi.call/cls_3byte1.c: Likewise.
1668         * testsuite/libffi.call/cls_3byte2.c: Likewise.
1669         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1670         * testsuite/libffi.call/cls_4byte.c: Likewise.
1671         * testsuite/libffi.call/cls_5byte.c: Likewise.
1672         * testsuite/libffi.call/cls_64byte.c: Likewise.
1673         * testsuite/libffi.call/cls_6byte.c: Likewise.
1674         * testsuite/libffi.call/cls_7byte.c: Likewise.
1675         * testsuite/libffi.call/cls_8byte.c: Likewise.
1676         * testsuite/libffi.call/cls_9byte1.c: Likewise.
1677         * testsuite/libffi.call/cls_9byte2.c: Likewise.
1678         * testsuite/libffi.call/cls_double.c: Likewise.
1679         * testsuite/libffi.call/cls_float.c: Likewise.
1680         * testsuite/libffi.call/cls_schar.c: Likewise.
1681         * testsuite/libffi.call/cls_sint.c: Likewise.
1682         * testsuite/libffi.call/cls_sshort.c: Likewise.
1683         * testsuite/libffi.call/cls_uchar.c: Likewise.
1684         * testsuite/libffi.call/cls_uint.c: Likewise.
1685         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1686         * testsuite/libffi.call/cls_ushort.c: Likewise.
1687         * testsuite/libffi.call/problem1.c: Likewise.
1688
1689         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
1690         static.
1691
1692 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
1693
1694         * testsuite/libffi.call/cls_9byte2.c: New test case.
1695         * testsuite/libffi.call/cls_9byte1.c: Likewise.
1696         * testsuite/libffi.call/cls_64byte.c: Likewise.
1697         * testsuite/libffi.call/cls_20byte1.c: Likewise.
1698         * testsuite/libffi.call/cls_19byte.c: Likewise.
1699         * testsuite/libffi.call/cls_18byte.c: Likewise.
1700         * testsuite/libffi.call/closure_fn4.c: Likewise.
1701         * testsuite/libffi.call/closure_fn5.c: Likewise.
1702         * testsuite/libffi.call/cls_schar.c: Likewise.
1703         * testsuite/libffi.call/cls_sint.c: Likewise.
1704         * testsuite/libffi.call/cls_sshort.c: Likewise.
1705         * testsuite/libffi.call/nested_struct2.c: Likewise.
1706         * testsuite/libffi.call/nested_struct3.c: Likewise.
1707
1708 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
1709
1710         * testsuite/libffi.call/cls_double.c: Do a check on the result.
1711         * testsuite/libffi.call/cls_uchar.c: Likewise.
1712         * testsuite/libffi.call/cls_uint.c: Likewise.
1713         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1714         * testsuite/libffi.call/cls_ushort.c: Likewise.
1715         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
1716
1717 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
1718
1719         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
1720         the initialization.
1721
1722 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
1723
1724         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
1725         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
1726
1727 2003-10-22  David Daney  <ddaney@avtrex.com>
1728
1729         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
1730         __attribute__((__mode__(__SI__))) and friends.
1731
1732 2003-10-22  Andreas Schwab  <schwab@suse.de>
1733
1734         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
1735
1736 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
1737
1738         * configure.in: AC_LINK_FILES(ffitarget.h).
1739         * configure: Regenerate.
1740         * Makefile.in: Likewise.
1741         * include/Makefile.in: Likewise.
1742         * testsuite/Makefile.in: Likewise.
1743         * fficonfig.h.in: Likewise.
1744
1745 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
1746             Richard Henderson  <rth@redhat.com>
1747
1748         Avoid that ffi.h includes fficonfig.h.
1749
1750         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
1751         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
1752         (TARGET_SRC_MIPS_SGI): Removed.
1753         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
1754         (MIPS_SGI): Removed.
1755         (CLEANFILES): Removed.
1756         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
1757         targets.
1758         * acconfig.h: Removed.
1759         * configure.in: Compute sizeofs only for double and long double.
1760         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
1761         into AC_DEFINE instead of using acconfig.h.  Create
1762         include/ffitarget.h instead of include/fficonfig.h.  Rename
1763         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
1764         AC_DEFINE EH_FRAME_FLAGS.
1765         * include/Makefile.am (DISTCLEANFILES): New automake macro.
1766         (hack_DATA): Add ffitarget.h.
1767         * include/ffi.h.in: Remove all system specific definitions.
1768         Declare raw API even if it is not installed, why bother?
1769         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
1770         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
1771         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
1772         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
1773         * include/ffi_common.h (bool): Do not define.
1774         (ffi_assert): Accept failed assertion.
1775         (ffi_type_test): Return void and accept file/line.
1776         (FFI_ASSERT): Pass stringized failed assertion.
1777         (FFI_ASSERT_AT): New macro.
1778         (FFI_ASSERT_VALID_TYPE): New macro.
1779         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
1780         UINT64, SINT64): Define here with gcc's __attribute__ macro
1781         instead of in ffi.h
1782         (FLOAT32, ALIGN): Define here instead of in ffi.h
1783         * include/ffi-mips.h: Removed.  Its content moved to
1784         src/mips/ffitarget.h after separating assembly and C sections.
1785         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
1786         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
1787         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
1788         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
1789         SIZEOF_ARG -> FFI_SIZEOF_ARG.
1790         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
1791         * src/debug.c (ffi_assert): Accept stringized failed assertion.
1792         (ffi_type_test): Rewritten.
1793         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
1794         FFI_ASSERT_VALID_TYPE.
1795         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
1796         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
1797         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
1798         src/s390/ffitarget.h, src/sh/ffitarget.h,
1799         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
1800         src/x86/ffitarget.h: New files.
1801         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
1802         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
1803         src/powerpc/aix.S, src/powerpc/darwin.S,
1804         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
1805         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
1806         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
1807         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
1808         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
1809         include fficonfig.h
1810
1811 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1812
1813         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
1814         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
1815
1816 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
1817
1818         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
1819         Used when FFI_DEBUG = 1.
1820
1821 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
1822
1823         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
1824         and align.
1825
1826 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1827
1828         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
1829         FFI_MIPS_O32 for O32 ABI.
1830
1831 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
1832
1833         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
1834         SPARC64. Cleanup whitespaces.
1835
1836 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
1837
1838         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
1839         strongarm, xscale. Cleanup whitespaces.
1840         * testsuite/libffi.call/closure_fn1.c: Likewise.
1841         * testsuite/libffi.call/closure_fn2.c: Likewise.
1842         * testsuite/libffi.call/closure_fn3.c: Likewise.
1843         * testsuite/libffi.call/cls_12byte.c: Likewise.
1844         * testsuite/libffi.call/cls_16byte.c: Likewise.
1845         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1846         * testsuite/libffi.call/cls_20byte.c: Likewise.
1847         * testsuite/libffi.call/cls_24byte.c: Likewise.
1848         * testsuite/libffi.call/cls_2byte.c: Likewise.
1849         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1850         * testsuite/libffi.call/cls_3byte1.c: Likewise.
1851         * testsuite/libffi.call/cls_3byte2.c: Likewise.
1852         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1853         * testsuite/libffi.call/cls_4byte.c: Likewise.
1854         * testsuite/libffi.call/cls_5byte.c: Likewise.
1855         * testsuite/libffi.call/cls_6byte.c: Likewise.
1856         * testsuite/libffi.call/cls_7byte.c: Likewise.
1857         * testsuite/libffi.call/cls_8byte.c: Likewise.
1858         * testsuite/libffi.call/cls_double.c: Likewise.
1859         * testsuite/libffi.call/cls_float.c: Likewise.
1860         * testsuite/libffi.call/cls_uchar.c: Likewise.
1861         * testsuite/libffi.call/cls_uint.c: Likewise.
1862         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1863         * testsuite/libffi.call/cls_ushort.c: Likewise.
1864         * testsuite/libffi.call/nested_struct.c: Likewise.
1865         * testsuite/libffi.call/nested_struct1.c: Likewise.
1866         * testsuite/libffi.call/problem1.c: Likewise.
1867         * testsuite/libffi.special/unwindtest.cc: Likewise.
1868         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
1869
1870 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
1871
1872         * src/powerpc/aix.S: Cleanup whitespaces.
1873         * src/powerpc/aix_closure.S: Likewise.
1874
1875 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
1876
1877         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
1878         * src/powerpc/darwin_closure.S: Likewise.
1879         * src/powerpc/ffi_darwin.c: Likewise.
1880
1881 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
1882             David Edelsohn  <edelsohn@gnu.org>
1883
1884         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
1885         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
1886         parameter stack.
1887         * src/powerpc/darwin_closure.S: Likewise.
1888         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
1889         according to the Darwin/AIX ABI.
1890         (ffi_prep_cif_machdep): Likewise.
1891         (ffi_closure_helper_DARWIN): Likewise.
1892         Remove the outgoing parameter stack logic. Simplify the evaluation
1893         of the different CASE types.
1894         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
1895         statement in the trampoline code.
1896
1897 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1898
1899         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
1900         for the register size.
1901         (ffi_closure_helper_SYSV): Handle the structure return value
1902         address correctly.
1903         (ffi_closure_helper_SYSV): Return the appropriate type when
1904         the registers are used for the structure return value.
1905         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
1906         the 64-bit return value.  Update copyright years.
1907
1908 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1909
1910         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
1911         srcdir for ffi_mips.h.
1912
1913 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
1914
1915         * src/prep_cif.c (initialize_aggregate): Include tail padding in
1916         structure size.
1917         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
1918         placement of float result.
1919         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
1920         cast of "resp" for big-endian 64 bit machines.
1921
1922 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
1923
1924         * src/types.c (double, longdouble): Merge identical SH and ARM
1925         typedefs, and add POWERPC64.
1926         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
1927         struct split over gpr and rest.
1928         (ffi_prep_cif_machdep): Correct intarg_count for structures.
1929         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
1930
1931 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
1932
1933         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
1934         passing correctly.
1935
1936 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
1937
1938         * configure: Regenerate.
1939
1940 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
1941
1942         * Makefile.am: Remove build rules for ffitest.
1943         * Makefile.in: Rebuilt.
1944
1945 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
1946
1947         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
1948         about implicit declaration of abort().
1949
1950 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
1951
1952         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
1953         * Makefile.in: Rebuilt.
1954         * configure.in: Add dejagnu test framework.
1955         * configure: Rebuilt.
1956
1957         * testsuite/Makefile.am: New file.
1958         * testsuite/Makefile.in: Built
1959         * testsuite/lib/libffi-dg.exp: New file.
1960         * testsuite/config/default.exp: Likewise.
1961         * testsuite/libffi.call/call.exp: Likewise.
1962         * testsuite/libffi.call/ffitest.h: Likewise.
1963         * testsuite/libffi.call/closure_fn0.c: Likewise.
1964         * testsuite/libffi.call/closure_fn1.c: Likewise.
1965         * testsuite/libffi.call/closure_fn2.c: Likewise.
1966         * testsuite/libffi.call/closure_fn3.c: Likewise.
1967         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1968         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1969         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1970         * testsuite/libffi.call/cls_2byte.c: Likewise.
1971         * testsuite/libffi.call/cls_3byte1.c: Likewise.
1972         * testsuite/libffi.call/cls_3byte2.c: Likewise.
1973         * testsuite/libffi.call/cls_4byte.c: Likewise.
1974         * testsuite/libffi.call/cls_5byte.c: Likewise.
1975         * testsuite/libffi.call/cls_6byte.c: Likewise.
1976         * testsuite/libffi.call/cls_7byte.c: Likewise.
1977         * testsuite/libffi.call/cls_8byte.c: Likewise.
1978         * testsuite/libffi.call/cls_12byte.c: Likewise.
1979         * testsuite/libffi.call/cls_16byte.c: Likewise.
1980         * testsuite/libffi.call/cls_20byte.c: Likewise.
1981         * testsuite/libffi.call/cls_24byte.c: Likewise.
1982         * testsuite/libffi.call/cls_double.c: Likewise.
1983         * testsuite/libffi.call/cls_float.c: Likewise.
1984         * testsuite/libffi.call/cls_uchar.c: Likewise.
1985         * testsuite/libffi.call/cls_uint.c: Likewise.
1986         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1987         * testsuite/libffi.call/cls_ushort.c: Likewise.
1988         * testsuite/libffi.call/float.c: Likewise.
1989         * testsuite/libffi.call/float1.c: Likewise.
1990         * testsuite/libffi.call/float2.c: Likewise.
1991         * testsuite/libffi.call/many.c: Likewise.
1992         * testsuite/libffi.call/many_win32.c: Likewise.
1993         * testsuite/libffi.call/nested_struct.c: Likewise.
1994         * testsuite/libffi.call/nested_struct1.c: Likewise.
1995         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
1996         * testsuite/libffi.call/problem1.c: Likewise.
1997         * testsuite/libffi.call/promotion.c: Likewise.
1998         * testsuite/libffi.call/return_ll.c: Likewise.
1999         * testsuite/libffi.call/return_sc.c: Likewise.
2000         * testsuite/libffi.call/return_uc.c: Likewise.
2001         * testsuite/libffi.call/strlen.c: Likewise.
2002         * testsuite/libffi.call/strlen_win32.c: Likewise.
2003         * testsuite/libffi.call/struct1.c: Likewise.
2004         * testsuite/libffi.call/struct2.c: Likewise.
2005         * testsuite/libffi.call/struct3.c: Likewise.
2006         * testsuite/libffi.call/struct4.c: Likewise.
2007         * testsuite/libffi.call/struct5.c: Likewise.
2008         * testsuite/libffi.call/struct6.c: Likewise.
2009         * testsuite/libffi.call/struct7.c: Likewise.
2010         * testsuite/libffi.call/struct8.c: Likewise.
2011         * testsuite/libffi.call/struct9.c: Likewise.
2012         * testsuite/libffi.special/special.exp: New file.
2013         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2014         * testsuite/libffi.special/unwindtest.cc: Likewise.
2015
2016
2017 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2018
2019         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
2020         copyright years.
2021
2022 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
2023
2024         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2025         structure passing.
2026         (ffi_closure_helper_LINUX64): Likewise.
2027         * src/powerpc/linux64.S: Remove code writing to parm save area.
2028         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2029         address in lr from ffi_closure_helper_LINUX64 call to calculate
2030         table address.  Optimize function tail.
2031
2032 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
2033
2034         * src/sparc/ffi.c: Handle all floating point registers.
2035         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2036
2037 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2038
2039         * README: Note that libffi is not part of GCC.  Update the project
2040         URL and status.
2041
2042 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2043
2044         * src/powerpc/ppc_closure.S: Include ffi.h.
2045
2046 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2047
2048         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2049         Use C style comments.
2050
2051 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2052
2053         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
2054         * Makefile.in: Regenerate.
2055         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2056         * configure: Regenerate.
2057         * include/ffi.h.in: Add SHmedia support.
2058         * src/sh64/ffi.c: New file.
2059         * src/sh64/sysv.S: New file.
2060
2061 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
2062
2063         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2064         should be read-only.
2065         * configure: Rebuilt.
2066         * fficonfig.h.in: Rebuilt.
2067         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
2068         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
2069         * src/powerpc/linux64.S: Likewise.
2070         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
2071         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
2072         if -fpic/-fPIC/-mrelocatable.
2073         * src/powerpc/powerpc_closure.S: Likewise.
2074         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2075         #write in .eh_frame flags.
2076         * src/sparc/v9.S: Likewise.
2077         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
2078         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
2079         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
2080
2081 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
2082
2083         Fixes PR bootstrap/10656
2084         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2085         support for .register pseudo-op.
2086         * src/sparc/v8.S: Use it.
2087         * fficonfig.h.in: Rebuilt.
2088         * configure: Rebuilt.
2089
2090 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
2091
2092         * include/ffi.h.in (POWERPC64): Define if 64-bit.
2093         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2094         Make it the default on POWERPC64.
2095         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2096         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2097         * configure: Rebuilt.
2098         * src/powerpc/ffi.c (hidden): Define.
2099         (ffi_prep_args_SYSV): Renamed from
2100         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
2101         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2102         ASM_NEEDS_REGISTERS64): New.
2103         (ffi_prep_args64): New function.
2104         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2105         (ffi_call): Likewise.
2106         (ffi_prep_closure): Likewise.
2107         (flush_icache): Surround by #ifndef POWERPC64.
2108         (ffi_dblfl): New union type.
2109         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2110         (ffi_closure_helper_LINUX64): New function.
2111         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2112         __powerpc64__.
2113         * src/powerpc/sysv.S: Likewise.
2114         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2115         * src/powerpc/linux64.S: New file.
2116         * src/powerpc/linux64_closure.S: New file.
2117         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2118         src/powerpc/linux64_closure.S.
2119         (TARGET_SRC_POWERPC): Likewise.
2120
2121         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2122         closure_test_fn3): Fix result printing on big-endian 64-bit
2123         machines.
2124         (main): Print tst2_arg instead of uninitialized tst2_result.
2125
2126         * src/ffitest.c (main): Hide what closure pointer really points to
2127         from the compiler.
2128
2129 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
2130
2131         * configure.in (arm-*-netbsdelf*): Add configuration.
2132         (configure): Regenerated.
2133
2134 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
2135
2136         * include/Makefile.in: Regenerate.
2137
2138 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2139
2140         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
2141         bit mode.
2142         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
2143         Receive closure pointer through parameter, read args using
2144         __builtin_dwarf_cfa.
2145         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
2146
2147 2003-03-12  Andreas Schwab  <schwab@suse.de>
2148
2149         * configure.in: Avoid trailing /. in toolexeclibdir.
2150         * configure: Rebuilt.
2151
2152 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
2153
2154         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
2155
2156 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
2157
2158         * libffi/src/powerpc/darwin_closure.S:
2159         Fix alignement bug, allocate 8 bytes for the result.
2160         * libffi/src/powerpc/aix_closure.S:
2161         Likewise.
2162         * libffi/src/powerpc/ffi_darwin.c:
2163         Update stackframe description for aix/darwin_closure.S.
2164
2165 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
2166
2167         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
2168         attribute.
2169
2170 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
2171             Andreas Schwab  <schwab@suse.de>
2172
2173         * configure.in: Adjust command to source config-ml.in to account
2174         for changes to the libffi_basedir definition.
2175         (libffi_basedir): Remove ${srcdir} from value and include trailing
2176         slash if nonempty.
2177
2178         * configure: Regenerate.
2179
2180 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2181
2182         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
2183
2184 2003-01-28  Andrew Haley  <aph@redhat.com>
2185
2186         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
2187         * src/x86/ffi64.c (ffi_prep_closure): New.
2188         (ffi_closure_UNIX64_inner): New.
2189         * src/x86/unix64.S (ffi_closure_UNIX64): New.
2190
2191 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
2192
2193         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
2194         Remove USE_LIBDIR conditional.
2195         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
2196         * Makefile.in, configure: Rebuilt.
2197
2198 2003-01027  David Edelsohn  <edelsohn@gnu.org>
2199
2200         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
2201         * Makefile.in: Regenerate.
2202
2203 2003-01-22  Andrew Haley  <aph@redhat.com>
2204
2205         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
2206         unwind info.
2207
2208 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
2209
2210         * src/powerpc/darwin.S: Add unwind info.
2211         * src/powerpc/darwin_closure.S: Likewise.
2212
2213 2003-01-14  Andrew Haley  <aph@redhat.com>
2214
2215         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
2216         (ffi_prep_cif_machdep): Likewise.
2217         * src/x86/unix64.S: Add unwind info.
2218
2219 2003-01-14  Andreas Jaeger  <aj@suse.de>
2220
2221         * src/ffitest.c (main): Only use ffi_closures if those are
2222         supported.
2223
2224 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
2225
2226         * libffi/src/ffitest.c
2227          add closure testcases
2228
2229 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
2230
2231         * libffi/src/powerpc/ffi.c
2232          fix alignment bug for float (4 byte aligned iso 8 byte)
2233
2234 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
2235
2236         * src/powerpc/ffi_darwin.c: Remove RCS version string.
2237         * src/powerpc/darwin.S: Remove RCS version string.
2238
2239 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
2240
2241         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
2242         * src/ffitest.c (main): Use static storage for closure.
2243         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
2244         * src/sparc/v8.S (ffi_closure_v8): New.
2245         * src/sparc/v9.S (ffi_closure_v9): New.
2246
2247 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
2248
2249         * include/ffi.h.in: Added FFI_STDCALL ffi_type
2250           enumeration for X86_WIN32.
2251         * src/x86/win32.S: Added ffi_call_STDCALL function
2252           definition.
2253         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
2254           switch cases for recognising FFI_STDCALL and
2255           calling ffi_call_STDCALL if target is X86_WIN32.
2256         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
2257           stdcall versions of the "my_strlen" and "many"
2258           test functions (for X86_WIN32).
2259           Added test cases to test stdcall invocation using
2260           these functions.
2261
2262 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2263
2264         * src/sh/sysv.S: Add DWARF2 unwind info.
2265
2266 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
2267
2268         * src/s390/sysv.S (.eh_frame section): Make section read-only.
2269
2270 2002-11-26  Jim Wilson  <wilson@redhat.com>
2271
2272         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
2273
2274 2002-11-23  H.J. Lu <hjl@gnu.org>
2275
2276         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
2277         Include ../config/accross.m4.
2278         * aclocal.m4; Rebuild.
2279         * configure: Likewise.
2280
2281 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
2282
2283         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
2284
2285 2002-11-11  DJ Delorie  <dj@redhat.com>
2286
2287         * configure.in: Look for common files in the right place.
2288
2289 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
2290
2291         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
2292         raw data as _Jv_word values, not ffi_raw.
2293         (ffi_java_ptrarray_to_raw): Likewise.
2294         (ffi_java_rvalue_to_raw): New function.
2295         (ffi_java_raw_call): Call it.
2296         (ffi_java_raw_to_rvalue): New function.
2297         (ffi_java_translate_args): Call it.
2298         * src/ffitest.c (closure_test_fn): Interpret return value
2299         as ffi_arg, not int.
2300         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
2301         FFI_TYPE_POINTER case.
2302         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
2303         values extended to word size.
2304
2305 2002-10-02  Andreas Jaeger  <aj@suse.de>
2306
2307         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
2308
2309 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
2310
2311         * include/ffi.h.in: Fix i386 win32 compilation.
2312
2313 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2314
2315         * configure.in: Add s390x-*-linux-* target.
2316         * configure: Regenerate.
2317         * include/ffi.h.in: Define S390X for s390x targets.
2318         (FFI_CLOSURES): Define for s390/s390x.
2319         (FFI_TRAMPOLINE_SIZE): Likewise.
2320         (FFI_NATIVE_RAW_API): Likewise.
2321         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
2322         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
2323         * src/s390/ffi.c: Major rework of existing code.  Add support for
2324         s390x targets.  Add closure support.
2325         * src/s390/sysv.S: Likewise.
2326
2327 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
2328
2329         * src/arm/sysv.S: Fix typo.
2330
2331 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
2332
2333         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
2334         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
2335         (ffi_call_SYSV): Handle soft-float.
2336
2337 2002-09-27  Bo Thorsen  <bo@suse.de>
2338
2339         * include/ffi.h.in: Fix multilib x86-64 support.
2340
2341 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2342
2343         * Makefile.am (all-multi): Fix multilib parallel build.
2344
2345 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2346
2347         * configure.in (sh[34]*-*-linux*): Add brackets.
2348         * configure: Regenerate.
2349
2350 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2351
2352         * Makefile.am: Add SH support.
2353         * Makefile.in: Regenerate.
2354         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
2355         * configure: Regenerate.
2356         * include/ffi.h.in: Add SH support.
2357         * src/sh/ffi.c: New file.
2358         * src/sh/sysv.S: New file.
2359         * src/types.c: Add SH support.
2360
2361 2002-07-16  Bo Thorsen  <bo@suse.de>
2362
2363         * src/x86/ffi64.c: New file that adds x86-64 support.
2364         * src/x86/unix64.S: New file that handles argument setup for
2365         x86-64.
2366         * src/x86/sysv.S: Don't use this on x86-64.
2367         * src/x86/ffi.c: Don't use this on x86-64.
2368         Remove unused vars.
2369         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
2370         for x86-64.
2371         * src/ffitest.c (struct6): New test that tests a special case in
2372         the x86-64 ABI.
2373         (struct7): Likewise.
2374         (struct8): Likewise.
2375         (struct9): Likewise.
2376         (closure_test_fn): Silence warning about this when it's not used.
2377         (main): Add the new tests.
2378         (main): Fix a couple of wrong casts and silence some compiler warnings.
2379         * include/ffi.h.in: Add x86-64 ABI definition.
2380         * fficonfig.h.in: Regenerate.
2381         * Makefile.am: Add x86-64 support.
2382         * configure.in: Likewise.
2383         * Makefile.in: Regenerate.
2384         * configure: Likewise.
2385
2386 2002-06-24  Bo Thorsen  <bo@suse.de>
2387
2388         * src/types.c: Merge settings for similar architectures.
2389         Add x86-64 sizes and alignments.
2390
2391 2002-06-23  Bo Thorsen  <bo@suse.de>
2392
2393         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
2394         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
2395         * src/mips/ffi.c (ffi_prep_args): Likewise.
2396         * src/m68k/ffi.c (ffi_prep_args): Likewise.
2397
2398 2002-07-18  H.J. Lu  (hjl@gnu.org)
2399
2400         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
2401         (libffi_la_SOURCES): Support MIPS_LINUX.
2402         (libffi_convenience_la_SOURCES): Likewise.
2403         * Makefile.in: Regenerated.
2404
2405         * configure.in (mips64*-*): Skip.
2406         (mips*-*-linux*): New.
2407         * configure: Regenerated.
2408
2409         * src/mips/ffi.c: Include <sgidefs.h>.
2410
2411 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
2412
2413         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
2414
2415 2002-05-27  Roger Sayle  <roger@eyesopen.com>
2416
2417         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
2418
2419 2002-05-27  Bo Thorsen  <bo@suse.de>
2420
2421         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
2422         fix formatting.
2423
2424 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
2425
2426         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
2427         beginning of function (for older apple cc).
2428
2429 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
2430
2431         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
2432         script entry, and set LD to it when configuring multilibs.
2433         * configure: Rebuilt.
2434
2435 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2436
2437         * configure.in (sparc64-*-netbsd*): Add target.
2438         (sparc-*-netbsdelf*): Likewise.
2439         * configure: Regenerate.
2440
2441 2002-04-28  David S. Miller  <davem@redhat.com>
2442
2443         * configure.in, configure: Fix SPARC test in previous change.
2444
2445 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
2446
2447         * Makefile.am: Add Linux for S/390 support.
2448         * Makefile.in: Regenerate.
2449         * configure.in: Add Linux for S/390 support.
2450         * configure: Regenerate.
2451         * include/ffi.h.in: Add Linux for S/390 support.
2452         * src/s390/ffi.c: New file from libffi CVS tree.
2453         * src/s390/sysv.S: New file from libffi CVS tree.
2454
2455 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
2456
2457         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
2458         %r_disp32().
2459         * src/sparc/v8.S: Use it.
2460         * src/sparc/v9.S: Likewise.
2461         * fficonfig.h.in: Rebuilt.
2462         * configure: Rebuilt.
2463
2464 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
2465
2466         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
2467         correctly.
2468         * src/ia64/unix.S: Add unwind information. Fix comments.
2469         Save sp in a way that's compatible with unwind info.
2470         (ffi_call_unix): Correctly restore sp in all cases.
2471         * src/ia64/ffi.c: Add, fix comments.
2472
2473 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
2474
2475         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
2476
2477 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2478
2479         * configure.in (alpha*-*-netbsd*): Add target.
2480         * configure: Regenerate.
2481
2482 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
2483
2484         * src/sparc/v8.S: Add unwind info.
2485         * src/sparc/v9.S: Likewise.
2486
2487 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
2488
2489         * configure.in: Enable i*86-*-netbsdelf*.
2490         * configure: Rebuilt.
2491
2492 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
2493
2494         PR other/2620
2495         * src/mips/n32.s: Delete
2496         * src/mips/o32.s: Delete
2497
2498 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
2499
2500         * configure.in: Enable alpha*-*-freebsd*.
2501         * configure: Rebuilt.
2502
2503 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2504
2505         * Makefile.am: libfficonvenience -> libffi_convenience.
2506         * Makefile.in: Rebuilt.
2507
2508         * Makefile.am: Define ffitest_OBJECTS.
2509         * Makefile.in: Rebuilt.
2510
2511 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
2512             David Edelsohn  <edelsohn@gnu.org>
2513
2514         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2515         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
2516         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
2517         * Makefile.in: Regenerate.
2518         * include/ffi.h.in: Add AIX and Darwin closure definitions.
2519         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
2520         (flush_icache, flush_range): New functions.
2521         (ffi_closure_helper_DARWIN): New function.
2522         * src/powerpc/aix_closure.S: New file.
2523         * src/powerpc/darwin_closure.S: New file.
2524
2525 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
2526
2527         * include/ffi.h.in: Add typedef for ffi_arg.
2528         * src/ffitest.c (main): Declare rint with ffi_arg.
2529
2530 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
2531
2532         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
2533         number of GPRs for floating-point arguments.
2534
2535 2002-01-31  Anthony Green  <green@redhat.com>
2536
2537         * configure: Rebuilt.
2538         * configure.in: Replace CHECK_SIZEOF and endian tests with
2539         cross-compiler friendly macros.
2540         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
2541         macros.
2542
2543 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
2544
2545         * src/powerpc/darwin.S (_ffi_call_AIX): New.
2546         * src/powerpc/aix.S (ffi_call_DARWIN): New.
2547
2548 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
2549
2550         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
2551         (TARGET_SRC_POWERPC_AIX): New.
2552         (POWERPC_AIX): New stanza.
2553         * Makefile.in: Regenerate.
2554         * configure.in: Add AIX case.
2555         * configure: Regenerate.
2556         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
2557         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
2558         size.  Fix "long double" support.
2559         (ffi_call): Add FFI_AIX case.
2560         * src/powerpc/aix.S: New.
2561
2562 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
2563
2564         Implement Darwin PowerPC ABI.
2565         * configure.in: Handle powerpc-*-darwin*.
2566         * Makefile.am: Set source files for POWERPC_DARWIN.
2567         * configure: Rebuilt.
2568         * Makefile.in: Rebuilt.
2569         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
2570         POWERPC_DARWIN.
2571         * src/powerpc/darwin.S: New file.
2572         * src/powerpc/ffi_darwin.c: New file.
2573
2574 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2575
2576         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
2577
2578 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2579
2580         * src/x86/sysv.S: Avoid gas-only .balign directive.
2581         Use C style comments.
2582
2583 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2584
2585         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
2586         Fixes PR bootstrap/3563.
2587
2588 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2589
2590         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
2591
2592 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2593
2594         * configure.in: Recognize sparc*-sun-* host.
2595         * configure: Regenerate.
2596
2597 2001-06-06  Andrew Haley  <aph@redhat.com>
2598
2599         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
2600
2601 2001-06-03  Andrew Haley  <aph@redhat.com>
2602
2603         * src/alpha/osf.S: Add unwind info.
2604         * src/powerpc/sysv.S: Add unwind info.
2605         * src/powerpc/ppc_closure.S: Likewise.
2606
2607 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
2608
2609         * configure.in: Fix AC_ARG_ENABLE usage.
2610         * configure: Rebuilt.
2611
2612 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2613
2614         * configure.in: Remove warning about beta code.
2615         * configure: Rebuilt.
2616
2617 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
2618
2619         * src/ia64/unix.S: Restore stack pointer when returning from
2620         ffi_closure_UNIX.
2621         * src/ia64/ffi.c: Fix typo in comment.
2622
2623 2001-04-18  Jim Wilson  <wilson@redhat.com>
2624
2625         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
2626         to eliminate RAW DV.
2627
2628 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
2629
2630         * Makefile.am: Make a libtool convenience library.
2631         * Makefile.in: Rebuilt.
2632
2633 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
2634
2635         * configure.in: Use different syntax for subdirectory creation.
2636         * configure: Rebuilt.
2637
2638 2001-03-27  Jon Beniston  <jon@beniston.com>
2639
2640         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
2641         * configure: Rebuilt.
2642         * Makefile.am: Added X86_WIN32 target support.
2643         * Makefile.in: Rebuilt.
2644
2645         * include/ffi.h.in: Added X86_WIN32 target support.
2646
2647         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
2648         * src/types.c: Added X86_WIN32 target support.
2649
2650         * src/x86/win32.S: New file. Based on sysv.S, but with EH
2651         stuff removed and made to work with CygWin's gas.
2652
2653 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
2654
2655         * configure.in: Make target subdirectory in build dir.
2656         * Makefile.am: Override suffix based rules to specify correct output
2657         subdirectory.
2658         * Makefile.in: Rebuilt.
2659         * configure: Rebuilt.
2660
2661 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
2662
2663         * src/powerpc/ppc_closure.S: New file.
2664         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
2665         involving long long and register pairs.
2666         (ffi_prep_closure): New function.
2667         (flush_icache): Likewise.
2668         (ffi_closure_helper_SYSV): Likewise.
2669         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
2670         (FFI_TRAMPOLINE_SIZE): Likewise.
2671         (FFI_NATIVE_RAW_API): Likewise.
2672         * Makefile.in: Rebuilt.
2673         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
2674         (TARGET_SRC_POWERPC): Likewise.
2675
2676 2001-03-19  Tom Tromey  <tromey@redhat.com>
2677
2678         * Makefile.in: Rebuilt.
2679         * Makefile.am (ffitest_LDFLAGS): New macro.
2680
2681 2001-03-02  Nick Clifton  <nickc@redhat.com>
2682
2683         * include/ffi.h.in: Remove RCS ident string.
2684         * include/ffi_mips.h: Remove RCS ident string.
2685         * src/debug.c: Remove RCS ident string.
2686         * src/ffitest.c: Remove RCS ident string.
2687         * src/prep_cif.c: Remove RCS ident string.
2688         * src/types.c: Remove RCS ident string.
2689         * src/alpha/ffi.c: Remove RCS ident string.
2690         * src/alpha/osf.S: Remove RCS ident string.
2691         * src/arm/ffi.c: Remove RCS ident string.
2692         * src/arm/sysv.S: Remove RCS ident string.
2693         * src/mips/ffi.c: Remove RCS ident string.
2694         * src/mips/n32.S: Remove RCS ident string.
2695         * src/mips/o32.S: Remove RCS ident string.
2696         * src/sparc/ffi.c: Remove RCS ident string.
2697         * src/sparc/v8.S: Remove RCS ident string.
2698         * src/sparc/v9.S: Remove RCS ident string.
2699         * src/x86/ffi.c: Remove RCS ident string.
2700         * src/x86/sysv.S: Remove RCS ident string.
2701
2702 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2703
2704         * include/ffi.h.in: Change sourceware.cygnus.com references to
2705         gcc.gnu.org.
2706
2707 2000-12-09  Richard Henderson  <rth@redhat.com>
2708
2709         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
2710         (ffi_closure_osf_inner): Index rather than increment avalue
2711         and arg_types.  Give ffi_closure_osf the raw return value type.
2712         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
2713         promotion.
2714
2715 2000-12-07  Richard Henderson  <rth@redhat.com>
2716
2717         * src/raw_api.c (ffi_translate_args): Fix typo.
2718         (ffi_prep_closure): Likewise.
2719
2720         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
2721         FFI_TRAMPOLINE_SIZE.
2722         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
2723         cif->bytes for new ffi_call_osf implementation.
2724         (ffi_prep_args): Absorb into ...
2725         (ffi_call): ... here.  Do all stack allocation here and
2726         avoid a callback function.
2727         (ffi_prep_closure, ffi_closure_osf_inner): New.
2728         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
2729         (ffi_closure_osf): New.
2730
2731 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
2732
2733         * config.guess, config.sub, install-sh: Removed.
2734         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
2735         * Makefile.in: Rebuilt.
2736
2737         * acinclude.m4: Include libtool macros from the top level.
2738         * aclocal.m4, configure: Rebuilt.
2739
2740 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
2741
2742         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
2743         * configure: Rebuilt.
2744
2745 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
2746
2747         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
2748         memory correctly.  Use conditional instructions, not branches where
2749         possible.
2750
2751 2000-05-04  Tom Tromey  <tromey@cygnus.com>
2752
2753         * configure: Rebuilt.
2754         * configure.in: Match `arm*-*-linux-*'.
2755         From Chris Dornan <cdornan@arm.com>.
2756
2757 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
2758
2759         * Makefile.am (SUBDIRS): Define.
2760         (AM_MAKEFLAGS): Likewise.
2761         (Multilib support.): Add section.
2762         * Makefile.in: Rebuilt.
2763         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
2764         New variables. Set for gcc using -print-multi-lib. Export them
2765         to libtool.
2766         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
2767         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
2768         for -shared links.
2769         (extra_compiler_flags_value, extra_compiler_flags): Check these
2770         for extra compiler options which need to be passed down in
2771         compiler_flags.
2772
2773 2000-04-16  Anthony Green  <green@redhat.com>
2774
2775         * configure: Rebuilt.
2776         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
2777
2778 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
2779
2780         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
2781         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
2782         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
2783         Replace all void * sizeofs with sizeof(int).
2784         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
2785         different than DOUBLE.
2786         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
2787         (ffi_prep_args_v9): New function.
2788         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
2789         (ffi_V9_return_struct): New function.
2790         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
2791         32bit code (not yet cross-arch calls).
2792         * src/sparc/v8.S: Add struct return delay nop.
2793         Handle long long.
2794         * src/sparc/v9.S: New file.
2795         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
2796         is used on sparc64 only for structures larger than 32 bytes.
2797         Pass by reference for structures is done for structure arguments
2798         larger than 16 bytes.
2799         * src/ffitest.c (main): Use 64bit rint on sparc64.
2800         Run long long tests on sparc.
2801         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
2802         sparc64.
2803         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
2804         on sparc64.
2805         * configure.in (sparc-*-linux*): New supported target.
2806         (sparc64-*-linux*): Likewise.
2807         * configure: Rebuilt.
2808         * Makefile.am: Add v9.S to SPARC files.
2809         * Makefile.in: Likewise.
2810         (LINK): Surround $(CCLD) into double quotes, so that multilib
2811         compiles work correctly.
2812
2813 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2814
2815         * configure: Rebuilt.
2816         * configure.in: (i*86-*-solaris*): New libffi target. Patch
2817         proposed by Bryce McKinlay.
2818
2819 2000-03-20  Tom Tromey  <tromey@cygnus.com>
2820
2821         * Makefile.in: Hand edit for java_raw_api.lo.
2822
2823 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
2824
2825         * config.guess, config.sub: Update from the gcc tree.
2826         Fix for PR libgcj/168.
2827
2828 2000-03-03  Tom Tromey  <tromey@cygnus.com>
2829
2830         * Makefile.in: Fixed ia64 by hand.
2831
2832         * configure: Rebuilt.
2833         * configure.in (--enable-multilib): New option.
2834         (libffi_basedir): New subst.
2835         (AC_OUTPUT): Added multilib code.
2836
2837 2000-03-02  Tom Tromey  <tromey@cygnus.com>
2838
2839         * Makefile.in: Rebuilt.
2840         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
2841         directory name.
2842
2843 2000-02-25  Hans Boehm <boehm@acm.org>
2844
2845         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
2846         files.
2847         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
2848         list.
2849         (ffi_prep_raw_closure): Use ffi_translate_args, not
2850         ffi_closure_translate.
2851         * src/java_raw_api.c: New file.
2852         * src/ffitest.c (closure_test_fn): New function.
2853         (main): Define `rint' as long long on IA64.  Added new test when
2854         FFI_CLOSURES is defined.
2855         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
2856         (ffi_abi): Recognize IA64.
2857         (ffi_raw): Added `flt' field.
2858         Added "Java raw API" code.
2859         * configure.in: Recognize ia64.
2860         * Makefile.am (TARGET_SRC_IA64): New macro.
2861         (libffi_la_common_SOURCES): Added java_raw_api.c.
2862         (libffi_la_SOURCES): Define in IA64 case.
2863
2864 2000-01-04  Tom Tromey  <tromey@cygnus.com>
2865
2866         * Makefile.in: Rebuilt with newer automake.
2867
2868 1999-12-31  Tom Tromey  <tromey@cygnus.com>
2869
2870         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
2871
2872 1999-09-01  Tom Tromey  <tromey@cygnus.com>
2873
2874         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
2875         undefs.
2876         * fficonfig.h.in: Rebuilt.
2877         * configure: Rebuilt.
2878         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
2879         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
2880         * acconfig.h: Don't #undef PACKAGE or VERSION.
2881
2882 1999-08-09  Anthony Green  <green@cygnus.com>
2883
2884         * include/ffi.h.in: Try to work around messy header problem
2885         with PACKAGE and VERSION.
2886
2887         * configure: Rebuilt.
2888         * configure.in: Change version to 2.00-beta.
2889
2890         * fficonfig.h.in: Rebuilt.
2891         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
2892
2893         * src/x86/ffi.c (ffi_raw_call): Rename.
2894
2895 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
2896
2897         * src/x86/ffi.c (ffi_closure_SYSV): New function.
2898         (ffi_prep_incoming_args_SYSV): Ditto.
2899         (ffi_prep_closure): Ditto.
2900         (ffi_closure_raw_SYSV): Ditto.
2901         (ffi_prep_raw_closure): More ditto.
2902         (ffi_call_raw): Final ditto.
2903
2904         * include/ffi.h.in: Add definitions for closure and raw API.
2905
2906         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
2907         FFI_TYPE_UINT64.
2908
2909         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
2910
2911         * src/raw_api.c: New file.
2912
2913         * include/ffi.h.in (ffi_raw): New type.
2914         (UINT_ARG, SINT_ARG): New defines.
2915         (ffi_closure, ffi_raw_closure): New types.
2916         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
2917
2918         * configure.in: Add check for endianness and sizeof void*.
2919
2920         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
2921         instead of directly.
2922
2923         * configure: Rebuilt.
2924
2925 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
2926
2927         * configure.in: Add x86 and powerpc BeOS configurations.
2928         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
2929
2930 1999-05-09  Anthony Green  <green@cygnus.com>
2931
2932         * configure.in: Add warning about this being beta code.
2933         Remove src/Makefile.am from the picture.
2934         * configure: Rebuilt.
2935
2936         * Makefile.am: Move logic from src/Makefile.am.  Add changes
2937         to support libffi as a target library.
2938         * Makefile.in: Rebuilt.
2939
2940         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
2941         Upgraded to new autoconf, automake, libtool.
2942
2943         * README: Tweaks.
2944
2945         * LICENSE: Update copyright date.
2946
2947         * src/Makefile.am, src/Makefile.in: Removed.
2948
2949 1998-11-29  Anthony Green  <green@cygnus.com>
2950
2951         * include/ChangeLog: Removed.
2952         * src/ChangeLog: Removed.
2953         * src/mips/ChangeLog: Removed.
2954         * src/sparc/ChangeLog: Remboved.
2955         * src/x86/ChangeLog: Removed.
2956
2957         * ChangeLog.v1: Created.