]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
re PR libffi/40444 (libffi badly broken with -m64 by some revision between 148383...
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
7bbcc286
AT
12009-06-16 Andreas Tobler <a.tobler@schweiz.org>
2
3 PR libffi/40444
4 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
5 allow_stack_execute for Darwin.
6
fe673cc9
AH
72009-06-16 Andrew Haley <aph@redhat.com>
8
9 * configure.ac (TARGETDIR): Add missing blank lines.
10 * configure: Regenerate.
11
3bc462c2
AH
122009-06-16 Andrew Haley <aph@redhat.com>
13
14 * testsuite/libffi.call/cls_align_sint64.c,
15 testsuite/libffi.call/cls_align_uint64.c,
16 testsuite/libffi.call/cls_longdouble_va.c,
17 testsuite/libffi.call/cls_ulonglong.c,
18 testsuite/libffi.call/return_ll1.c,
19 testsuite/libffi.call/stret_medium2.c: Fix printf format
20 specifiers.
21 * testsuite/libffi.call/ffitest.h,
22 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
23
081b044b
AH
242009-06-15 Andrew Haley <aph@redhat.com>
25
26 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
27 * testsuite/libffi.call/err_bad_abi.c: Likewise.
28
062b8279
AH
292009-06-12 Andrew Haley <aph@redhat.com>
30
31 * Makefile.am: Remove info_TEXINFOS.
32
332009-06-12 Andrew Haley <aph@redhat.com>
34
35 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
36 testsuite/libffi.call/cls_align_uint64.c,
37 testsuite/libffi.call/cls_ulonglong.c,
38 testsuite/libffi.call/return_ll1.c,
39 testsuite/libffi.call/stret_medium2.c: Fix printf format
40 specifiers.
41 testsuite/libffi.special/unwindtest.cc: include stdint.h.
42
432009-06-11 Timothy Wall <twall@users.sf.net>
44
45 * Makefile.am,
46 configure.ac,
47 include/ffi.h.in,
48 include/ffi_common.h,
49 src/closures.c,
50 src/dlmalloc.c,
51 src/x86/ffi.c,
52 src/x86/ffitarget.h,
53 src/x86/win64.S (new),
54 README: Added win64 support (mingw or MSVC)
55 * Makefile.in,
56 include/Makefile.in,
57 man/Makefile.in,
58 testsuite/Makefile.in,
59 configure,
60 aclocal.m4: Regenerated
61 * ltcf-c.sh: properly escape cygwin/w32 path
62 * man/ffi_call.3: Clarify size requirements for return value.
63 * src/x86/ffi64.c: Fix filename in comment.
64 * src/x86/win32.S: Remove unused extern.
65
66 * testsuite/libffi.call/closure_fn0.c,
67 testsuite/libffi.call/closure_fn1.c,
68 testsuite/libffi.call/closure_fn2.c,
69 testsuite/libffi.call/closure_fn3.c,
70 testsuite/libffi.call/closure_fn4.c,
71 testsuite/libffi.call/closure_fn5.c,
72 testsuite/libffi.call/closure_fn6.c,
73 testsuite/libffi.call/closure_stdcall.c,
74 testsuite/libffi.call/cls_12byte.c,
75 testsuite/libffi.call/cls_16byte.c,
76 testsuite/libffi.call/cls_18byte.c,
77 testsuite/libffi.call/cls_19byte.c,
78 testsuite/libffi.call/cls_1_1byte.c,
79 testsuite/libffi.call/cls_20byte.c,
80 testsuite/libffi.call/cls_20byte1.c,
81 testsuite/libffi.call/cls_24byte.c,
82 testsuite/libffi.call/cls_2byte.c,
83 testsuite/libffi.call/cls_3_1byte.c,
84 testsuite/libffi.call/cls_3byte1.c,
85 testsuite/libffi.call/cls_3byte2.c,
86 testsuite/libffi.call/cls_4_1byte.c,
87 testsuite/libffi.call/cls_4byte.c,
88 testsuite/libffi.call/cls_5_1_byte.c,
89 testsuite/libffi.call/cls_5byte.c,
90 testsuite/libffi.call/cls_64byte.c,
91 testsuite/libffi.call/cls_6_1_byte.c,
92 testsuite/libffi.call/cls_6byte.c,
93 testsuite/libffi.call/cls_7_1_byte.c,
94 testsuite/libffi.call/cls_7byte.c,
95 testsuite/libffi.call/cls_8byte.c,
96 testsuite/libffi.call/cls_9byte1.c,
97 testsuite/libffi.call/cls_9byte2.c,
98 testsuite/libffi.call/cls_align_double.c,
99 testsuite/libffi.call/cls_align_float.c,
100 testsuite/libffi.call/cls_align_longdouble.c,
101 testsuite/libffi.call/cls_align_longdouble_split.c,
102 testsuite/libffi.call/cls_align_longdouble_split2.c,
103 testsuite/libffi.call/cls_align_pointer.c,
104 testsuite/libffi.call/cls_align_sint16.c,
105 testsuite/libffi.call/cls_align_sint32.c,
106 testsuite/libffi.call/cls_align_sint64.c,
107 testsuite/libffi.call/cls_align_uint16.c,
108 testsuite/libffi.call/cls_align_uint32.c,
109 testsuite/libffi.call/cls_align_uint64.c,
110 testsuite/libffi.call/cls_dbls_struct.c,
111 testsuite/libffi.call/cls_double.c,
112 testsuite/libffi.call/cls_double_va.c,
113 testsuite/libffi.call/cls_float.c,
114 testsuite/libffi.call/cls_longdouble.c,
115 testsuite/libffi.call/cls_longdouble_va.c,
116 testsuite/libffi.call/cls_multi_schar.c,
117 testsuite/libffi.call/cls_multi_sshort.c,
118 testsuite/libffi.call/cls_multi_sshortchar.c,
119 testsuite/libffi.call/cls_multi_uchar.c,
120 testsuite/libffi.call/cls_multi_ushort.c,
121 testsuite/libffi.call/cls_multi_ushortchar.c,
122 testsuite/libffi.call/cls_pointer.c,
123 testsuite/libffi.call/cls_pointer_stack.c,
124 testsuite/libffi.call/cls_schar.c,
125 testsuite/libffi.call/cls_sint.c,
126 testsuite/libffi.call/cls_sshort.c,
127 testsuite/libffi.call/cls_uchar.c,
128 testsuite/libffi.call/cls_uint.c,
129 testsuite/libffi.call/cls_ulonglong.c,
130 testsuite/libffi.call/cls_ushort.c,
131 testsuite/libffi.call/err_bad_abi.c,
132 testsuite/libffi.call/err_bad_typedef.c,
133 testsuite/libffi.call/float2.c,
134 testsuite/libffi.call/huge_struct.c,
135 testsuite/libffi.call/nested_struct.c,
136 testsuite/libffi.call/nested_struct1.c,
137 testsuite/libffi.call/nested_struct10.c,
138 testsuite/libffi.call/nested_struct2.c,
139 testsuite/libffi.call/nested_struct3.c,
140 testsuite/libffi.call/nested_struct4.c,
141 testsuite/libffi.call/nested_struct5.c,
142 testsuite/libffi.call/nested_struct6.c,
143 testsuite/libffi.call/nested_struct7.c,
144 testsuite/libffi.call/nested_struct8.c,
145 testsuite/libffi.call/nested_struct9.c,
146 testsuite/libffi.call/problem1.c,
147 testsuite/libffi.call/return_ldl.c,
148 testsuite/libffi.call/return_ll1.c,
149 testsuite/libffi.call/stret_large.c,
150 testsuite/libffi.call/stret_large2.c,
151 testsuite/libffi.call/stret_medium.c,
152 testsuite/libffi.call/stret_medium2.c,
153 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
154 of checking for MMAP. Use intptr_t instead of long casts.
155
f43def61
KK
1562009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
157
158 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
159 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
160 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
161
6aa0b218
AH
1622009-06-09 Andrew Haley <aph@redhat.com>
163
164 * src/x86/freebsd.S: Add missing file.
165
b7b857bb
AH
1662009-06-08 Andrew Haley <aph@redhat.com>
167
168 Import from libffi 3.0.8:
169
170 * doc/libffi.texi: New file.
171 * doc/libffi.info: Likewise.
172 * doc/stamp-vti: Likewise.
173 * man/Makefile.am: New file.
174 * man/ffi_call.3: New file.
175
176 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
177 src/dlmalloc.c.
178 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
179
180 * configure.ac: Bump version to 3.0.8.
181 parisc*-*-linux*: Add.
182 i386-*-freebsd* | i386-*-openbsd*: Add.
183 powerpc-*-beos*: Add.
184 AM_CONDITIONAL X86_FREEBSD: Add.
185 AC_CONFIG_FILES: Add man/Makefile.
186
187 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
188
491e6ad1
AH
1892009-06-08 Andrew Haley <aph@redhat.com>
190
191 * README: Import from libffi 3.0.8.
192
3b5b1a73
AH
1932009-06-08 Andrew Haley <aph@redhat.com>
194
195 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
196 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
197 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
198 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
199
200 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
201 * testsuite/libffi.call/stret_medium.c: Likewise.
202 * testsuite/libffi.call/stret_large2.c: Likewise.
203 * testsuite/libffi.call/stret_large.c: Likewise.
204
2052008-12-26 Timothy Wall <twall@users.sf.net>
206
207 * testsuite/libffi.call/cls_longdouble.c,
208 testsuite/libffi.call/cls_longdouble_va.c,
209 testsuite/libffi.call/cls_align_longdouble.c,
210 testsuite/libffi.call/cls_align_longdouble_split.c,
211 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
212 failures on x86_64 cygwin/mingw.
213
2142008-12-22 Timothy Wall <twall@users.sf.net>
215
216 * testsuite/libffi.call/closure_fn0.c,
217 testsuite/libffi.call/closure_fn1.c,
218 testsuite/libffi.call/closure_fn2.c,
219 testsuite/libffi.call/closure_fn3.c,
220 testsuite/libffi.call/closure_fn4.c,
221 testsuite/libffi.call/closure_fn5.c,
222 testsuite/libffi.call/closure_fn6.c,
223 testsuite/libffi.call/closure_loc_fn0.c,
224 testsuite/libffi.call/closure_stdcall.c,
225 testsuite/libffi.call/cls_align_pointer.c,
226 testsuite/libffi.call/cls_pointer.c,
227 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
228 pointer to integer (intptr_t).
229 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
230
2312008-07-24 Anthony Green <green@redhat.com>
232
233 * testsuite/libffi.call/cls_dbls_struct.c,
234 testsuite/libffi.call/cls_double_va.c,
235 testsuite/libffi.call/cls_longdouble.c,
236 testsuite/libffi.call/cls_longdouble_va.c,
237 testsuite/libffi.call/cls_pointer.c,
238 testsuite/libffi.call/cls_pointer_stack.c,
239 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
240 compiler warnings.
241
2422008-03-04 Anthony Green <green@redhat.com>
243 Blake Chaffin
244 hos@tamanegi.org
245
246 * testsuite/libffi.call/cls_align_longdouble_split2.c
247 testsuite/libffi.call/cls_align_longdouble_split.c
248 testsuite/libffi.call/cls_dbls_struct.c
249 testsuite/libffi.call/cls_double_va.c
250 testsuite/libffi.call/cls_longdouble.c
251 testsuite/libffi.call/cls_longdouble_va.c
252 testsuite/libffi.call/cls_pointer.c
253 testsuite/libffi.call/cls_pointer_stack.c
254 testsuite/libffi.call/err_bad_abi.c
255 testsuite/libffi.call/err_bad_typedef.c
256 testsuite/libffi.call/stret_large2.c
257 testsuite/libffi.call/stret_large.c
258 testsuite/libffi.call/stret_medium2.c
259 testsuite/libffi.call/stret_medium.c: New tests from Apple.
260
56faec5e
AH
2612009-06-05 Andrew Haley <aph@redhat.com>
262
263 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
264 libffi.
265
90409e4c
AH
2662009-06-04 Andrew Haley <aph@redhat.com>
267
268 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
269 stdcall changes.
270
b1393750
AH
2712008-02-26 Anthony Green <green@redhat.com>
272 Thomas Heller <theller@ctypes.org>
273
274 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
275 comment.
276
2772008-02-03 Timothy Wall <twall@users.sf.net>
278
279 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
280 offset based on code pointer, not data pointer.
281
2822008-01-31 Timothy Wall <twall@users.sf.net>
283
284 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
285 closures.
286 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
287 closures.
288 * src/x86/win32.S: Add assembly for stdcall closure.
289 * src/x86/ffi.c: Initialize stdcall closure trampoline.
290
96baa251
AH
2912009-06-04 Andrew Haley <aph@redhat.com>
292
293 * include/ffi.h.in: Change void (*)() to void (*)(void).
294 * src/x86/ffi.c: Likewise.
295
7446546a
AH
2962009-06-04 Andrew Haley <aph@redhat.com>
297
298 * src/powerpc/ppc_closure.S: Insert licence header.
299 * src/powerpc/linux64_closure.S: Likewise.
300 * src/m68k/sysv.S: Likewise.
301
302 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
303 * src/powerpc/ffi.c: Likewise.
304 * src/powerpc/ffi_darwin.c: Likewise.
305 * src/m32r/ffi.c: Likewise.
306 * src/sh64/ffi.c: Likewise.
307 * src/x86/ffi64.c: Likewise.
308 * src/alpha/ffi.c: Likewise.
309 * src/alpha/osf.S: Likewise.
310 * src/frv/ffi.c: Likewise.
311 * src/s390/ffi.c: Likewise.
312 * src/pa/ffi.c: Likewise.
313 * src/pa/hpux32.S: Likewise.
314 * src/ia64/unix.S: Likewise.
315 * src/ia64/ffi.c: Likewise.
316 * src/sparc/ffi.c: Likewise.
317 * src/mips/ffi.c: Likewise.
318 * src/sh/ffi.c: Likewise.
319
3202008-02-15 David Daney <ddaney@avtrex.com>
321
322 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
323 Define (conditionally), and use it to include cachectl.h.
324 (ffi_prep_closure_loc): Fix cache flushing.
325 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
326
5f933ef0
AH
3272009-06-04 Andrew Haley <aph@redhat.com>
328
329 include/ffi.h.in,
330 src/arm/ffitarget.h,
331 src/arm/ffi.c,
332 src/arm/sysv.S,
333 src/powerpc/ffitarget.h,
334 src/closures.c,
335 src/sh64/ffitarget.h,
336 src/sh64/ffi.c,
337 src/sh64/sysv.S,
338 src/types.c,
339 src/x86/ffi64.c,
340 src/x86/ffitarget.h,
341 src/x86/win32.S,
342 src/x86/darwin.S,
343 src/x86/ffi.c,
344 src/x86/sysv.S,
345 src/x86/unix64.S,
346 src/alpha/ffitarget.h,
347 src/alpha/ffi.c,
348 src/alpha/osf.S,
349 src/m68k/ffitarget.h,
350 src/frv/ffitarget.h,
351 src/frv/ffi.c,
352 src/s390/ffitarget.h,
353 src/s390/sysv.S,
354 src/cris/ffitarget.h,
355 src/pa/linux.S,
356 src/pa/ffitarget.h,
357 src/pa/ffi.c,
358 src/raw_api.c,
359 src/ia64/ffitarget.h,
360 src/ia64/unix.S,
361 src/ia64/ffi.c,
362 src/ia64/ia64_flags.h,
363 src/java_raw_api.c,
364 src/debug.c,
365 src/sparc/v9.S,
366 src/sparc/ffitarget.h,
367 src/sparc/ffi.c,
368 src/sparc/v8.S,
369 src/mips/ffitarget.h,
370 src/mips/n32.S,
371 src/mips/o32.S,
372 src/mips/ffi.c,
373 src/prep_cif.c,
374 src/sh/ffitarget.h,
375 src/sh/ffi.c,
376 src/sh/sysv.S: Update license text.
377
84c40c4a
DK
3782009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
379
380 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
381 (.eh_frame): Add FDE for it.
382
8353cd27
DK
3832009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
384
385 * configure.ac: Also check if assembler supports pc-relative
386 relocs on X86_WIN32 targets.
387 * configure: Regenerate.
388 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
389 (_ffi_call_SYSV): Add missing function type symbol .def and
390 add EH markup labels.
391 (_ffi_call_STDCALL): Likewise.
392 (_ffi_closure_SYSV): Likewise.
393 (_ffi_closure_raw_SYSV): Likewise.
394 (.eh_frame): Add hand-crafted EH data.
395
748086b7
JJ
3962009-04-09 Jakub Jelinek <jakub@redhat.com>
397
398 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
399 version 3 of the GNU General Public License and to point readers
400 at the COPYING3 file and the FSF's license web page.
401 * testsuite/libffi.call/call.exp: Likewise.
402 * testsuite/libffi.special/special.exp: Likewise.
403
7a9d3fe8
RW
4042009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
405
406 * configure: Regenerate.
407
4d3d4078
RO
4082008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
409
410 PR libffi/26048
411 * configure.ac (HAVE_AS_X86_PCREL): New test.
412 * configure: Regenerate.
413 * fficonfig.h.in: Regenerate.
414 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
415 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
416 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
417 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
418 * src/x86/unix64.S (.Lstore_table): Move to .text section.
419 (.Lload_table): Likewise.
420 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
421
baafc534
RW
4222008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
423
424 * configure: Regenerate.
425
da17a98b
EB
4262008-11-21 Eric Botcazou <ebotcazou@adacore.com>
427
428 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
429 signed/unsigned int8/16 return values.
430 * src/sparc/v8.S (ffi_call_v8): Likewise.
431 (ffi_closure_v8): Likewise.
432
80c6c2cb
PG
4332008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
434 Steve Ellcey <sje@cup.hp.com>
435
436 * configure: Regenerate for new libtool.
437 * Makefile.in: Ditto.
438 * include/Makefile.in: Ditto.
439 * aclocal.m4: Ditto.
440
d7f68a67
AT
4412008-08-25 Andreas Tobler <a.tobler@schweiz.org>
442
443 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
444 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
445 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
446 Adjust copyright notice.
447 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
448 register or two register to use for FFI_SYSV structs.
449 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
450 (ffi_closure_helper_SYSV): Fix the return type for
451 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
452 Adjust copyright notice.
453
130f4c50
KK
4542008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
455
456 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
457 int.
458
18c04407
RW
4592008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
460
461 * configure: Regenerate.
462 * include/Makefile.in: Regenerate.
463 * testsuite/Makefile.in: Regenerate.
464
cd985f66
JM
4652008-06-07 Joseph Myers <joseph@codesourcery.com>
466
467 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
468 powerpc-*-beos*): Remove.
469 * configure: Regenerate.
470
7afa92c5
JB
4712008-05-09 Julian Brown <julian@codesourcery.com>
472
473 * Makefile.am (LTLDFLAGS): New.
474 (libffi_la_LDFLAGS): Use above.
475 * Makefile.in: Regenerate.
476
deb984e6
PB
4772008-04-18 Paolo Bonzini <bonzini@gnu.org>
478
479 PR bootstrap/35457
480 * aclocal.m4: Regenerate.
481 * configure: Regenerate.
482
3e9608a5
KK
4832008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
484
485 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
486 * src/sh64/sysv.S: Likewise.
487
feb51530
MK
4882008-03-26 Daniel Jacobowitz <dan@debian.org>
489
490 * src/arm/sysv.S: Fix ARM comment marker.
491
4922008-03-26 Jakub Jelinek <jakub@redhat.com>
493
494 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
495 * src/s390/sysv.S: Likewise.
496 * src/powerpc/ppc_closure.S: Likewise.
497 * src/powerpc/sysv.S: Likewise.
498 * src/x86/unix64.S: Likewise.
499 * src/x86/sysv.S: Likewise.
500 * src/sparc/v8.S: Likewise.
501 * src/sparc/v9.S: Likewise.
502 * src/m68k/sysv.S: Likewise.
503 * src/arm/sysv.S: Likewise.
504
38d24731
RW
5052008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
506
507 * aclocal.m4: Regenerate.
508 * configure: Likewise.
509 * Makefile.in: Likewise.
510 * include/Makefile.in: Likewise.
511 * testsuite/Makefile.in: Likewise.
512
2e250fa2
BK
5132008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
514 Andreas Tobler <a.tobler@schweiz.org>
515
516 * configure.ac: Add amd64-*-freebsd* target.
517 * configure: Regenerate.
518
7f92e242
L
5192008-01-30 H.J. Lu <hongjiu.lu@intel.com>
520
521 PR libffi/34612
522 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
523 returning struct.
524
525 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
526 tests.
527
95d4f544
DE
5282008-01-24 David Edelsohn <edelsohn@gnu.org>
529
530 * configure: Regenerate.
531
79ca8fc0
AT
5322008-01-06 Andreas Tobler <a.tobler@schweiz.org>
533
534 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
535
d7b07cc7
AT
5362008-01-05 Andreas Tobler <a.tobler@schweiz.org>
537
538 PR testsuite/32843
539 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
540 signed/unsigned int8/16 for X86_DARWIN.
541 Updated copyright info.
542 Handle one and two byte structs with special cif->flags.
543 * src/x86/ffitarget.h: Add special types for one and two byte structs.
544 Updated copyright info.
545 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
546 sysv.S
547 Remove code to pop args from the stack after call.
548 Special-case signed/unsigned for int8/16, one and two byte structs.
549 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
550 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
551 FFI_TYPE_SINT32.
552 Updated copyright info.
553
c94ae2e4
DD
5542007-12-08 David Daney <ddaney@avtrex.com>
555
556 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
557 SUBU, add with ADDU and use smaller code sequences.
558
3875b6d7 5592007-12-07 David Daney <ddaney@avtrex.com>
44be66a1 560
3875b6d7
DD
561 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
562 type.
563
4c42b3d8
DD
5642007-12-06 David Daney <ddaney@avtrex.com>
565
566 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
567 defined.
568 (ffi_java_raw): New typedef.
569 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
570 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
571 ffi_java_raw.
572 (ffi_java_raw_closure) : Same.
573 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
574 parameter types.
575 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
576 FFI_SIZEOF_JAVA_RAW.
577 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
578 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
579 sizeof(ffi_java_raw) for alignment calculations.
580 (ffi_java_ptrarray_to_raw): Same.
581 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
582 if FFI_SIZEOF_JAVA_RAW == 4.
583 (ffi_java_raw_to_rvalue): Same.
584 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
585 (ffi_java_translate_args): Same.
586 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
587 parameter types.
588 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
589
3ef50b62
DD
5902007-12-06 David Daney <ddaney@avtrex.com>
591
592 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
593 pointer values.
594
16287148
AT
5952007-12-01 Andreas Tobler <a.tobler@schweiz.org>
596
597 PR libffi/31937
598 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
599 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
600 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
601 set the NUM_FPR_ARG_REGISTERS according to.
602 Add support for potential soft-float support under hard-float
603 architecture.
604 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
605 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
606 to the FFI_LINUX_SOFT_FLOAT ABI.
607 (ffi_prep_cif_machdep): Likewise.
608 (ffi_closure_helper_SYSV): Likewise.
609 * src/powerpc/ppc_closure.S: Make sure not to store float/double
610 on archs where __NO_FPRS__ is true.
611 Add FFI_TYPE_UINT128 support.
612 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
613 Adjust copyright notice.
614
a4b7c9cd
AT
6152007-11-25 Andreas Tobler <a.tobler@schweiz.org>
616
617 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
618 * include/ffi_common.h: ... here.
619 Update copyright.
620
e84296c6
AT
6212007-11-17 Andreas Tobler <a.tobler@schweiz.org>
622
623 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
624 * src/powerpc/linux64.S: Likewise.
625 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
626 * testsuite/libffi.call/return_ldl.c: New test.
627
cb642590
AH
6282007-09-04 <aph@redhat.com>
629
630 * src/arm/sysv.S (UNWIND): New.
631 (Whole file): Conditionally compile unwinder directives.
632 * src/arm/sysv.S: Add unwinder directives.
633
634 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
635 Only treat r0 as a struct address if we're actually returning a
636 struct by address.
637 Only copy the bytes that are actually within a struct.
638 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
639 is returned in r0, not passed by address.
640 (ffi_call): Allocate a word-sized temporary for the case where
641 a composite is returned in r0.
642 (ffi_prep_incoming_args_SYSV): Align as necessary.
643
6442007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
645
646 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
647 directly using the sys_cacheflush syscall.
648
6492007-07-27 Andrew Haley <aph@redhat.com>
650
651 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
652
8d5c5e35
MR
6532007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
654
655 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
656 * configure.ac: Likewise.
657 * Makefile.in: Regenerate.
658 * include/Makefile.in: Likewise.
659 * testsuite/Makefile.in: Likewise.
660 * configure: Likewise.
661
787b0d19
DD
6622007-08-24 David Daney <ddaney@avtrex.com>
663
664 * testsuite/libffi.call/return_sl.c: New test.
665
dfbb3e36
DD
6662007-08-10 David Daney <ddaney@avtrex.com>
667
668 * testsuite/libffi.call/cls_multi_ushort.c,
669 testsuite/libffi.call/cls_align_uint16.c,
670 testsuite/libffi.call/nested_struct1.c,
671 testsuite/libffi.call/nested_struct3.c,
672 testsuite/libffi.call/cls_7_1_byte.c,
673 testsuite/libffi.call/nested_struct5.c,
674 testsuite/libffi.call/cls_double.c,
675 testsuite/libffi.call/nested_struct7.c,
676 testsuite/libffi.call/cls_sint.c,
677 testsuite/libffi.call/nested_struct9.c,
678 testsuite/libffi.call/cls_20byte1.c,
679 testsuite/libffi.call/cls_multi_sshortchar.c,
680 testsuite/libffi.call/cls_align_sint64.c,
681 testsuite/libffi.call/cls_3byte2.c,
682 testsuite/libffi.call/cls_multi_schar.c,
683 testsuite/libffi.call/cls_multi_uchar.c,
684 testsuite/libffi.call/cls_19byte.c,
685 testsuite/libffi.call/cls_9byte1.c,
686 testsuite/libffi.call/cls_align_float.c,
687 testsuite/libffi.call/closure_fn1.c,
688 testsuite/libffi.call/problem1.c,
689 testsuite/libffi.call/closure_fn3.c,
690 testsuite/libffi.call/cls_sshort.c,
691 testsuite/libffi.call/closure_fn5.c,
692 testsuite/libffi.call/cls_align_double.c,
693 testsuite/libffi.call/nested_struct.c,
694 testsuite/libffi.call/cls_2byte.c,
695 testsuite/libffi.call/nested_struct10.c,
696 testsuite/libffi.call/cls_4byte.c,
697 testsuite/libffi.call/cls_6byte.c,
698 testsuite/libffi.call/cls_8byte.c,
699 testsuite/libffi.call/cls_multi_sshort.c,
700 testsuite/libffi.call/cls_align_sint16.c,
701 testsuite/libffi.call/cls_align_uint32.c,
702 testsuite/libffi.call/cls_20byte.c,
703 testsuite/libffi.call/cls_float.c,
704 testsuite/libffi.call/nested_struct2.c,
705 testsuite/libffi.call/cls_5_1_byte.c,
706 testsuite/libffi.call/nested_struct4.c,
707 testsuite/libffi.call/cls_24byte.c,
708 testsuite/libffi.call/nested_struct6.c,
709 testsuite/libffi.call/cls_64byte.c,
710 testsuite/libffi.call/nested_struct8.c,
711 testsuite/libffi.call/cls_uint.c,
712 testsuite/libffi.call/cls_multi_ushortchar.c,
713 testsuite/libffi.call/cls_schar.c,
714 testsuite/libffi.call/cls_uchar.c,
715 testsuite/libffi.call/cls_align_uint64.c,
716 testsuite/libffi.call/cls_ulonglong.c,
717 testsuite/libffi.call/cls_align_longdouble.c,
718 testsuite/libffi.call/cls_1_1byte.c,
719 testsuite/libffi.call/cls_12byte.c,
720 testsuite/libffi.call/cls_3_1byte.c,
721 testsuite/libffi.call/cls_3byte1.c,
722 testsuite/libffi.call/cls_4_1byte.c,
723 testsuite/libffi.call/cls_6_1_byte.c,
724 testsuite/libffi.call/cls_16byte.c,
725 testsuite/libffi.call/cls_18byte.c,
726 testsuite/libffi.call/closure_fn0.c,
727 testsuite/libffi.call/cls_9byte2.c,
728 testsuite/libffi.call/closure_fn2.c,
729 testsuite/libffi.call/closure_fn4.c,
730 testsuite/libffi.call/cls_ushort.c,
731 testsuite/libffi.call/closure_fn6.c,
732 testsuite/libffi.call/cls_5byte.c,
733 testsuite/libffi.call/cls_align_pointer.c,
734 testsuite/libffi.call/cls_7byte.c,
735 testsuite/libffi.call/cls_align_sint32.c,
736 testsuite/libffi.special/unwindtest_ffi_call.cc,
737 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
738
89d9d98a
DD
7392007-08-10 David Daney <ddaney@avtrex.com>
740
741 PR libffi/28313
742 * configure.ac: Don't treat mips64 as a special case.
743 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
744 * configure: Regenerate
745 * Makefile.in: Ditto.
746 * fficonfig.h.in: Ditto.
747 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
748 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
749 (FFI_DEFAULT_ABI): Set for n64 case.
750 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
751 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
752 (ffi_closure_N32): New function.
753 (.eh_frame): New section
754 * src/mips/o32.S: Clean up comments.
755 (ffi_closure_O32): Pass ffi_closure parameter in $12.
756 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
757 _MIPS_SIM == _ABIN32 throughout.
758 (FFI_MIPS_STOP_HERE): New, use in place of
759 ffi_stop_here.
760 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
761 to support n32/n64 ABIs.
762 (calc_n32_struct_flags): Rewrite.
763 (calc_n32_return_struct_flags): Remove unused variable. Reverse
764 position of flag bits.
765 (ffi_prep_cif_machdep): Rewrite n32 portion.
766 (ffi_call): Enable for n64. Add special handling for small structure
767 return values.
768 (ffi_prep_closure_loc): Add n32 and n64 support.
769 (ffi_closure_mips_inner_O32): Add cast to silence warning.
770 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
771
d23869d4
DD
7722007-08-08 David Daney <ddaney@avtrex.com>
773
774 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
775 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
776 specifiers.
777 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
778 * testsuite/libffi.call/cls_sint.c (main): Ditto.
779 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
780 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
781 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
782 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
783 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
784 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
785 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
786 * testsuite/libffi.call/return_fl3.c (main): Ditto.
787 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
788 * testsuite/libffi.call/nested_struct.c (main): Ditto.
789 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
790 * testsuite/libffi.call/return_ll1.c (main): Ditto.
791 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
792 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
793 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
794 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
795 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
796 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
797 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
798 * testsuite/libffi.call/cls_uint.c (main): Ditto.
799 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
800 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
801 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
802 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
803 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
804 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
805 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
806 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
807 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
808
536e0a8f
AH
8092007-08-07 Andrew Haley <aph@redhat.com>
810
811 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
812 checkin.
813
7665c9be
AH
8142007-08-06 Andrew Haley <aph@redhat.com>
815
816 PR testsuite/32843
817 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
818 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
819 FFI_TYPE_SINT32.
820
58e11497
DD
8212007-08-02 David Daney <ddaney@avtrex.com>
822
823 * testsuite/libffi.call/return_ul.c (main): Define return type as
824 ffi_arg. Use proper printf conversion specifier.
825
387cfbba
AH
8262007-07-30 Andrew Haley <aph@redhat.com>
827
828 PR testsuite/32843
829 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
830 signed/unsigned int8/16.
831 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
832 Use a jump table.
833 Remove code to pop args from the stack after call.
834 Special-case signed/unsigned int8/16.
835 * testsuite/libffi.call/return_sc.c (main): Revert.
836
0ee0208e
RG
8372007-07-26 Richard Guenther <rguenther@suse.de>
838
839 PR testsuite/32843
840 * testsuite/libffi.call/return_sc.c (main): Verify call
841 result as signed char, not ffi_arg.
842
04a49983
RO
8432007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
844
845 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
846 * configure: Regenerate.
847
433e6a8c
DD
8482007-07-11 David Daney <ddaney@avtrex.com>
849
850 * src/mips/ffi.c: Don't include sys/cachectl.h.
851 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
852 cacheflush().
853
0959e2b8
AH
8542007-05-18 Aurelien Jarno <aurelien@aurel32.net>
855
856 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
857 from (ffi_prep_closure): ... this.
858 (FFI_INIT_TRAMPOLINE): Adjust.
859
8602005-12-31 Phil Blundell <pb@reciva.com>
861
862 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
863 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
864 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
865 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
866 (FFI_CLOSURES): Enable closure support.
867
8682007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
869
870 * testsuite/libffi.call/cls_multi_ushort.c,
871 testsuite/libffi.call/cls_align_uint16.c,
872 testsuite/libffi.call/nested_struct1.c,
873 testsuite/libffi.call/nested_struct3.c,
874 testsuite/libffi.call/cls_7_1_byte.c,
875 testsuite/libffi.call/cls_double.c,
876 testsuite/libffi.call/nested_struct5.c,
877 testsuite/libffi.call/nested_struct7.c,
878 testsuite/libffi.call/cls_sint.c,
879 testsuite/libffi.call/nested_struct9.c,
880 testsuite/libffi.call/cls_20byte1.c,
881 testsuite/libffi.call/cls_multi_sshortchar.c,
882 testsuite/libffi.call/cls_align_sint64.c,
883 testsuite/libffi.call/cls_3byte2.c,
884 testsuite/libffi.call/cls_multi_schar.c,
885 testsuite/libffi.call/cls_multi_uchar.c,
886 testsuite/libffi.call/cls_19byte.c,
887 testsuite/libffi.call/cls_9byte1.c,
888 testsuite/libffi.call/cls_align_float.c,
889 testsuite/libffi.call/closure_fn1.c,
890 testsuite/libffi.call/problem1.c,
891 testsuite/libffi.call/closure_fn3.c,
892 testsuite/libffi.call/cls_sshort.c,
893 testsuite/libffi.call/closure_fn5.c,
894 testsuite/libffi.call/cls_align_double.c,
895 testsuite/libffi.call/cls_2byte.c,
896 testsuite/libffi.call/nested_struct.c,
897 testsuite/libffi.call/nested_struct10.c,
898 testsuite/libffi.call/cls_4byte.c,
899 testsuite/libffi.call/cls_6byte.c,
900 testsuite/libffi.call/cls_8byte.c,
901 testsuite/libffi.call/cls_multi_sshort.c,
902 testsuite/libffi.call/cls_align_uint32.c,
903 testsuite/libffi.call/cls_align_sint16.c,
904 testsuite/libffi.call/cls_float.c,
905 testsuite/libffi.call/cls_20byte.c,
906 testsuite/libffi.call/cls_5_1_byte.c,
907 testsuite/libffi.call/nested_struct2.c,
908 testsuite/libffi.call/cls_24byte.c,
909 testsuite/libffi.call/nested_struct4.c,
910 testsuite/libffi.call/nested_struct6.c,
911 testsuite/libffi.call/cls_64byte.c,
912 testsuite/libffi.call/nested_struct8.c,
913 testsuite/libffi.call/cls_uint.c,
914 testsuite/libffi.call/cls_multi_ushortchar.c,
915 testsuite/libffi.call/cls_schar.c,
916 testsuite/libffi.call/cls_uchar.c,
917 testsuite/libffi.call/cls_align_uint64.c,
918 testsuite/libffi.call/cls_ulonglong.c,
919 testsuite/libffi.call/cls_align_longdouble.c,
920 testsuite/libffi.call/cls_1_1byte.c,
921 testsuite/libffi.call/cls_12byte.c,
922 testsuite/libffi.call/cls_3_1byte.c,
923 testsuite/libffi.call/cls_3byte1.c,
924 testsuite/libffi.call/cls_4_1byte.c,
925 testsuite/libffi.call/cls_6_1_byte.c,
926 testsuite/libffi.call/cls_16byte.c,
927 testsuite/libffi.call/cls_18byte.c,
928 testsuite/libffi.call/closure_fn0.c,
929 testsuite/libffi.call/cls_9byte2.c,
930 testsuite/libffi.call/closure_fn2.c,
931 testsuite/libffi.call/closure_fn4.c,
932 testsuite/libffi.call/cls_ushort.c,
933 testsuite/libffi.call/closure_fn6.c,
934 testsuite/libffi.call/cls_5byte.c,
935 testsuite/libffi.call/cls_align_pointer.c,
936 testsuite/libffi.call/cls_7byte.c,
937 testsuite/libffi.call/cls_align_sint32.c,
938 testsuite/libffi.special/unwindtest_ffi_call.cc,
939 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
940
12a27363
L
9412007-07-05 H.J. Lu <hongjiu.lu@intel.com>
942
943 * aclocal.m4: Regenerated.
944
82a6cadf
PB
9452007-06-02 Paolo Bonzini <bonzini@gnu.org>
946
947 * configure: Regenerate.
948
1cf3d07d
SE
9492007-05-23 Steve Ellcey <sje@cup.hp.com>
950
951 * Makefile.in: Regenerate.
952 * configure: Regenerate.
953 * aclocal.m4: Regenerate.
954 * include/Makefile.in: Regenerate.
955 * testsuite/Makefile.in: Regenerate.
956
5635c26e
RZ
9572007-05-10 Roman Zippel <zippel@linux-m68k.org>
958
959 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
960 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
961 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
962 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
963 (FFI_CLOSURES): Enable closure support.
964
e6fbf387
RZ
9652007-05-10 Roman Zippel <zippel@linux-m68k.org>
966
967 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
968 * configure: Regenerate.
969 * fficonfig.h.in: Regenerate.
970 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
971 CFI_OFFSET,CFI_DEF_CFA): New macros.
972 (ffi_call_SYSV): Add callframe annotation.
973
b5296e52
RZ
9742007-05-10 Roman Zippel <zippel@linux-m68k.org>
975
976 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
977 numerous test suite failures.
978 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
979
bd61d708
PB
9802007-04-11 Paolo Bonzini <bonzini@gnu.org>
981
982 * Makefile.am (EXTRA_DIST): Bring up to date.
983 * Makefile.in: Regenerate.
984 * src/frv/eabi.S: Remove RCS keyword.
985
bf8da5fc
RH
9862007-04-06 Richard Henderson <rth@redhat.com>
987
988 * configure.ac: Tidy target case.
989 (HAVE_LONG_DOUBLE): Allow the target to override.
990 * configure: Regenerate.
991 * include/ffi.h.in: Don't define ffi_type_foo if
992 LIBFFI_HIDE_BASIC_TYPES is defined.
993 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
994 to ffi_type_double.
995 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
996 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
997 (ffi_type_longdouble): Special case for Alpha. Don't define
998 if long double == double.
999
1000 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1001 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1002 (ffi_call, ffi_closure_osf_inner): Likewise.
1003 (ffi_closure_osf_inner): Likewise. Mark hidden.
1004 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1005 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1006 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1007 (load_table): Handle 128-bit long double.
1008
1009 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1010
8669fed1
TT
10112007-04-06 Tom Tromey <tromey@redhat.com>
1012
1013 PR libffi/31491:
1014 * README: Fixed bug in example.
1015
f0920e6c
JJ
10162007-04-03 Jakub Jelinek <jakub@redhat.com>
1017
1018 * src/closures.c: Include sys/statfs.h.
1019 (_GNU_SOURCE): Define on Linux.
1020 (FFI_MMAP_EXEC_SELINUX): Define.
1021 (selinux_enabled): New variable.
1022 (selinux_enabled_check): New function.
1023 (is_selinux_enabled): Define.
1024 (dlmmap): Use it.
1025
34a6ccda
UB
10262007-03-24 Uros Bizjak <ubizjak@gmail.com>
1027
1028 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1029 Use 'volatile float sum' to create sum of floats to avoid false
1030 negative due to excess precision on ix86 targets.
1031 (main): Ditto.
1032
8b9cf39e
AO
10332007-03-08 Alexandre Oliva <aoliva@redhat.com>
1034
1035 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1036 patch.
1037 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1038
18fa3240
AO
10392007-03-07 Alexandre Oliva <aoliva@redhat.com>
1040
1041 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1042 (ffi_prep_closure_loc): New.
1043 (ffi_prep_raw_closure_loc): New.
1044 (ffi_prep_java_raw_closure_loc): New.
1045 * src/closures.c: New file.
1046 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1047 Replace sflags with exec_offset.
1048 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1049 sub_segment_exec_offset): New macros.
1050 (get_segment_flags, set_segment_flags, check_segment_merge): New
1051 macros.
1052 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1053 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1054 destroy_mspace): Use new macros.
1055 (sys_alloc): Silence warning.
1056 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1057 * Makefile.in: Rebuilt.
1058 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1059 terms of ffi_prep_closure_loc.
1060 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1061 from...
1062 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1063 renamed version.
1064 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1065 adjusted from...
1066 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1067 the renamed version.
1068 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1069 (ffi_prep_closure): ... this.
1070 * src/pa/ffi.c: Likewise.
1071 * src/cris/ffi.c: Likewise. Adjust.
1072 * src/frv/ffi.c: Likewise.
1073 * src/ia64/ffi.c: Likewise.
1074 * src/mips/ffi.c: Likewise.
1075 * src/powerpc/ffi_darwin.c: Likewise.
1076 * src/s390/ffi.c: Likewise.
1077 * src/sh/ffi.c: Likewise.
1078 * src/sh64/ffi.c: Likewise.
1079 * src/sparc/ffi.c: Likewise.
1080 * src/x86/ffi64.c: Likewise.
1081 * src/x86/ffi.c: Likewise.
1082 (FFI_INIT_TRAMPOLINE): Adjust.
1083 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1084 (ffi_prep_raw_closure): ... this.
1085 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1086 (ffi_prep_closure): ... this.
1087 (flush_icache): Adjust.
1088
dd778331
AO
10892007-03-07 Alexandre Oliva <aoliva@redhat.com>
1090
1091 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1092 Lea's malloc.
1093
b5f8d49b
BM
10942007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1095
1096 * Makefile.am: Add dummy install-pdf target.
1097 * Makefile.in: Regenerate
1098
7a23933b
AK
10992007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1100
1101 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1102 ffi_closure_helper_SYSV): Add long double handling.
1103
8aaf4681
JJ
11042007-02-02 Jakub Jelinek <jakub@redhat.com>
1105
1106 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1107 immediately after bctrl instruction.
1108
0eb5e2b9
AO
11092007-01-18 Alexandre Oliva <aoliva@redhat.com>
1110
1111 * Makefile.am (all-recursive, install-recursive,
1112 mostlyclean-recursive, clean-recursive, distclean-recursive,
1113 maintainer-clean-recursive): Add missing targets.
1114 * Makefile.in: Rebuilt.
1115
f4f7486b
AT
11162006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1117
1118 * configure.ac: Add TARGET for x86_64-*-darwin*.
1119 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1120 for X86_DARWIN.
1121 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1122 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1123 * configure: Regenerate.
1124 * Makefile.in: Regenerate.
1125 * include/Makefile.in: Regenerate.
1126 * testsuite/Makefile.in: Regenerate.
1127 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1128 ffi_call only.
1129
3d5eafe2
AT
11302006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1131
1132 * aclocal.m4: Regenerate with aclocal -I .. as written in the
1133 Makefile.am.
1134
d5523ce1 11352006-10-31 Geoffrey Keating <geoffk@apple.com>
58182de3
GK
1136
1137 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1138 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1139 Darwin.
1140 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1141 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1142
a3bd50cc
PB
11432006-10-10 Paolo Bonzini <bonzini@gnu.org>
1144 Sandro Tolaini <tolaini@libero.it>
1145
1146 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
1147 conditional.
1148 * configure: Regenerated.
1149 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1150 (EXTRA_DIST): Add src/x86/darwin.S.
1151 * Makefile.in: Regenerated.
1152 * include/Makefile.in: Regenerated.
1153 * testsuite/Makefile.in: Regenerated.
1154
1155 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1156 X86_WIN32, and additionally align stack to 16 bytes.
1157 * src/x86/darwin.S: New, based on sysv.S.
1158 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1159
b095810f
DD
11602006-09-12 David Daney <ddaney@avtrex.com>
1161
1162 PR libffi/23935
1163 * include/Makefile.am: Install both ffi.h and ffitarget.h in
1164 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1165 * aclocal.m4: Regenerated for automake 1.9.6.
1166 * Makefile.in: Regenerated.
1167 * include/Makefile.in: Regenerated.
1168 * testsuite/Makefile.in: Regenerated.
1169
110b2db4
AT
11702006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1171
1172 * include/ffi_common.h (struct): Revert accidental commit.
1173
8e5fde87
AT
11742006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
1175
1176 * include/ffi_common.h: Remove lint directives.
1177 * include/ffi.h.in: Likewise.
1178
cb4132fe
TS
11792006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
1180
1181 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1182 for 32-bit architectures.
1183 * testsuite/libffi.call/return_ul.c: New test case.
1184
0d24c3fa
DD
11852006-07-19 David Daney <ddaney@avtrex.com>
1186
1187 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1188 xfail remains for mips64.
1189
8665824c
CD
11902006-05-23 Carlos O'Donell <carlos@codesourcery.com>
1191
1192 * Makefile.am: Add install-html target. Add install-html to .PHONY
1193 * Makefile.in: Regenerate.
1194 * aclocal.m4: Regenerate.
1195 * include/Makefile.in: Regenerate.
1196 * testsuite/Makefile.in: Regenerate.
1197
84e2e370
JDA
11982006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1199
1200 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1201 stack slot.
1202
ac6ed182
AT
12032006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
1204
1205 * README: Remove notice about 'Crazy Comments'.
1206 * src/debug.c: Remove lint directives. Cleanup white spaces.
1207 * src/java_raw_api.c: Likewise.
1208 * src/prep_cif.c: Likewise.
1209 * src/raw_api.c: Likewise.
1210 * src/ffitest.c: Delete. No longer needed, all test cases migrated
1211 to the testsuite.
1212 * src/arm/ffi.c: Remove lint directives.
1213 * src/m32r/ffi.c: Likewise.
1214 * src/pa/ffi.c: Likewise.
1215 * src/powerpc/ffi.c: Likewise.
1216 * src/powerpc/ffi_darwin.c: Likewise.
1217 * src/sh/ffi.c: Likewise.
1218 * src/sh64/ffi.c: Likewise.
1219 * src/x86/ffi.c: Likewise.
1220 * testsuite/libffi.call/float2.c: Likewise.
1221 * testsuite/libffi.call/promotion.c: Likewise.
1222 * testsuite/libffi.call/struct1.c: Likewise.
1223
b7211585
AT
12242006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
1225
1226 * src/pa/hpux32.S: Correct unwind offset calculation for
1227 ffi_closure_pa32.
1228 * src/pa/linux.S: Likewise.
1229
86066f9b
JW
12302006-04-12 James E Wilson <wilson@specifix.com>
1231
1232 PR libgcj/26483
1233 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
1234 (hfa_type_load): Call stf_spill.
1235 (hfa_type_store): Call ldf_fill.
1236 (ffi_call): Adjust calls to above routines. Add local temps for
1237 macro result.
b7211585 1238
615baed7
MK
12392006-04-10 Matthias Klose <doko@debian.org>
1240
1241 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
1242 directory names containing underscores.
1243
8e7a2b58
JW
12442006-04-07 James E Wilson <wilson@specifix.com>
1245
1246 * testsuite/libffi.call/float4.c: New testcase.
1247
e6c300ef
JDA
12482006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1249 Andreas Tobler <a.tobler@schweiz.ch>
1250
1251 * Makefile.am: Add PA_HPUX port.
1252 * Makefile.in: Regenerate.
1253 * include/Makefile.in: Likewise.
1254 * testsuite/Makefile.in: Likewise.
1255 * configure.ac: Add PA_HPUX rules.
1256 * configure: Regenerate.
1257 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
1258 Add PA_HPUX and PA64_HPUX.
1259 Rename FFI_LINUX ABI to FFI_PA32 ABI.
1260 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
1261 (FFI_TYPE_SMALL_STRUCT2): Define.
1262 (FFI_TYPE_SMALL_STRUCT4): Likewise.
1263 (FFI_TYPE_SMALL_STRUCT8): Likewise.
1264 (FFI_TYPE_SMALL_STRUCT3): Redefine.
1265 (FFI_TYPE_SMALL_STRUCT5): Likewise.
1266 (FFI_TYPE_SMALL_STRUCT6): Likewise.
1267 (FFI_TYPE_SMALL_STRUCT7): Likewise.
1268 * src/pa/ffi.c (ROUND_DOWN): Delete.
1269 (fldw, fstw, fldd, fstd): Use '__asm__'.
1270 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
1271 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
1272 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
1273 Simplify incrementing of stack slot variable. Change type of local
1274 'n' to unsigned int.
1275 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
1276 double on PA_HPUX.
1277 (ffi_prep_cif_machdep): Likewise.
1278 (ffi_call): Likewise.
1279 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
1280 return type to ffi_status. Simplify incrementing of stack slot
1281 variable. Only copy floating point argument registers when PA_LINUX
1282 is true. Reformat debug statement.
1283 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
1284 FFI_TYPE_SMALL_STRUCT8.
1285 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
1286 declaration.
1287 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
1288 Add nops to cache flush. Add trampoline for PA_HPUX.
1289 * src/pa/hpux32.S: New file.
1290 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
1291 ffi_prep_args_LINUX to ffi_prep_args_pa32.
1292 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
1293 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
1294 argument type checks so that common argument types appear first.
1295 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
1296 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
1297
75b8b1be
AM
12982006-03-24 Alan Modra <amodra@bigpond.net.au>
1299
1300 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
1301 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
1302 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
1303 FFI_TYPE_LONGDOUBLE.
1304 (ffi_prep_args64): Assert using IBM extended double.
1305 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
1306 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
1307 (ffi_call): Handle FFI_LINUX.
1308 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
1309 gpr3 return pointer as for struct return. Handle FFI_LINUX
1310 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
1311 unnecessarily.
1312 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
1313 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
1314 Don't use r6 as pointer to results, instead use sp offset. Don't
1315 make a special call to load lr with case table address, instead
1316 use offset from previous call.
1317 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
1318 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
1319 return.
1320
697701ad
KK
13212006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
1322
1323 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
1324 passed with FP registers correctly.
1325 (ffi_closure_helper_SYSV): Likewise.
1326 * src/sh64/sysv.S: Likewise.
1327
b295c471
AT
13282006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
1329
1330 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
1331 args and userdata unused.
1332 (closure_test_fn1): Mark cif and userdata unused.
1333 (main): Remove unused res.
1334
9fdeb13b
AT
13352006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
1336
1337 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
1338 -O2, -O3, -Os and the warning flags -W -Wall.
1339 * testsuite/libffi.special/special.exp: Likewise.
1340 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
1341 unused parameter unused for gcc or else do nothing.
1342 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1343 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
1344 and userdata unused.
1345 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
1346 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
1347 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
1348 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
1349 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
1350 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
1351 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
1352 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
1353 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
1354 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
1355 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
1356 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
1357 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
1358 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
1359 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
1360 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
1361 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
1362 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
1363 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
1364 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
1365 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
1366 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
1367 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
1368 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
1369 Likewise.
1370 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
1371 Likewise.
1372 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
1373 Likewise.
1374 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
1375 void* to avoid compiler warning.
1376 (main): Likewise.
1377 (cls_struct_align_gn): Mark cif and userdata unused.
1378 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
1379 Likewise.
1380 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
1381 Likewise.
1382 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
1383 Likewise.
1384 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
1385 Likewise.
1386 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
1387 Likewise.
1388 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
1389 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
1390 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
1391 data unused.
1392 (main): Cast res_call to silence gcc.
1393 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
1394 data unused.
1395 (main): Cast res_call to silence gcc.
1396 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
1397 and data unused.
1398 (main): Cast res_call to silence gcc.
1399 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
1400 data unused.
1401 (main): Cast res_call to silence gcc.
1402 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
1403 data unused.
1404 (main): Cast res_call to silence gcc.
1405 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
1406 and data unused.
1407 (main): Cast res_call to silence gcc.
1408 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
1409 userdata unused.
1410 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
1411 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
1412 userdata unused.
1413 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
1414 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
1415 userdata unused.
1416 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
1417 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
1418 userdata unused.
1419 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
1420 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
1421 userdata unused.
1422 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
1423 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
1424 and userdata unused.
1425 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
1426 userdata unused.
1427 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
1428 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
1429 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
1430 Cleanup white spaces.
1431 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
1432 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
1433 cif and userdata unused.
1434 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
1435 Likewise.
1436 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
1437 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
1438 formatters to silence gcc.
1439 (B_gn): Mark cif and userdata unused.
1440 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
1441 unused.
1442 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
1443 (B_gn): Mark cif and userdata unused.
1444 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
1445 unused.
1446 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
1447 (B_gn): Mark cif and userdata unused.
1448 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
1449 unused.
1450 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
1451 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
1452 * testsuite/libffi.call/problem1.c (stub): Likewise.
1453 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
1454 gcc.
1455 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
1456 in the last commit for this test case in the test case itself.
1457 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
1458 unused.
1459 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
1460 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
1461 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
1462 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
1463 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
1464 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
1465
0a4e2bb5
KK
14662006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
1467
1468 * src/sh/sysv.S: Fix register numbers in the FDE for
1469 ffi_closure_SYSV.
1470
723e5d5a
AT
14712006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
1472
1473 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
1474 declaration to avoid a false negative on ix86. See PR323.
1475
e097f887
KK
14762006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
1477
1478 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
1479 and cast integer to void * if needed. Update the pointer to
1480 the FP register saved area correctly.
1481
1a4878f7
AT
14822006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
1483
1484 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
1485 is fixed.
1486 * testsuite/libffi.call/nested_struct4.c: Likewise.
1487
b47b5e08
AT
14882006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
1489
6429d58f
AT
1490 * testsuite/libffi.call/return_dbl.c: New test case.
1491 * testsuite/libffi.call/return_dbl1.c: Likewise.
1492 * testsuite/libffi.call/return_dbl2.c: Likewise.
1493 * testsuite/libffi.call/return_fl.c: Likewise.
1494 * testsuite/libffi.call/return_fl1.c: Likewise.
1495 * testsuite/libffi.call/return_fl2.c: Likewise.
1496 * testsuite/libffi.call/return_fl3.c: Likewise.
1497 * testsuite/libffi.call/closure_fn6.c: Likewise.
1498
b47b5e08
AT
1499 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
1500 definition.
1501 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
1502 here to be used by other test cases too.
1503
1504 * testsuite/libffi.call/nested_struct10.c: New test case.
1505 * testsuite/libffi.call/nested_struct9.c: Likewise.
1506 * testsuite/libffi.call/nested_struct8.c: Likewise.
1507 * testsuite/libffi.call/nested_struct7.c: Likewise.
1508 * testsuite/libffi.call/nested_struct6.c: Likewise.
1509 * testsuite/libffi.call/nested_struct5.c: Likewise.
1510 * testsuite/libffi.call/nested_struct4.c: Likewise.
1511
9abe31d4
AT
15122006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
1513
1514 * configure.ac: Enable libffi for sparc64-*-freebsd*.
1515 * configure: Rebuilt.
1516
71aa1a70
JJ
15172006-01-18 Jakub Jelinek <jakub@redhat.com>
1518
1519 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
1520 instead do the shifting inline.
1521 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
1522 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
1523 and 8 byte structs, for the remaining struct sizes don't call
1524 __lshrdi3, instead do the shifting inline.
1525
8a39029d
TS
15262005-12-07 Thiemo Seufer <ths@networkno.de>
1527
1528 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
1529 missing parentheses.
1530 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
1531 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
1532 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
1533 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
1534 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
1535 FA_0_0_OFF2.
1536 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
1537 endianness bugs.
1538 (ffi_prep_closure): Improve trampoline instruction scheduling.
1539 (ffi_closure_mips_inner_O32): Fix endianness bugs.
1540
cd4241aa
AM
15412005-12-03 Alan Modra <amodra@bigpond.net.au>
1542
1543 * src/powerpc/ffi.c: Formatting.
1544 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
1545 (ffi_prep_args64): Likewise.
1546
0363db46
GK
15472005-09-30 Geoffrey Keating <geoffk@apple.com>
1548
1549 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
1550 darwin, use -shared-libgcc not -lgcc_s, and explain why.
1551
d674eb2f
TT
15522005-09-26 Tom Tromey <tromey@redhat.com>
1553
1554 * testsuite/libffi.call/float1.c (value_type): New typedef.
1555 (CANARY): New define.
1556 (main): Check for result buffer overflow.
1557 * src/powerpc/linux64.S: Handle linux64 long double returns.
1558 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
1559 (ffi_prep_cif_machdep): Handle linux64 long double returns.
1560
2d9c5743
AM
15612005-08-25 Alan Modra <amodra@bigpond.net.au>
1562
1563 PR target/23404
1564 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
1565 homed fp args.
1566 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
1567
8a42356f
JJ
15682005-08-11 Jakub Jelinek <jakub@redhat.com>
1569
1570 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
1571 (AH_BOTTOM): Add FFI_HIDDEN definition.
1572 * configure: Rebuilt.
1573 * fficonfig.h.in: Rebuilt.
1574 * src/powerpc/ffi.c (hidden): Remove.
1575 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
1576 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
1577 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
1578 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
1579 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
1580 add FFI_HIDDEN to its prototype.
1581 (ffi_closure_SYSV_inner): New.
1582 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1583 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1584
863c5508
AS
15852005-08-10 Alfred M. Szmidt <ams@gnu.org>
1586
1587 PR libffi/21819:
1588 * configure: Rebuilt.
1589 * configure.ac: Handle i*86-*-gnu*.
1590
6a26ea58
JJ
15912005-08-09 Jakub Jelinek <jakub@redhat.com>
1592
1593 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
1594 DW_CFA_offset_extended_sf rather than
1595 DW_CFA_GNU_negative_offset_extended.
1596 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
1597
583a92e8
ST
15982005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1599
1600 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
1601 on sh3.
1602 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
1603 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
1604 partially on register.
1605 (ffi_closure_helper_SYSV): Likewise.
1606 (ffi_prep_cif_machdep): Don't set too many cif->flags.
1607
5d0317fc
KK
16082005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
1609
1610 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
1611 Remove empty line.
1612 * src/sh64/ffi.c (simple_type): Remove.
1613 (return_type): Handle small structures correctly.
1614 (ffi_prep_args): Likewise.
1615 (ffi_call): Likewise.
1616 (ffi_closure_helper_SYSV): Likewise.
1617 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
1618 Emit position independent code if PIC and remove wrong datalabel
1619 prefixes from EH data.
1620
8d9fd5f5
AT
16212005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
1622
1623 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
1624 * Makefile.in: Regenerate.
1625 * include/Makefile.in: Likewise.
1626 * testsuite/Makefile.in: Likewise.
1627 * configure.ac: Add POWERPC_FREEBSD rules.
1628 * configure: Regenerate.
1629 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
1630 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
1631 * src/powerpc/ffi.c: Add flags to handle small structure returns
1632 in ffi_call_SYSV.
1633 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
1634 Aka FFI_SYSV.
1635 (ffi_closure_helper_SYSV): Likewise.
1636 * src/powerpc/ppc_closure.S: Add return types for small structures.
1637 * src/powerpc/sysv.S: Add bits to handle small structures for
1638 final SYSV 4 ABI.
1639
93c76f81
AT
16402005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
1641
1642 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
1643 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1644 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1645
b65da304
RC
16462005-07-05 Randolph Chung <tausq@debian.org>
1647
1648 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
1649 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
1650 structures. Kill compilation warnings.
1651 (ffi_closure_inner_LINUX): Print return values as hex in debug
1652 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
1653 Properly handle 5-7 byte structure returns.
1654 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
1655 (FFI_TYPE_SMALL_STRUCT2): Remove.
1656 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
1657 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
1658 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
1659 (checksmst1, checksmst2): Remove.
1660 (checksmst3): Optimize handling of 3-byte struct returns.
1661 (checksmst567): Properly handle 5-7 byte struct returns.
1662
2572f1c6
RO
16632005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1664
1665 PR libgcj/21943
1666 * src/mips/n32.S: Enforce PIC code.
1667 * src/mips/o32.S: Likewise.
1668
cc786582
RO
16692005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1670
1671 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1672 * configure: Regenerate.
1673
6d0d376c
AM
16742005-06-01 Alan Modra <amodra@bigpond.net.au>
1675
1676 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1677 to call ffi_closure_helper_SYSV. Append @local instead.
1678 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1679
a21946f5 16802005-05-17 Kelley Cook <kcook@gcc.gnu.org>
a097ef55
KC
1681
1682 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1683 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1684 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1685 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1686 include/Makefile.in, testsuite/Makefile.in: Regenerate.
1687
f4c767fd
MS
16882005-05-09 Mike Stump <mrs@apple.com>
1689
1690 * configure: Regenerate.
1691
7e15b5fe
RH
16922005-05-08 Richard Henderson <rth@redhat.com>
1693
1694 PR libffi/21285
1695 * src/alpha/osf.S: Update unwind into to match code.
1696
d56ea8d9
RH
16972005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
1698 Richard Henderson <rth@redhat.com>
1699
1700 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1701 bit 11 of flags.
1702 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
1703 (ffi_prep_closure): Set carry bit if sse-used flag set.
1704 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1705 Only load sse registers if ssecount non-zero.
1706 (ffi_closure_unix64): Only save sse registers if carry set on entry.
1707
17082005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
d948c201
RC
1709
1710 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1711 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1712 * configure: Regenerate.
1713
fc0ad8d9
HPN
17142005-04-20 Hans-Peter Nilsson <hp@axis.com>
1715
1716 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1717 have Tcl8.3-compatible intermediate variable.
1718
614348bb
SP
17192005-04-18 Simon Posnjak <simon.posnjak@siol.net>
1720 Hans-Peter Nilsson <hp@axis.com>
1721
1722 * Makefile.am: Add CRIS support.
1723 * configure.ac: Likewise.
29ede6db
HPN
1724 * Makefile.in, configure, testsuite/Makefile.in,
1725 include/Makefile.in: Regenerate.
614348bb
SP
1726 * src/cris: New directory.
1727 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1728 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
727e729b
HPN
1729
1730 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1731 \r?\n in output tests.
1732
6dab073b
MS
17332005-04-12 Mike Stump <mrs@apple.com>
1734
1735 * configure: Regenerate.
1736
51f55d7c
HB
17372005-03-30 Hans Boehm <Hans.Boehm@hp.com>
1738
1739 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
1740
7efa52a3
SE
17412005-03-30 Steve Ellcey <sje@cup.hp.com>
1742
1743 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
1744 (ffi_sarg) Ditto.
1745 * src/ia64/unix.S (ffi_closure_unix): Extend gp
1746 to 64 bits in ILP32 mode.
1747 Load 64 bits even for short data.
1748
1488177a
MS
17492005-03-23 Mike Stump <mrs@apple.com>
1750
1751 * src/powerpc/darwin.S: Update for -m64 multilib.
1752 * src/powerpc/darwin_closure.S: Likewise.
1753
c6900272
ZW
17542005-03-21 Zack Weinberg <zack@codesourcery.com>
1755
1756 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1757 Do not set tool_include_dir.
1758 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
1759 Regenerate.
1760 * include/Makefile.am: Set gcc_version and toollibffidir.
1761 * include/Makefile.in: Regenerate.
1762
962eea0a
AH
17632005-02-22 Andrew Haley <aph@redhat.com>
1764
1765 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
1766 odd-numbered register pairs for 64-bit integer types.
1767
1b05e8bf
AT
17682005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
1769
1770 PR libffi/20104
1771 * testsuite/libffi.call/return_ll1.c: New test case.
1772
6027770b
JJ
17732005-02-11 Janis Johnson <janis187@us.ibm.com>
1774
1775 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
1776 * testsuite/libffi.call/float.c: Ditto.
1777 * testsuite/libffi.call/float2.c: Ditto.
1778 * testsuite/libffi.call/float3.c: Ditto.
1779
ee31ea68
AT
17802005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
1781
1782 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
1783
c16be7d5
EB
17842005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1785
1786 * testsuite/libffi.special/special.exp (cxx_options): Add
1787 -shared-libgcc.
1788
5df07255
RH
17892004-12-31 Richard Henderson <rth@redhat.com>
1790
1791 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
1792 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
1793 offset parameters with a type parameter; deduce size and structure
1794 alignment. Update all users.
1795
81a69b13
RH
17962004-12-31 Richard Henderson <rth@redhat.com>
1797
1798 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
1799 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
c6900272 1800 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
81a69b13
RH
1801 into ffi_prep_closure.
1802 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
1803 from scratch.
1804
d833cfb0
RH
18052004-12-27 Richard Henderson <rth@redhat.com>
1806
1807 * src/x86/unix64.S: Fix typo in unwind info.
1808
1a0f488c
RH
18092004-12-25 Richard Henderson <rth@redhat.com>
1810
1811 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
1812 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
1813 (merge_classes): Check for it.
1814 (SSE_CLASS_P): New.
1815 (classify_argument): Pass byte_offset by value; perform all updates
1816 inside struct case.
1817 (examine_argument): Add classes argument; handle
1818 X86_64_COMPLEX_X87_CLASS.
1819 (ffi_prep_args): Merge into ...
1820 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
1821 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
1822 (ffi_fill_return_value): Remove.
1823 (ffi_prep_closure): Remove dead assert.
1824 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
1825 Rewrite to use struct register_args instead of va_list. Create
1826 flags for handling structure returns.
1827 * src/x86/unix64.S: Remove dead strings.
1828 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
1829 stack frame with ffi_call. Handle structure returns properly.
1830 (float2sse, floatfloat2sse, double2sse): Remove.
1831 (sse2float, sse2double, sse2floatfloat): Remove.
1832 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
1833 to handle structure returns properly.
1834
7994d50c
DE
18352004-12-08 David Edelsohn <edelsohn@gnu.org>
1836
1837 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
1838 PICFLAG.
1839 * Makefile.in: Regenerated.
1840
afabd8e6
RS
18412004-12-02 Richard Sandiford <rsandifo@redhat.com>
1842
1843 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1844 * configure, aclocal.m4, Makefile.in: Regenerate.
1845 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
1846
2539bffe
KC
18472004-11-29 Kelley Cook <kcook@gcc.gnu.org>
1848
1849 * configure: Regenerate for libtool change.
1850
767f726e
KC
18512004-11-25 Kelley Cook <kcook@gcc.gnu.org>
1852
1853 * configure: Regenerate for libtool reversion.
1854
2c92e90f
KC
18552004-11-24 Kelley Cook <kcook@gcc.gnu.org>
1856
1857 * configure: Regenerate for libtool change.
1858
1df8e834
JDA
18592004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1860
1861 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
1862
18632004-11-23 Richard Sandiford <rsandifo@redhat.com>
1864
1865 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1866 of jal. Use an absolute encoding for the frame information.
1867
18682004-11-23 Kelley Cook <kcook@gcc.gnu.org>
1869
1870 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
1871 * acinclude.m4: Delete logic for sincludes.
1872 * aclocal.m4, Makefile.in, configure: Regenerate.
1873 * include/Makefile: Likewise.
1874 * testsuite/Makefile: Likewise.
1875
bf02e7fa
EB
18762004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1877
1878 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1879 on a 8-byte boundary.
1880 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1881
f20459f1
RE
18822004-10-27 Richard Earnshaw <rearnsha@arm.com>
1883
1884 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1885 long long values. Round stack allocation to a multiple of 8 bytes
1886 for ATPCS compatibility.
1887 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1888 names. Handle returning long long types. Add Thumb and interworking
1889 support. Improve soft-float code.
1890
fdc69597
RE
18912004-10-27 Richard Earnshaw <rearnsha@arm.com>
1892
1893 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1894 (libffi_exit): New function.
1895 (libffi_init): Build the testglue wrapper if needed.
1896
1e02510f
EB
18972004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1898
1899 PR other/18138
1900 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1901
d9a193b2
KI
19022004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1903
1904 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1905
1fddb058
KK
19062004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
1907
1908 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1909 * testsuite/libffi.call/float3.c: New test case.
1910
e0d3b452
KK
19112004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
1912
1913 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1914 the function returning a structure pointed with R2.
1915 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1916 the structure return value if T bit set. Emit position
1917 independent code and EH data if PIC.
1918
a472e9d4
KI
19192004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1920
1921 * Makefile.am: Add m32r support.
1922 * configure.ac: Likewise.
1923 * Makefile.in: Regenerate.
1924 * confiugre: Regenerate.
1925 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1926 (uint64, sint64, double, longdouble)
1927 * src/m32r: New directory.
1928 * src/m32r/ffi.c: New file.
1929 * src/m32r/sysv.S: Likewise.
1930 * src/m32r/ffitarget.h: Likewise.
1931
3d47e9ca
KK
19322004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
1933
1934 * testsuite/libffi.call/negint.c: New test case.
1935
fc9051dd
L
19362004-09-14 H.J. Lu <hongjiu.lu@intel.com>
1937
1938 PR libgcj/17465
1939 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1940 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1941 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1942 DYLD_LIBRARY_PATH.
1943
2010caea
AT
19442004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1945
1946 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
1947 * testsuite/libffi.call/promotion.c: Likewise.
1948 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
1949 whitespaces.
1950 * testsuite/libffi.call/return_sc.c: Likewise.
1951 * testsuite/libffi.call/return_uc.c: Likewise.
1952
894be816
AT
19532004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1954
1955 * src/powerpc/darwin.S: Fix comments and identation.
1956 * src/powerpc/darwin_closure.S: Likewise.
1957
2fe7404a
AT
19582004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1959
1960 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
1961 (ffi_prep_args): Handle longdouble arguments.
1962 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
1963 longdouble.
1964 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
1965 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
1966 values.
1967 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
1968 * src/types.c: Defined longdouble size and alignment for darwin.
1969
16070e45
AT
19702004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1971
1972 * src/powerpc/aix.S: Remove whitespaces.
1973 * src/powerpc/aix_closure.S: Likewise.
1974 * src/powerpc/asm.h: Likewise.
1975 * src/powerpc/ffi.c: Likewise.
1976 * src/powerpc/ffitarget.h: Likewise.
1977 * src/powerpc/linux64.S: Likewise.
1978 * src/powerpc/linux64_closure.S: Likewise.
1979 * src/powerpc/ppc_closure.S: Likewise.
1980 * src/powerpc/sysv.S: Likewise.
1981
88d8c771
AG
19822004-08-30 Anthony Green <green@redhat.com>
1983
1984 * Makefile.am: Add frv support.
1985 * Makefile.in, testsuite/Makefile.in: Rebuilt.
1986 * configure.ac: Read configure.host.
1987 * configure.in: Read configure.host.
1988 * configure.host: New file. frv-elf needs libgloss.
1989 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
a23adb4d 1990 alignment. This is needed to frv and shouldn't harm the others.
88d8c771
AG
1991 * include/ffi_common.h (ALIGN_DOWN): New macro.
1992 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
1993
4c5f37d5
DD
19942004-08-24 David Daney <daney@avtrex.com>
1995
1996 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
1997 * testsuite/libffi.call/closure_fn1.c: Likewise.
1998 * testsuite/libffi.call/closure_fn2.c Likewise.
1999 * testsuite/libffi.call/closure_fn3.c: Likewise.
2000 * testsuite/libffi.call/closure_fn4.c: Likewise.
2001 * testsuite/libffi.call/closure_fn5.c: Likewise.
2002 * testsuite/libffi.call/cls_18byte.c: Likewise.
2003 * testsuite/libffi.call/cls_19byte.c: Likewise.
2004 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2005 * testsuite/libffi.call/cls_20byte.c: Likewise.
2006 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2007 * testsuite/libffi.call/cls_24byte.c: Likewise.
2008 * testsuite/libffi.call/cls_2byte.c: Likewise.
2009 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2010 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2011 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2012 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2013 * testsuite/libffi.call/cls_4byte.c: Likewise.
2014 * testsuite/libffi.call/cls_64byte.c: Likewise.
2015 * testsuite/libffi.call/cls_6byte.c: Likewise.
2016 * testsuite/libffi.call/cls_7byte.c: Likewise.
2017 * testsuite/libffi.call/cls_8byte.c: Likewise.
2018 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2019 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2020 * testsuite/libffi.call/cls_align_double.c: Likewise.
2021 * testsuite/libffi.call/cls_align_float.c: Likewise.
2022 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2023 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2024 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2025 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2026 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2027 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2028 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2029 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2030 * testsuite/libffi.call/cls_double.c: Likewise.
2031 * testsuite/libffi.call/cls_float.c: Likewise.
2032 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2033 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2034 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2035 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2036 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2037 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2038 * testsuite/libffi.call/cls_schar.c: Likewise.
2039 * testsuite/libffi.call/cls_sint.c: Likewise.
2040 * testsuite/libffi.call/cls_sshort.c: Likewise.
2041 * testsuite/libffi.call/cls_uchar.c: Likewise.
2042 * testsuite/libffi.call/cls_uint.c: Likewise.
2043 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2044 * testsuite/libffi.call/cls_ushort.c: Likewise.
2045 * testsuite/libffi.call/nested_struct.c: Likewise.
2046 * testsuite/libffi.call/nested_struct1.c: Likewise.
2047 * testsuite/libffi.call/nested_struct2.c: Likewise.
2048 * testsuite/libffi.call/nested_struct3.c: Likewise.
2049 * testsuite/libffi.call/problem1.c: Likewise.
2050 * testsuite/libffi.special/unwindtest.cc: Likewise.
2051 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2052 to zero.
2053 * testsuite/libffi.call/cls_16byte.c: Likewise.
2054 * testsuite/libffi.call/cls_5byte.c: Likewise.
2055
39dca114
DD
20562004-08-23 David Daney <daney@avtrex.com>
2057
2058 PR libgcj/13141
2059 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2060 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2061 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2062 parameters and return types.
2063 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2064 (ffi_prep_closure): Ditto.
2065 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2066 alignment calculations.
2067 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2068 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2069
b790003a
CM
20702004-08-14 Casey Marshall <csm@gnu.org>
2071
2072 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2073 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2074 integer (O32 ABI only).
2075 (ffi_prep_closure): new function.
2076 (ffi_closure_mips_inner_O32): new function.
c6900272 2077 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
b790003a
CM
2078 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2079 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2080 64 bit integers correctly.
2081 (ffi_closure_O32): new function.
2082 Added DWARF-2 unwind info for both functions.
2083
547d71a1
AH
20842004-08-10 Andrew Haley <aph@redhat.com>
2085
2086 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2087
98a5bb3b
RM
20882004-08-01 Robert Millan <robertmh@gnu.org>
2089
2090 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2091 * configure: Regenerate.
2092
4d447364
MR
20932004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2094
2095 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2096 and mmap() explicitly instead of relying on preset autoconf cache
2097 variables.
2098 * aclocal.m4: Regenerate.
2099 * configure: Regenerate.
2100
e5dce82f
UW
21012004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2102
2103 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2104 (ffi_check_float_struct): Remove unused prototype.
2105
e6a0022b
GK
21062004-06-30 Geoffrey Keating <geoffk@apple.com>
2107
2108 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2109 character on Darwin, use '\n\t' instead.
2110
5a2d52ca
MK
21112004-06-26 Matthias Klose <doko@debian.org>
2112
2113 * libtool-version: Fix typo in revision/age.
2114
401844ef
MK
21152004-06-17 Matthias Klose <doko@debian.org>
2116
2117 * libtool-version: New.
2118 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2119 * Makefile.in: Regenerate.
2120
94632047 21212004-06-15 Paolo Bonzini <bonzini@gnu.org>
076e5443
PB
2122
2123 * Makefile.am: Remove useless multilib rules.
2124 * Makefile.in: Regenerate.
2125 * aclocal.m4: Regenerate with automake 1.8.5.
2126 * configure.ac: Remove useless multilib configury.
2127 * configure: Regenerate.
2128
94632047 21292004-06-15 Paolo Bonzini <bonzini@gnu.org>
9ac926b1
PB
2130
2131 * .cvsignore: New file.
2132
37c849e4
JJ
21332004-06-10 Jakub Jelinek <jakub@redhat.com>
2134
2135 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2136 fp_done.
2137 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2138 changed from 8.
2139
cb623172
SM
21402004-06-06 Sean McNeil <sean@mcneil.com>
2141
2142 * configure.ac: Add x86_64-*-freebsd* support.
2143 * configure: Regenerate.
2144
c9b93377
JB
21452004-04-26 Joe Buck <jbuck@welsh-buck.org>
2146
2147 Bug 15093
2148 * configure.ac: Test for existence of mmap and sys/mman.h before
2149 checking blacklist. Fix suggested by Jim Wilson.
2150 * configure: Regenerate.
2151
cf90fd1b
MA
21522004-04-26 Matt Austern <austern@apple.com>
2153
2154 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2155 FDE location.
2156 * src/powerpc/darwin_closure.S: Likewise.
c6900272 2157
67781b44
AT
21582004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
2159
2160 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2161 error. Reported by Thomas Heller <theller@python.net>.
2162 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2163 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2164
14b078a8
MK
21652004-03-20 Matthias Klose <doko@debian.org>
2166
2167 * src/pa/linux.S: Fix typo.
2168
d65a810f
MK
21692004-03-19 Matthias Klose <doko@debian.org>
2170
67781b44 2171 * Makefile.am: Update.
d65a810f
MK
2172 * Makefile.in: Regenerate.
2173 * src/pa/ffi.h.in: Remove.
2174 * src/pa/ffitarget.h: New file.
2175
21762004-02-10 Randolph Chung <tausq@debian.org>
2177
2178 * Makefile.am: Add PA support.
2179 * Makefile.in: Regenerate.
2180 * include/Makefile.in: Regenerate.
2181 * configure.ac: Add PA target.
2182 * configure: Regenerate.
2183 * src/pa/ffi.c: New file.
2184 * src/pa/ffi.h.in: Add PA support.
2185 * src/pa/linux.S: New file.
2186 * prep_cif.c: Add PA support.
2187
09cababc
HY
21882004-03-16 Hosaka Yuji <hos@tamanegi.org>
2189
2190 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2191 double.
2192 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2193 with ecif->cif->flags.
2194 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2195 with cif->flags.
2196 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2197 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2198 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2199 sc_retstruct2b): Add for 1 or 2-bytes struct case.
2200
0e8d0c5f
KC
22012004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2202
2203 * configure.in: Rename file to ...
2204 * configure.ac: ... this.
2205 * fficonfig.h.in: Regenerate.
2206 * Makefile.in: Regenerate.
2207 * include/Makefile.in: Regenerate.
2208 * testsuite/Makefile.in: Regenerate.
2209
b8d50739
MA
22102004-03-12 Matt Austern <austern@apple.com>
2211
2212 * src/powerpc/darwin.S: Fix EH information so it corresponds to
2213 changes in EH format resulting from addition of linkonce support.
2214 * src/powerpc/darwin_closure.S: Likewise.
09cababc 2215
3ed8e5b6
AT
22162004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
2217 Paolo Bonzini <bonzini@gnu.org>
2218
2219 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2220 Remove VPATH. Remove rules for object files. Remove multilib support.
2221 (AM_CCASFLAGS): Add.
2222 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2223 (AC_PREREQ): Bump version to 2.59.
2224 (AC_INIT): Fill with version info and bug address.
2225 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2226 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2227 De-precious CC so that the right flags are passed down to multilibs.
2228 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2229 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2230 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2231 * configure: Rebuilt.
2232 * aclocal.m4: Likewise.
2233 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2234 * fficonfig.h.in: Likewise.
2235
254ea477
AS
22362004-03-11 Andreas Schwab <schwab@suse.de>
2237
2238 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
2239 arguments from fp registers only for the first 8 parameter slots.
2240 Don't convert a float parameter when passed in memory.
2241
3beb1315
HPN
22422004-03-09 Hans-Peter Nilsson <hp@axis.com>
2243
2244 * configure: Regenerate for config/accross.m4 correction.
2245
fecf735c
MK
22462004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
2247
2248 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
2249 ecif->cif->bytes to bytes.
2250 (ffi_prep_cif_machdep): Add braces around nested if statement.
2251
4243752c
AM
22522004-02-09 Alan Modra <amodra@bigpond.net.au>
2253
12001e0f
AM
2254 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
2255
4243752c
AM
2256 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
2257 (ffi_closure_helper_LINUX64): Fix typo.
2258 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
2259 for powerpc64-*-*.
2260 * testsuite/libffi.call/float.c: Likewise.
2261 * testsuite/libffi.call/float2.c: Likewise.
2262
bf310028
AM
22632004-02-08 Alan Modra <amodra@bigpond.net.au>
2264
2265 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
2266 long double function return and long double arg handling.
2267 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
2268 Use "end_pfr" instead of "nf". Correct long double handling.
2269 Localise "temp".
2270 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
2271 return value.
2272 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
2273 space for long double return value. Adjust stack frame and offsets.
2274 Load f2 long double return.
2275
dd5f9ea2
AM
22762004-02-07 Alan Modra <amodra@bigpond.net.au>
2277
2278 * src/types.c: Use 16 byte long double for POWERPC64.
2279
0ce78f01
EB
22802004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2281
2282 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
2283 when the structure return address is passed in %o0.
2284 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
2285 (ffi_v9_layout_struct): Align the field following a nested structure
2286 on a word boundary. Use memmove instead of memcpy.
2287 (ffi_call): Update call to ffi_V9_return_struct.
2288 (ffi_prep_closure): Define 'ctx' only for V8.
2289 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
2290 and ffi_closure_sparc_inner_v9.
2291 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
2292 Always skip the structure return address. For structures and long
2293 doubles, copy the argument directly.
2294 (ffi_closure_sparc_inner_v9): Skip the structure return address only
2295 if required. Shift the maximum floating-point slot accordingly. For
2296 big structures, copy the argument directly; otherwise, left-justify the
2297 argument and call ffi_v9_layout_struct to lay out the structure on
2298 the stack.
2299 * src/sparc/v8.S: Undef STACKFRAME before defining it.
2300 (ffi_closure_v8): Pass the structure return address. Update call to
2301 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
2302 Skip the 'unimp' insn when returning long doubles and structures.
2303 * src/sparc/v9.S: Undef STACKFRAME before defining it.
2304 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
2305 FFI_TYPE_INT handling. Load structures both in integers and
2306 floating-point registers on return.
2307 * README: Update status of the SPARC port.
2308
7fcc1d9b
AT
23092004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
2310
2311 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
2312 as of type ffi_arg.
2313 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
2314
6ed0ecaf
UW
23152004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
2316
2317 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
2318 value as of type ffi_arg, not unsigned int.
2319
c930d8a5
MR
23202004-01-21 Michael Ritzert <ritzert@t-online.de>
2321
2322 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
2323 of the LHS.
2324
7b2e3e60
AT
23252004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
2326
2327 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
2328 Solaris.
2329
2e89756b
RO
23302004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2331
2332 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
2333 to void *.
2334
628b26f8
RH
23352003-12-10 Richard Henderson <rth@redhat.com>
2336
2337 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
2338 size_t instead of int.
2339
0ee646d6
HY
23402003-12-04 Hosaka Yuji <hos@tamanegi.org>
2341
2342 * testsuite/libffi.call/many_win32.c: Include <float.h>.
2343 * testsuite/libffi.call/many_win32.c (main): Replace variable
2344 int i with unsigned long ul.
2345
2346 * testsuite/libffi.call/cls_align_uint64.c: New test case.
2347 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2348 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2349 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2350 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2351 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2352 * testsuite/libffi.call/cls_align_float.c: Likewise.
2353 * testsuite/libffi.call/cls_align_double.c: Likewise.
2354 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2355 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2356
2c4ed456
HY
23572003-12-02 Hosaka Yuji <hos@tamanegi.org>
2358
2359 PR other/13221
2360 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
2361 Align arguments to 32 bits.
2362
d18c3386
AT
23632003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
2364
2365 PR other/13221
2366 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
2367 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2368 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2369 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2370 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2371 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2372
2373 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
2374
88096b2a
KG
23752003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2376
2377 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
2378 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2379
3eee102e
AT
23802003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
2381
2382 * Makefile.in: Rebuilt.
2383 * configure: Likewise.
2384 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
2385 the right type.
2386
5196736e
AJ
23872003-11-21 Andreas Jaeger <aj@suse.de>
2388 Andreas Tobler <a.tobler@schweiz.ch>
2389
2390 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
2391 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
2392 * Makefile.in: Rebuilt.
2393 * aclocal.m4: Likewise.
2394 * configure: Likewise.
2395 * fficonfig.h.in: Likewise.
2396 * testsuite/lib/libffi-dg.exp: Add include dir.
2397 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
2398 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2399 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
2400 for ffi_closure if available.
2401 * testsuite/libffi.call/closure_fn1.c: Likewise.
2402 * testsuite/libffi.call/closure_fn2.c: Likewise.
2403 * testsuite/libffi.call/closure_fn3.c: Likewise.
2404 * testsuite/libffi.call/closure_fn4.c: Likewise.
2405 * testsuite/libffi.call/closure_fn5.c: Likewise.
2406 * testsuite/libffi.call/cls_12byte.c: Likewise.
2407 * testsuite/libffi.call/cls_16byte.c: Likewise.
2408 * testsuite/libffi.call/cls_18byte.c: Likewise.
2409 * testsuite/libffi.call/cls_19byte.c: Likewise.
2410 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2411 * testsuite/libffi.call/cls_20byte.c: Likewise.
2412 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2413 * testsuite/libffi.call/cls_24byte.c: Likewise.
2414 * testsuite/libffi.call/cls_2byte.c: Likewise.
2415 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2416 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2417 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2418 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2419 * testsuite/libffi.call/cls_4byte.c: Likewise.
2420 * testsuite/libffi.call/cls_5byte.c: Likewise.
2421 * testsuite/libffi.call/cls_64byte.c: Likewise.
2422 * testsuite/libffi.call/cls_6byte.c: Likewise.
2423 * testsuite/libffi.call/cls_7byte.c: Likewise.
2424 * testsuite/libffi.call/cls_8byte.c: Likewise.
2425 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2426 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2427 * testsuite/libffi.call/cls_double.c: Likewise.
2428 * testsuite/libffi.call/cls_float.c: Likewise.
2429 * testsuite/libffi.call/cls_schar.c: Likewise.
2430 * testsuite/libffi.call/cls_sint.c: Likewise.
2431 * testsuite/libffi.call/cls_sshort.c: Likewise.
2432 * testsuite/libffi.call/cls_uchar.c: Likewise.
2433 * testsuite/libffi.call/cls_uint.c: Likewise.
2434 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2435 * testsuite/libffi.call/cls_ushort.c: Likewise.
2436 * testsuite/libffi.call/nested_struct.c: Likewise.
2437 * testsuite/libffi.call/nested_struct1.c: Likewise.
2438 * testsuite/libffi.call/nested_struct2.c: Likewise.
2439 * testsuite/libffi.call/nested_struct3.c: Likewise.
2440 * testsuite/libffi.call/problem1.c: Likewise.
2441 * testsuite/libffi.special/unwindtest.cc: Likewise.
2442
9e6c3ecb
AT
24432003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
2444
2445 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
2446
70d8f2a1
AT
24472003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
2448
2449 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2450 Add -lgcc_s to additional flags.
2451
ea81d2a3
AT
24522003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
2453
2454 * configure.in, include/Makefile.am: PR libgcj/11147, install
2455 the ffitarget.h header file in a gcc versioned and target
2456 dependent place.
2457 * configure: Regenerated.
2458 * Makefile.in, include/Makefile.in: Likewise.
2459 * testsuite/Makefile.in: Likewise.
2460
647af4a9
AT
24612003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
2462
2463 * testsuite/libffi.call/closure_fn0.c: Print result and check
2464 with dg-output to make debugging easier.
2465 * testsuite/libffi.call/closure_fn1.c: Likewise.
2466 * testsuite/libffi.call/closure_fn2.c: Likewise.
2467 * testsuite/libffi.call/closure_fn3.c: Likewise.
2468 * testsuite/libffi.call/closure_fn4.c: Likewise.
2469 * testsuite/libffi.call/closure_fn5.c: Likewise.
2470 * testsuite/libffi.call/cls_12byte.c: Likewise.
2471 * testsuite/libffi.call/cls_16byte.c: Likewise.
2472 * testsuite/libffi.call/cls_18byte.c: Likewise.
2473 * testsuite/libffi.call/cls_19byte.c: Likewise.
2474 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2475 * testsuite/libffi.call/cls_20byte.c: Likewise.
2476 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2477 * testsuite/libffi.call/cls_24byte.c: Likewise.
2478 * testsuite/libffi.call/cls_2byte.c: Likewise.
2479 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2480 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2481 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2482 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2483 * testsuite/libffi.call/cls_4byte.c: Likewise.
2484 * testsuite/libffi.call/cls_5byte.c: Likewise.
2485 * testsuite/libffi.call/cls_64byte.c: Likewise.
2486 * testsuite/libffi.call/cls_6byte.c: Likewise.
2487 * testsuite/libffi.call/cls_7byte.c: Likewise.
2488 * testsuite/libffi.call/cls_8byte.c: Likewise.
2489 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2490 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2491 * testsuite/libffi.call/cls_double.c: Likewise.
2492 * testsuite/libffi.call/cls_float.c: Likewise.
2493 * testsuite/libffi.call/cls_schar.c: Likewise.
2494 * testsuite/libffi.call/cls_sint.c: Likewise.
2495 * testsuite/libffi.call/cls_sshort.c: Likewise.
2496 * testsuite/libffi.call/cls_uchar.c: Likewise.
2497 * testsuite/libffi.call/cls_uint.c: Likewise.
2498 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2499 * testsuite/libffi.call/cls_ushort.c: Likewise.
2500 * testsuite/libffi.call/problem1.c: Likewise.
2501
2502 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
2503 static.
2504
ac47cc13
AT
25052003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
2506
2507 * testsuite/libffi.call/cls_9byte2.c: New test case.
2508 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2509 * testsuite/libffi.call/cls_64byte.c: Likewise.
2510 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2511 * testsuite/libffi.call/cls_19byte.c: Likewise.
2512 * testsuite/libffi.call/cls_18byte.c: Likewise.
2513 * testsuite/libffi.call/closure_fn4.c: Likewise.
2514 * testsuite/libffi.call/closure_fn5.c: Likewise.
2515 * testsuite/libffi.call/cls_schar.c: Likewise.
2516 * testsuite/libffi.call/cls_sint.c: Likewise.
2517 * testsuite/libffi.call/cls_sshort.c: Likewise.
2518 * testsuite/libffi.call/nested_struct2.c: Likewise.
2519 * testsuite/libffi.call/nested_struct3.c: Likewise.
2520
f145ed6b
AT
25212003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
2522
2523 * testsuite/libffi.call/cls_double.c: Do a check on the result.
2524 * testsuite/libffi.call/cls_uchar.c: Likewise.
2525 * testsuite/libffi.call/cls_uint.c: Likewise.
2526 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2527 * testsuite/libffi.call/cls_ushort.c: Likewise.
2528 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2529
2b04d015
AT
25302003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
2531
2532 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
2533 the initialization.
2534
57f542b3
AT
25352003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
2536
2b04d015 2537 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
57f542b3
AT
2538 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2539
e61acf72
DD
25402003-10-22 David Daney <ddaney@avtrex.com>
2541
2542 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2543 __attribute__((__mode__(__SI__))) and friends.
2544
2461c08b
AS
25452003-10-22 Andreas Schwab <schwab@suse.de>
2546
2547 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2548
1450eb7a
AT
25492003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
2550
2551 * configure.in: AC_LINK_FILES(ffitarget.h).
2552 * configure: Regenerate.
2553 * Makefile.in: Likewise.
2554 * include/Makefile.in: Likewise.
2555 * testsuite/Makefile.in: Likewise.
2556 * fficonfig.h.in: Likewise.
2557
25582003-10-21 Paolo Bonzini <bonzini@gnu.org>
2559 Richard Henderson <rth@redhat.com>
2560
2561 Avoid that ffi.h includes fficonfig.h.
2562
2563 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
2564 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2565 (TARGET_SRC_MIPS_SGI): Removed.
2566 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2567 (MIPS_SGI): Removed.
2568 (CLEANFILES): Removed.
2569 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2570 targets.
2571 * acconfig.h: Removed.
2572 * configure.in: Compute sizeofs only for double and long double.
2573 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
2574 into AC_DEFINE instead of using acconfig.h. Create
2575 include/ffitarget.h instead of include/fficonfig.h. Rename
2576 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2577 AC_DEFINE EH_FRAME_FLAGS.
2578 * include/Makefile.am (DISTCLEANFILES): New automake macro.
2579 (hack_DATA): Add ffitarget.h.
2580 * include/ffi.h.in: Remove all system specific definitions.
2581 Declare raw API even if it is not installed, why bother?
2582 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
2583 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
2584 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
2585 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2586 * include/ffi_common.h (bool): Do not define.
2587 (ffi_assert): Accept failed assertion.
2588 (ffi_type_test): Return void and accept file/line.
2589 (FFI_ASSERT): Pass stringized failed assertion.
2590 (FFI_ASSERT_AT): New macro.
2591 (FFI_ASSERT_VALID_TYPE): New macro.
2592 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2593 UINT64, SINT64): Define here with gcc's __attribute__ macro
2594 instead of in ffi.h
2595 (FLOAT32, ALIGN): Define here instead of in ffi.h
2596 * include/ffi-mips.h: Removed. Its content moved to
2597 src/mips/ffitarget.h after separating assembly and C sections.
2598 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2599 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2600 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2601 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2602 SIZEOF_ARG -> FFI_SIZEOF_ARG.
2603 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2604 * src/debug.c (ffi_assert): Accept stringized failed assertion.
2605 (ffi_type_test): Rewritten.
2606 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2607 FFI_ASSERT_VALID_TYPE.
2608 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
2609 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2610 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2611 src/s390/ffitarget.h, src/sh/ffitarget.h,
2612 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2613 src/x86/ffitarget.h: New files.
2614 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2615 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2616 src/powerpc/aix.S, src/powerpc/darwin.S,
2617 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2618 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2619 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2620 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2621 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2622 include fficonfig.h
2623
27d54b2a
RO
26242003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2625
2626 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2627 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2628
0df6970d
AT
26292003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
2630
2631 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2632 Used when FFI_DEBUG = 1.
2633
2612ffce
AM
26342003-10-14 Alan Modra <amodra@bigpond.net.au>
2635
2636 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2637 and align.
2638
d54f7354
RO
26392003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2640
2641 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2642 FFI_MIPS_O32 for O32 ABI.
2643
7a54c850
AT
26442003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
2645
2646 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2647 SPARC64. Cleanup whitespaces.
2648
9e3bfa9b
AT
26492003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
2650
2651 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2652 strongarm, xscale. Cleanup whitespaces.
2653 * testsuite/libffi.call/closure_fn1.c: Likewise.
2654 * testsuite/libffi.call/closure_fn2.c: Likewise.
2655 * testsuite/libffi.call/closure_fn3.c: Likewise.
2656 * testsuite/libffi.call/cls_12byte.c: Likewise.
2657 * testsuite/libffi.call/cls_16byte.c: Likewise.
2658 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2659 * testsuite/libffi.call/cls_20byte.c: Likewise.
2660 * testsuite/libffi.call/cls_24byte.c: Likewise.
2661 * testsuite/libffi.call/cls_2byte.c: Likewise.
2662 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2663 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2664 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2665 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2666 * testsuite/libffi.call/cls_4byte.c: Likewise.
2667 * testsuite/libffi.call/cls_5byte.c: Likewise.
2668 * testsuite/libffi.call/cls_6byte.c: Likewise.
2669 * testsuite/libffi.call/cls_7byte.c: Likewise.
2670 * testsuite/libffi.call/cls_8byte.c: Likewise.
2671 * testsuite/libffi.call/cls_double.c: Likewise.
2672 * testsuite/libffi.call/cls_float.c: Likewise.
2673 * testsuite/libffi.call/cls_uchar.c: Likewise.
2674 * testsuite/libffi.call/cls_uint.c: Likewise.
2675 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2676 * testsuite/libffi.call/cls_ushort.c: Likewise.
2677 * testsuite/libffi.call/nested_struct.c: Likewise.
2678 * testsuite/libffi.call/nested_struct1.c: Likewise.
2679 * testsuite/libffi.call/problem1.c: Likewise.
2680 * testsuite/libffi.special/unwindtest.cc: Likewise.
2681 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2682
3e86b595
DE
26832003-09-18 David Edelsohn <edelsohn@gnu.org>
2684
2685 * src/powerpc/aix.S: Cleanup whitespaces.
2686 * src/powerpc/aix_closure.S: Likewise.
2687
8d8369f8
AT
26882003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2689
2690 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2691 * src/powerpc/darwin_closure.S: Likewise.
2692 * src/powerpc/ffi_darwin.c: Likewise.
2693
69b182fd
AT
26942003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2695 David Edelsohn <edelsohn@gnu.org>
2696
2697 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2698 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2699 parameter stack.
2700 * src/powerpc/darwin_closure.S: Likewise.
2701 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2702 according to the Darwin/AIX ABI.
2703 (ffi_prep_cif_machdep): Likewise.
2704 (ffi_closure_helper_DARWIN): Likewise.
2705 Remove the outgoing parameter stack logic. Simplify the evaluation
2706 of the different CASE types.
2707 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2708 statement in the trampoline code.
2709
df805cdc
KK
27102003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
2711
2712 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2713 for the register size.
2714 (ffi_closure_helper_SYSV): Handle the structure return value
2715 address correctly.
2716 (ffi_closure_helper_SYSV): Return the appropriate type when
2717 the registers are used for the structure return value.
2718 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2719 the 64-bit return value. Update copyright years.
2720
eb26c76c
RO
27212003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2722
2723 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2724 srcdir for ffi_mips.h.
2725
6350c02c
AM
27262003-09-12 Alan Modra <amodra@bigpond.net.au>
2727
2728 * src/prep_cif.c (initialize_aggregate): Include tail padding in
2729 structure size.
2730 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2731 placement of float result.
2732 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2733 cast of "resp" for big-endian 64 bit machines.
2734
5af1c806
AM
27352003-09-11 Alan Modra <amodra@bigpond.net.au>
2736
2737 * src/types.c (double, longdouble): Merge identical SH and ARM
2738 typedefs, and add POWERPC64.
2739 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2740 struct split over gpr and rest.
2741 (ffi_prep_cif_machdep): Correct intarg_count for structures.
2742 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2743
086a4bd7
AT
27442003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
2745
2746 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2747 passing correctly.
c930d8a5 2748
e517f636
AM
27492003-09-09 Alan Modra <amodra@bigpond.net.au>
2750
2751 * configure: Regenerate.
2752
6f20d627
AT
27532003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2754
2755 * Makefile.am: Remove build rules for ffitest.
2756 * Makefile.in: Rebuilt.
c930d8a5 2757
6f20d627 27582003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
226660af
AT
2759
2760 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2761 about implicit declaration of abort().
2762
bbf3057b
AT
27632003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2764
2765 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2766 * Makefile.in: Rebuilt.
2767 * configure.in: Add dejagnu test framework.
2768 * configure: Rebuilt.
2769
2770 * testsuite/Makefile.am: New file.
2771 * testsuite/Makefile.in: Built
c930d8a5 2772 * testsuite/lib/libffi-dg.exp: New file.
bbf3057b
AT
2773 * testsuite/config/default.exp: Likewise.
2774 * testsuite/libffi.call/call.exp: Likewise.
2775 * testsuite/libffi.call/ffitest.h: Likewise.
2776 * testsuite/libffi.call/closure_fn0.c: Likewise.
2777 * testsuite/libffi.call/closure_fn1.c: Likewise.
2778 * testsuite/libffi.call/closure_fn2.c: Likewise.
2779 * testsuite/libffi.call/closure_fn3.c: Likewise.
2780 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2781 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2782 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2783 * testsuite/libffi.call/cls_2byte.c: Likewise.
2784 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2785 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2786 * testsuite/libffi.call/cls_4byte.c: Likewise.
2787 * testsuite/libffi.call/cls_5byte.c: Likewise.
2788 * testsuite/libffi.call/cls_6byte.c: Likewise.
2789 * testsuite/libffi.call/cls_7byte.c: Likewise.
2790 * testsuite/libffi.call/cls_8byte.c: Likewise.
2791 * testsuite/libffi.call/cls_12byte.c: Likewise.
2792 * testsuite/libffi.call/cls_16byte.c: Likewise.
2793 * testsuite/libffi.call/cls_20byte.c: Likewise.
2794 * testsuite/libffi.call/cls_24byte.c: Likewise.
2795 * testsuite/libffi.call/cls_double.c: Likewise.
2796 * testsuite/libffi.call/cls_float.c: Likewise.
2797 * testsuite/libffi.call/cls_uchar.c: Likewise.
2798 * testsuite/libffi.call/cls_uint.c: Likewise.
2799 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2800 * testsuite/libffi.call/cls_ushort.c: Likewise.
2801 * testsuite/libffi.call/float.c: Likewise.
2802 * testsuite/libffi.call/float1.c: Likewise.
2803 * testsuite/libffi.call/float2.c: Likewise.
2804 * testsuite/libffi.call/many.c: Likewise.
2805 * testsuite/libffi.call/many_win32.c: Likewise.
2806 * testsuite/libffi.call/nested_struct.c: Likewise.
2807 * testsuite/libffi.call/nested_struct1.c: Likewise.
2808 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
2809 * testsuite/libffi.call/problem1.c: Likewise.
2810 * testsuite/libffi.call/promotion.c: Likewise.
2811 * testsuite/libffi.call/return_ll.c: Likewise.
2812 * testsuite/libffi.call/return_sc.c: Likewise.
2813 * testsuite/libffi.call/return_uc.c: Likewise.
2814 * testsuite/libffi.call/strlen.c: Likewise.
2815 * testsuite/libffi.call/strlen_win32.c: Likewise.
2816 * testsuite/libffi.call/struct1.c: Likewise.
2817 * testsuite/libffi.call/struct2.c: Likewise.
2818 * testsuite/libffi.call/struct3.c: Likewise.
2819 * testsuite/libffi.call/struct4.c: Likewise.
2820 * testsuite/libffi.call/struct5.c: Likewise.
2821 * testsuite/libffi.call/struct6.c: Likewise.
2822 * testsuite/libffi.call/struct7.c: Likewise.
2823 * testsuite/libffi.call/struct8.c: Likewise.
c930d8a5 2824 * testsuite/libffi.call/struct9.c: Likewise.
bbf3057b
AT
2825 * testsuite/libffi.special/special.exp: New file.
2826 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2827 * testsuite/libffi.special/unwindtest.cc: Likewise.
2828
c930d8a5 2829
996b4f8f
KK
28302003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
2831
2832 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
2833 copyright years.
2834
b00badcd
AM
28352003-08-02 Alan Modra <amodra@bigpond.net.au>
2836
2837 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2838 structure passing.
2839 (ffi_closure_helper_LINUX64): Likewise.
2840 * src/powerpc/linux64.S: Remove code writing to parm save area.
2841 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2842 address in lr from ffi_closure_helper_LINUX64 call to calculate
2843 table address. Optimize function tail.
2844
c1516eae
AT
28452003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
2846
2847 * src/sparc/ffi.c: Handle all floating point registers.
2848 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2849
fc0e6222
GP
28502003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2851
2852 * README: Note that libffi is not part of GCC. Update the project
2853 URL and status.
2854
a1569df8
FS
28552003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2856
2857 * src/powerpc/ppc_closure.S: Include ffi.h.
2858
12e816bf
RO
28592003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2860
2861 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2862 Use C style comments.
2863
e860ed6d
KK
28642003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2865
2866 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
2867 * Makefile.in: Regenerate.
2868 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2869 * configure: Regenerate.
2870 * include/ffi.h.in: Add SHmedia support.
2871 * src/sh64/ffi.c: New file.
2872 * src/sh64/sysv.S: New file.
2873
a733b15e
JJ
28742003-05-16 Jakub Jelinek <jakub@redhat.com>
2875
2876 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2877 should be read-only.
2878 * configure: Rebuilt.
2879 * fficonfig.h.in: Rebuilt.
2880 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
2881 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
2882 * src/powerpc/linux64.S: Likewise.
2883 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
2884 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
2885 if -fpic/-fPIC/-mrelocatable.
2886 * src/powerpc/powerpc_closure.S: Likewise.
2887 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2888 #write in .eh_frame flags.
2889 * src/sparc/v9.S: Likewise.
2890 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
2891 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
2892 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
2893
bd19c9f4
JS
28942003-05-07 Jeff Sturm <jsturm@one-point.com>
2895
2896 Fixes PR bootstrap/10656
2897 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2898 support for .register pseudo-op.
2899 * src/sparc/v8.S: Use it.
2900 * fficonfig.h.in: Rebuilt.
2901 * configure: Rebuilt.
2902
e9b84181
JJ
29032003-04-18 Jakub Jelinek <jakub@redhat.com>
2904
2905 * include/ffi.h.in (POWERPC64): Define if 64-bit.
2906 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2907 Make it the default on POWERPC64.
2908 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2909 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2910 * configure: Rebuilt.
2911 * src/powerpc/ffi.c (hidden): Define.
2912 (ffi_prep_args_SYSV): Renamed from
2913 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
2914 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2915 ASM_NEEDS_REGISTERS64): New.
2916 (ffi_prep_args64): New function.
2917 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2918 (ffi_call): Likewise.
2919 (ffi_prep_closure): Likewise.
2920 (flush_icache): Surround by #ifndef POWERPC64.
2921 (ffi_dblfl): New union type.
2922 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2923 (ffi_closure_helper_LINUX64): New function.
2924 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2925 __powerpc64__.
2926 * src/powerpc/sysv.S: Likewise.
2927 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2928 * src/powerpc/linux64.S: New file.
2929 * src/powerpc/linux64_closure.S: New file.
2930 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2931 src/powerpc/linux64_closure.S.
2932 (TARGET_SRC_POWERPC): Likewise.
2933
2934 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2935 closure_test_fn3): Fix result printing on big-endian 64-bit
2936 machines.
2937 (main): Print tst2_arg instead of uninitialized tst2_result.
2938
2939 * src/ffitest.c (main): Hide what closure pointer really points to
2940 from the compiler.
2941
908a31e1
RE
29422003-04-16 Richard Earnshaw <rearnsha@arm.com>
2943
2944 * configure.in (arm-*-netbsdelf*): Add configuration.
2945 (configure): Regenerated.
2946
41a73c4c
LR
29472003-04-04 Loren J. Rittle <ljrittle@acm.org>
2948
2949 * include/Makefile.in: Regenerate.
2950
cd41c847
ZD
29512003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2952
2953 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
2954 bit mode.
2955 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
2956 Receive closure pointer through parameter, read args using
2957 __builtin_dwarf_cfa.
2958 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
2959
6db450f9
AS
29602003-03-12 Andreas Schwab <schwab@suse.de>
2961
2962 * configure.in: Avoid trailing /. in toolexeclibdir.
2963 * configure: Rebuilt.
2964
70144e9c
AT
29652003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
2966
c6900272 2967 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
70144e9c 2968
79e43f89
AT
29692003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
2970
2971 * libffi/src/powerpc/darwin_closure.S:
2972 Fix alignement bug, allocate 8 bytes for the result.
c930d8a5 2973 * libffi/src/powerpc/aix_closure.S:
79e43f89
AT
2974 Likewise.
2975 * libffi/src/powerpc/ffi_darwin.c:
2976 Update stackframe description for aix/darwin_closure.S.
c930d8a5 2977
0fcc9e55
JJ
29782003-02-06 Jakub Jelinek <jakub@redhat.com>
2979
2980 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
2981 attribute.
2982
63b87c2e
CC
29832003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
2984 Andreas Schwab <schwab@suse.de>
2985
c6900272 2986 * configure.in: Adjust command to source config-ml.in to account
63b87c2e
CC
2987 for changes to the libffi_basedir definition.
2988 (libffi_basedir): Remove ${srcdir} from value and include trailing
2989 slash if nonempty.
c930d8a5 2990
c6900272 2991 * configure: Regenerate.
63b87c2e 2992
c33402e2
FS
29932003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2994
2995 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
2996
fd2e49b2
AH
29972003-01-28 Andrew Haley <aph@redhat.com>
2998
2999 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3000 * src/x86/ffi64.c (ffi_prep_closure): New.
3001 (ffi_closure_UNIX64_inner): New.
3002 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3003
0e292c01
AO
30042003-01-27 Alexandre Oliva <aoliva@redhat.com>
3005
3006 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3007 Remove USE_LIBDIR conditional.
3008 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3009 * Makefile.in, configure: Rebuilt.
3010
acabc220
DE
30112003-01027 David Edelsohn <edelsohn@gnu.org>
3012
3013 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3014 * Makefile.in: Regenerate.
3015
be0acd42
AH
30162003-01-22 Andrew Haley <aph@redhat.com>
3017
3018 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3019 unwind info.
3020
ed695c8e
AT
30212003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3022
3023 * src/powerpc/darwin.S: Add unwind info.
3024 * src/powerpc/darwin_closure.S: Likewise.
3025
45ba15f4
AH
30262003-01-14 Andrew Haley <aph@redhat.com>
3027
3028 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3029 (ffi_prep_cif_machdep): Likewise.
3030 * src/x86/unix64.S: Add unwind info.
3031
4b5f402e
AJ
30322003-01-14 Andreas Jaeger <aj@suse.de>
3033
3034 * src/ffitest.c (main): Only use ffi_closures if those are
3035 supported.
3036
7b5102af
TT
30372003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3038
3039 * libffi/src/ffitest.c
c6900272 3040 add closure testcases
7b5102af
TT
3041
30422003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3043
3044 * libffi/src/powerpc/ffi.c
c6900272 3045 fix alignment bug for float (4 byte aligned iso 8 byte)
7b5102af 3046
5f7c78d8
GK
30472003-01-09 Geoffrey Keating <geoffk@apple.com>
3048
3049 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3050 * src/powerpc/darwin.S: Remove RCS version string.
3051
c75c7793
JS
30522003-01-03 Jeff Sturm <jsturm@one-point.com>
3053
3054 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3055 * src/ffitest.c (main): Use static storage for closure.
3056 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3057 * src/sparc/v8.S (ffi_closure_v8): New.
3058 * src/sparc/v9.S (ffi_closure_v9): New.
3059
eb3c46a1
RM
30602002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3061
3062 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3063 enumeration for X86_WIN32.
3064 * src/x86/win32.S: Added ffi_call_STDCALL function
3065 definition.
3066 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3067 switch cases for recognising FFI_STDCALL and
3068 calling ffi_call_STDCALL if target is X86_WIN32.
3069 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3070 stdcall versions of the "my_strlen" and "many"
3071 test functions (for X86_WIN32).
3072 Added test cases to test stdcall invocation using
3073 these functions.
3074
4977bab6
ZW
30752002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3076
3077 * src/sh/sysv.S: Add DWARF2 unwind info.
3078
67333e84
UW
30792002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3080
3081 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3082
bc3cf760
JW
30832002-11-26 Jim Wilson <wilson@redhat.com>
3084
3085 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3086
4977bab6
ZW
30872002-11-23 H.J. Lu <hjl@gnu.org>
3088
3089 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3090 Include ../config/accross.m4.
3091 * aclocal.m4; Rebuild.
3092 * configure: Likewise.
3093
18789f4e
UW
30942002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3095
3096 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3097
6bee5372
DD
30982002-11-11 DJ Delorie <dj@redhat.com>
3099
3100 * configure.in: Look for common files in the right place.
3101
8177895b
UW
31022002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3103
3104 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3105 raw data as _Jv_word values, not ffi_raw.
3106 (ffi_java_ptrarray_to_raw): Likewise.
3107 (ffi_java_rvalue_to_raw): New function.
3108 (ffi_java_raw_call): Call it.
3109 (ffi_java_raw_to_rvalue): New function.
3110 (ffi_java_translate_args): Call it.
3111 * src/ffitest.c (closure_test_fn): Interpret return value
3112 as ffi_arg, not int.
3113 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3114 FFI_TYPE_POINTER case.
3115 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3116 values extended to word size.
3117
af50f4c8
AJ
31182002-10-02 Andreas Jaeger <aj@suse.de>
3119
3120 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3121
5d297584
BT
31222002-10-01 Bo Thorsen <bo@smetana.suse.de>
3123
3124 * include/ffi.h.in: Fix i386 win32 compilation.
3125
c4f17c6f
UW
31262002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3127
3128 * configure.in: Add s390x-*-linux-* target.
3129 * configure: Regenerate.
3130 * include/ffi.h.in: Define S390X for s390x targets.
3131 (FFI_CLOSURES): Define for s390/s390x.
3132 (FFI_TRAMPOLINE_SIZE): Likewise.
3133 (FFI_NATIVE_RAW_API): Likewise.
3134 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3135 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4977bab6 3136 * src/s390/ffi.c: Major rework of existing code. Add support for
c4f17c6f
UW
3137 s390x targets. Add closure support.
3138 * src/s390/sysv.S: Likewise.
3139
d7b52625
RE
31402002-09-29 Richard Earnshaw <rearnsha@arm.com>
3141
3142 * src/arm/sysv.S: Fix typo.
3143
28165e22
RE
31442002-09-28 Richard Earnshaw <rearnsha@arm.com>
3145
3146 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3147 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3148 (ffi_call_SYSV): Handle soft-float.
3149
0b0f4163
BT
31502002-09-27 Bo Thorsen <bo@suse.de>
3151
3152 * include/ffi.h.in: Fix multilib x86-64 support.
3153
6c5d742e
KG
31542002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3155
3156 * Makefile.am (all-multi): Fix multilib parallel build.
3157
f4b2b0d6
KK
31582002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
3159
3160 * configure.in (sh[34]*-*-linux*): Add brackets.
3161 * configure: Regenerate.
3162
ddebdfeb
KK
31632002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
3164
3165 * Makefile.am: Add SH support.
3166 * Makefile.in: Regenerate.
3167 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3168 * configure: Regenerate.
3169 * include/ffi.h.in: Add SH support.
3170 * src/sh/ffi.c: New file.
3171 * src/sh/sysv.S: New file.
3172 * src/types.c: Add SH support.
3173
c94974ca
BT
31742002-07-16 Bo Thorsen <bo@suse.de>
3175
3176 * src/x86/ffi64.c: New file that adds x86-64 support.
3177 * src/x86/unix64.S: New file that handles argument setup for
3178 x86-64.
3179 * src/x86/sysv.S: Don't use this on x86-64.
3180 * src/x86/ffi.c: Don't use this on x86-64.
3181 Remove unused vars.
3182 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3183 for x86-64.
3184 * src/ffitest.c (struct6): New test that tests a special case in
3185 the x86-64 ABI.
3186 (struct7): Likewise.
3187 (struct8): Likewise.
3188 (struct9): Likewise.
3189 (closure_test_fn): Silence warning about this when it's not used.
3190 (main): Add the new tests.
3191 (main): Fix a couple of wrong casts and silence some compiler warnings.
3192 * include/ffi.h.in: Add x86-64 ABI definition.
3193 * fficonfig.h.in: Regenerate.
3194 * Makefile.am: Add x86-64 support.
3195 * configure.in: Likewise.
3196 * Makefile.in: Regenerate.
3197 * configure: Likewise.
3198
31992002-06-24 Bo Thorsen <bo@suse.de>
3200
3201 * src/types.c: Merge settings for similar architectures.
3202 Add x86-64 sizes and alignments.
3203
32042002-06-23 Bo Thorsen <bo@suse.de>
3205
3206 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3207 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3208 * src/mips/ffi.c (ffi_prep_args): Likewise.
3209 * src/m68k/ffi.c (ffi_prep_args): Likewise.
3210
5be36a8f
L
32112002-07-18 H.J. Lu (hjl@gnu.org)
3212
3213 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3214 (libffi_la_SOURCES): Support MIPS_LINUX.
3215 (libffi_convenience_la_SOURCES): Likewise.
3216 * Makefile.in: Regenerated.
3217
3218 * configure.in (mips64*-*): Skip.
3219 (mips*-*-linux*): New.
3220 * configure: Regenerated.
3221
3222 * src/mips/ffi.c: Include <sgidefs.h>.
3223
ad5e163c
UW
32242002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
3225
3226 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
3227
ee4586c5
RS
32282002-05-27 Roger Sayle <roger@eyesopen.com>
3229
3230 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3231
b86aa7b0
BT
32322002-05-27 Bo Thorsen <bo@suse.de>
3233
3234 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3235 fix formatting.
3236
859f7aaf
AT
32372002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
3238
3239 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
3240 beginning of function (for older apple cc).
3241
6706f116
AO
32422002-05-08 Alexandre Oliva <aoliva@redhat.com>
3243
3244 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
3245 script entry, and set LD to it when configuring multilibs.
3246 * configure: Rebuilt.
3247
fad655c8
JT
32482002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
3249
3250 * configure.in (sparc64-*-netbsd*): Add target.
3251 (sparc-*-netbsdelf*): Likewise.
3252 * configure: Regenerate.
3253
189ab118
DM
32542002-04-28 David S. Miller <davem@redhat.com>
3255
3256 * configure.in, configure: Fix SPARC test in previous change.
3257
22bcf65c
GT
32582002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
3259
3260 * Makefile.am: Add Linux for S/390 support.
3261 * Makefile.in: Regenerate.
3262 * configure.in: Add Linux for S/390 support.
3263 * configure: Regenerate.
3264 * include/ffi.h.in: Add Linux for S/390 support.
3265 * src/s390/ffi.c: New file from libffi CVS tree.
3266 * src/s390/sysv.S: New file from libffi CVS tree.
3267
5d84cf0b
JJ
32682002-04-28 Jakub Jelinek <jakub@redhat.com>
3269
3270 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
3271 %r_disp32().
3272 * src/sparc/v8.S: Use it.
3273 * src/sparc/v9.S: Likewise.
3274 * fficonfig.h.in: Rebuilt.
3275 * configure: Rebuilt.
3276
cc382e5c
HB
32772002-04-08 Hans Boehm <Hans_Boehm@hp.com>
3278
3279 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
3280 correctly.
3281 * src/ia64/unix.S: Add unwind information. Fix comments.
3282 Save sp in a way that's compatible with unwind info.
3283 (ffi_call_unix): Correctly restore sp in all cases.
3284 * src/ia64/ffi.c: Add, fix comments.
3285
dc798645
JJ
32862002-04-08 Jakub Jelinek <jakub@redhat.com>
3287
3288 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
3289
da00eaab
JT
32902002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
3291
3292 * configure.in (alpha*-*-netbsd*): Add target.
3293 * configure: Regenerate.
3294
0c0b87ad
JS
32952002-04-04 Jeff Sturm <jsturm@one-point.com>
3296
3297 * src/sparc/v8.S: Add unwind info.
3298 * src/sparc/v9.S: Likewise.
3299
320d7e7a
KW
33002002-03-30 Krister Walfridsson <cato@df.lth.se>
3301
3302 * configure.in: Enable i*86-*-netbsdelf*.
3303 * configure: Rebuilt.
4977bab6 3304
c75e51ed
DB
33052002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
3306
3307 PR other/2620
3308 * src/mips/n32.s: Delete
3309 * src/mips/o32.s: Delete
3310
5bb366e0
LR
33112002-03-21 Loren J. Rittle <ljrittle@acm.org>
3312
3313 * configure.in: Enable alpha*-*-freebsd*.
3314 * configure: Rebuilt.
3315
ce3b24a7
BM
33162002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3317
3318 * Makefile.am: libfficonvenience -> libffi_convenience.
3319 * Makefile.in: Rebuilt.
4977bab6 3320
1eb7ba30
BM
3321 * Makefile.am: Define ffitest_OBJECTS.
3322 * Makefile.in: Rebuilt.
ce3b24a7 3323
073ae293
AT
33242002-03-07 Andreas Tobler <toa@pop.agri.ch>
3325 David Edelsohn <edelsohn@gnu.org>
3326
3327 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
3328 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
3329 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
3330 * Makefile.in: Regenerate.
3331 * include/ffi.h.in: Add AIX and Darwin closure definitions.
3332 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
3333 (flush_icache, flush_range): New functions.
3334 (ffi_closure_helper_DARWIN): New function.
3335 * src/powerpc/aix_closure.S: New file.
3336 * src/powerpc/darwin_closure.S: New file.
4977bab6 3337
02c521f4
JS
33382002-02-24 Jeff Sturm <jsturm@one-point.com>
3339
3340 * include/ffi.h.in: Add typedef for ffi_arg.
3341 * src/ffitest.c (main): Declare rint with ffi_arg.
4977bab6 3342
287dd527
AT
33432002-02-21 Andreas Tobler <toa@pop.agri.ch>
3344
3345 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
3346 number of GPRs for floating-point arguments.
3347
e2f2e70a
AG
33482002-01-31 Anthony Green <green@redhat.com>
3349
3350 * configure: Rebuilt.
3351 * configure.in: Replace CHECK_SIZEOF and endian tests with
3352 cross-compiler friendly macros.
3353 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
3354 macros.
3355
15b9b32f
DE
33562002-01-18 David Edelsohn <edelsohn@gnu.org>
3357
3358 * src/powerpc/darwin.S (_ffi_call_AIX): New.
1f7d5413 3359 * src/powerpc/aix.S (ffi_call_DARWIN): New.
15b9b32f 3360
2f4006f8
DE
33612002-01-17 David Edelsohn <edelsohn@gnu.org>
3362
3363 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
3364 (TARGET_SRC_POWERPC_AIX): New.
3365 (POWERPC_AIX): New stanza.
3366 * Makefile.in: Regenerate.
3367 * configure.in: Add AIX case.
3368 * configure: Regenerate.
3369 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
3370 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
3371 size. Fix "long double" support.
3372 (ffi_call): Add FFI_AIX case.
3373 * src/powerpc/aix.S: New.
3374
3c017635
JH
33752001-10-09 John Hornkvist <john@toastedmarshmallow.com>
3376
3377 Implement Darwin PowerPC ABI.
3378 * configure.in: Handle powerpc-*-darwin*.
3379 * Makefile.am: Set source files for POWERPC_DARWIN.
3380 * configure: Rebuilt.
3381 * Makefile.in: Rebuilt.
3382 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
3383 POWERPC_DARWIN.
3384 * src/powerpc/darwin.S: New file.
3385 * src/powerpc/ffi_darwin.c: New file.
3386
cc712abf
JM
33872001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
3388
3389 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
3390
03a8de49
RO
33912001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3392
3393 * src/x86/sysv.S: Avoid gas-only .balign directive.
3394 Use C style comments.
3395
92a0e6c6
RO
33962001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3397
3398 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
3399 Fixes PR bootstrap/3563.
3400
57482f58
RO
34012001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3402
3403 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
3404
d7e2dd2f
RO
34052001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3406
3407 * configure.in: Recognize sparc*-sun-* host.
3408 * configure: Regenerate.
4977bab6 3409
be72207c
AH
34102001-06-06 Andrew Haley <aph@redhat.com>
3411
4075db8f 3412 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
be72207c 3413
552cb45a
AH
34142001-06-03 Andrew Haley <aph@redhat.com>
3415
4075db8f
BT
3416 * src/alpha/osf.S: Add unwind info.
3417 * src/powerpc/sysv.S: Add unwind info.
3418 * src/powerpc/ppc_closure.S: Likewise.
552cb45a 3419
7d45b968
JS
34202000-05-31 Jeff Sturm <jsturm@one-point.com>
3421
3422 * configure.in: Fix AC_ARG_ENABLE usage.
3423 * configure: Rebuilt.
3424
2a7f63c4
BM
34252001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3426
3427 * configure.in: Remove warning about beta code.
3428 * configure: Rebuilt.
3429
34302001-04-25 Hans Boehm <Hans_Boehm@hp.com>
3431
03a55252
HB
3432 * src/ia64/unix.S: Restore stack pointer when returning from
3433 ffi_closure_UNIX.
3434 * src/ia64/ffi.c: Fix typo in comment.
3435
df5da1c4
JW
34362001-04-18 Jim Wilson <wilson@redhat.com>
3437
3438 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
3439 to eliminate RAW DV.
3440
52c28977
BM
34412001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
3442
3443 * Makefile.am: Make a libtool convenience library.
3444 * Makefile.in: Rebuilt.
3445
3b905056
BM
34462001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
3447
3448 * configure.in: Use different syntax for subdirectory creation.
3449 * configure: Rebuilt.
3450
d6c4152a
JB
34512001-03-27 Jon Beniston <jon@beniston.com>
3452
3453 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
3454 * configure: Rebuilt.
3455 * Makefile.am: Added X86_WIN32 target support.
3456 * Makefile.in: Rebuilt.
3457
3458 * include/ffi.h.in: Added X86_WIN32 target support.
3459
3460 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
3461 * src/types.c: Added X86_WIN32 target support.
3462
3463 * src/x86/win32.S: New file. Based on sysv.S, but with EH
3464 stuff removed and made to work with CygWin's gas.
3465
675cdab3
BM
34662001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
3467
3468 * configure.in: Make target subdirectory in build dir.
3469 * Makefile.am: Override suffix based rules to specify correct output
3470 subdirectory.
3471 * Makefile.in: Rebuilt.
3472 * configure: Rebuilt.
3473
e5f8858a 34742001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
cc4c8975
KH
3475
3476 * src/powerpc/ppc_closure.S: New file.
3477 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
3478 involving long long and register pairs.
3479 (ffi_prep_closure): New function.
3480 (flush_icache): Likewise.
3481 (ffi_closure_helper_SYSV): Likewise.
3482 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
3483 (FFI_TRAMPOLINE_SIZE): Likewise.
3484 (FFI_NATIVE_RAW_API): Likewise.
3485 * Makefile.in: Rebuilt.
3486 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
3487 (TARGET_SRC_POWERPC): Likewise.
3488
9450a929
TT
34892001-03-19 Tom Tromey <tromey@redhat.com>
3490
3491 * Makefile.in: Rebuilt.
3492 * Makefile.am (ffitest_LDFLAGS): New macro.
3493
4d2cf715
NC
34942001-03-02 Nick Clifton <nickc@redhat.com>
3495
3496 * include/ffi.h.in: Remove RCS ident string.
3497 * include/ffi_mips.h: Remove RCS ident string.
3498 * src/debug.c: Remove RCS ident string.
3499 * src/ffitest.c: Remove RCS ident string.
3500 * src/prep_cif.c: Remove RCS ident string.
3501 * src/types.c: Remove RCS ident string.
3502 * src/alpha/ffi.c: Remove RCS ident string.
3503 * src/alpha/osf.S: Remove RCS ident string.
3504 * src/arm/ffi.c: Remove RCS ident string.
3505 * src/arm/sysv.S: Remove RCS ident string.
3506 * src/mips/ffi.c: Remove RCS ident string.
3507 * src/mips/n32.S: Remove RCS ident string.
3508 * src/mips/o32.S: Remove RCS ident string.
3509 * src/sparc/ffi.c: Remove RCS ident string.
3510 * src/sparc/v8.S: Remove RCS ident string.
3511 * src/sparc/v9.S: Remove RCS ident string.
3512 * src/x86/ffi.c: Remove RCS ident string.
3513 * src/x86/sysv.S: Remove RCS ident string.
3514
7e5fd99f
JM
35152001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
3516
3517 * include/ffi.h.in: Change sourceware.cygnus.com references to
3518 gcc.gnu.org.
3519
3f67ba6e
RH
35202000-12-09 Richard Henderson <rth@redhat.com>
3521
3522 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
3523 (ffi_closure_osf_inner): Index rather than increment avalue
3524 and arg_types. Give ffi_closure_osf the raw return value type.
3525 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
3526 promotion.
3527
35282000-12-07 Richard Henderson <rth@redhat.com>
29fe0479
RH
3529
3530 * src/raw_api.c (ffi_translate_args): Fix typo.
3531 (ffi_prep_closure): Likewise.
3532
3533 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3534 FFI_TRAMPOLINE_SIZE.
3535 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3536 cif->bytes for new ffi_call_osf implementation.
3537 (ffi_prep_args): Absorb into ...
3538 (ffi_call): ... here. Do all stack allocation here and
3539 avoid a callback function.
3540 (ffi_prep_closure, ffi_closure_osf_inner): New.
3541 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3542 (ffi_closure_osf): New.
3543
2f7bf5b7
AO
35442000-09-10 Alexandre Oliva <aoliva@redhat.com>
3545
ed1c1a1a
AO
3546 * config.guess, config.sub, install-sh: Removed.
3547 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3548 * Makefile.in: Rebuilt.
3549
2f7bf5b7
AO
3550 * acinclude.m4: Include libtool macros from the top level.
3551 * aclocal.m4, configure: Rebuilt.
3552
e15a68e7
AO
35532000-08-22 Alexandre Oliva <aoliva@redhat.com>
3554
3555 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3556 * configure: Rebuilt.
3557
7f8c11d5
SB
35582000-05-11 Scott Bambrough <scottb@netwinder.org>
3559
4977bab6
ZW
3560 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3561 memory correctly. Use conditional instructions, not branches where
7f8c11d5
SB
3562 possible.
3563
c5acf51f
TT
35642000-05-04 Tom Tromey <tromey@cygnus.com>
3565
3566 * configure: Rebuilt.
3567 * configure.in: Match `arm*-*-linux-*'.
3568 From Chris Dornan <cdornan@arm.com>.
3569
91bffbe9
JJ
35702000-04-28 Jakub Jelinek <jakub@redhat.com>
3571
3572 * Makefile.am (SUBDIRS): Define.
3573 (AM_MAKEFLAGS): Likewise.
3574 (Multilib support.): Add section.
3575 * Makefile.in: Rebuilt.
3576 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4075db8f
BT
3577 New variables. Set for gcc using -print-multi-lib. Export them
3578 to libtool.
3579 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3580 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3581 for -shared links.
3582 (extra_compiler_flags_value, extra_compiler_flags): Check these
3583 for extra compiler options which need to be passed down in
3584 compiler_flags.
91bffbe9 3585
bd66587e
AG
35862000-04-16 Anthony Green <green@redhat.com>
3587
3588 * configure: Rebuilt.
3589 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3590
3791773c
JJ
35912000-04-14 Jakub Jelinek <jakub@redhat.com>
3592
4075db8f 3593 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3791773c
JJ
3594 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3595 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3596 Replace all void * sizeofs with sizeof(int).
3597 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3598 different than DOUBLE.
3599 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3600 (ffi_prep_args_v9): New function.
3601 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3602 (ffi_V9_return_struct): New function.
3603 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3604 32bit code (not yet cross-arch calls).
3605 * src/sparc/v8.S: Add struct return delay nop.
3606 Handle long long.
3607 * src/sparc/v9.S: New file.
3608 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
3609 is used on sparc64 only for structures larger than 32 bytes.
3610 Pass by reference for structures is done for structure arguments
3611 larger than 16 bytes.
3612 * src/ffitest.c (main): Use 64bit rint on sparc64.
3613 Run long long tests on sparc.
3614 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3615 sparc64.
3616 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3617 on sparc64.
3618 * configure.in (sparc-*-linux*): New supported target.
3619 (sparc64-*-linux*): Likewise.
3620 * configure: Rebuilt.
3621 * Makefile.am: Add v9.S to SPARC files.
3622 * Makefile.in: Likewise.
3623 (LINK): Surround $(CCLD) into double quotes, so that multilib
3624 compiles work correctly.
3625
db459595
APB
36262000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
3627
3628 * configure: Rebuilt.
3629 * configure.in: (i*86-*-solaris*): New libffi target. Patch
3630 proposed by Bryce McKinlay.
3631
c1f63902
TT
36322000-03-20 Tom Tromey <tromey@cygnus.com>
3633
3634 * Makefile.in: Hand edit for java_raw_api.lo.
3635
0f72dc9e
BM
36362000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
3637
3638 * config.guess, config.sub: Update from the gcc tree.
3639 Fix for PR libgcj/168.
3640
3c18f2d1
TT
36412000-03-03 Tom Tromey <tromey@cygnus.com>
3642
323eee8a
TT
3643 * Makefile.in: Fixed ia64 by hand.
3644
3c18f2d1
TT
3645 * configure: Rebuilt.
3646 * configure.in (--enable-multilib): New option.
3647 (libffi_basedir): New subst.
3648 (AC_OUTPUT): Added multilib code.
3649
a2b10a92
TT
36502000-03-02 Tom Tromey <tromey@cygnus.com>
3651
3652 * Makefile.in: Rebuilt.
3653 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3654 directory name.
3655
dc5de370
HB
36562000-02-25 Hans Boehm <boehm@acm.org>
3657
3658 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3659 files.
3660 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
3661 list.
3662 (ffi_prep_raw_closure): Use ffi_translate_args, not
3663 ffi_closure_translate.
3664 * src/java_raw_api.c: New file.
3665 * src/ffitest.c (closure_test_fn): New function.
3666 (main): Define `rint' as long long on IA64. Added new test when
3667 FFI_CLOSURES is defined.
3668 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3669 (ffi_abi): Recognize IA64.
3670 (ffi_raw): Added `flt' field.
3671 Added "Java raw API" code.
3672 * configure.in: Recognize ia64.
3673 * Makefile.am (TARGET_SRC_IA64): New macro.
3674 (libffi_la_common_SOURCES): Added java_raw_api.c.
3675 (libffi_la_SOURCES): Define in IA64 case.
3676
d79229bd
TT
36772000-01-04 Tom Tromey <tromey@cygnus.com>
3678
3679 * Makefile.in: Rebuilt with newer automake.
3680
2c33b220
TT
36811999-12-31 Tom Tromey <tromey@cygnus.com>
3682
3683 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3684
6ba9e3b0
TT
36851999-09-01 Tom Tromey <tromey@cygnus.com>
3686
3687 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3688 undefs.
3689 * fficonfig.h.in: Rebuilt.
3690 * configure: Rebuilt.
3691 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3692 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3693 * acconfig.h: Don't #undef PACKAGE or VERSION.
3694
63e5e3e0
AG
36951999-08-09 Anthony Green <green@cygnus.com>
3696
3697 * include/ffi.h.in: Try to work around messy header problem
3698 with PACKAGE and VERSION.
3699
3700 * configure: Rebuilt.
3701 * configure.in: Change version to 2.00-beta.
3702
4075db8f 3703 * fficonfig.h.in: Rebuilt.
63e5e3e0
AG
3704 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3705
3706 * src/x86/ffi.c (ffi_raw_call): Rename.
3707
37081999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
3709
3710 * src/x86/ffi.c (ffi_closure_SYSV): New function.
3711 (ffi_prep_incoming_args_SYSV): Ditto.
3712 (ffi_prep_closure): Ditto.
3713 (ffi_closure_raw_SYSV): Ditto.
3714 (ffi_prep_raw_closure): More ditto.
3715 (ffi_call_raw): Final ditto.
3716
3717 * include/ffi.h.in: Add definitions for closure and raw API.
3718
3719 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4977bab6 3720 FFI_TYPE_UINT64.
63e5e3e0
AG
3721
3722 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3723
3724 * src/raw_api.c: New file.
3725
3726 * include/ffi.h.in (ffi_raw): New type.
3727 (UINT_ARG, SINT_ARG): New defines.
3728 (ffi_closure, ffi_raw_closure): New types.
3729 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4977bab6 3730
63e5e3e0
AG
3731 * configure.in: Add check for endianness and sizeof void*.
3732
3733 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3734 instead of directly.
3735
3736 * configure: Rebuilt.
3737
3738Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
3739
3740 * configure.in: Add x86 and powerpc BeOS configurations.
3741 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3742
37431999-05-09 Anthony Green <green@cygnus.com>
3744
3745 * configure.in: Add warning about this being beta code.
3746 Remove src/Makefile.am from the picture.
3747 * configure: Rebuilt.
3748
3749 * Makefile.am: Move logic from src/Makefile.am. Add changes
3750 to support libffi as a target library.
3751 * Makefile.in: Rebuilt.
3752
3753 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3754 Upgraded to new autoconf, automake, libtool.
3755
3756 * README: Tweaks.
3757
3758 * LICENSE: Update copyright date.
3759
3760 * src/Makefile.am, src/Makefile.in: Removed.
3761
37621998-11-29 Anthony Green <green@cygnus.com>
3763
3764 * include/ChangeLog: Removed.
3765 * src/ChangeLog: Removed.
3766 * src/mips/ChangeLog: Removed.
3767 * src/sparc/ChangeLog: Remboved.
3768 * src/x86/ChangeLog: Removed.
3769
3770 * ChangeLog.v1: Created.