OSDN Git Service

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