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