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