OSDN Git Service

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