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