Correctly check for 32-bit x86
[gcc.git] / libffi / ChangeLog
1 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2
3 * testsuite/lib/libffi.exp: Load target-supports.exp.
4 (run-many-tests): Only set targetabis for ia32.
5
6 2015-01-19 Richard Henderson <rth@redhat.com>
7
8 PR libffi/64581
9 * testsuite/lib/libffi.exp (libffi_target_compile): Don't switch
10 to C++ mode when compiling C++ source code.
11
12 2015-01-19 Richard Henderson <rth@redhat.com>
13
14 * Merge to upstream commit 3ac1610aa33c887ea9b14935208943925714a33e.
15
16 2015-01-19 Richard Henderson <rth@redhat.com>
17
18 PR libffi/64607
19 * testsuite/lib/libffi.exp (libffi-init): Append -L for the
20 just built libstdc++.
21
22 2015-01-15 Dominique d'Humieres <dominiq@lps.ens.fr>
23 Richard Henderson <rth@redhat.com>
24
25 PR libffi/64607
26 * Makefile.am (AM_MAKEFLAGS): Use double quotes on subvariables.
27 * Makefile.in: Rebuilt.
28
29 2015-01-15 Richard Henderson <rth@redhat.com>
30
31 PR libffi/64572
32 * include/ffi.h.in (FFI_TYPE_LAST): Set to COMPLEX only if complex
33 numbers are supported by the backend.
34
35 2015-01-13 Kaz Kojima <kkojima@gcc.gnu.org>
36
37 * configure.host: Remove extra brackets for sh.
38
39 2015-01-13 H.J. Lu <hongjiu.lu@intel.com>
40
41 PR bootstrap/64575
42 * configure.host (TARGET): Set to X86_64 if __x86_64__ is defined.
43
44 2015-01-12 Richard Henderson <rth@redhat.com>
45
46 PR libffi/64572
47 * src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
48 (FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
49
50 2015-01-12 Richard Henderson <rth@redhat.com>
51
52 * src/x86/ffi.c (ffi_raw_call): Fill in frame.
53
54 2015-01-12 Richard Henderson <rth@redhat.com>
55
56 Merge to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16.
57
58 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
59
60 PR bootstrap/63784
61 * configure: Regenerated.
62
63 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
64
65 PR target/63610
66 * configure: Regenerate.
67
68 2014-10-15 Ian Lance Taylor <iant@google.com>
69
70 * configure.ac: If the compiler supports -Qunused-arguments, use
71 it when running the compiler on .s files.
72 * configure: Regenerated.
73
74 2014-09-11 Jakub Jelinek <jakub@redhat.com>
75
76 * src/powerpc/linux64.S: Emit .note.GNU-stack even when
77 POWERPC64 is not defined.
78 * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2.
79
80 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
81
82 * src/alpha/ffi.c: Do not include stdlib.h.
83 (ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort.
84
85 2014-07-04 Thomas Schwinge <thomas@codesourcery.com>
86
87 * testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
88 match to dg-runtest's.
89
90 2014-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
91
92 * testsuite/lib/libffi.exp (load_gcc_lib): Register loaded libs.
93
94 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
95
96 Fix current cygwin-64 build problems.
97 * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
98 * src/x86/ffi.c: Add if defined(__CYGWIN__).
99 * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
100 handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
101 Added SEH information. Fixed formatting.
102
103 2014-04-22 Jakub Jelinek <jakub@redhat.com>
104
105 PR other/43620
106 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
107 * Makefile.in: Regenerated.
108 * include/Makefile.in: Regenerated.
109 * man/Makefile.in: Regenerated.
110 * testsuite/Makefile.in: Regenerated.
111
112 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
113
114 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
115 main CFA reg; update cfi_rel_offset.
116
117 2014-02-17 Eric Botcazou <ebotcazou@adacore.com>
118
119 PR libffi/60073
120 * src/sparc/v8.S: Assemble only if !SPARC64.
121 * src/sparc/v9.S: Remove obsolete comment.
122 * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
123 (V8_ABI_P): New macro.
124 (V9_ABI_P): Likewise.
125 (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
126 * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
127 (ffi_prep_args_v9): Compile only if SPARC64.
128 (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
129 (ffi_prep_cif_machdep): Guard access to nfixedargs field.
130 (ffi_prep_cif_machdep_var): Likewise.
131 (ffi_v9_layout_struct): Compile only if SPARC64.
132 (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
133 (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
134 (ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
135 (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
136 to nfixedargs field.
137
138 2014-02-13 Eric Botcazou <ebotcazou@adacore.com>
139
140 PR libffi/60073
141 * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
142 (FFI_EXTRA_CIF_FIELDS): Likewise.
143 (FFI_NATIVE_RAW_API): Move around.
144 * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from...
145 (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core.
146 (ffi_prep_cif_machdep_var): New function.
147 (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in
148 FP registers.
149 * doc/libffi.texi (Introduction): Fix inaccuracy.
150
151 2013-12-10 Alan Modra <amodra@gmail.com>
152
153 * src/powerpc/ffitarget.h: Import from upstream.
154 * src/powerpc/ffi_powerpc.h: Likewise.
155 * src/powerpc/ffi.c: Likewise.
156 * src/powerpc/ffi_sysv.c: Likewise.
157 * src/powerpc/ffi_linux64.c: Likewise.
158 * src/powerpc/sysv.S: Likewise.
159 * src/powerpc/ppc_closure.S: Likewise.
160 * src/powerpc/linux64.S: Likewise.
161 * src/powerpc/linux64_closure.S: Likewise.
162 * src/types.c: Likewise.
163 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
164 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
165 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
166 * include/ffi.h.in (ffi_prep_types): Declare.
167 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
168 * configure: Regenerate.
169 * fficonfig.h.in: Regenerate.
170 * Makefile.in: Regenerate.
171 * man/Makefile.in: Regenerate.
172 * include/Makefile.in: Regenerate.
173 * testsuite/Makefile.in: Regenerate.
174
175 2013-11-18 Alan Modra <amodra@gmail.com>
176
177 * src/powerpc/ppc_closure.S: Don't bl .Luint128.
178
179 * src/powerpc/ffitarget.h: Import from upstream.
180 * src/powerpc/ffi.c: Likewise.
181 * src/powerpc/linux64.S: Likewise.
182 * src/powerpc/linux64_closure.S: Likewise.
183 * doc/libffi.texi: Likewise.
184 * testsuite/libffi.call/cls_double_va.c: Likewise.
185 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
186
187 2013-09-20 Alan Modra <amodra@gmail.com>
188
189 * configure: Regenerate.
190
191 2013-06-25 Alan Modra <amodra@gmail.com>
192
193 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
194 before statements.
195 (ffi_prep_args64): Support little-endian.
196 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
197 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
198 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
199
200 2013-05-22 Dominique d'Humieres <dominiq@lps.ens.fr>
201 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
202
203 PR libffi/56033
204 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
205 ffi_arg *.
206 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
207 * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
208 * testsuite/libffi.call/va_struct1.c (main): Likewise.
209
210 2013-03-22 Kai Tietz <ktietz@redhat.com>
211
212 * src/x86/win64.S: Make use of ffi_closure_win64_inner
213 symbol pc-relative.
214
215 2013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
216
217 * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
218 Move default definition outside enclosing #if scope.
219
220 2013-02-06 Andreas Tobler <andreast@fgznet.ch>
221
222 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
223 DOUBLE equal LONGDOUBLE.
224
225 2013-01-07 Thorsten Glaser <tg@mirbsd.org>
226
227 * testsuite/libffi.call/cls_uchar_va.c,
228 testsuite/libffi.call/cls_ushort_va.c,
229 testsuite/libffi.call/va_1.c: Testsuite fixes.
230
231 2012-12-29 Andreas Schwab <schwab@linux-m68k.org>
232
233 * Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
234 (STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES)
235 (MAINTAINERCLEANFILES): Define.
236 (all-local, stamp-geninsrc, stamp-build-info): New targets.
237 (doc/libffi.info): Depend on $(STAMP_BUILD_INFO)
238 * configure.ac: Check for modern makeinfo. Add support for
239 --enable-generated-files-in-srcdir.
240 * libffi/mdate-sh: New file.
241 * testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite
242 lib dir.
243 (libffi-init): Properly set library paths for multilibs and add
244 path to libstdc++.
245 * configure: Regenerate.
246 * aclocal.m4: Regenerate.
247 * Makefile.in: Regenerate.
248 * doc/stamp-vti: Regenerate.
249 * doc/version.texi: Regenerate.
250 * fficonfig.h.in: Regenerate.
251 * include/Makefile.in: Regenerate.
252 * man/Makefile.in: Regenerate.
253 * testsuite/Makefile.in: Regenerate.
254
255 2012-10-31 Alan Modra <amodra@gmail.com>
256
257 * src/powerpc/linux64_closure.S: Add new ABI support.
258 * src/powerpc/linux64.S: Likewise.
259
260 2012-10-30 Magnus Granberg <zorry@gentoo.org>
261 Pavel Labushev <pavel.labushev@runbox.ru>
262
263 * configure.ac: New options pax_emutramp
264 * configure, fficonfig.h.in: Regenerated
265 * src/closures.c: New function emutramp_enabled_check() and
266 checks.
267
268 2012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
269
270 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
271 lion) and future version.
272 * configure: Rebuild.
273
274 2012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
275 Marcus Shawcroft <marcus.shawcroft at arm.com>
276
277 * README: Add details of aarch64 port.
278 * src/aarch64/ffi.c: New.
279 * src/aarch64/ffitarget.h: Likewise.
280 * src/aarch64/sysv.S: Likewise.
281 * Makefile.am: Support aarch64.
282 * configure.ac: Support aarch64.
283 * Makefile.in, configure: Rebuilt.
284
285 2012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
286 Marcus Shawcroft <marcus.shawcroft at arm.com>
287
288 * testsuite/lib/libffi.exp: Add support for aarch64.
289 * testsuite/libffi.call/cls_struct_va1.c: New.
290 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
291 * testsuite/libffi.call/cls_uint_va.c: Likewise.
292 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
293 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
294 * testsuite/libffi.call/nested_struct11.c: Likewise.
295 * testsuite/libffi.call/uninitialized.c: Likewise.
296 * testsuite/libffi.call/va_1.c: Likewise.
297 * testsuite/libffi.call/va_struct1.c: Likewise.
298 * testsuite/libffi.call/va_struct2.c: Likewise.
299 * testsuite/libffi.call/va_struct3.c: Likewise.
300
301 2012-10-12 Walter Lee <walt@tilera.com>
302
303 * Makefile.am: Add TILE-Gx/TILEPro support.
304 * configure.ac: Likewise.
305 * Makefile.in: Regenerate.
306 * configure: Likewise.
307 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
308 * src/tile: New directory.
309 * src/tile/ffi.c: New file.
310 * src/tile/ffitarget.h: Ditto.
311 * src/tile/tile.S: Ditto.
312
313 2012-10-12 Matthias Klose <doko@ubuntu.com>
314
315 * generate-osx-source-and-headers.py: Normalize whitespace.
316
317 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
318
319 * configure: Regenerated.
320
321 2012-08-26 Andrew Pinski <apinski@cavium.com>
322
323 PR libffi/53014
324 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
325 soft-float.
326
327 2012-08-08 Uros Bizjak <ubizjak@gmail.com>
328
329 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
330 just return FFI_BAD_ABI when things are wrong.
331
332 2012-07-18 H.J. Lu <hongjiu.lu@intel.com>
333
334 PR libffi/53982
335 PR libffi/53973
336 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
337 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
338
339 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
340
341 * configure: Regenerated.
342
343 2012-05-05 Nicolas Lelong
344
345 * libffi.xcodeproj/project.pbxproj: Fixes.
346 * README: Update for iOS builds.
347
348 2012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
349
350 * configure.ac: Add Blackfin/sysv support
351 * Makefile.am: Add Blackfin/sysv support
352 * src/bfin/ffi.c: Add Blackfin/sysv support
353 * src/bfin/ffitarget.h: Add Blackfin/sysv support
354
355 2012-04-11 Anthony Green <green@moxielogic.com>
356
357 * Makefile.am (EXTRA_DIST): Add new script.
358 * Makefile.in: Rebuilt.
359
360 2012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
361
362 * generate-ios-source-and-headers.py,
363 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
364 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
365 generation into an Xcode "run script" phase. Include both as
366 Xcode build scripts. Don't always regenerate config files.
367
368 2012-04-10 Anthony Green <green@moxielogic.com>
369
370 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
371
372 2012-04-06 Anthony Green <green@moxielogic.com>
373
374 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
375 * Makefile.in: Rebuilt.
376
377 2012-04-06 Mike Lewis <mikelikespie@gmail.com>
378
379 * generate-ios-source-and-headers.py: New file.
380 * libffi.xcodeproj/project.pbxproj: New file.
381 * README: Update instructions on building iOS binary.
382 * build-ios.sh: Delete.
383
384 2012-04-06 Anthony Green <green@moxielogic.com>
385
386 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
387 compilers, then use it.
388
389 2012-04-06 H.J. Lu <hongjiu.lu@intel.com>
390
391 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
392
393 2012-04-06 Anthony Green <green@moxielogic.com>
394
395 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
396 * testsuite/Makefile.in: Rebuilt.
397
398 2012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
399
400 * include/ffi.h.in: Add missing trampoline table fields.
401 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
402 in CNAME.
403 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
404
405 2012-03-29 Peter Rosin <peda@lysator.liu.se>
406
407 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
408 generation, fix the ENDP label and remove the surplus third arg
409 from the 'lea' insn.
410
411 2012-03-29 Peter Rosin <peda@lysator.liu.se>
412
413 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
414 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
415 it. Also instruct the assembler to add a frame to the function.
416
417 2012-03-23 Peter Rosin <peda@lysator.liu.se>
418
419 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
420 * Makefile.in: Rebuilt.
421 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
422 to all data exports, when compiling libffi clients using MSVC.
423
424 2012-03-29 Peter Rosin <peda@lysator.liu.se>
425
426 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
427 make it the default for MSVC.
428 (FFI_TYPE_MS_STRUCT): New structure return convention.
429 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
430 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
431 instead of an ordinary FFI_TYPE_STRUCT.
432 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
433 (ffi_call): Likewise.
434 (ffi_prep_incoming_args_SYSV): Likewise.
435 (ffi_raw_call): Likewise.
436 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
437 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
438 return a pointer to the result structure in eax and don't pop
439 that pointer from the stack, the caller takes care of it.
440 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
441 (ffi_closure_raw_SYSV): Likewise.
442
443 2012-03-22 Peter Rosin <peda@lysator.liu.se>
444
445 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
446 assembly version with Intel syntax.
447 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
448
449 2012-03-23 Peter Rosin <peda@lysator.liu.se>
450
451 * testsuite/libffi.call/ffitest.h: Provide abstration of
452 __attribute__((fastcall)) in the form of a __FASTCALL__
453 define. Define it to __fastcall for MSVC.
454 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
455 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
456 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
457 * testsuite/libffi.call/strlen2_win32.c: Likewise.
458 * testsuite/libffi.call/struct1_win32.c: Likewise.
459 * testsuite/libffi.call/struct2_win32.c: Likewise.
460
461 2012-03-22 Peter Rosin <peda@lysator.liu.se>
462
463 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
464 frame on function entry, MASM adds one automatically.
465
466 2012-03-22 Peter Rosin <peda@lysator.liu.se>
467
468 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
469 bits in the MSVC headers.
470
471 2012-03-22 Peter Rosin <peda@lysator.liu.se>
472
473 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
474 with no declarations after statements.
475 * testsuite/libffi.call/cls_16byte.c: Likewise.
476 * testsuite/libffi.call/cls_18byte.c: Likewise.
477 * testsuite/libffi.call/cls_19byte.c: Likewise.
478 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
479 * testsuite/libffi.call/cls_20byte.c: Likewise.
480 * testsuite/libffi.call/cls_20byte1.c: Likewise.
481 * testsuite/libffi.call/cls_24byte.c: Likewise.
482 * testsuite/libffi.call/cls_2byte.c: Likewise.
483 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
484 * testsuite/libffi.call/cls_3byte1.c: Likewise.
485 * testsuite/libffi.call/cls_3byte2.c: Likewise.
486 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
487 * testsuite/libffi.call/cls_4byte.c: Likewise.
488 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
489 * testsuite/libffi.call/cls_5byte.c: Likewise.
490 * testsuite/libffi.call/cls_64byte.c: Likewise.
491 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
492 * testsuite/libffi.call/cls_6byte.c: Likewise.
493 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
494 * testsuite/libffi.call/cls_7byte.c: Likewise.
495 * testsuite/libffi.call/cls_8byte.c: Likewise.
496 * testsuite/libffi.call/cls_9byte1.c: Likewise.
497 * testsuite/libffi.call/cls_9byte2.c: Likewise.
498 * testsuite/libffi.call/cls_align_double.c: Likewise.
499 * testsuite/libffi.call/cls_align_float.c: Likewise.
500 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
501 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
502 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
503 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
504 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
505 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
506 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
507 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
508 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
509 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
510 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
511 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
512 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
513 * testsuite/libffi.call/huge_struct.c: Likewise.
514 * testsuite/libffi.call/nested_struct.c: Likewise.
515 * testsuite/libffi.call/nested_struct1.c: Likewise.
516 * testsuite/libffi.call/nested_struct10.c: Likewise.
517 * testsuite/libffi.call/nested_struct2.c: Likewise.
518 * testsuite/libffi.call/nested_struct3.c: Likewise.
519 * testsuite/libffi.call/nested_struct4.c: Likewise.
520 * testsuite/libffi.call/nested_struct5.c: Likewise.
521 * testsuite/libffi.call/nested_struct6.c: Likewise.
522 * testsuite/libffi.call/nested_struct7.c: Likewise.
523 * testsuite/libffi.call/nested_struct8.c: Likewise.
524 * testsuite/libffi.call/nested_struct9.c: Likewise.
525 * testsuite/libffi.call/stret_large.c: Likewise.
526 * testsuite/libffi.call/stret_large2.c: Likewise.
527 * testsuite/libffi.call/stret_medium.c: Likewise.
528 * testsuite/libffi.call/stret_medium2.c: Likewise.
529 * testsuite/libffi.call/struct1.c: Likewise.
530 * testsuite/libffi.call/struct1_win32.c: Likewise.
531 * testsuite/libffi.call/struct2.c: Likewise.
532 * testsuite/libffi.call/struct2_win32.c: Likewise.
533 * testsuite/libffi.call/struct3.c: Likewise.
534 * testsuite/libffi.call/struct4.c: Likewise.
535 * testsuite/libffi.call/struct5.c: Likewise.
536 * testsuite/libffi.call/struct6.c: Likewise.
537 * testsuite/libffi.call/struct7.c: Likewise.
538 * testsuite/libffi.call/struct8.c: Likewise.
539 * testsuite/libffi.call/struct9.c: Likewise.
540 * testsuite/libffi.call/testclosure.c: Likewise.
541
542 2012-03-21 Peter Rosin <peda@lysator.liu.se>
543
544 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
545 printing doubles (%lf is for long doubles).
546 (main): Likewise.
547
548 2012-03-21 Peter Rosin <peda@lysator.liu.se>
549
550 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
551 (set_ld_library_path_env_vars): Add the library search dir to PATH
552 (and save PATH for later).
553 (restore_ld_library_path_env_vars): Restore PATH.
554
555 2012-03-20 Peter Rosin <peda@lysator.liu.se>
556
557 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
558 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
559 visible outside the PROC, so that ffi_closure_THISCALL can see it.
560
561 2012-03-20 Peter Rosin <peda@lysator.liu.se>
562
563 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
564 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
565 visible outside the PROC, so that ffi_closure_THISCALL can see it.
566
567 2012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
568
569 * src/m68k/ffi.c: Add MINT support.
570 * src/m68k/sysv.S: Ditto.
571
572 2012-03-19 chennam <csit@axway.com>
573
574 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
575 support.
576
577 2012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
578
579 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
580 ffi_call_VFP().
581 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
582 ffi_closure_VFP.
583 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
584
585 2012-04-02 Peter Bergner <bergner@vnet.ibm.com>
586
587 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
588 Silence casting pointer to integer of different size warning.
589 Delete goto to previously deleted label.
590 (ffi_call): Silence possibly undefined warning.
591 (ffi_closure_helper_SYSV): Declare variable type.
592
593 2012-04-02 Peter Rosin <peda@lysator.liu.se>
594
595 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
596 value in the Intel version as is already done for the AT&T version.
597 (ffi_closure_SYSV): Likewise.
598 (ffi_closure_raw_SYSV): Likewise.
599 (ffi_closure_STDCALL): Likewise.
600
601 2012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
602
603 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
604 just return FFI_BAD_ABI when things are wrong.
605 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
606
607 2012-03-09 David Edelsohn <dje.gcc@gmail.com>
608
609 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
610 change to return value of ffi_closure_helper_DARWIN and load type
611 from return type.
612
613 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
614
615 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
616 long.
617 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
618 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
619 first.
620
621 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
622 (ffi_arg): Set to unsigned long long for x32.
623 (ffi_sarg): Set to long long for x32.
624
625 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
626
627 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
628
629 2012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
630
631 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
632 windows-like hosts.
633 * configure: Rebuilt.
634
635 2012-02-27 Mikael Pettersson <mikpe@it.uu.se>
636
637 PR libffi/52223
638 * Makefile.am (FLAGS_TO_PASS): Define.
639 * Makefile.in: Regenerate.
640
641 2012-02-23 Anthony Green <green@moxielogic.com>
642
643 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
644 directly.
645
646 2012-02-23 Kai Tietz <ktietz@redhat.com>
647
648 PR libffi/52221
649 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
650 prototype.
651 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
652 thiscall-convention.
653 (ffi_raw_call): Use ffi_prep_args_raw.
654 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
655 implementation for stub.
656
657 2012-02-10 Kai Tietz <ktietz@redhat.com>
658
659 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
660 windows target.
661 * configure: Regenerated.
662
663 2012-02-08 Kai Tietz <ktietz@redhat.com>
664
665 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
666 also FFI_THISCALL.
667 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
668 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
669 (ffi_prep_closure_loc): Add FFI_THISCALL support.
670 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
671 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
672 for thiscall-calling convention.
673 * testsuite/libffi.call/closure_thiscall.c: New test.
674
675 2012-01-28 Kai Tietz <ktietz@redhat.com>
676
677 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
678 argument to prototype for specify calling-convention.
679 (ffi_call): Add support for stdcall/thiscall convention.
680 (ffi_prep_args): Likewise.
681 (ffi_raw_call): Likewise.
682 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
683 FFI_FASTCALL.
684 * src/x86/win32.S (_ffi_call_win32): Add support for
685 fastcall/thiscall calling-convention calls.
686 * testsuite/libffi.call/fastthis1_win32.c: New test.
687 * testsuite/libffi.call/fastthis2_win32.c: New test.
688 * testsuite/libffi.call/fastthis3_win32.c: New test.
689 * testsuite/libffi.call/strlen2_win32.c: New test.
690 * testsuite/libffi.call/many2_win32.c: New test.
691 * testsuite/libffi.call/struct1_win32.c: New test.
692 * testsuite/libffi.call/struct2_win32.c: New test.
693
694 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
695
696 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
697
698 2012-01-23 Anthony Green <green@moxielogic.com>
699 Chris Young <cdyoung@ntlworld.com>
700
701 * configure.ac: Add Amiga support.
702 * configure: Rebuilt.
703
704 2012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
705
706 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
707
708 2012-01-23 Andreas Schwab <schwab@linux-m68k.org>
709
710 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
711 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
712
713 2012-01-19 Jakub Jelinek <jakub@redhat.com>
714
715 PR rtl-optimization/48496
716 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
717
718 2012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
719
720 * configure.ac (i?86-*-*): Set TARGET to X86_64.
721 * configure: Regenerate.
722
723 2011-12-07 Andrew Pinski <apinski@cavium.com>
724
725 PR libffi/50051
726 * src/mips/n32.S: Add ".set mips4".
727
728 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
729
730 * configure: Regenerate.
731
732 2011-11-12 David Gilbert <david.gilbert@linaro.org>
733
734 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
735 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
736 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
737 src/cris/ffi.c, src/prep_cif.c,
738 testsuite/libffi.call/cls_double_va.c,
739 testsuite/libffi.call/cls_longdouble_va.c,
740 testsuite/libffi.call/float_va.c: Many changes to support variadic
741 function calls.
742
743 2011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
744
745 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
746 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
747 softfloat powerpc variants.
748
749 2011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
750
751 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
752 * configure: Rebuilt.
753
754 2011-11-12 Timothy Wall <twall@users.sf.net>
755
756 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
757 alignment of 4 for wince on ARM.
758
759 2011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
760 Anthony Green <green@moxielogic.com>
761
762 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
763 instructions (not available on some cores, like the PPC440).
764
765 2011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
766
767 * m4/ax_enable_builddir: Change from string comparison to numeric
768 comparison for wc output.
769 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
770 X 10.7.
771 * configure: Rebuilt.
772
773 2011-11-12 Anthony Green <green@moxielogic.com>
774
775 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
776 files with debug info.
777 * Makefile.in: Rebuilt.
778
779 2011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
780
781 * README: Update list of supported OpenBSD systems.
782
783 2011-11-12 Anthony Green <green@moxielogic.com>
784
785 * libtool-version: Update.
786 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
787 FFI_DEBUG.
788 (libffi_la_SOURCES): Remove src/debug.c
789 (EXTRA_DIST): Add src/debug.c
790 * Makefile.in: Rebuilt.
791 * README: Update for 3.0.11.
792
793 2011-11-10 Richard Henderson <rth@redhat.com>
794
795 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
796 * configure, aclocal.m4: Rebuild.
797
798 2011-09-04 Iain Sandoe <iains@gcc.gnu.org>
799
800 PR libffi/49594
801 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
802 helper reference track the architecture pointer size.
803
804 2011-08-25 Andrew Haley <aph@redhat.com>
805
806 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
807 instructions.
808 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
809
810 2011-07-11 Andrew Haley <aph@redhat.com>
811
812 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
813
814 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
815
816 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
817 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
818
819 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
820
821 PR libffi/46660
822 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
823 mips-sgi-irix6*.
824 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
825
826 2011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
827
828 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
829 PRId8 instead of %hhu, %hhd.
830 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
831 PRIu8): Define.
832 [__sgi__] (PRId8, PRIu8): Define.
833
834 2011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
835
836 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
837 Define.
838 Use them to handle ELF vs. ECOFF differences.
839 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
840
841 2011-03-30 Timothy Wall <twall@users.sf.net>
842
843 * src/powerpc/darwin.S: Fix unknown FDE encoding.
844 * src/powerpc/darwin_closure.S: ditto.
845
846 2011-02-25 Anthony Green <green@moxielogic.com>
847
848 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
849 32-bit ABIs.
850
851 2011-02-15 Anthony Green <green@moxielogic.com>
852
853 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
854 * configure: Rebuilt.
855
856 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
857
858 * configure: Regenerate.
859
860 2011-02-13 Anthony Green <green@moxielogic.com>
861
862 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
863 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
864 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
865
866 * src/prep_cif.c (initialize_aggregate): Convert assertion into
867 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
868
869 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
870 just return FFI_BAD_ABI when things are wrong.
871 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
872 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
873 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
874 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
875 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
876
877 2011-02-11 Anthony Green <green@moxielogic.com>
878
879 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
880 just return FFI_BAD_ABI when things are wrong.
881
882 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
883
884 * src/sparc/v9.S (STACKFRAME): Bump to 176.
885
886 2011-02-09 Stuart Shelton <srcshelton@gmail.com>
887
888 http://bugs.gentoo.org/show_bug.cgi?id=286911
889 * src/mips/ffitarget.h: Clean up error messages.
890 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
891 ffi_raw*.
892 * include/ffi.h.in: Add pragma for SGI compiler.
893
894 2011-02-09 Anthony Green <green@moxielogic.com>
895
896 * configure.ac: Add powerpc64-*-darwin* support.
897
898 2011-02-09 Anthony Green <green@moxielogic.com>
899
900 * README: Mention Interix.
901
902 2011-02-09 Jonathan Callen <abcd@gentoo.org>
903
904 * configure.ac: Add Interix to win32/cygwin/mingw case.
905 * configure: Ditto.
906 * src/closures.c: Treat Interix like Cygwin, instead of as a
907 generic win32.
908
909 2011-02-09 Anthony Green <green@moxielogic.com>
910
911 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
912 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
913 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
914 (ffi_prep_closure_loc): Check for bad ABI.
915 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
916 (initialize_aggregate): Check for bad types.
917
918 2011-02-09 Landon Fuller <landonf@plausible.coop>
919
920 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
921 src/arm/trampoline.S.
922 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
923 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
924 * src/arm/ffi.c (ffi_trampoline_table)
925 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
926 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
927 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
928 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
929 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
930 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
931 separately.
932 * src/arm/sysv.S: Handle Apple iOS host.
933 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
934 * build-ios.sh: New file.
935 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
936 * README: Mention ARM iOS.
937
938 2011-02-08 Oren Held <orenhe@il.ibm.com>
939
940 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
941 redefinition of mallinfo on HP-UX.
942
943 2011-02-08 Ginn Chen <ginn.chen@oracle.com>
944
945 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
946 aggregate return ABI. Flush cache.
947 (ffi_prep_closure_loc): Flush cache.
948
949 2011-02-11 Anthony Green <green@moxielogic.com>
950
951 From Tom Honermann <tom.honermann@oracle.com>:
952 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
953 AIX. Declare .ffi_prep_args. Insert nops after branch
954 instructions so that the AIX linker can insert TOC reload
955 instructions.
956 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
957
958 2011-02-08 Ed <ed@kdtc.net>
959
960 * src/powerpc/asm.h: Fix grammar nit in comment.
961
962 2011-02-08 Uli Link <ul.mcamafia@linkitup.de>
963
964 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
965
966 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
967
968 PR libffi/46661
969 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
970 uintptr_t first.
971 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
972
973 2011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
974
975 * configure.ac: Fix x86 test for pc related relocs.
976 * configure: Rebuilt.
977
978 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
979
980 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
981 Handle case when CPU variant does not have long double support.
982 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
983 and cores with soft floating point.
984
985 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
986
987 * configure.ac: Add mips*-*-rtems* support.
988 * configure: Regenerate.
989 * src/mips/ffitarget.h: Ensure needed constants are available
990 for targets which do not have sgidefs.h.
991
992 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
993
994 PR target/40125
995 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
996 * configure: Regenerate.
997
998 2010-12-18 Iain Sandoe <iains@gcc.gnu.org>
999
1000 PR libffi/29152
1001 PR libffi/42378
1002 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1003 update comments.
1004 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1005 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1006 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1007 update comments.
1008 * src/powerpc/ffi_darwin.c: Likewise.
1009
1010 2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1011
1012 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1013 backslashes.
1014 (libffi_cv_as_string_pseudo_op): Likewise.
1015 * configure: Regenerate.
1016
1017 2010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1018
1019 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1020 (ffi_closure_VFP): Same.
1021 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1022 directive.
1023
1024 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1025
1026 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1027 (PRIuPTR): Define.
1028
1029 2010-11-29 Richard Henderson <rth@redhat.com>
1030 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1031
1032 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1033 (.eh_frame): Use FDE_ENCODING.
1034 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1035
1036 2010-11-22 Jacek Caban <jacek@codeweavers.com>
1037
1038 * configure.ac: Check for symbol underscores on mingw-w64.
1039 * configure: Rebuilt.
1040 * src/x86/win64.S: Correctly access extern symbols in respect to
1041 underscores.
1042
1043 2010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1044
1045 * testsuite/lib/libffi-dg.exp: Rename ...
1046 * testsuite/lib/libffi.exp: ... to this.
1047 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1048 * libffi/testsuite/libffi.special/special.exp: Likewise.
1049
1050 2010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1051
1052 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1053 code, new parameter, and return value. Update comments.
1054 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1055 call to layout_vfp_args().
1056 (ffi_call_SYSV): Update declaration.
1057 (ffi_call_VFP): New declaration.
1058 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1059 when ABI is FFI_VFP.
1060 (ffi_closure_VFP): New declaration.
1061 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1062 ffi_prep_incoming_args_SYSV().
1063 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1064 case handling.
1065 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1066 construction under VFP hard-float.
1067 (rec_vfp_type_p): New function.
1068 (vfp_type_p): Same.
1069 (place_vfp_arg): Same.
1070 (layout_vfp_args): Same.
1071 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1072 based on __ARM_PCS_VFP.
1073 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1074 fields.
1075 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1076 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1077 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1078 direct call. Move function pointer load upwards.
1079 (ffi_call_VFP): New function.
1080 (ffi_closure_VFP): Same.
1081
1082 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1083 (dg-skip-if): New function.
1084 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1085 and compiler options include -mfloat-abi=hard.
1086 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1087
1088 2010-10-01 Jakub Jelinek <jakub@redhat.com>
1089
1090 PR libffi/45677
1091 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1092 a multiple of 8.
1093 * testsuite/libffi.call/many2.c: New test.
1094
1095 2010-08-20 Mark Wielaard <mjw@redhat.com>
1096
1097 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1098 returns NULL.
1099
1100 2010-08-09 Andreas Tobler <andreast@fgznet.ch>
1101
1102 * configure.ac: Add target powerpc64-*-freebsd*.
1103 * configure: Regenerate.
1104 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1105 -mlong-double-128 only to linux targets.
1106 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1107 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1108 * testsuite/libffi.call/huge_struct.c: Likewise.
1109
1110 2010-08-05 Dan Witte <dwitte@mozilla.com>
1111
1112 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1113 debug CRT when --enable-debug is given.
1114 * configure.ac: Define it.
1115 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1116
1117 2010-08-04 Dan Witte <dwitte@mozilla.com>
1118
1119 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1120 platforms.
1121 * src/x86/ffi.c: Remove redundant ifdef checks.
1122 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1123 for X86_ANY so return value space doesn't get added twice.
1124
1125 2010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1126
1127 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1128
1129 2010-07-22 Dan Witte <dwitte@mozilla.com>
1130
1131 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1132 * src/prep_cif.c: Fix ABI assertion.
1133 * src/cris/ffi.c: Ditto.
1134
1135 2010-07-10 Evan Phoenix <evan@fallingsnow.net>
1136
1137 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1138
1139 2010-07-07 Dan Horák <dan@danny.cz>
1140
1141 * include/ffi.h.in: Protect #define with #ifndef.
1142 * src/powerpc/ffitarget.h: Ditto.
1143 * src/s390/ffitarget.h: Ditto.
1144 * src/sparc/ffitarget.h: Ditto.
1145
1146 2010-07-07 Neil Roberts <neil@linux.intel.com>
1147
1148 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1149 16-bytes.
1150
1151 2010-07-02 Jakub Jelinek <jakub@redhat.com>
1152
1153 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1154 * Makefile.in: Regenerated.
1155
1156 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1157
1158 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1159 output, too.
1160 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1161 (libffi_cv_as_string_pseudo_op): Check for .string.
1162 * configure: Regenerate.
1163 * fficonfig.h.in: Regenerate.
1164 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1165
1166 2010-05-11 Dan Witte <dwitte@mozilla.com>
1167
1168 * doc/libffi.tex: Document previous change.
1169
1170 2010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1171
1172 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1173
1174 2010-05-05 Michael Kohler <michaelkohler@live.com>
1175
1176 * src/dlmalloc.c (dlfree): Fix spelling.
1177 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1178 * configure.ac: Ditto.
1179 * configure: Rebuilt.
1180
1181 2010-04-13 Dan Witte <dwitte@mozilla.com>
1182
1183 * msvcc.sh: Build with -W3 instead of -Wall.
1184 * src/powerpc/ffi_darwin.c: Remove build warnings.
1185 * src/x86/ffi.c: Ditto.
1186 * src/x86/ffitarget.h: Ditto.
1187
1188 2010-04-12 Dan Witte <dwitte@mozilla.com>
1189 Walter Meinl <wuno@lsvw.de>
1190
1191 * configure.ac: Add OS/2 support.
1192 * configure: Rebuilt.
1193 * src/closures.c: Ditto.
1194 * src/dlmalloc.c: Ditto.
1195 * src/x86/win32.S: Ditto.
1196
1197 2010-04-07 Jakub Jelinek <jakub@redhat.com>
1198
1199 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
1200
1201 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1202
1203 * Makefile.in: Regenerate.
1204 * aclocal.m4: Regenerate.
1205 * include/Makefile.in: Regenerate.
1206 * man/Makefile.in: Regenerate.
1207 * testsuite/Makefile.in: Regenerate.
1208
1209 2010-03-30 Dan Witte <dwitte@mozilla.com>
1210
1211 * msvcc.sh: Disable build warnings.
1212 * README (tested): Clarify windows build procedure.
1213
1214 2010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1215
1216 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1217 * configure: Regenerate.
1218 * fficonfig.h.in: Regenerate.
1219 * libffi/src/x86/unix64.S (.eh_frame)
1220 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1221
1222 2010-03-14 Matthias Klose <doko@ubuntu.com>
1223
1224 * src/x86/ffi64.c: Fix typo in comment.
1225 * src/x86/ffi.c: Use /* ... */ comment style.
1226
1227 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1228
1229 * doc/libffi.texi (The Closure API): Fix typo.
1230 * doc/libffi.info: Remove.
1231
1232 2010-02-15 Matthias Klose <doko@ubuntu.com>
1233
1234 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1235 __ARM_ARCH_7EM__.
1236
1237 2010-01-15 Anthony Green <green@redhat.com>
1238
1239 * README: Add notes on building with Microsoft Visual C++.
1240
1241 2010-01-15 Daniel Witte <dwitte@mozilla.com>
1242
1243 * msvcc.sh: New file.
1244
1245 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1246 * src/x86/ffi.c: Tweak function declaration and remove excess
1247 parens.
1248 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1249 ffi_closure.
1250
1251 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1252 function ffi_call_win32 on X86_WIN32.
1253 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1254 (ffi_call_STDCALL): Remove.
1255
1256 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1257 to ffi_prep_cif_machdep for x86.
1258 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1259
1260 2010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1261
1262 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
1263 Sun Studio compiler compatibility.
1264
1265 2010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1266
1267 * doc/libffi.texi: Add closure example.
1268
1269 2010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1270
1271 PR libffi/40701
1272 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1273 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1274 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1275 alpha*-dec-osf*.
1276 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1277 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1278 * testsuite/libffi.call/return_ll1.c: Likewise.
1279 * testsuite/libffi.call/stret_medium2.c: Likewise.
1280 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1281 MAP_FAILED to char *.
1282
1283 2010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1284
1285 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1286
1287 2009-12-31 Anthony Green <green@redhat.com>
1288
1289 * README: Update for libffi 3.0.9.
1290
1291 2009-12-27 Matthias Klose <doko@ubuntu.com>
1292
1293 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1294 appropriate.
1295 * configure: Rebuilt.
1296
1297 2009-12-26 Anthony Green <green@redhat.com>
1298
1299 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1300 avr32*-*-*.
1301 * testsuite/libffi.call/cls_double_va.c: Ditto.
1302
1303 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1304
1305 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1306 and inttypes.h.
1307 * testsuite/libffi.special/unwindtest.cc: Ditto.
1308
1309 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1310
1311 * configure.ac: Add amd64-*-openbsd*.
1312 * configure: Rebuilt.
1313 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1314 openbsd programs with -lpthread.
1315
1316 2009-12-26 Anthony Green <green@redhat.com>
1317
1318 * testsuite/libffi.call/cls_double_va.c,
1319 testsuite/libffi.call/cls_longdouble.c,
1320 testsuite/libffi.call/cls_longdouble_va.c,
1321 testsuite/libffi.call/cls_pointer.c,
1322 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1323 mips*-*-* and arm*-*-*.
1324 * testsuite/libffi.call/cls_align_longdouble_split.c,
1325 testsuite/libffi.call/cls_align_longdouble_split2.c,
1326 testsuite/libffi.call/stret_medium2.c,
1327 testsuite/libffi.call/stret_medium.c,
1328 testsuite/libffi.call/stret_large.c,
1329 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1330
1331 2009-12-31 Kay Tietz <ktietz70@googlemail.com>
1332
1333 * testsuite/libffi.call/ffitest.h,
1334 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1335 definitions.
1336
1337 2009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1338
1339 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1340 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1341 * configure: Rebuilt.
1342 * Makefile.in: Rebuilt.
1343
1344 2009-12-31 Anthony Green <green@redhat.com>
1345 Blake Chaffin.
1346
1347 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1348 Chaffin @ Apple.
1349
1350 2009-12-28 David Edelsohn <edelsohn@gnu.org>
1351
1352 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1353 local variables.
1354 (aix_adjust_aggregate_sizes): New function.
1355 (ffi_prep_cif_machdep): Call it.
1356
1357 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1358
1359 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1360 * configure: Regenerate.
1361 * fficonfig.h.in: Likewise.
1362 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1363 Solaris/x86.
1364
1365 2009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1366
1367 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1368 when a float arguments is passed in memory.
1369 (ffi_closure_helper_SYSV): Mark general registers as used up when
1370 a 64bit or soft-float long double argument is passed in memory.
1371
1372 2009-12-25 Matthias Klose <doko@ubuntu.com>
1373
1374 * man/ffi_call.3: Fix #include in examples.
1375 * doc/libffi.texi: Add dircategory.
1376
1377 2009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1378
1379 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1380 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1381 IRIX MIPSPro c99.
1382 * include/ffi_common.h: Added '__sgi' define to non
1383 '__attribute__((__mode__()))' integer typedefs.
1384 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
1385 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1386 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1387 FFI_LONGDOUBLE support and alignment(N32 only).
1388 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1389 fixed non '__attribute__((__mode__()))' integer typedefs.
1390 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1391 since they are Linux/GNU Assembler specific.
1392
1393 2009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1394
1395 * configure.ac, Makefile.am, src/avr32/ffi.c,
1396 src/avr32/ffitarget.h,
1397 src/avr32/sysv.S: Add AVR32 port.
1398 * configure, Makefile.in: Rebuilt.
1399
1400 2009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1401
1402 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1403 * configure: Regenerate.
1404
1405 2009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1406
1407 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1408
1409 2009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1410
1411 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1412 type on HP-UX.
1413
1414 2012-02-13 Kai Tietz <ktietz@redhat.com>
1415
1416 PR libffi/52221
1417 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1418 support for X86_WIN32.
1419 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1420
1421 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1422
1423 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1424 double' arguments.
1425
1426 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1427
1428 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1429
1430 2009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1431
1432 PR libffi/40700
1433 * src/closures.c [X86_64 && __sun__ && __svr4__]
1434 (FFI_MMAP_EXEC_WRIT): Define.
1435
1436 2009-12-08 David Daney <ddaney@caviumnetworks.com>
1437
1438 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1439 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1440 * testsuite/libffi.call/stret_large.c: Same.
1441 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1442 * testsuite/libffi.call/stret_large2.c: Same.
1443 * testsuite/libffi.call/stret_medium2.c: Same.
1444
1445 2009-12-07 David Edelsohn <edelsohn@gnu.org>
1446
1447 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1448 typo.
1449
1450 2009-12-05 David Edelsohn <edelsohn@gnu.org>
1451
1452 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1453 code.
1454 * src/powerpc/aix_closure.S: Same.
1455
1456 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1457
1458 * Makefile.in: Regenerate.
1459 * configure: Regenerate.
1460 * include/Makefile.in: Regenerate.
1461 * man/Makefile.in: Regenerate.
1462 * testsuite/Makefile.in: Regenerate.
1463
1464 2009-12-04 David Edelsohn <edelsohn@gnu.org>
1465
1466 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
1467 linux64_closure.S.
1468
1469 2009-12-04 Uros Bizjak <ubizjak@gmail.com>
1470
1471 PR libffi/41908
1472 * src/x86/ffi64.c (classify_argument): Update from
1473 gcc/config/i386/i386.c.
1474 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1475 SSE registers directly.
1476 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1477 for x86_64 linux targets.
1478
1479 2009-12-04 David Edelsohn <edelsohn@gnu.org>
1480
1481 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1482 pfr for long double split between fpr13 and stack.
1483
1484 2009-12-03 David Edelsohn <edelsohn@gnu.org>
1485
1486 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1487 fparg_count twice for long double.
1488
1489 2009-12-03 David Edelsohn <edelsohn@gnu.org>
1490
1491 PR libffi/42243
1492 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1493
1494 2009-12-03 Uros Bizjak <ubizjak@gmail.com>
1495
1496 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1497 Remove xfails for x86 linux targets.
1498
1499 2009-12-02 David Edelsohn <edelsohn@gnu.org>
1500
1501 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1502 case.
1503
1504 2009-12-01 David Edelsohn <edelsohn@gnu.org>
1505
1506 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1507 register usage. Call ffi_prep_args directly. Add long double
1508 return value support.
1509 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1510 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1511 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1512 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1513 mode.
1514 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1515 into case.
1516 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1517 Allocate result area between params and FPRs.
1518
1519 2009-11-30 David Edelsohn <edelsohn@gnu.org>
1520
1521 PR target/35484
1522 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1523 AIX64.
1524 * src/powerpc/aix.S: Implement AIX64 version.
1525 * src/powerpc/aix_closure.S: Implement AIX64 version.
1526 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1527 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1528 support.
1529 (ffi_prep_cif_machdep): Same.
1530 (ffi_call): Same.
1531 (ffi_closure_helper_DARWIN): Same.
1532
1533 2009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1534
1535 PR libffi/41908
1536 * testsuite/libffi.call/testclosure.c: New test.
1537
1538 2009-09-28 Kai Tietz <kai.tietz@onevision.com>
1539
1540 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1541 assembly version use of ___chkstk.
1542
1543 2009-09-23 Matthias Klose <doko@ubuntu.com>
1544
1545 PR libffi/40242, PR libffi/41443
1546 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1547 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1548 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1549 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1550 for -mfloat-abi=softfp to work.
1551
1552 2009-09-17 Loren J. Rittle <ljrittle@acm.org>
1553
1554 PR testsuite/32843 (strikes again)
1555 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1556 enable proper extension on char and short.
1557
1558 2009-09-15 David Daney <ddaney@caviumnetworks.com>
1559
1560 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1561 handling for FFI_TYPE_POINTER.
1562 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1563 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1564 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1565 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1566 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1567 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1568 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1569 structure and pointer returns.
1570 (ffi_closure_N32): Add handling for pointer returns.
1571 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1572 calc_n32_return_struct_flags): Handle soft-float.
1573 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1574 (ffi_call_N32): Declare proper argument types.
1575 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1576 soft-float.
1577
1578 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1579
1580 * configure.ac (AC_PREREQ): Bump to 2.64.
1581
1582 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1583
1584 * Makefile.am (install-html, install-pdf): Remove.
1585 * Makefile.in: Regenerate.
1586
1587 * Makefile.in: Regenerate.
1588 * aclocal.m4: Regenerate.
1589 * configure: Regenerate.
1590 * fficonfig.h.in: Regenerate.
1591 * include/Makefile.in: Regenerate.
1592 * man/Makefile.in: Regenerate.
1593 * testsuite/Makefile.in: Regenerate.
1594
1595 2011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1596
1597 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1598 * configure: Rebuilt.
1599
1600 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1601
1602 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1603
1604 2009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1605
1606 PR libffi/40807
1607 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1608 return types for X86_WIN32.
1609 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1610 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1611 _ffi_closure_STDCALL): Likewise.
1612
1613 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1614 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1615
1616 2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1617
1618 PR testsuite/40699
1619 PR testsuite/40707
1620 PR testsuite/40709
1621 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1622 2009-06-30 commits.
1623
1624 2009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1625
1626 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1627 to "" before adding paths. (This reinstates an assignment that
1628 was removed by my 2009-06-30 commit, but changes the initial
1629 value from "." to "".)
1630
1631 2009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1632
1633 PR testsuite/40601
1634 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1635 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1636 empty.
1637
1638 2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1639
1640 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1641 to ld_library_path. Use add_path. Add just find_libgcc_s
1642 to ld_library_path, not every libgcc multilib directory.
1643
1644 2009-06-16 Wim Lewis <wiml@hhhh.org>
1645
1646 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1647 supposed to be callee-saved.
1648 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1649 return buffer for odd-size structs.
1650
1651 2009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1652
1653 PR libffi/40444
1654 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1655 allow_stack_execute for Darwin.
1656
1657 2009-06-16 Andrew Haley <aph@redhat.com>
1658
1659 * configure.ac (TARGETDIR): Add missing blank lines.
1660 * configure: Regenerate.
1661
1662 2009-06-16 Andrew Haley <aph@redhat.com>
1663
1664 * testsuite/libffi.call/cls_align_sint64.c,
1665 testsuite/libffi.call/cls_align_uint64.c,
1666 testsuite/libffi.call/cls_longdouble_va.c,
1667 testsuite/libffi.call/cls_ulonglong.c,
1668 testsuite/libffi.call/return_ll1.c,
1669 testsuite/libffi.call/stret_medium2.c: Fix printf format
1670 specifiers.
1671 * testsuite/libffi.call/ffitest.h,
1672 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1673
1674 2009-06-15 Andrew Haley <aph@redhat.com>
1675
1676 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1677 * testsuite/libffi.call/err_bad_abi.c: Likewise.
1678
1679 2009-06-12 Andrew Haley <aph@redhat.com>
1680
1681 * Makefile.am: Remove info_TEXINFOS.
1682
1683 2009-06-12 Andrew Haley <aph@redhat.com>
1684
1685 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1686 testsuite/libffi.call/cls_align_uint64.c,
1687 testsuite/libffi.call/cls_ulonglong.c,
1688 testsuite/libffi.call/return_ll1.c,
1689 testsuite/libffi.call/stret_medium2.c: Fix printf format
1690 specifiers.
1691 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1692
1693 2009-06-11 Timothy Wall <twall@users.sf.net>
1694
1695 * Makefile.am,
1696 configure.ac,
1697 include/ffi.h.in,
1698 include/ffi_common.h,
1699 src/closures.c,
1700 src/dlmalloc.c,
1701 src/x86/ffi.c,
1702 src/x86/ffitarget.h,
1703 src/x86/win64.S (new),
1704 README: Added win64 support (mingw or MSVC)
1705 * Makefile.in,
1706 include/Makefile.in,
1707 man/Makefile.in,
1708 testsuite/Makefile.in,
1709 configure,
1710 aclocal.m4: Regenerated
1711 * ltcf-c.sh: properly escape cygwin/w32 path
1712 * man/ffi_call.3: Clarify size requirements for return value.
1713 * src/x86/ffi64.c: Fix filename in comment.
1714 * src/x86/win32.S: Remove unused extern.
1715
1716 * testsuite/libffi.call/closure_fn0.c,
1717 testsuite/libffi.call/closure_fn1.c,
1718 testsuite/libffi.call/closure_fn2.c,
1719 testsuite/libffi.call/closure_fn3.c,
1720 testsuite/libffi.call/closure_fn4.c,
1721 testsuite/libffi.call/closure_fn5.c,
1722 testsuite/libffi.call/closure_fn6.c,
1723 testsuite/libffi.call/closure_stdcall.c,
1724 testsuite/libffi.call/cls_12byte.c,
1725 testsuite/libffi.call/cls_16byte.c,
1726 testsuite/libffi.call/cls_18byte.c,
1727 testsuite/libffi.call/cls_19byte.c,
1728 testsuite/libffi.call/cls_1_1byte.c,
1729 testsuite/libffi.call/cls_20byte.c,
1730 testsuite/libffi.call/cls_20byte1.c,
1731 testsuite/libffi.call/cls_24byte.c,
1732 testsuite/libffi.call/cls_2byte.c,
1733 testsuite/libffi.call/cls_3_1byte.c,
1734 testsuite/libffi.call/cls_3byte1.c,
1735 testsuite/libffi.call/cls_3byte2.c,
1736 testsuite/libffi.call/cls_4_1byte.c,
1737 testsuite/libffi.call/cls_4byte.c,
1738 testsuite/libffi.call/cls_5_1_byte.c,
1739 testsuite/libffi.call/cls_5byte.c,
1740 testsuite/libffi.call/cls_64byte.c,
1741 testsuite/libffi.call/cls_6_1_byte.c,
1742 testsuite/libffi.call/cls_6byte.c,
1743 testsuite/libffi.call/cls_7_1_byte.c,
1744 testsuite/libffi.call/cls_7byte.c,
1745 testsuite/libffi.call/cls_8byte.c,
1746 testsuite/libffi.call/cls_9byte1.c,
1747 testsuite/libffi.call/cls_9byte2.c,
1748 testsuite/libffi.call/cls_align_double.c,
1749 testsuite/libffi.call/cls_align_float.c,
1750 testsuite/libffi.call/cls_align_longdouble.c,
1751 testsuite/libffi.call/cls_align_longdouble_split.c,
1752 testsuite/libffi.call/cls_align_longdouble_split2.c,
1753 testsuite/libffi.call/cls_align_pointer.c,
1754 testsuite/libffi.call/cls_align_sint16.c,
1755 testsuite/libffi.call/cls_align_sint32.c,
1756 testsuite/libffi.call/cls_align_sint64.c,
1757 testsuite/libffi.call/cls_align_uint16.c,
1758 testsuite/libffi.call/cls_align_uint32.c,
1759 testsuite/libffi.call/cls_align_uint64.c,
1760 testsuite/libffi.call/cls_dbls_struct.c,
1761 testsuite/libffi.call/cls_double.c,
1762 testsuite/libffi.call/cls_double_va.c,
1763 testsuite/libffi.call/cls_float.c,
1764 testsuite/libffi.call/cls_longdouble.c,
1765 testsuite/libffi.call/cls_longdouble_va.c,
1766 testsuite/libffi.call/cls_multi_schar.c,
1767 testsuite/libffi.call/cls_multi_sshort.c,
1768 testsuite/libffi.call/cls_multi_sshortchar.c,
1769 testsuite/libffi.call/cls_multi_uchar.c,
1770 testsuite/libffi.call/cls_multi_ushort.c,
1771 testsuite/libffi.call/cls_multi_ushortchar.c,
1772 testsuite/libffi.call/cls_pointer.c,
1773 testsuite/libffi.call/cls_pointer_stack.c,
1774 testsuite/libffi.call/cls_schar.c,
1775 testsuite/libffi.call/cls_sint.c,
1776 testsuite/libffi.call/cls_sshort.c,
1777 testsuite/libffi.call/cls_uchar.c,
1778 testsuite/libffi.call/cls_uint.c,
1779 testsuite/libffi.call/cls_ulonglong.c,
1780 testsuite/libffi.call/cls_ushort.c,
1781 testsuite/libffi.call/err_bad_abi.c,
1782 testsuite/libffi.call/err_bad_typedef.c,
1783 testsuite/libffi.call/float2.c,
1784 testsuite/libffi.call/huge_struct.c,
1785 testsuite/libffi.call/nested_struct.c,
1786 testsuite/libffi.call/nested_struct1.c,
1787 testsuite/libffi.call/nested_struct10.c,
1788 testsuite/libffi.call/nested_struct2.c,
1789 testsuite/libffi.call/nested_struct3.c,
1790 testsuite/libffi.call/nested_struct4.c,
1791 testsuite/libffi.call/nested_struct5.c,
1792 testsuite/libffi.call/nested_struct6.c,
1793 testsuite/libffi.call/nested_struct7.c,
1794 testsuite/libffi.call/nested_struct8.c,
1795 testsuite/libffi.call/nested_struct9.c,
1796 testsuite/libffi.call/problem1.c,
1797 testsuite/libffi.call/return_ldl.c,
1798 testsuite/libffi.call/return_ll1.c,
1799 testsuite/libffi.call/stret_large.c,
1800 testsuite/libffi.call/stret_large2.c,
1801 testsuite/libffi.call/stret_medium.c,
1802 testsuite/libffi.call/stret_medium2.c,
1803 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1804 of checking for MMAP. Use intptr_t instead of long casts.
1805
1806 2009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1807
1808 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1809 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1810 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1811
1812 2009-06-09 Andrew Haley <aph@redhat.com>
1813
1814 * src/x86/freebsd.S: Add missing file.
1815
1816 2009-06-08 Andrew Haley <aph@redhat.com>
1817
1818 Import from libffi 3.0.8:
1819
1820 * doc/libffi.texi: New file.
1821 * doc/libffi.info: Likewise.
1822 * doc/stamp-vti: Likewise.
1823 * man/Makefile.am: New file.
1824 * man/ffi_call.3: New file.
1825
1826 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1827 src/dlmalloc.c.
1828 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1829
1830 * configure.ac: Bump version to 3.0.8.
1831 parisc*-*-linux*: Add.
1832 i386-*-freebsd* | i386-*-openbsd*: Add.
1833 powerpc-*-beos*: Add.
1834 AM_CONDITIONAL X86_FREEBSD: Add.
1835 AC_CONFIG_FILES: Add man/Makefile.
1836
1837 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1838
1839 2009-06-08 Andrew Haley <aph@redhat.com>
1840
1841 * README: Import from libffi 3.0.8.
1842
1843 2009-06-08 Andrew Haley <aph@redhat.com>
1844
1845 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1846 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1847 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1848 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1849
1850 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1851 * testsuite/libffi.call/stret_medium.c: Likewise.
1852 * testsuite/libffi.call/stret_large2.c: Likewise.
1853 * testsuite/libffi.call/stret_large.c: Likewise.
1854
1855 2008-12-26 Timothy Wall <twall@users.sf.net>
1856
1857 * testsuite/libffi.call/cls_longdouble.c,
1858 testsuite/libffi.call/cls_longdouble_va.c,
1859 testsuite/libffi.call/cls_align_longdouble.c,
1860 testsuite/libffi.call/cls_align_longdouble_split.c,
1861 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1862 failures on x86_64 cygwin/mingw.
1863
1864 2008-12-22 Timothy Wall <twall@users.sf.net>
1865
1866 * testsuite/libffi.call/closure_fn0.c,
1867 testsuite/libffi.call/closure_fn1.c,
1868 testsuite/libffi.call/closure_fn2.c,
1869 testsuite/libffi.call/closure_fn3.c,
1870 testsuite/libffi.call/closure_fn4.c,
1871 testsuite/libffi.call/closure_fn5.c,
1872 testsuite/libffi.call/closure_fn6.c,
1873 testsuite/libffi.call/closure_loc_fn0.c,
1874 testsuite/libffi.call/closure_stdcall.c,
1875 testsuite/libffi.call/cls_align_pointer.c,
1876 testsuite/libffi.call/cls_pointer.c,
1877 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1878 pointer to integer (intptr_t).
1879 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
1880
1881 2008-07-24 Anthony Green <green@redhat.com>
1882
1883 * testsuite/libffi.call/cls_dbls_struct.c,
1884 testsuite/libffi.call/cls_double_va.c,
1885 testsuite/libffi.call/cls_longdouble.c,
1886 testsuite/libffi.call/cls_longdouble_va.c,
1887 testsuite/libffi.call/cls_pointer.c,
1888 testsuite/libffi.call/cls_pointer_stack.c,
1889 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1890 compiler warnings.
1891
1892 2008-03-04 Anthony Green <green@redhat.com>
1893 Blake Chaffin
1894 hos@tamanegi.org
1895
1896 * testsuite/libffi.call/cls_align_longdouble_split2.c
1897 testsuite/libffi.call/cls_align_longdouble_split.c
1898 testsuite/libffi.call/cls_dbls_struct.c
1899 testsuite/libffi.call/cls_double_va.c
1900 testsuite/libffi.call/cls_longdouble.c
1901 testsuite/libffi.call/cls_longdouble_va.c
1902 testsuite/libffi.call/cls_pointer.c
1903 testsuite/libffi.call/cls_pointer_stack.c
1904 testsuite/libffi.call/err_bad_abi.c
1905 testsuite/libffi.call/err_bad_typedef.c
1906 testsuite/libffi.call/stret_large2.c
1907 testsuite/libffi.call/stret_large.c
1908 testsuite/libffi.call/stret_medium2.c
1909 testsuite/libffi.call/stret_medium.c: New tests from Apple.
1910
1911 2009-06-05 Andrew Haley <aph@redhat.com>
1912
1913 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1914 libffi.
1915
1916 2009-06-04 Andrew Haley <aph@redhat.com>
1917
1918 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1919 stdcall changes.
1920
1921 2008-02-26 Anthony Green <green@redhat.com>
1922 Thomas Heller <theller@ctypes.org>
1923
1924 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1925 comment.
1926
1927 2008-02-03 Timothy Wall <twall@users.sf.net>
1928
1929 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1930 offset based on code pointer, not data pointer.
1931
1932 2008-01-31 Timothy Wall <twall@users.sf.net>
1933
1934 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1935 closures.
1936 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1937 closures.
1938 * src/x86/win32.S: Add assembly for stdcall closure.
1939 * src/x86/ffi.c: Initialize stdcall closure trampoline.
1940
1941 2009-06-04 Andrew Haley <aph@redhat.com>
1942
1943 * include/ffi.h.in: Change void (*)() to void (*)(void).
1944 * src/x86/ffi.c: Likewise.
1945
1946 2009-06-04 Andrew Haley <aph@redhat.com>
1947
1948 * src/powerpc/ppc_closure.S: Insert licence header.
1949 * src/powerpc/linux64_closure.S: Likewise.
1950 * src/m68k/sysv.S: Likewise.
1951
1952 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1953 * src/powerpc/ffi.c: Likewise.
1954 * src/powerpc/ffi_darwin.c: Likewise.
1955 * src/m32r/ffi.c: Likewise.
1956 * src/sh64/ffi.c: Likewise.
1957 * src/x86/ffi64.c: Likewise.
1958 * src/alpha/ffi.c: Likewise.
1959 * src/alpha/osf.S: Likewise.
1960 * src/frv/ffi.c: Likewise.
1961 * src/s390/ffi.c: Likewise.
1962 * src/pa/ffi.c: Likewise.
1963 * src/pa/hpux32.S: Likewise.
1964 * src/ia64/unix.S: Likewise.
1965 * src/ia64/ffi.c: Likewise.
1966 * src/sparc/ffi.c: Likewise.
1967 * src/mips/ffi.c: Likewise.
1968 * src/sh/ffi.c: Likewise.
1969
1970 2008-02-15 David Daney <ddaney@avtrex.com>
1971
1972 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1973 Define (conditionally), and use it to include cachectl.h.
1974 (ffi_prep_closure_loc): Fix cache flushing.
1975 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
1976
1977 2009-06-04 Andrew Haley <aph@redhat.com>
1978
1979 include/ffi.h.in,
1980 src/arm/ffitarget.h,
1981 src/arm/ffi.c,
1982 src/arm/sysv.S,
1983 src/powerpc/ffitarget.h,
1984 src/closures.c,
1985 src/sh64/ffitarget.h,
1986 src/sh64/ffi.c,
1987 src/sh64/sysv.S,
1988 src/types.c,
1989 src/x86/ffi64.c,
1990 src/x86/ffitarget.h,
1991 src/x86/win32.S,
1992 src/x86/darwin.S,
1993 src/x86/ffi.c,
1994 src/x86/sysv.S,
1995 src/x86/unix64.S,
1996 src/alpha/ffitarget.h,
1997 src/alpha/ffi.c,
1998 src/alpha/osf.S,
1999 src/m68k/ffitarget.h,
2000 src/frv/ffitarget.h,
2001 src/frv/ffi.c,
2002 src/s390/ffitarget.h,
2003 src/s390/sysv.S,
2004 src/cris/ffitarget.h,
2005 src/pa/linux.S,
2006 src/pa/ffitarget.h,
2007 src/pa/ffi.c,
2008 src/raw_api.c,
2009 src/ia64/ffitarget.h,
2010 src/ia64/unix.S,
2011 src/ia64/ffi.c,
2012 src/ia64/ia64_flags.h,
2013 src/java_raw_api.c,
2014 src/debug.c,
2015 src/sparc/v9.S,
2016 src/sparc/ffitarget.h,
2017 src/sparc/ffi.c,
2018 src/sparc/v8.S,
2019 src/mips/ffitarget.h,
2020 src/mips/n32.S,
2021 src/mips/o32.S,
2022 src/mips/ffi.c,
2023 src/prep_cif.c,
2024 src/sh/ffitarget.h,
2025 src/sh/ffi.c,
2026 src/sh/sysv.S: Update license text.
2027
2028 2009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2029
2030 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2031 (.eh_frame): Add FDE for it.
2032
2033 2009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2034
2035 * configure.ac: Also check if assembler supports pc-relative
2036 relocs on X86_WIN32 targets.
2037 * configure: Regenerate.
2038 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2039 (_ffi_call_SYSV): Add missing function type symbol .def and
2040 add EH markup labels.
2041 (_ffi_call_STDCALL): Likewise.
2042 (_ffi_closure_SYSV): Likewise.
2043 (_ffi_closure_raw_SYSV): Likewise.
2044 (.eh_frame): Add hand-crafted EH data.
2045
2046 2009-04-09 Jakub Jelinek <jakub@redhat.com>
2047
2048 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2049 version 3 of the GNU General Public License and to point readers
2050 at the COPYING3 file and the FSF's license web page.
2051 * testsuite/libffi.call/call.exp: Likewise.
2052 * testsuite/libffi.special/special.exp: Likewise.
2053
2054 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2055
2056 * configure: Regenerate.
2057
2058 2008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2059
2060 PR libffi/26048
2061 * configure.ac (HAVE_AS_X86_PCREL): New test.
2062 * configure: Regenerate.
2063 * fficonfig.h.in: Regenerate.
2064 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2065 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2066 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2067 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2068 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2069 (.Lload_table): Likewise.
2070 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2071
2072 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2073
2074 * configure: Regenerate.
2075
2076 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2077
2078 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2079 signed/unsigned int8/16 return values.
2080 * src/sparc/v8.S (ffi_call_v8): Likewise.
2081 (ffi_closure_v8): Likewise.
2082
2083 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2084 Steve Ellcey <sje@cup.hp.com>
2085
2086 * configure: Regenerate for new libtool.
2087 * Makefile.in: Ditto.
2088 * include/Makefile.in: Ditto.
2089 * aclocal.m4: Ditto.
2090
2091 2008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2092
2093 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2094 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2095 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2096 Adjust copyright notice.
2097 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2098 register or two register to use for FFI_SYSV structs.
2099 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2100 (ffi_closure_helper_SYSV): Fix the return type for
2101 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2102 Adjust copyright notice.
2103
2104 2008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2105
2106 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2107 int.
2108
2109 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2110
2111 * configure: Regenerate.
2112 * include/Makefile.in: Regenerate.
2113 * testsuite/Makefile.in: Regenerate.
2114
2115 2008-06-07 Joseph Myers <joseph@codesourcery.com>
2116
2117 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2118 powerpc-*-beos*): Remove.
2119 * configure: Regenerate.
2120
2121 2008-05-09 Julian Brown <julian@codesourcery.com>
2122
2123 * Makefile.am (LTLDFLAGS): New.
2124 (libffi_la_LDFLAGS): Use above.
2125 * Makefile.in: Regenerate.
2126
2127 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
2128
2129 PR bootstrap/35457
2130 * aclocal.m4: Regenerate.
2131 * configure: Regenerate.
2132
2133 2008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2134
2135 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2136 * src/sh64/sysv.S: Likewise.
2137
2138 2008-03-26 Daniel Jacobowitz <dan@debian.org>
2139
2140 * src/arm/sysv.S: Fix ARM comment marker.
2141
2142 2008-03-26 Jakub Jelinek <jakub@redhat.com>
2143
2144 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2145 * src/s390/sysv.S: Likewise.
2146 * src/powerpc/ppc_closure.S: Likewise.
2147 * src/powerpc/sysv.S: Likewise.
2148 * src/x86/unix64.S: Likewise.
2149 * src/x86/sysv.S: Likewise.
2150 * src/sparc/v8.S: Likewise.
2151 * src/sparc/v9.S: Likewise.
2152 * src/m68k/sysv.S: Likewise.
2153 * src/arm/sysv.S: Likewise.
2154
2155 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2156
2157 * aclocal.m4: Regenerate.
2158 * configure: Likewise.
2159 * Makefile.in: Likewise.
2160 * include/Makefile.in: Likewise.
2161 * testsuite/Makefile.in: Likewise.
2162
2163 2008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2164 Andreas Tobler <a.tobler@schweiz.org>
2165
2166 * configure.ac: Add amd64-*-freebsd* target.
2167 * configure: Regenerate.
2168
2169 2008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2170
2171 PR libffi/34612
2172 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2173 returning struct.
2174
2175 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2176 tests.
2177
2178 2008-01-24 David Edelsohn <edelsohn@gnu.org>
2179
2180 * configure: Regenerate.
2181
2182 2008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2183
2184 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2185
2186 2008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2187
2188 PR testsuite/32843
2189 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2190 signed/unsigned int8/16 for X86_DARWIN.
2191 Updated copyright info.
2192 Handle one and two byte structs with special cif->flags.
2193 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2194 Updated copyright info.
2195 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2196 sysv.S
2197 Remove code to pop args from the stack after call.
2198 Special-case signed/unsigned for int8/16, one and two byte structs.
2199 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2200 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2201 FFI_TYPE_SINT32.
2202 Updated copyright info.
2203
2204 2007-12-08 David Daney <ddaney@avtrex.com>
2205
2206 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
2207 SUBU, add with ADDU and use smaller code sequences.
2208
2209 2007-12-07 David Daney <ddaney@avtrex.com>
2210
2211 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2212 type.
2213
2214 2007-12-06 David Daney <ddaney@avtrex.com>
2215
2216 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2217 defined.
2218 (ffi_java_raw): New typedef.
2219 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2220 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2221 ffi_java_raw.
2222 (ffi_java_raw_closure) : Same.
2223 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2224 parameter types.
2225 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2226 FFI_SIZEOF_JAVA_RAW.
2227 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2228 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2229 sizeof(ffi_java_raw) for alignment calculations.
2230 (ffi_java_ptrarray_to_raw): Same.
2231 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
2232 if FFI_SIZEOF_JAVA_RAW == 4.
2233 (ffi_java_raw_to_rvalue): Same.
2234 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2235 (ffi_java_translate_args): Same.
2236 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2237 parameter types.
2238 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2239
2240 2007-12-06 David Daney <ddaney@avtrex.com>
2241
2242 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
2243 pointer values.
2244
2245 2007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2246
2247 PR libffi/31937
2248 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2249 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2250 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2251 set the NUM_FPR_ARG_REGISTERS according to.
2252 Add support for potential soft-float support under hard-float
2253 architecture.
2254 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2255 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2256 to the FFI_LINUX_SOFT_FLOAT ABI.
2257 (ffi_prep_cif_machdep): Likewise.
2258 (ffi_closure_helper_SYSV): Likewise.
2259 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2260 on archs where __NO_FPRS__ is true.
2261 Add FFI_TYPE_UINT128 support.
2262 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2263 Adjust copyright notice.
2264
2265 2007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2266
2267 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2268 * include/ffi_common.h: ... here.
2269 Update copyright.
2270
2271 2007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2272
2273 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2274 * src/powerpc/linux64.S: Likewise.
2275 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2276 * testsuite/libffi.call/return_ldl.c: New test.
2277
2278 2007-09-04 <aph@redhat.com>
2279
2280 * src/arm/sysv.S (UNWIND): New.
2281 (Whole file): Conditionally compile unwinder directives.
2282 * src/arm/sysv.S: Add unwinder directives.
2283
2284 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2285 Only treat r0 as a struct address if we're actually returning a
2286 struct by address.
2287 Only copy the bytes that are actually within a struct.
2288 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2289 is returned in r0, not passed by address.
2290 (ffi_call): Allocate a word-sized temporary for the case where
2291 a composite is returned in r0.
2292 (ffi_prep_incoming_args_SYSV): Align as necessary.
2293
2294 2007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2295
2296 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
2297 directly using the sys_cacheflush syscall.
2298
2299 2007-07-27 Andrew Haley <aph@redhat.com>
2300
2301 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2302
2303 2007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2304
2305 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2306 * configure.ac: Likewise.
2307 * Makefile.in: Regenerate.
2308 * include/Makefile.in: Likewise.
2309 * testsuite/Makefile.in: Likewise.
2310 * configure: Likewise.
2311
2312 2007-08-24 David Daney <ddaney@avtrex.com>
2313
2314 * testsuite/libffi.call/return_sl.c: New test.
2315
2316 2007-08-10 David Daney <ddaney@avtrex.com>
2317
2318 * testsuite/libffi.call/cls_multi_ushort.c,
2319 testsuite/libffi.call/cls_align_uint16.c,
2320 testsuite/libffi.call/nested_struct1.c,
2321 testsuite/libffi.call/nested_struct3.c,
2322 testsuite/libffi.call/cls_7_1_byte.c,
2323 testsuite/libffi.call/nested_struct5.c,
2324 testsuite/libffi.call/cls_double.c,
2325 testsuite/libffi.call/nested_struct7.c,
2326 testsuite/libffi.call/cls_sint.c,
2327 testsuite/libffi.call/nested_struct9.c,
2328 testsuite/libffi.call/cls_20byte1.c,
2329 testsuite/libffi.call/cls_multi_sshortchar.c,
2330 testsuite/libffi.call/cls_align_sint64.c,
2331 testsuite/libffi.call/cls_3byte2.c,
2332 testsuite/libffi.call/cls_multi_schar.c,
2333 testsuite/libffi.call/cls_multi_uchar.c,
2334 testsuite/libffi.call/cls_19byte.c,
2335 testsuite/libffi.call/cls_9byte1.c,
2336 testsuite/libffi.call/cls_align_float.c,
2337 testsuite/libffi.call/closure_fn1.c,
2338 testsuite/libffi.call/problem1.c,
2339 testsuite/libffi.call/closure_fn3.c,
2340 testsuite/libffi.call/cls_sshort.c,
2341 testsuite/libffi.call/closure_fn5.c,
2342 testsuite/libffi.call/cls_align_double.c,
2343 testsuite/libffi.call/nested_struct.c,
2344 testsuite/libffi.call/cls_2byte.c,
2345 testsuite/libffi.call/nested_struct10.c,
2346 testsuite/libffi.call/cls_4byte.c,
2347 testsuite/libffi.call/cls_6byte.c,
2348 testsuite/libffi.call/cls_8byte.c,
2349 testsuite/libffi.call/cls_multi_sshort.c,
2350 testsuite/libffi.call/cls_align_sint16.c,
2351 testsuite/libffi.call/cls_align_uint32.c,
2352 testsuite/libffi.call/cls_20byte.c,
2353 testsuite/libffi.call/cls_float.c,
2354 testsuite/libffi.call/nested_struct2.c,
2355 testsuite/libffi.call/cls_5_1_byte.c,
2356 testsuite/libffi.call/nested_struct4.c,
2357 testsuite/libffi.call/cls_24byte.c,
2358 testsuite/libffi.call/nested_struct6.c,
2359 testsuite/libffi.call/cls_64byte.c,
2360 testsuite/libffi.call/nested_struct8.c,
2361 testsuite/libffi.call/cls_uint.c,
2362 testsuite/libffi.call/cls_multi_ushortchar.c,
2363 testsuite/libffi.call/cls_schar.c,
2364 testsuite/libffi.call/cls_uchar.c,
2365 testsuite/libffi.call/cls_align_uint64.c,
2366 testsuite/libffi.call/cls_ulonglong.c,
2367 testsuite/libffi.call/cls_align_longdouble.c,
2368 testsuite/libffi.call/cls_1_1byte.c,
2369 testsuite/libffi.call/cls_12byte.c,
2370 testsuite/libffi.call/cls_3_1byte.c,
2371 testsuite/libffi.call/cls_3byte1.c,
2372 testsuite/libffi.call/cls_4_1byte.c,
2373 testsuite/libffi.call/cls_6_1_byte.c,
2374 testsuite/libffi.call/cls_16byte.c,
2375 testsuite/libffi.call/cls_18byte.c,
2376 testsuite/libffi.call/closure_fn0.c,
2377 testsuite/libffi.call/cls_9byte2.c,
2378 testsuite/libffi.call/closure_fn2.c,
2379 testsuite/libffi.call/closure_fn4.c,
2380 testsuite/libffi.call/cls_ushort.c,
2381 testsuite/libffi.call/closure_fn6.c,
2382 testsuite/libffi.call/cls_5byte.c,
2383 testsuite/libffi.call/cls_align_pointer.c,
2384 testsuite/libffi.call/cls_7byte.c,
2385 testsuite/libffi.call/cls_align_sint32.c,
2386 testsuite/libffi.special/unwindtest_ffi_call.cc,
2387 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2388
2389 2007-08-10 David Daney <ddaney@avtrex.com>
2390
2391 PR libffi/28313
2392 * configure.ac: Don't treat mips64 as a special case.
2393 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2394 * configure: Regenerate
2395 * Makefile.in: Ditto.
2396 * fficonfig.h.in: Ditto.
2397 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2398 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2399 (FFI_DEFAULT_ABI): Set for n64 case.
2400 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2401 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2402 (ffi_closure_N32): New function.
2403 (.eh_frame): New section
2404 * src/mips/o32.S: Clean up comments.
2405 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2406 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2407 _MIPS_SIM == _ABIN32 throughout.
2408 (FFI_MIPS_STOP_HERE): New, use in place of
2409 ffi_stop_here.
2410 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2411 to support n32/n64 ABIs.
2412 (calc_n32_struct_flags): Rewrite.
2413 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2414 position of flag bits.
2415 (ffi_prep_cif_machdep): Rewrite n32 portion.
2416 (ffi_call): Enable for n64. Add special handling for small structure
2417 return values.
2418 (ffi_prep_closure_loc): Add n32 and n64 support.
2419 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2420 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2421
2422 2007-08-08 David Daney <ddaney@avtrex.com>
2423
2424 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2425 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2426 specifiers.
2427 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2428 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2429 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2430 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2431 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2432 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2433 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2434 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2435 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2436 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2437 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2438 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2439 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2440 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2441 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2442 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2443 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2444 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2445 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2446 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2447 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2448 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2449 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2450 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2451 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2452 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2453 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2454 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2455 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2456 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2457 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2458
2459 2007-08-07 Andrew Haley <aph@redhat.com>
2460
2461 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2462 checkin.
2463
2464 2007-08-06 Andrew Haley <aph@redhat.com>
2465
2466 PR testsuite/32843
2467 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2468 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2469 FFI_TYPE_SINT32.
2470
2471 2007-08-02 David Daney <ddaney@avtrex.com>
2472
2473 * testsuite/libffi.call/return_ul.c (main): Define return type as
2474 ffi_arg. Use proper printf conversion specifier.
2475
2476 2007-07-30 Andrew Haley <aph@redhat.com>
2477
2478 PR testsuite/32843
2479 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2480 signed/unsigned int8/16.
2481 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2482 Use a jump table.
2483 Remove code to pop args from the stack after call.
2484 Special-case signed/unsigned int8/16.
2485 * testsuite/libffi.call/return_sc.c (main): Revert.
2486
2487 2007-07-26 Richard Guenther <rguenther@suse.de>
2488
2489 PR testsuite/32843
2490 * testsuite/libffi.call/return_sc.c (main): Verify call
2491 result as signed char, not ffi_arg.
2492
2493 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2494
2495 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2496 * configure: Regenerate.
2497
2498 2007-07-11 David Daney <ddaney@avtrex.com>
2499
2500 * src/mips/ffi.c: Don't include sys/cachectl.h.
2501 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2502 cacheflush().
2503
2504 2007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2505
2506 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2507 from (ffi_prep_closure): ... this.
2508 (FFI_INIT_TRAMPOLINE): Adjust.
2509
2510 2005-12-31 Phil Blundell <pb@reciva.com>
2511
2512 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2513 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
2514 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2515 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2516 (FFI_CLOSURES): Enable closure support.
2517
2518 2007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2519
2520 * testsuite/libffi.call/cls_multi_ushort.c,
2521 testsuite/libffi.call/cls_align_uint16.c,
2522 testsuite/libffi.call/nested_struct1.c,
2523 testsuite/libffi.call/nested_struct3.c,
2524 testsuite/libffi.call/cls_7_1_byte.c,
2525 testsuite/libffi.call/cls_double.c,
2526 testsuite/libffi.call/nested_struct5.c,
2527 testsuite/libffi.call/nested_struct7.c,
2528 testsuite/libffi.call/cls_sint.c,
2529 testsuite/libffi.call/nested_struct9.c,
2530 testsuite/libffi.call/cls_20byte1.c,
2531 testsuite/libffi.call/cls_multi_sshortchar.c,
2532 testsuite/libffi.call/cls_align_sint64.c,
2533 testsuite/libffi.call/cls_3byte2.c,
2534 testsuite/libffi.call/cls_multi_schar.c,
2535 testsuite/libffi.call/cls_multi_uchar.c,
2536 testsuite/libffi.call/cls_19byte.c,
2537 testsuite/libffi.call/cls_9byte1.c,
2538 testsuite/libffi.call/cls_align_float.c,
2539 testsuite/libffi.call/closure_fn1.c,
2540 testsuite/libffi.call/problem1.c,
2541 testsuite/libffi.call/closure_fn3.c,
2542 testsuite/libffi.call/cls_sshort.c,
2543 testsuite/libffi.call/closure_fn5.c,
2544 testsuite/libffi.call/cls_align_double.c,
2545 testsuite/libffi.call/cls_2byte.c,
2546 testsuite/libffi.call/nested_struct.c,
2547 testsuite/libffi.call/nested_struct10.c,
2548 testsuite/libffi.call/cls_4byte.c,
2549 testsuite/libffi.call/cls_6byte.c,
2550 testsuite/libffi.call/cls_8byte.c,
2551 testsuite/libffi.call/cls_multi_sshort.c,
2552 testsuite/libffi.call/cls_align_uint32.c,
2553 testsuite/libffi.call/cls_align_sint16.c,
2554 testsuite/libffi.call/cls_float.c,
2555 testsuite/libffi.call/cls_20byte.c,
2556 testsuite/libffi.call/cls_5_1_byte.c,
2557 testsuite/libffi.call/nested_struct2.c,
2558 testsuite/libffi.call/cls_24byte.c,
2559 testsuite/libffi.call/nested_struct4.c,
2560 testsuite/libffi.call/nested_struct6.c,
2561 testsuite/libffi.call/cls_64byte.c,
2562 testsuite/libffi.call/nested_struct8.c,
2563 testsuite/libffi.call/cls_uint.c,
2564 testsuite/libffi.call/cls_multi_ushortchar.c,
2565 testsuite/libffi.call/cls_schar.c,
2566 testsuite/libffi.call/cls_uchar.c,
2567 testsuite/libffi.call/cls_align_uint64.c,
2568 testsuite/libffi.call/cls_ulonglong.c,
2569 testsuite/libffi.call/cls_align_longdouble.c,
2570 testsuite/libffi.call/cls_1_1byte.c,
2571 testsuite/libffi.call/cls_12byte.c,
2572 testsuite/libffi.call/cls_3_1byte.c,
2573 testsuite/libffi.call/cls_3byte1.c,
2574 testsuite/libffi.call/cls_4_1byte.c,
2575 testsuite/libffi.call/cls_6_1_byte.c,
2576 testsuite/libffi.call/cls_16byte.c,
2577 testsuite/libffi.call/cls_18byte.c,
2578 testsuite/libffi.call/closure_fn0.c,
2579 testsuite/libffi.call/cls_9byte2.c,
2580 testsuite/libffi.call/closure_fn2.c,
2581 testsuite/libffi.call/closure_fn4.c,
2582 testsuite/libffi.call/cls_ushort.c,
2583 testsuite/libffi.call/closure_fn6.c,
2584 testsuite/libffi.call/cls_5byte.c,
2585 testsuite/libffi.call/cls_align_pointer.c,
2586 testsuite/libffi.call/cls_7byte.c,
2587 testsuite/libffi.call/cls_align_sint32.c,
2588 testsuite/libffi.special/unwindtest_ffi_call.cc,
2589 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
2590
2591 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2592
2593 * aclocal.m4: Regenerated.
2594
2595 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
2596
2597 * configure: Regenerate.
2598
2599 2007-05-23 Steve Ellcey <sje@cup.hp.com>
2600
2601 * Makefile.in: Regenerate.
2602 * configure: Regenerate.
2603 * aclocal.m4: Regenerate.
2604 * include/Makefile.in: Regenerate.
2605 * testsuite/Makefile.in: Regenerate.
2606
2607 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
2608
2609 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2610 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2611 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2612 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2613 (FFI_CLOSURES): Enable closure support.
2614
2615 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
2616
2617 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2618 * configure: Regenerate.
2619 * fficonfig.h.in: Regenerate.
2620 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2621 CFI_OFFSET,CFI_DEF_CFA): New macros.
2622 (ffi_call_SYSV): Add callframe annotation.
2623
2624 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
2625
2626 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2627 numerous test suite failures.
2628 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2629
2630 2007-04-11 Paolo Bonzini <bonzini@gnu.org>
2631
2632 * Makefile.am (EXTRA_DIST): Bring up to date.
2633 * Makefile.in: Regenerate.
2634 * src/frv/eabi.S: Remove RCS keyword.
2635
2636 2007-04-06 Richard Henderson <rth@redhat.com>
2637
2638 * configure.ac: Tidy target case.
2639 (HAVE_LONG_DOUBLE): Allow the target to override.
2640 * configure: Regenerate.
2641 * include/ffi.h.in: Don't define ffi_type_foo if
2642 LIBFFI_HIDE_BASIC_TYPES is defined.
2643 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2644 to ffi_type_double.
2645 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2646 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2647 (ffi_type_longdouble): Special case for Alpha. Don't define
2648 if long double == double.
2649
2650 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2651 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2652 (ffi_call, ffi_closure_osf_inner): Likewise.
2653 (ffi_closure_osf_inner): Likewise. Mark hidden.
2654 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2655 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2656 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2657 (load_table): Handle 128-bit long double.
2658
2659 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2660
2661 2007-04-06 Tom Tromey <tromey@redhat.com>
2662
2663 PR libffi/31491:
2664 * README: Fixed bug in example.
2665
2666 2007-04-03 Jakub Jelinek <jakub@redhat.com>
2667
2668 * src/closures.c: Include sys/statfs.h.
2669 (_GNU_SOURCE): Define on Linux.
2670 (FFI_MMAP_EXEC_SELINUX): Define.
2671 (selinux_enabled): New variable.
2672 (selinux_enabled_check): New function.
2673 (is_selinux_enabled): Define.
2674 (dlmmap): Use it.
2675
2676 2007-03-24 Uros Bizjak <ubizjak@gmail.com>
2677
2678 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2679 Use 'volatile float sum' to create sum of floats to avoid false
2680 negative due to excess precision on ix86 targets.
2681 (main): Ditto.
2682
2683 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
2684
2685 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2686 patch.
2687 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2688
2689 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
2690
2691 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2692 (ffi_prep_closure_loc): New.
2693 (ffi_prep_raw_closure_loc): New.
2694 (ffi_prep_java_raw_closure_loc): New.
2695 * src/closures.c: New file.
2696 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2697 Replace sflags with exec_offset.
2698 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2699 sub_segment_exec_offset): New macros.
2700 (get_segment_flags, set_segment_flags, check_segment_merge): New
2701 macros.
2702 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2703 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2704 destroy_mspace): Use new macros.
2705 (sys_alloc): Silence warning.
2706 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2707 * Makefile.in: Rebuilt.
2708 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2709 terms of ffi_prep_closure_loc.
2710 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2711 from...
2712 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2713 renamed version.
2714 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2715 adjusted from...
2716 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2717 the renamed version.
2718 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2719 (ffi_prep_closure): ... this.
2720 * src/pa/ffi.c: Likewise.
2721 * src/cris/ffi.c: Likewise. Adjust.
2722 * src/frv/ffi.c: Likewise.
2723 * src/ia64/ffi.c: Likewise.
2724 * src/mips/ffi.c: Likewise.
2725 * src/powerpc/ffi_darwin.c: Likewise.
2726 * src/s390/ffi.c: Likewise.
2727 * src/sh/ffi.c: Likewise.
2728 * src/sh64/ffi.c: Likewise.
2729 * src/sparc/ffi.c: Likewise.
2730 * src/x86/ffi64.c: Likewise.
2731 * src/x86/ffi.c: Likewise.
2732 (FFI_INIT_TRAMPOLINE): Adjust.
2733 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2734 (ffi_prep_raw_closure): ... this.
2735 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2736 (ffi_prep_closure): ... this.
2737 (flush_icache): Adjust.
2738
2739 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
2740
2741 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2742 Lea's malloc.
2743
2744 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2745
2746 * Makefile.am: Add dummy install-pdf target.
2747 * Makefile.in: Regenerate
2748
2749 2007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2750
2751 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2752 ffi_closure_helper_SYSV): Add long double handling.
2753
2754 2007-02-02 Jakub Jelinek <jakub@redhat.com>
2755
2756 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2757 immediately after bctrl instruction.
2758
2759 2007-01-18 Alexandre Oliva <aoliva@redhat.com>
2760
2761 * Makefile.am (all-recursive, install-recursive,
2762 mostlyclean-recursive, clean-recursive, distclean-recursive,
2763 maintainer-clean-recursive): Add missing targets.
2764 * Makefile.in: Rebuilt.
2765
2766 2006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2767
2768 * configure.ac: Add TARGET for x86_64-*-darwin*.
2769 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2770 for X86_DARWIN.
2771 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2772 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2773 * configure: Regenerate.
2774 * Makefile.in: Regenerate.
2775 * include/Makefile.in: Regenerate.
2776 * testsuite/Makefile.in: Regenerate.
2777 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2778 ffi_call only.
2779
2780 2006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2781
2782 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2783 Makefile.am.
2784
2785 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2786
2787 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2788 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2789 Darwin.
2790 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2791 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2792
2793 2006-10-10 Paolo Bonzini <bonzini@gnu.org>
2794 Sandro Tolaini <tolaini@libero.it>
2795
2796 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
2797 conditional.
2798 * configure: Regenerated.
2799 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2800 (EXTRA_DIST): Add src/x86/darwin.S.
2801 * Makefile.in: Regenerated.
2802 * include/Makefile.in: Regenerated.
2803 * testsuite/Makefile.in: Regenerated.
2804
2805 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2806 X86_WIN32, and additionally align stack to 16 bytes.
2807 * src/x86/darwin.S: New, based on sysv.S.
2808 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2809
2810 2006-09-12 David Daney <ddaney@avtrex.com>
2811
2812 PR libffi/23935
2813 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2814 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2815 * aclocal.m4: Regenerated for automake 1.9.6.
2816 * Makefile.in: Regenerated.
2817 * include/Makefile.in: Regenerated.
2818 * testsuite/Makefile.in: Regenerated.
2819
2820 2006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2821
2822 * include/ffi_common.h (struct): Revert accidental commit.
2823
2824 2006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2825
2826 * include/ffi_common.h: Remove lint directives.
2827 * include/ffi.h.in: Likewise.
2828
2829 2006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2830
2831 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2832 for 32-bit architectures.
2833 * testsuite/libffi.call/return_ul.c: New test case.
2834
2835 2006-07-19 David Daney <ddaney@avtrex.com>
2836
2837 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2838 xfail remains for mips64.
2839
2840 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2841
2842 * Makefile.am: Add install-html target. Add install-html to .PHONY
2843 * Makefile.in: Regenerate.
2844 * aclocal.m4: Regenerate.
2845 * include/Makefile.in: Regenerate.
2846 * testsuite/Makefile.in: Regenerate.
2847
2848 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2849
2850 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2851 stack slot.
2852
2853 2006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2854
2855 * README: Remove notice about 'Crazy Comments'.
2856 * src/debug.c: Remove lint directives. Cleanup white spaces.
2857 * src/java_raw_api.c: Likewise.
2858 * src/prep_cif.c: Likewise.
2859 * src/raw_api.c: Likewise.
2860 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2861 to the testsuite.
2862 * src/arm/ffi.c: Remove lint directives.
2863 * src/m32r/ffi.c: Likewise.
2864 * src/pa/ffi.c: Likewise.
2865 * src/powerpc/ffi.c: Likewise.
2866 * src/powerpc/ffi_darwin.c: Likewise.
2867 * src/sh/ffi.c: Likewise.
2868 * src/sh64/ffi.c: Likewise.
2869 * src/x86/ffi.c: Likewise.
2870 * testsuite/libffi.call/float2.c: Likewise.
2871 * testsuite/libffi.call/promotion.c: Likewise.
2872 * testsuite/libffi.call/struct1.c: Likewise.
2873
2874 2006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2875
2876 * src/pa/hpux32.S: Correct unwind offset calculation for
2877 ffi_closure_pa32.
2878 * src/pa/linux.S: Likewise.
2879
2880 2006-04-12 James E Wilson <wilson@specifix.com>
2881
2882 PR libgcj/26483
2883 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2884 (hfa_type_load): Call stf_spill.
2885 (hfa_type_store): Call ldf_fill.
2886 (ffi_call): Adjust calls to above routines. Add local temps for
2887 macro result.
2888
2889 2006-04-10 Matthias Klose <doko@debian.org>
2890
2891 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2892 directory names containing underscores.
2893
2894 2006-04-07 James E Wilson <wilson@specifix.com>
2895
2896 * testsuite/libffi.call/float4.c: New testcase.
2897
2898 2006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2899 Andreas Tobler <a.tobler@schweiz.ch>
2900
2901 * Makefile.am: Add PA_HPUX port.
2902 * Makefile.in: Regenerate.
2903 * include/Makefile.in: Likewise.
2904 * testsuite/Makefile.in: Likewise.
2905 * configure.ac: Add PA_HPUX rules.
2906 * configure: Regenerate.
2907 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2908 Add PA_HPUX and PA64_HPUX.
2909 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2910 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2911 (FFI_TYPE_SMALL_STRUCT2): Define.
2912 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2913 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2914 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2915 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2916 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2917 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2918 * src/pa/ffi.c (ROUND_DOWN): Delete.
2919 (fldw, fstw, fldd, fstd): Use '__asm__'.
2920 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2921 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2922 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2923 Simplify incrementing of stack slot variable. Change type of local
2924 'n' to unsigned int.
2925 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2926 double on PA_HPUX.
2927 (ffi_prep_cif_machdep): Likewise.
2928 (ffi_call): Likewise.
2929 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2930 return type to ffi_status. Simplify incrementing of stack slot
2931 variable. Only copy floating point argument registers when PA_LINUX
2932 is true. Reformat debug statement.
2933 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2934 FFI_TYPE_SMALL_STRUCT8.
2935 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2936 declaration.
2937 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2938 Add nops to cache flush. Add trampoline for PA_HPUX.
2939 * src/pa/hpux32.S: New file.
2940 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2941 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2942 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2943 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2944 argument type checks so that common argument types appear first.
2945 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2946 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2947
2948 2006-03-24 Alan Modra <amodra@bigpond.net.au>
2949
2950 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2951 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2952 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2953 FFI_TYPE_LONGDOUBLE.
2954 (ffi_prep_args64): Assert using IBM extended double.
2955 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2956 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2957 (ffi_call): Handle FFI_LINUX.
2958 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2959 gpr3 return pointer as for struct return. Handle FFI_LINUX
2960 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2961 unnecessarily.
2962 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2963 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2964 Don't use r6 as pointer to results, instead use sp offset. Don't
2965 make a special call to load lr with case table address, instead
2966 use offset from previous call.
2967 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2968 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2969 return.
2970
2971 2006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2972
2973 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2974 passed with FP registers correctly.
2975 (ffi_closure_helper_SYSV): Likewise.
2976 * src/sh64/sysv.S: Likewise.
2977
2978 2006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2979
2980 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2981 args and userdata unused.
2982 (closure_test_fn1): Mark cif and userdata unused.
2983 (main): Remove unused res.
2984
2985 2006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2986
2987 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2988 -O2, -O3, -Os and the warning flags -W -Wall.
2989 * testsuite/libffi.special/special.exp: Likewise.
2990 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2991 unused parameter unused for gcc or else do nothing.
2992 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2993 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2994 and userdata unused.
2995 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2996 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2997 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2998 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2999 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3000 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3001 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3002 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3003 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3004 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3005 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3006 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3007 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3008 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3009 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3010 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3011 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3012 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3013 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3014 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3015 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3016 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3017 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3018 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3019 Likewise.
3020 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3021 Likewise.
3022 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3023 Likewise.
3024 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3025 void* to avoid compiler warning.
3026 (main): Likewise.
3027 (cls_struct_align_gn): Mark cif and userdata unused.
3028 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3029 Likewise.
3030 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3031 Likewise.
3032 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3033 Likewise.
3034 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3035 Likewise.
3036 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3037 Likewise.
3038 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3039 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3040 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3041 data unused.
3042 (main): Cast res_call to silence gcc.
3043 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3044 data unused.
3045 (main): Cast res_call to silence gcc.
3046 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3047 and data unused.
3048 (main): Cast res_call to silence gcc.
3049 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3050 data unused.
3051 (main): Cast res_call to silence gcc.
3052 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3053 data unused.
3054 (main): Cast res_call to silence gcc.
3055 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3056 and data unused.
3057 (main): Cast res_call to silence gcc.
3058 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3059 userdata unused.
3060 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3061 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3062 userdata unused.
3063 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3064 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3065 userdata unused.
3066 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3067 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3068 userdata unused.
3069 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3070 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3071 userdata unused.
3072 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3073 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3074 and userdata unused.
3075 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3076 userdata unused.
3077 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3078 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3079 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3080 Cleanup white spaces.
3081 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3082 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3083 cif and userdata unused.
3084 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3085 Likewise.
3086 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3087 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3088 formatters to silence gcc.
3089 (B_gn): Mark cif and userdata unused.
3090 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3091 unused.
3092 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3093 (B_gn): Mark cif and userdata unused.
3094 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3095 unused.
3096 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3097 (B_gn): Mark cif and userdata unused.
3098 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3099 unused.
3100 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3101 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3102 * testsuite/libffi.call/problem1.c (stub): Likewise.
3103 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3104 gcc.
3105 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3106 in the last commit for this test case in the test case itself.
3107 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3108 unused.
3109 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3110 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3111 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3112 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3113 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3114 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3115
3116 2006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3117
3118 * src/sh/sysv.S: Fix register numbers in the FDE for
3119 ffi_closure_SYSV.
3120
3121 2006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3122
3123 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3124 declaration to avoid a false negative on ix86. See PR323.
3125
3126 2006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3127
3128 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3129 and cast integer to void * if needed. Update the pointer to
3130 the FP register saved area correctly.
3131
3132 2006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3133
3134 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3135 is fixed.
3136 * testsuite/libffi.call/nested_struct4.c: Likewise.
3137
3138 2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3139
3140 * testsuite/libffi.call/return_dbl.c: New test case.
3141 * testsuite/libffi.call/return_dbl1.c: Likewise.
3142 * testsuite/libffi.call/return_dbl2.c: Likewise.
3143 * testsuite/libffi.call/return_fl.c: Likewise.
3144 * testsuite/libffi.call/return_fl1.c: Likewise.
3145 * testsuite/libffi.call/return_fl2.c: Likewise.
3146 * testsuite/libffi.call/return_fl3.c: Likewise.
3147 * testsuite/libffi.call/closure_fn6.c: Likewise.
3148
3149 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3150 definition.
3151 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3152 here to be used by other test cases too.
3153
3154 * testsuite/libffi.call/nested_struct10.c: New test case.
3155 * testsuite/libffi.call/nested_struct9.c: Likewise.
3156 * testsuite/libffi.call/nested_struct8.c: Likewise.
3157 * testsuite/libffi.call/nested_struct7.c: Likewise.
3158 * testsuite/libffi.call/nested_struct6.c: Likewise.
3159 * testsuite/libffi.call/nested_struct5.c: Likewise.
3160 * testsuite/libffi.call/nested_struct4.c: Likewise.
3161
3162 2006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3163
3164 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3165 * configure: Rebuilt.
3166
3167 2006-01-18 Jakub Jelinek <jakub@redhat.com>
3168
3169 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3170 instead do the shifting inline.
3171 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3172 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3173 and 8 byte structs, for the remaining struct sizes don't call
3174 __lshrdi3, instead do the shifting inline.
3175
3176 2005-12-07 Thiemo Seufer <ths@networkno.de>
3177
3178 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3179 missing parentheses.
3180 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3181 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3182 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3183 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3184 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3185 FA_0_0_OFF2.
3186 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3187 endianness bugs.
3188 (ffi_prep_closure): Improve trampoline instruction scheduling.
3189 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3190
3191 2005-12-03 Alan Modra <amodra@bigpond.net.au>
3192
3193 * src/powerpc/ffi.c: Formatting.
3194 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3195 (ffi_prep_args64): Likewise.
3196
3197 2005-09-30 Geoffrey Keating <geoffk@apple.com>
3198
3199 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3200 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3201
3202 2005-09-26 Tom Tromey <tromey@redhat.com>
3203
3204 * testsuite/libffi.call/float1.c (value_type): New typedef.
3205 (CANARY): New define.
3206 (main): Check for result buffer overflow.
3207 * src/powerpc/linux64.S: Handle linux64 long double returns.
3208 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3209 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3210
3211 2005-08-25 Alan Modra <amodra@bigpond.net.au>
3212
3213 PR target/23404
3214 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3215 homed fp args.
3216 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3217
3218 2005-08-11 Jakub Jelinek <jakub@redhat.com>
3219
3220 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3221 (AH_BOTTOM): Add FFI_HIDDEN definition.
3222 * configure: Rebuilt.
3223 * fficonfig.h.in: Rebuilt.
3224 * src/powerpc/ffi.c (hidden): Remove.
3225 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3226 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3227 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3228 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3229 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3230 add FFI_HIDDEN to its prototype.
3231 (ffi_closure_SYSV_inner): New.
3232 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3233 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3234
3235 2005-08-10 Alfred M. Szmidt <ams@gnu.org>
3236
3237 PR libffi/21819:
3238 * configure: Rebuilt.
3239 * configure.ac: Handle i*86-*-gnu*.
3240
3241 2005-08-09 Jakub Jelinek <jakub@redhat.com>
3242
3243 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3244 DW_CFA_offset_extended_sf rather than
3245 DW_CFA_GNU_negative_offset_extended.
3246 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3247
3248 2005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3249
3250 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3251 on sh3.
3252 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3253 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3254 partially on register.
3255 (ffi_closure_helper_SYSV): Likewise.
3256 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3257
3258 2005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3259
3260 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3261 Remove empty line.
3262 * src/sh64/ffi.c (simple_type): Remove.
3263 (return_type): Handle small structures correctly.
3264 (ffi_prep_args): Likewise.
3265 (ffi_call): Likewise.
3266 (ffi_closure_helper_SYSV): Likewise.
3267 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3268 Emit position independent code if PIC and remove wrong datalabel
3269 prefixes from EH data.
3270
3271 2005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3272
3273 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3274 * Makefile.in: Regenerate.
3275 * include/Makefile.in: Likewise.
3276 * testsuite/Makefile.in: Likewise.
3277 * configure.ac: Add POWERPC_FREEBSD rules.
3278 * configure: Regenerate.
3279 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3280 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3281 * src/powerpc/ffi.c: Add flags to handle small structure returns
3282 in ffi_call_SYSV.
3283 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3284 Aka FFI_SYSV.
3285 (ffi_closure_helper_SYSV): Likewise.
3286 * src/powerpc/ppc_closure.S: Add return types for small structures.
3287 * src/powerpc/sysv.S: Add bits to handle small structures for
3288 final SYSV 4 ABI.
3289
3290 2005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3291
3292 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3293 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3294 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3295
3296 2005-07-05 Randolph Chung <tausq@debian.org>
3297
3298 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3299 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3300 structures. Kill compilation warnings.
3301 (ffi_closure_inner_LINUX): Print return values as hex in debug
3302 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3303 Properly handle 5-7 byte structure returns.
3304 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3305 (FFI_TYPE_SMALL_STRUCT2): Remove.
3306 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3307 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3308 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3309 (checksmst1, checksmst2): Remove.
3310 (checksmst3): Optimize handling of 3-byte struct returns.
3311 (checksmst567): Properly handle 5-7 byte struct returns.
3312
3313 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3314
3315 PR libgcj/21943
3316 * src/mips/n32.S: Enforce PIC code.
3317 * src/mips/o32.S: Likewise.
3318
3319 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3320
3321 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3322 * configure: Regenerate.
3323
3324 2005-06-01 Alan Modra <amodra@bigpond.net.au>
3325
3326 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3327 to call ffi_closure_helper_SYSV. Append @local instead.
3328 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3329
3330 2005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3331
3332 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3333 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3334 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3335 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3336 include/Makefile.in, testsuite/Makefile.in: Regenerate.
3337
3338 2005-05-09 Mike Stump <mrs@apple.com>
3339
3340 * configure: Regenerate.
3341
3342 2005-05-08 Richard Henderson <rth@redhat.com>
3343
3344 PR libffi/21285
3345 * src/alpha/osf.S: Update unwind into to match code.
3346
3347 2005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3348 Richard Henderson <rth@redhat.com>
3349
3350 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3351 bit 11 of flags.
3352 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3353 (ffi_prep_closure): Set carry bit if sse-used flag set.
3354 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3355 Only load sse registers if ssecount non-zero.
3356 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3357
3358 2005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3359
3360 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3361 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3362 * configure: Regenerate.
3363
3364 2005-04-20 Hans-Peter Nilsson <hp@axis.com>
3365
3366 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3367 have Tcl8.3-compatible intermediate variable.
3368
3369 2005-04-18 Simon Posnjak <simon.posnjak@siol.net>
3370 Hans-Peter Nilsson <hp@axis.com>
3371
3372 * Makefile.am: Add CRIS support.
3373 * configure.ac: Likewise.
3374 * Makefile.in, configure, testsuite/Makefile.in,
3375 include/Makefile.in: Regenerate.
3376 * src/cris: New directory.
3377 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3378 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3379
3380 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3381 \r?\n in output tests.
3382
3383 2005-04-12 Mike Stump <mrs@apple.com>
3384
3385 * configure: Regenerate.
3386
3387 2005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3388
3389 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
3390
3391 2005-03-30 Steve Ellcey <sje@cup.hp.com>
3392
3393 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3394 (ffi_sarg) Ditto.
3395 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3396 to 64 bits in ILP32 mode.
3397 Load 64 bits even for short data.
3398
3399 2005-03-23 Mike Stump <mrs@apple.com>
3400
3401 * src/powerpc/darwin.S: Update for -m64 multilib.
3402 * src/powerpc/darwin_closure.S: Likewise.
3403
3404 2005-03-21 Zack Weinberg <zack@codesourcery.com>
3405
3406 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3407 Do not set tool_include_dir.
3408 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3409 Regenerate.
3410 * include/Makefile.am: Set gcc_version and toollibffidir.
3411 * include/Makefile.in: Regenerate.
3412
3413 2005-02-22 Andrew Haley <aph@redhat.com>
3414
3415 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3416 odd-numbered register pairs for 64-bit integer types.
3417
3418 2005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3419
3420 PR libffi/20104
3421 * testsuite/libffi.call/return_ll1.c: New test case.
3422
3423 2005-02-11 Janis Johnson <janis187@us.ibm.com>
3424
3425 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3426 * testsuite/libffi.call/float.c: Ditto.
3427 * testsuite/libffi.call/float2.c: Ditto.
3428 * testsuite/libffi.call/float3.c: Ditto.
3429
3430 2005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3431
3432 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3433
3434 2005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3435
3436 * testsuite/libffi.special/special.exp (cxx_options): Add
3437 -shared-libgcc.
3438
3439 2004-12-31 Richard Henderson <rth@redhat.com>
3440
3441 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3442 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3443 offset parameters with a type parameter; deduce size and structure
3444 alignment. Update all users.
3445
3446 2004-12-31 Richard Henderson <rth@redhat.com>
3447
3448 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3449 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3450 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3451 into ffi_prep_closure.
3452 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3453 from scratch.
3454
3455 2004-12-27 Richard Henderson <rth@redhat.com>
3456
3457 * src/x86/unix64.S: Fix typo in unwind info.
3458
3459 2004-12-25 Richard Henderson <rth@redhat.com>
3460
3461 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3462 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3463 (merge_classes): Check for it.
3464 (SSE_CLASS_P): New.
3465 (classify_argument): Pass byte_offset by value; perform all updates
3466 inside struct case.
3467 (examine_argument): Add classes argument; handle
3468 X86_64_COMPLEX_X87_CLASS.
3469 (ffi_prep_args): Merge into ...
3470 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3471 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3472 (ffi_fill_return_value): Remove.
3473 (ffi_prep_closure): Remove dead assert.
3474 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3475 Rewrite to use struct register_args instead of va_list. Create
3476 flags for handling structure returns.
3477 * src/x86/unix64.S: Remove dead strings.
3478 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3479 stack frame with ffi_call. Handle structure returns properly.
3480 (float2sse, floatfloat2sse, double2sse): Remove.
3481 (sse2float, sse2double, sse2floatfloat): Remove.
3482 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3483 to handle structure returns properly.
3484
3485 2004-12-08 David Edelsohn <edelsohn@gnu.org>
3486
3487 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3488 PICFLAG.
3489 * Makefile.in: Regenerated.
3490
3491 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
3492
3493 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3494 * configure, aclocal.m4, Makefile.in: Regenerate.
3495 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3496
3497 2004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3498
3499 * configure: Regenerate for libtool change.
3500
3501 2004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3502
3503 * configure: Regenerate for libtool reversion.
3504
3505 2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3506
3507 * configure: Regenerate for libtool change.
3508
3509 2004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3510
3511 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3512
3513 2004-11-23 Richard Sandiford <rsandifo@redhat.com>
3514
3515 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3516 of jal. Use an absolute encoding for the frame information.
3517
3518 2004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3519
3520 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3521 * acinclude.m4: Delete logic for sincludes.
3522 * aclocal.m4, Makefile.in, configure: Regenerate.
3523 * include/Makefile: Likewise.
3524 * testsuite/Makefile: Likewise.
3525
3526 2004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3527
3528 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3529 on a 8-byte boundary.
3530 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3531
3532 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
3533
3534 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3535 long long values. Round stack allocation to a multiple of 8 bytes
3536 for ATPCS compatibility.
3537 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3538 names. Handle returning long long types. Add Thumb and interworking
3539 support. Improve soft-float code.
3540
3541 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
3542
3543 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3544 (libffi_exit): New function.
3545 (libffi_init): Build the testglue wrapper if needed.
3546
3547 2004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3548
3549 PR other/18138
3550 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3551
3552 2004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3553
3554 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3555
3556 2004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3557
3558 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3559 * testsuite/libffi.call/float3.c: New test case.
3560
3561 2004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3562
3563 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3564 the function returning a structure pointed with R2.
3565 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3566 the structure return value if T bit set. Emit position
3567 independent code and EH data if PIC.
3568
3569 2004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3570
3571 * Makefile.am: Add m32r support.
3572 * configure.ac: Likewise.
3573 * Makefile.in: Regenerate.
3574 * confiugre: Regenerate.
3575 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3576 (uint64, sint64, double, longdouble)
3577 * src/m32r: New directory.
3578 * src/m32r/ffi.c: New file.
3579 * src/m32r/sysv.S: Likewise.
3580 * src/m32r/ffitarget.h: Likewise.
3581
3582 2004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3583
3584 * testsuite/libffi.call/negint.c: New test case.
3585
3586 2004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3587
3588 PR libgcj/17465
3589 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3590 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3591 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3592 DYLD_LIBRARY_PATH.
3593
3594 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3595
3596 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3597 * testsuite/libffi.call/promotion.c: Likewise.
3598 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3599 whitespaces.
3600 * testsuite/libffi.call/return_sc.c: Likewise.
3601 * testsuite/libffi.call/return_uc.c: Likewise.
3602
3603 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3604
3605 * src/powerpc/darwin.S: Fix comments and identation.
3606 * src/powerpc/darwin_closure.S: Likewise.
3607
3608 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3609
3610 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3611 (ffi_prep_args): Handle longdouble arguments.
3612 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3613 longdouble.
3614 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3615 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3616 values.
3617 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3618 * src/types.c: Defined longdouble size and alignment for darwin.
3619
3620 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3621
3622 * src/powerpc/aix.S: Remove whitespaces.
3623 * src/powerpc/aix_closure.S: Likewise.
3624 * src/powerpc/asm.h: Likewise.
3625 * src/powerpc/ffi.c: Likewise.
3626 * src/powerpc/ffitarget.h: Likewise.
3627 * src/powerpc/linux64.S: Likewise.
3628 * src/powerpc/linux64_closure.S: Likewise.
3629 * src/powerpc/ppc_closure.S: Likewise.
3630 * src/powerpc/sysv.S: Likewise.
3631
3632 2004-08-30 Anthony Green <green@redhat.com>
3633
3634 * Makefile.am: Add frv support.
3635 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3636 * configure.ac: Read configure.host.
3637 * configure.in: Read configure.host.
3638 * configure.host: New file. frv-elf needs libgloss.
3639 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3640 alignment. This is needed to frv and shouldn't harm the others.
3641 * include/ffi_common.h (ALIGN_DOWN): New macro.
3642 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3643
3644 2004-08-24 David Daney <daney@avtrex.com>
3645
3646 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3647 * testsuite/libffi.call/closure_fn1.c: Likewise.
3648 * testsuite/libffi.call/closure_fn2.c Likewise.
3649 * testsuite/libffi.call/closure_fn3.c: Likewise.
3650 * testsuite/libffi.call/closure_fn4.c: Likewise.
3651 * testsuite/libffi.call/closure_fn5.c: Likewise.
3652 * testsuite/libffi.call/cls_18byte.c: Likewise.
3653 * testsuite/libffi.call/cls_19byte.c: Likewise.
3654 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3655 * testsuite/libffi.call/cls_20byte.c: Likewise.
3656 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3657 * testsuite/libffi.call/cls_24byte.c: Likewise.
3658 * testsuite/libffi.call/cls_2byte.c: Likewise.
3659 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3660 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3661 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3662 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3663 * testsuite/libffi.call/cls_4byte.c: Likewise.
3664 * testsuite/libffi.call/cls_64byte.c: Likewise.
3665 * testsuite/libffi.call/cls_6byte.c: Likewise.
3666 * testsuite/libffi.call/cls_7byte.c: Likewise.
3667 * testsuite/libffi.call/cls_8byte.c: Likewise.
3668 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3669 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3670 * testsuite/libffi.call/cls_align_double.c: Likewise.
3671 * testsuite/libffi.call/cls_align_float.c: Likewise.
3672 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3673 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3674 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3675 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3676 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3677 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3678 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3679 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3680 * testsuite/libffi.call/cls_double.c: Likewise.
3681 * testsuite/libffi.call/cls_float.c: Likewise.
3682 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3683 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3684 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3685 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3686 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3687 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3688 * testsuite/libffi.call/cls_schar.c: Likewise.
3689 * testsuite/libffi.call/cls_sint.c: Likewise.
3690 * testsuite/libffi.call/cls_sshort.c: Likewise.
3691 * testsuite/libffi.call/cls_uchar.c: Likewise.
3692 * testsuite/libffi.call/cls_uint.c: Likewise.
3693 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3694 * testsuite/libffi.call/cls_ushort.c: Likewise.
3695 * testsuite/libffi.call/nested_struct.c: Likewise.
3696 * testsuite/libffi.call/nested_struct1.c: Likewise.
3697 * testsuite/libffi.call/nested_struct2.c: Likewise.
3698 * testsuite/libffi.call/nested_struct3.c: Likewise.
3699 * testsuite/libffi.call/problem1.c: Likewise.
3700 * testsuite/libffi.special/unwindtest.cc: Likewise.
3701 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3702 to zero.
3703 * testsuite/libffi.call/cls_16byte.c: Likewise.
3704 * testsuite/libffi.call/cls_5byte.c: Likewise.
3705
3706 2004-08-23 David Daney <daney@avtrex.com>
3707
3708 PR libgcj/13141
3709 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3710 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3711 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3712 parameters and return types.
3713 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3714 (ffi_prep_closure): Ditto.
3715 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3716 alignment calculations.
3717 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3718 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3719
3720 2004-08-14 Casey Marshall <csm@gnu.org>
3721
3722 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3723 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3724 integer (O32 ABI only).
3725 (ffi_prep_closure): new function.
3726 (ffi_closure_mips_inner_O32): new function.
3727 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3728 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3729 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3730 64 bit integers correctly.
3731 (ffi_closure_O32): new function.
3732 Added DWARF-2 unwind info for both functions.
3733
3734 2004-08-10 Andrew Haley <aph@redhat.com>
3735
3736 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3737
3738 2004-08-01 Robert Millan <robertmh@gnu.org>
3739
3740 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3741 * configure: Regenerate.
3742
3743 2004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3744
3745 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3746 and mmap() explicitly instead of relying on preset autoconf cache
3747 variables.
3748 * aclocal.m4: Regenerate.
3749 * configure: Regenerate.
3750
3751 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3752
3753 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3754 (ffi_check_float_struct): Remove unused prototype.
3755
3756 2004-06-30 Geoffrey Keating <geoffk@apple.com>
3757
3758 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3759 character on Darwin, use '\n\t' instead.
3760
3761 2004-06-26 Matthias Klose <doko@debian.org>
3762
3763 * libtool-version: Fix typo in revision/age.
3764
3765 2004-06-17 Matthias Klose <doko@debian.org>
3766
3767 * libtool-version: New.
3768 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3769 * Makefile.in: Regenerate.
3770
3771 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
3772
3773 * Makefile.am: Remove useless multilib rules.
3774 * Makefile.in: Regenerate.
3775 * aclocal.m4: Regenerate with automake 1.8.5.
3776 * configure.ac: Remove useless multilib configury.
3777 * configure: Regenerate.
3778
3779 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
3780
3781 * .cvsignore: New file.
3782
3783 2004-06-10 Jakub Jelinek <jakub@redhat.com>
3784
3785 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3786 fp_done.
3787 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3788 changed from 8.
3789
3790 2004-06-06 Sean McNeil <sean@mcneil.com>
3791
3792 * configure.ac: Add x86_64-*-freebsd* support.
3793 * configure: Regenerate.
3794
3795 2004-04-26 Joe Buck <jbuck@welsh-buck.org>
3796
3797 Bug 15093
3798 * configure.ac: Test for existence of mmap and sys/mman.h before
3799 checking blacklist. Fix suggested by Jim Wilson.
3800 * configure: Regenerate.
3801
3802 2004-04-26 Matt Austern <austern@apple.com>
3803
3804 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3805 FDE location.
3806 * src/powerpc/darwin_closure.S: Likewise.
3807
3808 2004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3809
3810 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3811 error. Reported by Thomas Heller <theller@python.net>.
3812 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3813 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3814
3815 2004-03-20 Matthias Klose <doko@debian.org>
3816
3817 * src/pa/linux.S: Fix typo.
3818
3819 2004-03-19 Matthias Klose <doko@debian.org>
3820
3821 * Makefile.am: Update.
3822 * Makefile.in: Regenerate.
3823 * src/pa/ffi.h.in: Remove.
3824 * src/pa/ffitarget.h: New file.
3825
3826 2004-02-10 Randolph Chung <tausq@debian.org>
3827
3828 * Makefile.am: Add PA support.
3829 * Makefile.in: Regenerate.
3830 * include/Makefile.in: Regenerate.
3831 * configure.ac: Add PA target.
3832 * configure: Regenerate.
3833 * src/pa/ffi.c: New file.
3834 * src/pa/ffi.h.in: Add PA support.
3835 * src/pa/linux.S: New file.
3836 * prep_cif.c: Add PA support.
3837
3838 2004-03-16 Hosaka Yuji <hos@tamanegi.org>
3839
3840 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3841 double.
3842 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3843 with ecif->cif->flags.
3844 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3845 with cif->flags.
3846 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3847 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3848 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3849 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3850
3851 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3852
3853 * configure.in: Rename file to ...
3854 * configure.ac: ... this.
3855 * fficonfig.h.in: Regenerate.
3856 * Makefile.in: Regenerate.
3857 * include/Makefile.in: Regenerate.
3858 * testsuite/Makefile.in: Regenerate.
3859
3860 2004-03-12 Matt Austern <austern@apple.com>
3861
3862 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3863 changes in EH format resulting from addition of linkonce support.
3864 * src/powerpc/darwin_closure.S: Likewise.
3865
3866 2004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3867 Paolo Bonzini <bonzini@gnu.org>
3868
3869 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3870 Remove VPATH. Remove rules for object files. Remove multilib support.
3871 (AM_CCASFLAGS): Add.
3872 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3873 (AC_PREREQ): Bump version to 2.59.
3874 (AC_INIT): Fill with version info and bug address.
3875 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3876 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3877 De-precious CC so that the right flags are passed down to multilibs.
3878 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3879 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3880 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3881 * configure: Rebuilt.
3882 * aclocal.m4: Likewise.
3883 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3884 * fficonfig.h.in: Likewise.
3885
3886 2004-03-11 Andreas Schwab <schwab@suse.de>
3887
3888 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3889 arguments from fp registers only for the first 8 parameter slots.
3890 Don't convert a float parameter when passed in memory.
3891
3892 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
3893
3894 * configure: Regenerate for config/accross.m4 correction.
3895
3896 2004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3897
3898 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3899 ecif->cif->bytes to bytes.
3900 (ffi_prep_cif_machdep): Add braces around nested if statement.
3901
3902 2004-02-09 Alan Modra <amodra@bigpond.net.au>
3903
3904 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3905
3906 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3907 (ffi_closure_helper_LINUX64): Fix typo.
3908 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3909 for powerpc64-*-*.
3910 * testsuite/libffi.call/float.c: Likewise.
3911 * testsuite/libffi.call/float2.c: Likewise.
3912
3913 2004-02-08 Alan Modra <amodra@bigpond.net.au>
3914
3915 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3916 long double function return and long double arg handling.
3917 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3918 Use "end_pfr" instead of "nf". Correct long double handling.
3919 Localise "temp".
3920 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3921 return value.
3922 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3923 space for long double return value. Adjust stack frame and offsets.
3924 Load f2 long double return.
3925
3926 2004-02-07 Alan Modra <amodra@bigpond.net.au>
3927
3928 * src/types.c: Use 16 byte long double for POWERPC64.
3929
3930 2004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3931
3932 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3933 when the structure return address is passed in %o0.
3934 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3935 (ffi_v9_layout_struct): Align the field following a nested structure
3936 on a word boundary. Use memmove instead of memcpy.
3937 (ffi_call): Update call to ffi_V9_return_struct.
3938 (ffi_prep_closure): Define 'ctx' only for V8.
3939 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3940 and ffi_closure_sparc_inner_v9.
3941 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3942 Always skip the structure return address. For structures and long
3943 doubles, copy the argument directly.
3944 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3945 if required. Shift the maximum floating-point slot accordingly. For
3946 big structures, copy the argument directly; otherwise, left-justify the
3947 argument and call ffi_v9_layout_struct to lay out the structure on
3948 the stack.
3949 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3950 (ffi_closure_v8): Pass the structure return address. Update call to
3951 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3952 Skip the 'unimp' insn when returning long doubles and structures.
3953 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3954 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3955 FFI_TYPE_INT handling. Load structures both in integers and
3956 floating-point registers on return.
3957 * README: Update status of the SPARC port.
3958
3959 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3960
3961 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3962 as of type ffi_arg.
3963 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3964
3965 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3966
3967 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3968 value as of type ffi_arg, not unsigned int.
3969
3970 2004-01-21 Michael Ritzert <ritzert@t-online.de>
3971
3972 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3973 of the LHS.
3974
3975 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3976
3977 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3978 Solaris.
3979
3980 2004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3981
3982 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3983 to void *.
3984
3985 2003-12-10 Richard Henderson <rth@redhat.com>
3986
3987 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3988 size_t instead of int.
3989
3990 2003-12-04 Hosaka Yuji <hos@tamanegi.org>
3991
3992 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3993 * testsuite/libffi.call/many_win32.c (main): Replace variable
3994 int i with unsigned long ul.
3995
3996 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3997 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3998 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3999 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4000 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4001 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4002 * testsuite/libffi.call/cls_align_float.c: Likewise.
4003 * testsuite/libffi.call/cls_align_double.c: Likewise.
4004 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4005 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4006
4007 2003-12-02 Hosaka Yuji <hos@tamanegi.org>
4008
4009 PR other/13221
4010 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4011 Align arguments to 32 bits.
4012
4013 2003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4014
4015 PR other/13221
4016 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4017 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4018 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4019 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4020 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4021 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4022
4023 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4024
4025 2003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4026
4027 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4028 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4029
4030 2003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4031
4032 * Makefile.in: Rebuilt.
4033 * configure: Likewise.
4034 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4035 the right type.
4036
4037 2003-11-21 Andreas Jaeger <aj@suse.de>
4038 Andreas Tobler <a.tobler@schweiz.ch>
4039
4040 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4041 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4042 * Makefile.in: Rebuilt.
4043 * aclocal.m4: Likewise.
4044 * configure: Likewise.
4045 * fficonfig.h.in: Likewise.
4046 * testsuite/lib/libffi-dg.exp: Add include dir.
4047 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4048 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4049 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4050 for ffi_closure if available.
4051 * testsuite/libffi.call/closure_fn1.c: Likewise.
4052 * testsuite/libffi.call/closure_fn2.c: Likewise.
4053 * testsuite/libffi.call/closure_fn3.c: Likewise.
4054 * testsuite/libffi.call/closure_fn4.c: Likewise.
4055 * testsuite/libffi.call/closure_fn5.c: Likewise.
4056 * testsuite/libffi.call/cls_12byte.c: Likewise.
4057 * testsuite/libffi.call/cls_16byte.c: Likewise.
4058 * testsuite/libffi.call/cls_18byte.c: Likewise.
4059 * testsuite/libffi.call/cls_19byte.c: Likewise.
4060 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4061 * testsuite/libffi.call/cls_20byte.c: Likewise.
4062 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4063 * testsuite/libffi.call/cls_24byte.c: Likewise.
4064 * testsuite/libffi.call/cls_2byte.c: Likewise.
4065 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4066 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4067 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4068 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4069 * testsuite/libffi.call/cls_4byte.c: Likewise.
4070 * testsuite/libffi.call/cls_5byte.c: Likewise.
4071 * testsuite/libffi.call/cls_64byte.c: Likewise.
4072 * testsuite/libffi.call/cls_6byte.c: Likewise.
4073 * testsuite/libffi.call/cls_7byte.c: Likewise.
4074 * testsuite/libffi.call/cls_8byte.c: Likewise.
4075 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4076 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4077 * testsuite/libffi.call/cls_double.c: Likewise.
4078 * testsuite/libffi.call/cls_float.c: Likewise.
4079 * testsuite/libffi.call/cls_schar.c: Likewise.
4080 * testsuite/libffi.call/cls_sint.c: Likewise.
4081 * testsuite/libffi.call/cls_sshort.c: Likewise.
4082 * testsuite/libffi.call/cls_uchar.c: Likewise.
4083 * testsuite/libffi.call/cls_uint.c: Likewise.
4084 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4085 * testsuite/libffi.call/cls_ushort.c: Likewise.
4086 * testsuite/libffi.call/nested_struct.c: Likewise.
4087 * testsuite/libffi.call/nested_struct1.c: Likewise.
4088 * testsuite/libffi.call/nested_struct2.c: Likewise.
4089 * testsuite/libffi.call/nested_struct3.c: Likewise.
4090 * testsuite/libffi.call/problem1.c: Likewise.
4091 * testsuite/libffi.special/unwindtest.cc: Likewise.
4092
4093 2003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4094
4095 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4096
4097 2003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4098
4099 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4100 Add -lgcc_s to additional flags.
4101
4102 2003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4103
4104 * configure.in, include/Makefile.am: PR libgcj/11147, install
4105 the ffitarget.h header file in a gcc versioned and target
4106 dependent place.
4107 * configure: Regenerated.
4108 * Makefile.in, include/Makefile.in: Likewise.
4109 * testsuite/Makefile.in: Likewise.
4110
4111 2003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4112
4113 * testsuite/libffi.call/closure_fn0.c: Print result and check
4114 with dg-output to make debugging easier.
4115 * testsuite/libffi.call/closure_fn1.c: Likewise.
4116 * testsuite/libffi.call/closure_fn2.c: Likewise.
4117 * testsuite/libffi.call/closure_fn3.c: Likewise.
4118 * testsuite/libffi.call/closure_fn4.c: Likewise.
4119 * testsuite/libffi.call/closure_fn5.c: Likewise.
4120 * testsuite/libffi.call/cls_12byte.c: Likewise.
4121 * testsuite/libffi.call/cls_16byte.c: Likewise.
4122 * testsuite/libffi.call/cls_18byte.c: Likewise.
4123 * testsuite/libffi.call/cls_19byte.c: Likewise.
4124 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4125 * testsuite/libffi.call/cls_20byte.c: Likewise.
4126 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4127 * testsuite/libffi.call/cls_24byte.c: Likewise.
4128 * testsuite/libffi.call/cls_2byte.c: Likewise.
4129 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4130 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4131 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4132 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4133 * testsuite/libffi.call/cls_4byte.c: Likewise.
4134 * testsuite/libffi.call/cls_5byte.c: Likewise.
4135 * testsuite/libffi.call/cls_64byte.c: Likewise.
4136 * testsuite/libffi.call/cls_6byte.c: Likewise.
4137 * testsuite/libffi.call/cls_7byte.c: Likewise.
4138 * testsuite/libffi.call/cls_8byte.c: Likewise.
4139 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4140 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4141 * testsuite/libffi.call/cls_double.c: Likewise.
4142 * testsuite/libffi.call/cls_float.c: Likewise.
4143 * testsuite/libffi.call/cls_schar.c: Likewise.
4144 * testsuite/libffi.call/cls_sint.c: Likewise.
4145 * testsuite/libffi.call/cls_sshort.c: Likewise.
4146 * testsuite/libffi.call/cls_uchar.c: Likewise.
4147 * testsuite/libffi.call/cls_uint.c: Likewise.
4148 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4149 * testsuite/libffi.call/cls_ushort.c: Likewise.
4150 * testsuite/libffi.call/problem1.c: Likewise.
4151
4152 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4153 static.
4154
4155 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4156
4157 * testsuite/libffi.call/cls_9byte2.c: New test case.
4158 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4159 * testsuite/libffi.call/cls_64byte.c: Likewise.
4160 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4161 * testsuite/libffi.call/cls_19byte.c: Likewise.
4162 * testsuite/libffi.call/cls_18byte.c: Likewise.
4163 * testsuite/libffi.call/closure_fn4.c: Likewise.
4164 * testsuite/libffi.call/closure_fn5.c: Likewise.
4165 * testsuite/libffi.call/cls_schar.c: Likewise.
4166 * testsuite/libffi.call/cls_sint.c: Likewise.
4167 * testsuite/libffi.call/cls_sshort.c: Likewise.
4168 * testsuite/libffi.call/nested_struct2.c: Likewise.
4169 * testsuite/libffi.call/nested_struct3.c: Likewise.
4170
4171 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4172
4173 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4174 * testsuite/libffi.call/cls_uchar.c: Likewise.
4175 * testsuite/libffi.call/cls_uint.c: Likewise.
4176 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4177 * testsuite/libffi.call/cls_ushort.c: Likewise.
4178 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4179
4180 2003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4181
4182 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4183 the initialization.
4184
4185 2003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4186
4187 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4188 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4189
4190 2003-10-22 David Daney <ddaney@avtrex.com>
4191
4192 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4193 __attribute__((__mode__(__SI__))) and friends.
4194
4195 2003-10-22 Andreas Schwab <schwab@suse.de>
4196
4197 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4198
4199 2003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4200
4201 * configure.in: AC_LINK_FILES(ffitarget.h).
4202 * configure: Regenerate.
4203 * Makefile.in: Likewise.
4204 * include/Makefile.in: Likewise.
4205 * testsuite/Makefile.in: Likewise.
4206 * fficonfig.h.in: Likewise.
4207
4208 2003-10-21 Paolo Bonzini <bonzini@gnu.org>
4209 Richard Henderson <rth@redhat.com>
4210
4211 Avoid that ffi.h includes fficonfig.h.
4212
4213 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4214 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4215 (TARGET_SRC_MIPS_SGI): Removed.
4216 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4217 (MIPS_SGI): Removed.
4218 (CLEANFILES): Removed.
4219 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4220 targets.
4221 * acconfig.h: Removed.
4222 * configure.in: Compute sizeofs only for double and long double.
4223 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4224 into AC_DEFINE instead of using acconfig.h. Create
4225 include/ffitarget.h instead of include/fficonfig.h. Rename
4226 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4227 AC_DEFINE EH_FRAME_FLAGS.
4228 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4229 (hack_DATA): Add ffitarget.h.
4230 * include/ffi.h.in: Remove all system specific definitions.
4231 Declare raw API even if it is not installed, why bother?
4232 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4233 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4234 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4235 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4236 * include/ffi_common.h (bool): Do not define.
4237 (ffi_assert): Accept failed assertion.
4238 (ffi_type_test): Return void and accept file/line.
4239 (FFI_ASSERT): Pass stringized failed assertion.
4240 (FFI_ASSERT_AT): New macro.
4241 (FFI_ASSERT_VALID_TYPE): New macro.
4242 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4243 UINT64, SINT64): Define here with gcc's __attribute__ macro
4244 instead of in ffi.h
4245 (FLOAT32, ALIGN): Define here instead of in ffi.h
4246 * include/ffi-mips.h: Removed. Its content moved to
4247 src/mips/ffitarget.h after separating assembly and C sections.
4248 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4249 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4250 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4251 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4252 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4253 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4254 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4255 (ffi_type_test): Rewritten.
4256 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4257 FFI_ASSERT_VALID_TYPE.
4258 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4259 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4260 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4261 src/s390/ffitarget.h, src/sh/ffitarget.h,
4262 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4263 src/x86/ffitarget.h: New files.
4264 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4265 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4266 src/powerpc/aix.S, src/powerpc/darwin.S,
4267 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4268 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4269 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4270 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4271 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4272 include fficonfig.h
4273
4274 2003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4275
4276 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4277 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4278
4279 2003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4280
4281 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4282 Used when FFI_DEBUG = 1.
4283
4284 2003-10-14 Alan Modra <amodra@bigpond.net.au>
4285
4286 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4287 and align.
4288
4289 2003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4290
4291 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4292 FFI_MIPS_O32 for O32 ABI.
4293
4294 2003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4295
4296 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4297 SPARC64. Cleanup whitespaces.
4298
4299 2003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4300
4301 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4302 strongarm, xscale. Cleanup whitespaces.
4303 * testsuite/libffi.call/closure_fn1.c: Likewise.
4304 * testsuite/libffi.call/closure_fn2.c: Likewise.
4305 * testsuite/libffi.call/closure_fn3.c: Likewise.
4306 * testsuite/libffi.call/cls_12byte.c: Likewise.
4307 * testsuite/libffi.call/cls_16byte.c: Likewise.
4308 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4309 * testsuite/libffi.call/cls_20byte.c: Likewise.
4310 * testsuite/libffi.call/cls_24byte.c: Likewise.
4311 * testsuite/libffi.call/cls_2byte.c: Likewise.
4312 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4313 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4314 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4315 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4316 * testsuite/libffi.call/cls_4byte.c: Likewise.
4317 * testsuite/libffi.call/cls_5byte.c: Likewise.
4318 * testsuite/libffi.call/cls_6byte.c: Likewise.
4319 * testsuite/libffi.call/cls_7byte.c: Likewise.
4320 * testsuite/libffi.call/cls_8byte.c: Likewise.
4321 * testsuite/libffi.call/cls_double.c: Likewise.
4322 * testsuite/libffi.call/cls_float.c: Likewise.
4323 * testsuite/libffi.call/cls_uchar.c: Likewise.
4324 * testsuite/libffi.call/cls_uint.c: Likewise.
4325 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4326 * testsuite/libffi.call/cls_ushort.c: Likewise.
4327 * testsuite/libffi.call/nested_struct.c: Likewise.
4328 * testsuite/libffi.call/nested_struct1.c: Likewise.
4329 * testsuite/libffi.call/problem1.c: Likewise.
4330 * testsuite/libffi.special/unwindtest.cc: Likewise.
4331 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4332
4333 2003-09-18 David Edelsohn <edelsohn@gnu.org>
4334
4335 * src/powerpc/aix.S: Cleanup whitespaces.
4336 * src/powerpc/aix_closure.S: Likewise.
4337
4338 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4339
4340 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4341 * src/powerpc/darwin_closure.S: Likewise.
4342 * src/powerpc/ffi_darwin.c: Likewise.
4343
4344 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4345 David Edelsohn <edelsohn@gnu.org>
4346
4347 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4348 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4349 parameter stack.
4350 * src/powerpc/darwin_closure.S: Likewise.
4351 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4352 according to the Darwin/AIX ABI.
4353 (ffi_prep_cif_machdep): Likewise.
4354 (ffi_closure_helper_DARWIN): Likewise.
4355 Remove the outgoing parameter stack logic. Simplify the evaluation
4356 of the different CASE types.
4357 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4358 statement in the trampoline code.
4359
4360 2003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4361
4362 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4363 for the register size.
4364 (ffi_closure_helper_SYSV): Handle the structure return value
4365 address correctly.
4366 (ffi_closure_helper_SYSV): Return the appropriate type when
4367 the registers are used for the structure return value.
4368 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4369 the 64-bit return value. Update copyright years.
4370
4371 2003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4372
4373 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4374 srcdir for ffi_mips.h.
4375
4376 2003-09-12 Alan Modra <amodra@bigpond.net.au>
4377
4378 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4379 structure size.
4380 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4381 placement of float result.
4382 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4383 cast of "resp" for big-endian 64 bit machines.
4384
4385 2003-09-11 Alan Modra <amodra@bigpond.net.au>
4386
4387 * src/types.c (double, longdouble): Merge identical SH and ARM
4388 typedefs, and add POWERPC64.
4389 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4390 struct split over gpr and rest.
4391 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4392 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4393
4394 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4395
4396 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4397 passing correctly.
4398
4399 2003-09-09 Alan Modra <amodra@bigpond.net.au>
4400
4401 * configure: Regenerate.
4402
4403 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4404
4405 * Makefile.am: Remove build rules for ffitest.
4406 * Makefile.in: Rebuilt.
4407
4408 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4409
4410 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4411 about implicit declaration of abort().
4412
4413 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4414
4415 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4416 * Makefile.in: Rebuilt.
4417 * configure.in: Add dejagnu test framework.
4418 * configure: Rebuilt.
4419
4420 * testsuite/Makefile.am: New file.
4421 * testsuite/Makefile.in: Built
4422 * testsuite/lib/libffi-dg.exp: New file.
4423 * testsuite/config/default.exp: Likewise.
4424 * testsuite/libffi.call/call.exp: Likewise.
4425 * testsuite/libffi.call/ffitest.h: Likewise.
4426 * testsuite/libffi.call/closure_fn0.c: Likewise.
4427 * testsuite/libffi.call/closure_fn1.c: Likewise.
4428 * testsuite/libffi.call/closure_fn2.c: Likewise.
4429 * testsuite/libffi.call/closure_fn3.c: Likewise.
4430 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4431 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4432 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4433 * testsuite/libffi.call/cls_2byte.c: Likewise.
4434 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4435 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4436 * testsuite/libffi.call/cls_4byte.c: Likewise.
4437 * testsuite/libffi.call/cls_5byte.c: Likewise.
4438 * testsuite/libffi.call/cls_6byte.c: Likewise.
4439 * testsuite/libffi.call/cls_7byte.c: Likewise.
4440 * testsuite/libffi.call/cls_8byte.c: Likewise.
4441 * testsuite/libffi.call/cls_12byte.c: Likewise.
4442 * testsuite/libffi.call/cls_16byte.c: Likewise.
4443 * testsuite/libffi.call/cls_20byte.c: Likewise.
4444 * testsuite/libffi.call/cls_24byte.c: Likewise.
4445 * testsuite/libffi.call/cls_double.c: Likewise.
4446 * testsuite/libffi.call/cls_float.c: Likewise.
4447 * testsuite/libffi.call/cls_uchar.c: Likewise.
4448 * testsuite/libffi.call/cls_uint.c: Likewise.
4449 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4450 * testsuite/libffi.call/cls_ushort.c: Likewise.
4451 * testsuite/libffi.call/float.c: Likewise.
4452 * testsuite/libffi.call/float1.c: Likewise.
4453 * testsuite/libffi.call/float2.c: Likewise.
4454 * testsuite/libffi.call/many.c: Likewise.
4455 * testsuite/libffi.call/many_win32.c: Likewise.
4456 * testsuite/libffi.call/nested_struct.c: Likewise.
4457 * testsuite/libffi.call/nested_struct1.c: Likewise.
4458 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4459 * testsuite/libffi.call/problem1.c: Likewise.
4460 * testsuite/libffi.call/promotion.c: Likewise.
4461 * testsuite/libffi.call/return_ll.c: Likewise.
4462 * testsuite/libffi.call/return_sc.c: Likewise.
4463 * testsuite/libffi.call/return_uc.c: Likewise.
4464 * testsuite/libffi.call/strlen.c: Likewise.
4465 * testsuite/libffi.call/strlen_win32.c: Likewise.
4466 * testsuite/libffi.call/struct1.c: Likewise.
4467 * testsuite/libffi.call/struct2.c: Likewise.
4468 * testsuite/libffi.call/struct3.c: Likewise.
4469 * testsuite/libffi.call/struct4.c: Likewise.
4470 * testsuite/libffi.call/struct5.c: Likewise.
4471 * testsuite/libffi.call/struct6.c: Likewise.
4472 * testsuite/libffi.call/struct7.c: Likewise.
4473 * testsuite/libffi.call/struct8.c: Likewise.
4474 * testsuite/libffi.call/struct9.c: Likewise.
4475 * testsuite/libffi.special/special.exp: New file.
4476 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4477 * testsuite/libffi.special/unwindtest.cc: Likewise.
4478
4479
4480 2003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4481
4482 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4483 copyright years.
4484
4485 2003-08-02 Alan Modra <amodra@bigpond.net.au>
4486
4487 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4488 structure passing.
4489 (ffi_closure_helper_LINUX64): Likewise.
4490 * src/powerpc/linux64.S: Remove code writing to parm save area.
4491 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4492 address in lr from ffi_closure_helper_LINUX64 call to calculate
4493 table address. Optimize function tail.
4494
4495 2003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4496
4497 * src/sparc/ffi.c: Handle all floating point registers.
4498 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4499
4500 2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4501
4502 * README: Note that libffi is not part of GCC. Update the project
4503 URL and status.
4504
4505 2003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4506
4507 * src/powerpc/ppc_closure.S: Include ffi.h.
4508
4509 2003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4510
4511 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4512 Use C style comments.
4513
4514 2003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4515
4516 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4517 * Makefile.in: Regenerate.
4518 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4519 * configure: Regenerate.
4520 * include/ffi.h.in: Add SHmedia support.
4521 * src/sh64/ffi.c: New file.
4522 * src/sh64/sysv.S: New file.
4523
4524 2003-05-16 Jakub Jelinek <jakub@redhat.com>
4525
4526 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4527 should be read-only.
4528 * configure: Rebuilt.
4529 * fficonfig.h.in: Rebuilt.
4530 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4531 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4532 * src/powerpc/linux64.S: Likewise.
4533 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4534 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4535 if -fpic/-fPIC/-mrelocatable.
4536 * src/powerpc/powerpc_closure.S: Likewise.
4537 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4538 #write in .eh_frame flags.
4539 * src/sparc/v9.S: Likewise.
4540 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4541 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4542 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4543
4544 2003-05-07 Jeff Sturm <jsturm@one-point.com>
4545
4546 Fixes PR bootstrap/10656
4547 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4548 support for .register pseudo-op.
4549 * src/sparc/v8.S: Use it.
4550 * fficonfig.h.in: Rebuilt.
4551 * configure: Rebuilt.
4552
4553 2003-04-18 Jakub Jelinek <jakub@redhat.com>
4554
4555 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4556 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4557 Make it the default on POWERPC64.
4558 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4559 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4560 * configure: Rebuilt.
4561 * src/powerpc/ffi.c (hidden): Define.
4562 (ffi_prep_args_SYSV): Renamed from
4563 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4564 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4565 ASM_NEEDS_REGISTERS64): New.
4566 (ffi_prep_args64): New function.
4567 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4568 (ffi_call): Likewise.
4569 (ffi_prep_closure): Likewise.
4570 (flush_icache): Surround by #ifndef POWERPC64.
4571 (ffi_dblfl): New union type.
4572 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4573 (ffi_closure_helper_LINUX64): New function.
4574 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4575 __powerpc64__.
4576 * src/powerpc/sysv.S: Likewise.
4577 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4578 * src/powerpc/linux64.S: New file.
4579 * src/powerpc/linux64_closure.S: New file.
4580 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4581 src/powerpc/linux64_closure.S.
4582 (TARGET_SRC_POWERPC): Likewise.
4583
4584 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4585 closure_test_fn3): Fix result printing on big-endian 64-bit
4586 machines.
4587 (main): Print tst2_arg instead of uninitialized tst2_result.
4588
4589 * src/ffitest.c (main): Hide what closure pointer really points to
4590 from the compiler.
4591
4592 2003-04-16 Richard Earnshaw <rearnsha@arm.com>
4593
4594 * configure.in (arm-*-netbsdelf*): Add configuration.
4595 (configure): Regenerated.
4596
4597 2003-04-04 Loren J. Rittle <ljrittle@acm.org>
4598
4599 * include/Makefile.in: Regenerate.
4600
4601 2003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4602
4603 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4604 bit mode.
4605 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4606 Receive closure pointer through parameter, read args using
4607 __builtin_dwarf_cfa.
4608 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4609
4610 2003-03-12 Andreas Schwab <schwab@suse.de>
4611
4612 * configure.in: Avoid trailing /. in toolexeclibdir.
4613 * configure: Rebuilt.
4614
4615 2003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4616
4617 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4618
4619 2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4620
4621 * libffi/src/powerpc/darwin_closure.S:
4622 Fix alignement bug, allocate 8 bytes for the result.
4623 * libffi/src/powerpc/aix_closure.S:
4624 Likewise.
4625 * libffi/src/powerpc/ffi_darwin.c:
4626 Update stackframe description for aix/darwin_closure.S.
4627
4628 2003-02-06 Jakub Jelinek <jakub@redhat.com>
4629
4630 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4631 attribute.
4632
4633 2003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4634 Andreas Schwab <schwab@suse.de>
4635
4636 * configure.in: Adjust command to source config-ml.in to account
4637 for changes to the libffi_basedir definition.
4638 (libffi_basedir): Remove ${srcdir} from value and include trailing
4639 slash if nonempty.
4640
4641 * configure: Regenerate.
4642
4643 2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4644
4645 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4646
4647 2003-01-28 Andrew Haley <aph@redhat.com>
4648
4649 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4650 * src/x86/ffi64.c (ffi_prep_closure): New.
4651 (ffi_closure_UNIX64_inner): New.
4652 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4653
4654 2003-01-27 Alexandre Oliva <aoliva@redhat.com>
4655
4656 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4657 Remove USE_LIBDIR conditional.
4658 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4659 * Makefile.in, configure: Rebuilt.
4660
4661 2003-01027 David Edelsohn <edelsohn@gnu.org>
4662
4663 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4664 * Makefile.in: Regenerate.
4665
4666 2003-01-22 Andrew Haley <aph@redhat.com>
4667
4668 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4669 unwind info.
4670
4671 2003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4672
4673 * src/powerpc/darwin.S: Add unwind info.
4674 * src/powerpc/darwin_closure.S: Likewise.
4675
4676 2003-01-14 Andrew Haley <aph@redhat.com>
4677
4678 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4679 (ffi_prep_cif_machdep): Likewise.
4680 * src/x86/unix64.S: Add unwind info.
4681
4682 2003-01-14 Andreas Jaeger <aj@suse.de>
4683
4684 * src/ffitest.c (main): Only use ffi_closures if those are
4685 supported.
4686
4687 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4688
4689 * libffi/src/ffitest.c
4690 add closure testcases
4691
4692 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4693
4694 * libffi/src/powerpc/ffi.c
4695 fix alignment bug for float (4 byte aligned iso 8 byte)
4696
4697 2003-01-09 Geoffrey Keating <geoffk@apple.com>
4698
4699 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4700 * src/powerpc/darwin.S: Remove RCS version string.
4701
4702 2003-01-03 Jeff Sturm <jsturm@one-point.com>
4703
4704 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4705 * src/ffitest.c (main): Use static storage for closure.
4706 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4707 * src/sparc/v8.S (ffi_closure_v8): New.
4708 * src/sparc/v9.S (ffi_closure_v9): New.
4709
4710 2002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4711
4712 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4713 enumeration for X86_WIN32.
4714 * src/x86/win32.S: Added ffi_call_STDCALL function
4715 definition.
4716 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4717 switch cases for recognising FFI_STDCALL and
4718 calling ffi_call_STDCALL if target is X86_WIN32.
4719 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4720 stdcall versions of the "my_strlen" and "many"
4721 test functions (for X86_WIN32).
4722 Added test cases to test stdcall invocation using
4723 these functions.
4724
4725 2002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4726
4727 * src/sh/sysv.S: Add DWARF2 unwind info.
4728
4729 2002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4730
4731 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4732
4733 2002-11-26 Jim Wilson <wilson@redhat.com>
4734
4735 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4736
4737 2002-11-23 H.J. Lu <hjl@gnu.org>
4738
4739 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4740 Include ../config/accross.m4.
4741 * aclocal.m4; Rebuild.
4742 * configure: Likewise.
4743
4744 2002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4745
4746 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4747
4748 2002-11-11 DJ Delorie <dj@redhat.com>
4749
4750 * configure.in: Look for common files in the right place.
4751
4752 2002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4753
4754 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4755 raw data as _Jv_word values, not ffi_raw.
4756 (ffi_java_ptrarray_to_raw): Likewise.
4757 (ffi_java_rvalue_to_raw): New function.
4758 (ffi_java_raw_call): Call it.
4759 (ffi_java_raw_to_rvalue): New function.
4760 (ffi_java_translate_args): Call it.
4761 * src/ffitest.c (closure_test_fn): Interpret return value
4762 as ffi_arg, not int.
4763 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4764 FFI_TYPE_POINTER case.
4765 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4766 values extended to word size.
4767
4768 2002-10-02 Andreas Jaeger <aj@suse.de>
4769
4770 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4771
4772 2002-10-01 Bo Thorsen <bo@smetana.suse.de>
4773
4774 * include/ffi.h.in: Fix i386 win32 compilation.
4775
4776 2002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4777
4778 * configure.in: Add s390x-*-linux-* target.
4779 * configure: Regenerate.
4780 * include/ffi.h.in: Define S390X for s390x targets.
4781 (FFI_CLOSURES): Define for s390/s390x.
4782 (FFI_TRAMPOLINE_SIZE): Likewise.
4783 (FFI_NATIVE_RAW_API): Likewise.
4784 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4785 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4786 * src/s390/ffi.c: Major rework of existing code. Add support for
4787 s390x targets. Add closure support.
4788 * src/s390/sysv.S: Likewise.
4789
4790 2002-09-29 Richard Earnshaw <rearnsha@arm.com>
4791
4792 * src/arm/sysv.S: Fix typo.
4793
4794 2002-09-28 Richard Earnshaw <rearnsha@arm.com>
4795
4796 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4797 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4798 (ffi_call_SYSV): Handle soft-float.
4799
4800 2002-09-27 Bo Thorsen <bo@suse.de>
4801
4802 * include/ffi.h.in: Fix multilib x86-64 support.
4803
4804 2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4805
4806 * Makefile.am (all-multi): Fix multilib parallel build.
4807
4808 2002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4809
4810 * configure.in (sh[34]*-*-linux*): Add brackets.
4811 * configure: Regenerate.
4812
4813 2002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4814
4815 * Makefile.am: Add SH support.
4816 * Makefile.in: Regenerate.
4817 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4818 * configure: Regenerate.
4819 * include/ffi.h.in: Add SH support.
4820 * src/sh/ffi.c: New file.
4821 * src/sh/sysv.S: New file.
4822 * src/types.c: Add SH support.
4823
4824 2002-07-16 Bo Thorsen <bo@suse.de>
4825
4826 * src/x86/ffi64.c: New file that adds x86-64 support.
4827 * src/x86/unix64.S: New file that handles argument setup for
4828 x86-64.
4829 * src/x86/sysv.S: Don't use this on x86-64.
4830 * src/x86/ffi.c: Don't use this on x86-64.
4831 Remove unused vars.
4832 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4833 for x86-64.
4834 * src/ffitest.c (struct6): New test that tests a special case in
4835 the x86-64 ABI.
4836 (struct7): Likewise.
4837 (struct8): Likewise.
4838 (struct9): Likewise.
4839 (closure_test_fn): Silence warning about this when it's not used.
4840 (main): Add the new tests.
4841 (main): Fix a couple of wrong casts and silence some compiler warnings.
4842 * include/ffi.h.in: Add x86-64 ABI definition.
4843 * fficonfig.h.in: Regenerate.
4844 * Makefile.am: Add x86-64 support.
4845 * configure.in: Likewise.
4846 * Makefile.in: Regenerate.
4847 * configure: Likewise.
4848
4849 2002-06-24 Bo Thorsen <bo@suse.de>
4850
4851 * src/types.c: Merge settings for similar architectures.
4852 Add x86-64 sizes and alignments.
4853
4854 2002-06-23 Bo Thorsen <bo@suse.de>
4855
4856 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4857 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4858 * src/mips/ffi.c (ffi_prep_args): Likewise.
4859 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4860
4861 2002-07-18 H.J. Lu (hjl@gnu.org)
4862
4863 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4864 (libffi_la_SOURCES): Support MIPS_LINUX.
4865 (libffi_convenience_la_SOURCES): Likewise.
4866 * Makefile.in: Regenerated.
4867
4868 * configure.in (mips64*-*): Skip.
4869 (mips*-*-linux*): New.
4870 * configure: Regenerated.
4871
4872 * src/mips/ffi.c: Include <sgidefs.h>.
4873
4874 2002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4875
4876 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4877
4878 2002-05-27 Roger Sayle <roger@eyesopen.com>
4879
4880 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4881
4882 2002-05-27 Bo Thorsen <bo@suse.de>
4883
4884 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4885 fix formatting.
4886
4887 2002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4888
4889 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4890 beginning of function (for older apple cc).
4891
4892 2002-05-08 Alexandre Oliva <aoliva@redhat.com>
4893
4894 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4895 script entry, and set LD to it when configuring multilibs.
4896 * configure: Rebuilt.
4897
4898 2002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4899
4900 * configure.in (sparc64-*-netbsd*): Add target.
4901 (sparc-*-netbsdelf*): Likewise.
4902 * configure: Regenerate.
4903
4904 2002-04-28 David S. Miller <davem@redhat.com>
4905
4906 * configure.in, configure: Fix SPARC test in previous change.
4907
4908 2002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4909
4910 * Makefile.am: Add Linux for S/390 support.
4911 * Makefile.in: Regenerate.
4912 * configure.in: Add Linux for S/390 support.
4913 * configure: Regenerate.
4914 * include/ffi.h.in: Add Linux for S/390 support.
4915 * src/s390/ffi.c: New file from libffi CVS tree.
4916 * src/s390/sysv.S: New file from libffi CVS tree.
4917
4918 2002-04-28 Jakub Jelinek <jakub@redhat.com>
4919
4920 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4921 %r_disp32().
4922 * src/sparc/v8.S: Use it.
4923 * src/sparc/v9.S: Likewise.
4924 * fficonfig.h.in: Rebuilt.
4925 * configure: Rebuilt.
4926
4927 2002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4928
4929 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4930 correctly.
4931 * src/ia64/unix.S: Add unwind information. Fix comments.
4932 Save sp in a way that's compatible with unwind info.
4933 (ffi_call_unix): Correctly restore sp in all cases.
4934 * src/ia64/ffi.c: Add, fix comments.
4935
4936 2002-04-08 Jakub Jelinek <jakub@redhat.com>
4937
4938 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4939
4940 2002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4941
4942 * configure.in (alpha*-*-netbsd*): Add target.
4943 * configure: Regenerate.
4944
4945 2002-04-04 Jeff Sturm <jsturm@one-point.com>
4946
4947 * src/sparc/v8.S: Add unwind info.
4948 * src/sparc/v9.S: Likewise.
4949
4950 2002-03-30 Krister Walfridsson <cato@df.lth.se>
4951
4952 * configure.in: Enable i*86-*-netbsdelf*.
4953 * configure: Rebuilt.
4954
4955 2002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4956
4957 PR other/2620
4958 * src/mips/n32.s: Delete
4959 * src/mips/o32.s: Delete
4960
4961 2002-03-21 Loren J. Rittle <ljrittle@acm.org>
4962
4963 * configure.in: Enable alpha*-*-freebsd*.
4964 * configure: Rebuilt.
4965
4966 2002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4967
4968 * Makefile.am: libfficonvenience -> libffi_convenience.
4969 * Makefile.in: Rebuilt.
4970
4971 * Makefile.am: Define ffitest_OBJECTS.
4972 * Makefile.in: Rebuilt.
4973
4974 2002-03-07 Andreas Tobler <toa@pop.agri.ch>
4975 David Edelsohn <edelsohn@gnu.org>
4976
4977 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4978 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4979 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4980 * Makefile.in: Regenerate.
4981 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4982 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4983 (flush_icache, flush_range): New functions.
4984 (ffi_closure_helper_DARWIN): New function.
4985 * src/powerpc/aix_closure.S: New file.
4986 * src/powerpc/darwin_closure.S: New file.
4987
4988 2002-02-24 Jeff Sturm <jsturm@one-point.com>
4989
4990 * include/ffi.h.in: Add typedef for ffi_arg.
4991 * src/ffitest.c (main): Declare rint with ffi_arg.
4992
4993 2002-02-21 Andreas Tobler <toa@pop.agri.ch>
4994
4995 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4996 number of GPRs for floating-point arguments.
4997
4998 2002-01-31 Anthony Green <green@redhat.com>
4999
5000 * configure: Rebuilt.
5001 * configure.in: Replace CHECK_SIZEOF and endian tests with
5002 cross-compiler friendly macros.
5003 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5004 macros.
5005
5006 2002-01-18 David Edelsohn <edelsohn@gnu.org>
5007
5008 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5009 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5010
5011 2002-01-17 David Edelsohn <edelsohn@gnu.org>
5012
5013 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5014 (TARGET_SRC_POWERPC_AIX): New.
5015 (POWERPC_AIX): New stanza.
5016 * Makefile.in: Regenerate.
5017 * configure.in: Add AIX case.
5018 * configure: Regenerate.
5019 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5020 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5021 size. Fix "long double" support.
5022 (ffi_call): Add FFI_AIX case.
5023 * src/powerpc/aix.S: New.
5024
5025 2001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5026
5027 Implement Darwin PowerPC ABI.
5028 * configure.in: Handle powerpc-*-darwin*.
5029 * Makefile.am: Set source files for POWERPC_DARWIN.
5030 * configure: Rebuilt.
5031 * Makefile.in: Rebuilt.
5032 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5033 POWERPC_DARWIN.
5034 * src/powerpc/darwin.S: New file.
5035 * src/powerpc/ffi_darwin.c: New file.
5036
5037 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5038
5039 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5040
5041 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5042
5043 * src/x86/sysv.S: Avoid gas-only .balign directive.
5044 Use C style comments.
5045
5046 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5047
5048 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5049 Fixes PR bootstrap/3563.
5050
5051 2001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5052
5053 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5054
5055 2001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5056
5057 * configure.in: Recognize sparc*-sun-* host.
5058 * configure: Regenerate.
5059
5060 2001-06-06 Andrew Haley <aph@redhat.com>
5061
5062 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5063
5064 2001-06-03 Andrew Haley <aph@redhat.com>
5065
5066 * src/alpha/osf.S: Add unwind info.
5067 * src/powerpc/sysv.S: Add unwind info.
5068 * src/powerpc/ppc_closure.S: Likewise.
5069
5070 2000-05-31 Jeff Sturm <jsturm@one-point.com>
5071
5072 * configure.in: Fix AC_ARG_ENABLE usage.
5073 * configure: Rebuilt.
5074
5075 2001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5076
5077 * configure.in: Remove warning about beta code.
5078 * configure: Rebuilt.
5079
5080 2001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5081
5082 * src/ia64/unix.S: Restore stack pointer when returning from
5083 ffi_closure_UNIX.
5084 * src/ia64/ffi.c: Fix typo in comment.
5085
5086 2001-04-18 Jim Wilson <wilson@redhat.com>
5087
5088 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5089 to eliminate RAW DV.
5090
5091 2001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5092
5093 * Makefile.am: Make a libtool convenience library.
5094 * Makefile.in: Rebuilt.
5095
5096 2001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5097
5098 * configure.in: Use different syntax for subdirectory creation.
5099 * configure: Rebuilt.
5100
5101 2001-03-27 Jon Beniston <jon@beniston.com>
5102
5103 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5104 * configure: Rebuilt.
5105 * Makefile.am: Added X86_WIN32 target support.
5106 * Makefile.in: Rebuilt.
5107
5108 * include/ffi.h.in: Added X86_WIN32 target support.
5109
5110 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5111 * src/types.c: Added X86_WIN32 target support.
5112
5113 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5114 stuff removed and made to work with CygWin's gas.
5115
5116 2001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5117
5118 * configure.in: Make target subdirectory in build dir.
5119 * Makefile.am: Override suffix based rules to specify correct output
5120 subdirectory.
5121 * Makefile.in: Rebuilt.
5122 * configure: Rebuilt.
5123
5124 2001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5125
5126 * src/powerpc/ppc_closure.S: New file.
5127 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5128 involving long long and register pairs.
5129 (ffi_prep_closure): New function.
5130 (flush_icache): Likewise.
5131 (ffi_closure_helper_SYSV): Likewise.
5132 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5133 (FFI_TRAMPOLINE_SIZE): Likewise.
5134 (FFI_NATIVE_RAW_API): Likewise.
5135 * Makefile.in: Rebuilt.
5136 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5137 (TARGET_SRC_POWERPC): Likewise.
5138
5139 2001-03-19 Tom Tromey <tromey@redhat.com>
5140
5141 * Makefile.in: Rebuilt.
5142 * Makefile.am (ffitest_LDFLAGS): New macro.
5143
5144 2001-03-02 Nick Clifton <nickc@redhat.com>
5145
5146 * include/ffi.h.in: Remove RCS ident string.
5147 * include/ffi_mips.h: Remove RCS ident string.
5148 * src/debug.c: Remove RCS ident string.
5149 * src/ffitest.c: Remove RCS ident string.
5150 * src/prep_cif.c: Remove RCS ident string.
5151 * src/types.c: Remove RCS ident string.
5152 * src/alpha/ffi.c: Remove RCS ident string.
5153 * src/alpha/osf.S: Remove RCS ident string.
5154 * src/arm/ffi.c: Remove RCS ident string.
5155 * src/arm/sysv.S: Remove RCS ident string.
5156 * src/mips/ffi.c: Remove RCS ident string.
5157 * src/mips/n32.S: Remove RCS ident string.
5158 * src/mips/o32.S: Remove RCS ident string.
5159 * src/sparc/ffi.c: Remove RCS ident string.
5160 * src/sparc/v8.S: Remove RCS ident string.
5161 * src/sparc/v9.S: Remove RCS ident string.
5162 * src/x86/ffi.c: Remove RCS ident string.
5163 * src/x86/sysv.S: Remove RCS ident string.
5164
5165 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5166
5167 * include/ffi.h.in: Change sourceware.cygnus.com references to
5168 gcc.gnu.org.
5169
5170 2000-12-09 Richard Henderson <rth@redhat.com>
5171
5172 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5173 (ffi_closure_osf_inner): Index rather than increment avalue
5174 and arg_types. Give ffi_closure_osf the raw return value type.
5175 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5176 promotion.
5177
5178 2000-12-07 Richard Henderson <rth@redhat.com>
5179
5180 * src/raw_api.c (ffi_translate_args): Fix typo.
5181 (ffi_prep_closure): Likewise.
5182
5183 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5184 FFI_TRAMPOLINE_SIZE.
5185 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5186 cif->bytes for new ffi_call_osf implementation.
5187 (ffi_prep_args): Absorb into ...
5188 (ffi_call): ... here. Do all stack allocation here and
5189 avoid a callback function.
5190 (ffi_prep_closure, ffi_closure_osf_inner): New.
5191 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5192 (ffi_closure_osf): New.
5193
5194 2000-09-10 Alexandre Oliva <aoliva@redhat.com>
5195
5196 * config.guess, config.sub, install-sh: Removed.
5197 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5198 * Makefile.in: Rebuilt.
5199
5200 * acinclude.m4: Include libtool macros from the top level.
5201 * aclocal.m4, configure: Rebuilt.
5202
5203 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
5204
5205 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5206 * configure: Rebuilt.
5207
5208 2000-05-11 Scott Bambrough <scottb@netwinder.org>
5209
5210 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5211 memory correctly. Use conditional instructions, not branches where
5212 possible.
5213
5214 2000-05-04 Tom Tromey <tromey@cygnus.com>
5215
5216 * configure: Rebuilt.
5217 * configure.in: Match `arm*-*-linux-*'.
5218 From Chris Dornan <cdornan@arm.com>.
5219
5220 2000-04-28 Jakub Jelinek <jakub@redhat.com>
5221
5222 * Makefile.am (SUBDIRS): Define.
5223 (AM_MAKEFLAGS): Likewise.
5224 (Multilib support.): Add section.
5225 * Makefile.in: Rebuilt.
5226 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5227 New variables. Set for gcc using -print-multi-lib. Export them
5228 to libtool.
5229 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5230 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5231 for -shared links.
5232 (extra_compiler_flags_value, extra_compiler_flags): Check these
5233 for extra compiler options which need to be passed down in
5234 compiler_flags.
5235
5236 2000-04-16 Anthony Green <green@redhat.com>
5237
5238 * configure: Rebuilt.
5239 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5240
5241 2000-04-14 Jakub Jelinek <jakub@redhat.com>
5242
5243 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5244 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5245 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5246 Replace all void * sizeofs with sizeof(int).
5247 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5248 different than DOUBLE.
5249 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5250 (ffi_prep_args_v9): New function.
5251 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5252 (ffi_V9_return_struct): New function.
5253 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5254 32bit code (not yet cross-arch calls).
5255 * src/sparc/v8.S: Add struct return delay nop.
5256 Handle long long.
5257 * src/sparc/v9.S: New file.
5258 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5259 is used on sparc64 only for structures larger than 32 bytes.
5260 Pass by reference for structures is done for structure arguments
5261 larger than 16 bytes.
5262 * src/ffitest.c (main): Use 64bit rint on sparc64.
5263 Run long long tests on sparc.
5264 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5265 sparc64.
5266 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5267 on sparc64.
5268 * configure.in (sparc-*-linux*): New supported target.
5269 (sparc64-*-linux*): Likewise.
5270 * configure: Rebuilt.
5271 * Makefile.am: Add v9.S to SPARC files.
5272 * Makefile.in: Likewise.
5273 (LINK): Surround $(CCLD) into double quotes, so that multilib
5274 compiles work correctly.
5275
5276 2000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5277
5278 * configure: Rebuilt.
5279 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5280 proposed by Bryce McKinlay.
5281
5282 2000-03-20 Tom Tromey <tromey@cygnus.com>
5283
5284 * Makefile.in: Hand edit for java_raw_api.lo.
5285
5286 2000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5287
5288 * config.guess, config.sub: Update from the gcc tree.
5289 Fix for PR libgcj/168.
5290
5291 2000-03-03 Tom Tromey <tromey@cygnus.com>
5292
5293 * Makefile.in: Fixed ia64 by hand.
5294
5295 * configure: Rebuilt.
5296 * configure.in (--enable-multilib): New option.
5297 (libffi_basedir): New subst.
5298 (AC_OUTPUT): Added multilib code.
5299
5300 2000-03-02 Tom Tromey <tromey@cygnus.com>
5301
5302 * Makefile.in: Rebuilt.
5303 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5304 directory name.
5305
5306 2000-02-25 Hans Boehm <boehm@acm.org>
5307
5308 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5309 files.
5310 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5311 list.
5312 (ffi_prep_raw_closure): Use ffi_translate_args, not
5313 ffi_closure_translate.
5314 * src/java_raw_api.c: New file.
5315 * src/ffitest.c (closure_test_fn): New function.
5316 (main): Define `rint' as long long on IA64. Added new test when
5317 FFI_CLOSURES is defined.
5318 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5319 (ffi_abi): Recognize IA64.
5320 (ffi_raw): Added `flt' field.
5321 Added "Java raw API" code.
5322 * configure.in: Recognize ia64.
5323 * Makefile.am (TARGET_SRC_IA64): New macro.
5324 (libffi_la_common_SOURCES): Added java_raw_api.c.
5325 (libffi_la_SOURCES): Define in IA64 case.
5326
5327 2000-01-04 Tom Tromey <tromey@cygnus.com>
5328
5329 * Makefile.in: Rebuilt with newer automake.
5330
5331 1999-12-31 Tom Tromey <tromey@cygnus.com>
5332
5333 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5334
5335 1999-09-01 Tom Tromey <tromey@cygnus.com>
5336
5337 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5338 undefs.
5339 * fficonfig.h.in: Rebuilt.
5340 * configure: Rebuilt.
5341 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5342 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5343 * acconfig.h: Don't #undef PACKAGE or VERSION.
5344
5345 1999-08-09 Anthony Green <green@cygnus.com>
5346
5347 * include/ffi.h.in: Try to work around messy header problem
5348 with PACKAGE and VERSION.
5349
5350 * configure: Rebuilt.
5351 * configure.in: Change version to 2.00-beta.
5352
5353 * fficonfig.h.in: Rebuilt.
5354 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5355
5356 * src/x86/ffi.c (ffi_raw_call): Rename.
5357
5358 1999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5359
5360 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5361 (ffi_prep_incoming_args_SYSV): Ditto.
5362 (ffi_prep_closure): Ditto.
5363 (ffi_closure_raw_SYSV): Ditto.
5364 (ffi_prep_raw_closure): More ditto.
5365 (ffi_call_raw): Final ditto.
5366
5367 * include/ffi.h.in: Add definitions for closure and raw API.
5368
5369 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5370 FFI_TYPE_UINT64.
5371
5372 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5373
5374 * src/raw_api.c: New file.
5375
5376 * include/ffi.h.in (ffi_raw): New type.
5377 (UINT_ARG, SINT_ARG): New defines.
5378 (ffi_closure, ffi_raw_closure): New types.
5379 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5380
5381 * configure.in: Add check for endianness and sizeof void*.
5382
5383 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5384 instead of directly.
5385
5386 * configure: Rebuilt.
5387
5388 Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5389
5390 * configure.in: Add x86 and powerpc BeOS configurations.
5391 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5392
5393 1999-05-09 Anthony Green <green@cygnus.com>
5394
5395 * configure.in: Add warning about this being beta code.
5396 Remove src/Makefile.am from the picture.
5397 * configure: Rebuilt.
5398
5399 * Makefile.am: Move logic from src/Makefile.am. Add changes
5400 to support libffi as a target library.
5401 * Makefile.in: Rebuilt.
5402
5403 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5404 Upgraded to new autoconf, automake, libtool.
5405
5406 * README: Tweaks.
5407
5408 * LICENSE: Update copyright date.
5409
5410 * src/Makefile.am, src/Makefile.in: Removed.
5411
5412 1998-11-29 Anthony Green <green@cygnus.com>
5413
5414 * include/ChangeLog: Removed.
5415 * src/ChangeLog: Removed.
5416 * src/mips/ChangeLog: Removed.
5417 * src/sparc/ChangeLog: Remboved.
5418 * src/x86/ChangeLog: Removed.
5419
5420 * ChangeLog.v1: Created.