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