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