OSDN Git Service

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