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