OSDN Git Service

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