]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
2c055256
RH
12016-03-02 Richard Henderson <rth@redhat.com>
2
3 PR libffi/70024
4 * Makefile.am (libffi_version_script): New.
5 (libffi_version_dep): New.
6 (libffi_version_info): New.
7 (libffi_la_LDFLAGS): Include libffi_version_info, libffi_version_script.
8 (libffi_la_DEPENDENCIES): Include libffi_version_dep.
9 * acinclude.m4 (LIBAT_ENABLE, LIBAT_CHECK_LINKER_FEATURES): New.
10 (LIBAT_ENABLE_SYMVERS, LIBAT_BUILD_VERSIONED_SHLIB): New.
11 (LIBAT_BUILD_VERSIONED_SHLIB_GNU): New.
12 (LIBAT_BUILD_VERSIONED_SHLIB_SUN): New.
13 * configure.ac: Invoke LIBAT_ENABLE_SYMVERS.
14 * libffi.map: New file.
15 * libtool-version: Increase to 5.0.0.
16 * Makefile.in, configure: Rebuild.
17 * man/Makefile.in, testsuite/Makefile.in: Rebuild.
18
bda9c245
JDA
192015-10-26 John David Anglin <danglin@gcc.gnu.org>
20
21 PR libffi/65441
22 * testsuite/lib/libffi.exp: Load target-supports-dg.exp.
23 * testsuite/libffi.call/float2.c: Don't run on hppa*-*-hpux*.
24
c57173b6
AM
252015-10-01 Alan Modra <amodra@gmail.com>
26
27 * src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
28 gprs, and stack words separately.
29 (ffi_prep_args_SYSV): Similarly.
30
11989ec2
MH
312015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
32
33 * Makefile.in: Regenerated with automake-1.11.6.
34 * aclocal.m4: Likewise.
35 * configure: Likewise.
36 * fficonfig.h.in: Likewise.
37 * include/Makefile.in: Likewise.
38 * man/Makefile.in: Likewise.
39 * testsuite/Makefile.in: Likewise.
40
dc843250
JDA
412015-03-29 John David Anglin <danglin@gcc.gnu.org>
42
43 PR libffi/65567
44 * testsuite/lib/libffi.exp (libffi_feature_test): Use split to ensure
45 lindex is applied to a list.
46
97c32df4
AP
472015-02-10 Andrew Pinski <apinski@cavium.com>
48
49 * src/aarch64/ffitarget.h (ffi_arg): Use unsigned long long for ILP32.
50 (FFI_SIZEOF_ARG): Define to 64 for ILP32.
51 (ffi_sarg): Use signed long long for ILP32.
52
53 * src/aarch64/sysv.S (PTR_REG): New macro.
54 (PTR_SIZE): New macro.
55 (ffi_closure_SYSV): Load cif, fn and user_data using PTR_REG.
56 (ffi_go_closure_SYSV): Load cif and fn using PTR_REG.
57
a96d75a4
JH
582015-01-29 Jack Howarth <howarth.at.gcc@gmail.com>
59
60 PR libffi/64855
61 * testsuite/lib/libffi.exp: Don't set targetabis on darwin.
62
ed4bf691
RH
632015-01-28 Richard Henderson <rth@redhat.com>
64
1dd63990
RH
65 PR libffi/64779
66 PR libffi/64799
ed4bf691
RH
67 * Merge to upstream commit db1b34b7e1f5e473d17557e454a29933dfecd1af.
68
d9c16466
RO
692015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
70
71 * testsuite/lib/libffi.exp: Load target-supports.exp.
72 (run-many-tests): Only set targetabis for ia32.
73
039ad4c2
RH
742015-01-19 Richard Henderson <rth@redhat.com>
75
76 PR libffi/64581
77 * testsuite/lib/libffi.exp (libffi_target_compile): Don't switch
78 to C++ mode when compiling C++ source code.
79
36035d79
RH
802015-01-19 Richard Henderson <rth@redhat.com>
81
82 * Merge to upstream commit 3ac1610aa33c887ea9b14935208943925714a33e.
83
a9b8c959
RH
842015-01-19 Richard Henderson <rth@redhat.com>
85
86 PR libffi/64607
87 * testsuite/lib/libffi.exp (libffi-init): Append -L for the
88 just built libstdc++.
89
109c4a7c
DH
902015-01-15 Dominique d'Humieres <dominiq@lps.ens.fr>
91 Richard Henderson <rth@redhat.com>
92
93 PR libffi/64607
94 * Makefile.am (AM_MAKEFLAGS): Use double quotes on subvariables.
95 * Makefile.in: Rebuilt.
96
58b59d5e
RH
972015-01-15 Richard Henderson <rth@redhat.com>
98
99 PR libffi/64572
100 * include/ffi.h.in (FFI_TYPE_LAST): Set to COMPLEX only if complex
101 numbers are supported by the backend.
102
b1479ae3
KK
1032015-01-13 Kaz Kojima <kkojima@gcc.gnu.org>
104
105 * configure.host: Remove extra brackets for sh.
106
ff8ebda1
L
1072015-01-13 H.J. Lu <hongjiu.lu@intel.com>
108
109 PR bootstrap/64575
110 * configure.host (TARGET): Set to X86_64 if __x86_64__ is defined.
111
be723d1e
RH
1122015-01-12 Richard Henderson <rth@redhat.com>
113
114 PR libffi/64572
115 * src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
116 (FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
117
ca46eab7
RH
1182015-01-12 Richard Henderson <rth@redhat.com>
119
120 * src/x86/ffi.c (ffi_raw_call): Fill in frame.
121
b1760f7f
RH
1222015-01-12 Richard Henderson <rth@redhat.com>
123
124 Merge to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16.
125
a699d672
L
1262014-11-21 H.J. Lu <hongjiu.lu@intel.com>
127
128 PR bootstrap/63784
129 * configure: Regenerated.
130
ebf6d33b
FXC
1312014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
132
133 PR target/63610
134 * configure: Regenerate.
135
bb8c2886
ILT
1362014-10-15 Ian Lance Taylor <iant@google.com>
137
138 * configure.ac: If the compiler supports -Qunused-arguments, use
139 it when running the compiler on .s files.
140 * configure: Regenerated.
141
1138382b
JJ
1422014-09-11 Jakub Jelinek <jakub@redhat.com>
143
144 * src/powerpc/linux64.S: Emit .note.GNU-stack even when
145 POWERPC64 is not defined.
146 * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2.
147
f54860ea
UB
1482014-07-21 Uros Bizjak <ubizjak@gmail.com>
149
150 * src/alpha/ffi.c: Do not include stdlib.h.
151 (ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort.
152
a03bd005
TS
1532014-07-04 Thomas Schwinge <thomas@codesourcery.com>
154
155 * testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
156 match to dg-runtest's.
157
8ec7c36a
SH
1582014-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
159
160 * testsuite/lib/libffi.exp (load_gcc_lib): Register loaded libs.
161
54fde020
BE
1622014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
163
164 Fix current cygwin-64 build problems.
165 * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
166 * src/x86/ffi.c: Add if defined(__CYGWIN__).
167 * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
168 handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
169 Added SEH information. Fixed formatting.
170
f7468577
JJ
1712014-04-22 Jakub Jelinek <jakub@redhat.com>
172
173 PR other/43620
174 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
175 * Makefile.in: Regenerated.
176 * include/Makefile.in: Regenerated.
177 * man/Makefile.in: Regenerated.
178 * testsuite/Makefile.in: Regenerated.
179
5309143d
YZ
1802014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
181
182 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
183 main CFA reg; update cfi_rel_offset.
184
248d745a
EB
1852014-02-17 Eric Botcazou <ebotcazou@adacore.com>
186
187 PR libffi/60073
188 * src/sparc/v8.S: Assemble only if !SPARC64.
189 * src/sparc/v9.S: Remove obsolete comment.
190 * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
191 (V8_ABI_P): New macro.
192 (V9_ABI_P): Likewise.
193 (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
194 * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
195 (ffi_prep_args_v9): Compile only if SPARC64.
196 (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
197 (ffi_prep_cif_machdep): Guard access to nfixedargs field.
198 (ffi_prep_cif_machdep_var): Likewise.
199 (ffi_v9_layout_struct): Compile only if SPARC64.
200 (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
201 (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
202 (ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
203 (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
204 to nfixedargs field.
205
30255340
EB
2062014-02-13 Eric Botcazou <ebotcazou@adacore.com>
207
208 PR libffi/60073
209 * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
210 (FFI_EXTRA_CIF_FIELDS): Likewise.
211 (FFI_NATIVE_RAW_API): Move around.
212 * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from...
213 (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core.
214 (ffi_prep_cif_machdep_var): New function.
215 (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in
216 FP registers.
217 * doc/libffi.texi (Introduction): Fix inaccuracy.
218
e73d2479
AM
2192013-12-10 Alan Modra <amodra@gmail.com>
220
221 * src/powerpc/ffitarget.h: Import from upstream.
222 * src/powerpc/ffi_powerpc.h: Likewise.
223 * src/powerpc/ffi.c: Likewise.
224 * src/powerpc/ffi_sysv.c: Likewise.
225 * src/powerpc/ffi_linux64.c: Likewise.
226 * src/powerpc/sysv.S: Likewise.
227 * src/powerpc/ppc_closure.S: Likewise.
228 * src/powerpc/linux64.S: Likewise.
229 * src/powerpc/linux64_closure.S: Likewise.
230 * src/types.c: Likewise.
231 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
232 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
233 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
234 * include/ffi.h.in (ffi_prep_types): Declare.
235 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
236 * configure: Regenerate.
237 * fficonfig.h.in: Regenerate.
238 * Makefile.in: Regenerate.
239 * man/Makefile.in: Regenerate.
240 * include/Makefile.in: Regenerate.
241 * testsuite/Makefile.in: Regenerate.
242
3521ba8b
AM
2432013-11-18 Alan Modra <amodra@gmail.com>
244
fd4da58c
AM
245 * src/powerpc/ppc_closure.S: Don't bl .Luint128.
246
3521ba8b
AM
247 * src/powerpc/ffitarget.h: Import from upstream.
248 * src/powerpc/ffi.c: Likewise.
249 * src/powerpc/linux64.S: Likewise.
250 * src/powerpc/linux64_closure.S: Likewise.
251 * doc/libffi.texi: Likewise.
252 * testsuite/libffi.call/cls_double_va.c: Likewise.
253 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
254
3cbe17f7
AM
2552013-09-20 Alan Modra <amodra@gmail.com>
256
257 * configure: Regenerate.
258
40b45a6d
AM
2592013-06-25 Alan Modra <amodra@gmail.com>
260
261 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
262 before statements.
263 (ffi_prep_args64): Support little-endian.
264 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
265 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
266 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
267
1e1ba2d7
DH
2682013-05-22 Dominique d'Humieres <dominiq@lps.ens.fr>
269 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
270
271 PR libffi/56033
272 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
273 ffi_arg *.
274 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
275 * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
276 * testsuite/libffi.call/va_struct1.c (main): Likewise.
277
8280eba0
KT
2782013-03-22 Kai Tietz <ktietz@redhat.com>
279
280 * src/x86/win64.S: Make use of ffi_closure_win64_inner
281 symbol pc-relative.
282
bb78d7c4
DK
2832013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
284
285 * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
286 Move default definition outside enclosing #if scope.
287
8f093ea0
AT
2882013-02-06 Andreas Tobler <andreast@fgznet.ch>
289
290 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
291 DOUBLE equal LONGDOUBLE.
292
7b045477
TG
2932013-01-07 Thorsten Glaser <tg@mirbsd.org>
294
295 * testsuite/libffi.call/cls_uchar_va.c,
296 testsuite/libffi.call/cls_ushort_va.c,
297 testsuite/libffi.call/va_1.c: Testsuite fixes.
298
4e70f25f
AS
2992012-12-29 Andreas Schwab <schwab@linux-m68k.org>
300
301 * Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
302 (STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES)
303 (MAINTAINERCLEANFILES): Define.
304 (all-local, stamp-geninsrc, stamp-build-info): New targets.
305 (doc/libffi.info): Depend on $(STAMP_BUILD_INFO)
306 * configure.ac: Check for modern makeinfo. Add support for
307 --enable-generated-files-in-srcdir.
308 * libffi/mdate-sh: New file.
309 * testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite
310 lib dir.
311 (libffi-init): Properly set library paths for multilibs and add
312 path to libstdc++.
313 * configure: Regenerate.
314 * aclocal.m4: Regenerate.
315 * Makefile.in: Regenerate.
316 * doc/stamp-vti: Regenerate.
317 * doc/version.texi: Regenerate.
318 * fficonfig.h.in: Regenerate.
319 * include/Makefile.in: Regenerate.
320 * man/Makefile.in: Regenerate.
321 * testsuite/Makefile.in: Regenerate.
322
7054d980
AM
3232012-10-31 Alan Modra <amodra@gmail.com>
324
325 * src/powerpc/linux64_closure.S: Add new ABI support.
326 * src/powerpc/linux64.S: Likewise.
327
b4b575ce
AG
3282012-10-30 Magnus Granberg <zorry@gentoo.org>
329 Pavel Labushev <pavel.labushev@runbox.ru>
330
331 * configure.ac: New options pax_emutramp
332 * configure, fficonfig.h.in: Regenerated
333 * src/closures.c: New function emutramp_enabled_check() and
334 checks.
335
3362012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
337
338 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
339 lion) and future version.
340 * configure: Rebuild.
341
3422012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
343 Marcus Shawcroft <marcus.shawcroft at arm.com>
344
3521ba8b
AM
345 * README: Add details of aarch64 port.
346 * src/aarch64/ffi.c: New.
347 * src/aarch64/ffitarget.h: Likewise.
348 * src/aarch64/sysv.S: Likewise.
b4b575ce
AG
349 * Makefile.am: Support aarch64.
350 * configure.ac: Support aarch64.
351 * Makefile.in, configure: Rebuilt.
352
3532012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
354 Marcus Shawcroft <marcus.shawcroft at arm.com>
355
3521ba8b
AM
356 * testsuite/lib/libffi.exp: Add support for aarch64.
357 * testsuite/libffi.call/cls_struct_va1.c: New.
358 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
359 * testsuite/libffi.call/cls_uint_va.c: Likewise.
360 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
361 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
362 * testsuite/libffi.call/nested_struct11.c: Likewise.
363 * testsuite/libffi.call/uninitialized.c: Likewise.
364 * testsuite/libffi.call/va_1.c: Likewise.
365 * testsuite/libffi.call/va_struct1.c: Likewise.
366 * testsuite/libffi.call/va_struct2.c: Likewise.
367 * testsuite/libffi.call/va_struct3.c: Likewise.
b4b575ce
AG
368
3692012-10-12 Walter Lee <walt@tilera.com>
370
3521ba8b
AM
371 * Makefile.am: Add TILE-Gx/TILEPro support.
372 * configure.ac: Likewise.
373 * Makefile.in: Regenerate.
374 * configure: Likewise.
375 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
376 * src/tile: New directory.
377 * src/tile/ffi.c: New file.
378 * src/tile/ffitarget.h: Ditto.
379 * src/tile/tile.S: Ditto.
b4b575ce
AG
380
3812012-10-12 Matthias Klose <doko@ubuntu.com>
382
383 * generate-osx-source-and-headers.py: Normalize whitespace.
384
cbbd536a
DE
3852012-09-14 David Edelsohn <dje.gcc@gmail.com>
386
387 * configure: Regenerated.
388
c5a3fffa
AP
3892012-08-26 Andrew Pinski <apinski@cavium.com>
390
391 PR libffi/53014
392 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
393 soft-float.
394
aa5d8db0
UB
3952012-08-08 Uros Bizjak <ubizjak@gmail.com>
396
397 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
398 just return FFI_BAD_ABI when things are wrong.
399
1ff8c79b
UB
4002012-07-18 H.J. Lu <hongjiu.lu@intel.com>
401
402 PR libffi/53982
403 PR libffi/53973
404 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
405 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
406
4072012-05-16 H.J. Lu <hongjiu.lu@intel.com>
408
409 * configure: Regenerated.
410
b4b575ce
AG
4112012-05-05 Nicolas Lelong
412
413 * libffi.xcodeproj/project.pbxproj: Fixes.
414 * README: Update for iOS builds.
415
4162012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
417
418 * configure.ac: Add Blackfin/sysv support
419 * Makefile.am: Add Blackfin/sysv support
420 * src/bfin/ffi.c: Add Blackfin/sysv support
421 * src/bfin/ffitarget.h: Add Blackfin/sysv support
422
4232012-04-11 Anthony Green <green@moxielogic.com>
424
425 * Makefile.am (EXTRA_DIST): Add new script.
426 * Makefile.in: Rebuilt.
427
4282012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
429
430 * generate-ios-source-and-headers.py,
431 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
432 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
433 generation into an Xcode "run script" phase. Include both as
434 Xcode build scripts. Don't always regenerate config files.
435
4362012-04-10 Anthony Green <green@moxielogic.com>
437
438 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
439
4402012-04-06 Anthony Green <green@moxielogic.com>
441
442 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
443 * Makefile.in: Rebuilt.
444
4452012-04-06 Mike Lewis <mikelikespie@gmail.com>
446
447 * generate-ios-source-and-headers.py: New file.
448 * libffi.xcodeproj/project.pbxproj: New file.
449 * README: Update instructions on building iOS binary.
450 * build-ios.sh: Delete.
451
4522012-04-06 Anthony Green <green@moxielogic.com>
453
454 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
455 compilers, then use it.
456
4572012-04-06 H.J. Lu <hongjiu.lu@intel.com>
458
459 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
460
4612012-04-06 Anthony Green <green@moxielogic.com>
462
463 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
464 * testsuite/Makefile.in: Rebuilt.
465
4662012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
467
468 * include/ffi.h.in: Add missing trampoline table fields.
469 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
470 in CNAME.
471 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
472
4732012-03-29 Peter Rosin <peda@lysator.liu.se>
474
475 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
476 generation, fix the ENDP label and remove the surplus third arg
477 from the 'lea' insn.
478
4792012-03-29 Peter Rosin <peda@lysator.liu.se>
480
481 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
482 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
483 it. Also instruct the assembler to add a frame to the function.
484
4852012-03-23 Peter Rosin <peda@lysator.liu.se>
486
487 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
488 * Makefile.in: Rebuilt.
489 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
490 to all data exports, when compiling libffi clients using MSVC.
491
4922012-03-29 Peter Rosin <peda@lysator.liu.se>
493
494 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
495 make it the default for MSVC.
496 (FFI_TYPE_MS_STRUCT): New structure return convention.
497 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
498 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
499 instead of an ordinary FFI_TYPE_STRUCT.
500 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
501 (ffi_call): Likewise.
502 (ffi_prep_incoming_args_SYSV): Likewise.
503 (ffi_raw_call): Likewise.
504 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
505 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
506 return a pointer to the result structure in eax and don't pop
507 that pointer from the stack, the caller takes care of it.
508 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
509 (ffi_closure_raw_SYSV): Likewise.
510
5112012-03-22 Peter Rosin <peda@lysator.liu.se>
512
513 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
514 assembly version with Intel syntax.
515 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
516
5172012-03-23 Peter Rosin <peda@lysator.liu.se>
518
519 * testsuite/libffi.call/ffitest.h: Provide abstration of
520 __attribute__((fastcall)) in the form of a __FASTCALL__
521 define. Define it to __fastcall for MSVC.
522 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
523 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
524 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
525 * testsuite/libffi.call/strlen2_win32.c: Likewise.
526 * testsuite/libffi.call/struct1_win32.c: Likewise.
527 * testsuite/libffi.call/struct2_win32.c: Likewise.
528
5292012-03-22 Peter Rosin <peda@lysator.liu.se>
530
531 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
532 frame on function entry, MASM adds one automatically.
533
5342012-03-22 Peter Rosin <peda@lysator.liu.se>
535
536 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
537 bits in the MSVC headers.
538
5392012-03-22 Peter Rosin <peda@lysator.liu.se>
540
541 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
542 with no declarations after statements.
543 * testsuite/libffi.call/cls_16byte.c: Likewise.
544 * testsuite/libffi.call/cls_18byte.c: Likewise.
545 * testsuite/libffi.call/cls_19byte.c: Likewise.
546 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
547 * testsuite/libffi.call/cls_20byte.c: Likewise.
548 * testsuite/libffi.call/cls_20byte1.c: Likewise.
549 * testsuite/libffi.call/cls_24byte.c: Likewise.
550 * testsuite/libffi.call/cls_2byte.c: Likewise.
551 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
552 * testsuite/libffi.call/cls_3byte1.c: Likewise.
553 * testsuite/libffi.call/cls_3byte2.c: Likewise.
554 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
555 * testsuite/libffi.call/cls_4byte.c: Likewise.
556 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
557 * testsuite/libffi.call/cls_5byte.c: Likewise.
558 * testsuite/libffi.call/cls_64byte.c: Likewise.
559 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
560 * testsuite/libffi.call/cls_6byte.c: Likewise.
561 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
562 * testsuite/libffi.call/cls_7byte.c: Likewise.
563 * testsuite/libffi.call/cls_8byte.c: Likewise.
564 * testsuite/libffi.call/cls_9byte1.c: Likewise.
565 * testsuite/libffi.call/cls_9byte2.c: Likewise.
566 * testsuite/libffi.call/cls_align_double.c: Likewise.
567 * testsuite/libffi.call/cls_align_float.c: Likewise.
568 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
569 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
570 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
571 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
572 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
573 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
574 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
575 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
576 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
577 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
578 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
579 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
580 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
581 * testsuite/libffi.call/huge_struct.c: Likewise.
582 * testsuite/libffi.call/nested_struct.c: Likewise.
583 * testsuite/libffi.call/nested_struct1.c: Likewise.
584 * testsuite/libffi.call/nested_struct10.c: Likewise.
585 * testsuite/libffi.call/nested_struct2.c: Likewise.
586 * testsuite/libffi.call/nested_struct3.c: Likewise.
587 * testsuite/libffi.call/nested_struct4.c: Likewise.
588 * testsuite/libffi.call/nested_struct5.c: Likewise.
589 * testsuite/libffi.call/nested_struct6.c: Likewise.
590 * testsuite/libffi.call/nested_struct7.c: Likewise.
591 * testsuite/libffi.call/nested_struct8.c: Likewise.
592 * testsuite/libffi.call/nested_struct9.c: Likewise.
593 * testsuite/libffi.call/stret_large.c: Likewise.
594 * testsuite/libffi.call/stret_large2.c: Likewise.
595 * testsuite/libffi.call/stret_medium.c: Likewise.
596 * testsuite/libffi.call/stret_medium2.c: Likewise.
597 * testsuite/libffi.call/struct1.c: Likewise.
598 * testsuite/libffi.call/struct1_win32.c: Likewise.
599 * testsuite/libffi.call/struct2.c: Likewise.
600 * testsuite/libffi.call/struct2_win32.c: Likewise.
601 * testsuite/libffi.call/struct3.c: Likewise.
602 * testsuite/libffi.call/struct4.c: Likewise.
603 * testsuite/libffi.call/struct5.c: Likewise.
604 * testsuite/libffi.call/struct6.c: Likewise.
605 * testsuite/libffi.call/struct7.c: Likewise.
606 * testsuite/libffi.call/struct8.c: Likewise.
607 * testsuite/libffi.call/struct9.c: Likewise.
608 * testsuite/libffi.call/testclosure.c: Likewise.
609
6102012-03-21 Peter Rosin <peda@lysator.liu.se>
611
612 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
613 printing doubles (%lf is for long doubles).
614 (main): Likewise.
615
6162012-03-21 Peter Rosin <peda@lysator.liu.se>
617
618 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
619 (set_ld_library_path_env_vars): Add the library search dir to PATH
620 (and save PATH for later).
621 (restore_ld_library_path_env_vars): Restore PATH.
622
6232012-03-20 Peter Rosin <peda@lysator.liu.se>
624
625 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
626 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
627 visible outside the PROC, so that ffi_closure_THISCALL can see it.
628
6292012-03-20 Peter Rosin <peda@lysator.liu.se>
630
631 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
632 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
633 visible outside the PROC, so that ffi_closure_THISCALL can see it.
634
6352012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
636
637 * src/m68k/ffi.c: Add MINT support.
638 * src/m68k/sysv.S: Ditto.
639
6402012-03-19 chennam <csit@axway.com>
641
642 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
643 support.
644
6452012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
646
647 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
648 ffi_call_VFP().
649 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
650 ffi_closure_VFP.
651 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
652
efe2a4b7
PB
6532012-04-02 Peter Bergner <bergner@vnet.ibm.com>
654
655 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
656 Silence casting pointer to integer of different size warning.
657 Delete goto to previously deleted label.
658 (ffi_call): Silence possibly undefined warning.
659 (ffi_closure_helper_SYSV): Declare variable type.
660
b4b575ce
AG
6612012-04-02 Peter Rosin <peda@lysator.liu.se>
662
663 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
664 value in the Intel version as is already done for the AT&T version.
665 (ffi_closure_SYSV): Likewise.
666 (ffi_closure_raw_SYSV): Likewise.
667 (ffi_closure_STDCALL): Likewise.
668
60f9021b
KK
6692012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
670
671 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
672 just return FFI_BAD_ABI when things are wrong.
673 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
674
e5552514
DE
6752012-03-09 David Edelsohn <dje.gcc@gmail.com>
676
677 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
678 change to return value of ffi_closure_helper_DARWIN and load type
679 from return type.
680
34fa7690 6812012-03-03 H.J. Lu <hongjiu.lu@intel.com>
2c2a780f 682
34fa7690
AG
683 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
684 long.
685 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
686 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
687 first.
688
689 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
690 (ffi_arg): Set to unsigned long long for x32.
691 (ffi_sarg): Set to long long for x32.
2c2a780f 692
34fa7690 6932012-03-03 H.J. Lu <hongjiu.lu@intel.com>
ffc81ae2 694
34fa7690 695 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
ffc81ae2 696
34fa7690 6972012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
d86c2d94 698
34fa7690
AG
699 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
700 windows-like hosts.
701 * configure: Rebuilt.
d86c2d94 702
6adb7308
AG
7032012-02-27 Mikael Pettersson <mikpe@it.uu.se>
704
705 PR libffi/52223
706 * Makefile.am (FLAGS_TO_PASS): Define.
707 * Makefile.in: Regenerate.
708
34fa7690 7092012-02-23 Anthony Green <green@moxielogic.com>
a0dfc1fe 710
34fa7690
AG
711 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
712 directly.
a0dfc1fe 713
6adb7308
AG
7142012-02-23 Kai Tietz <ktietz@redhat.com>
715
716 PR libffi/52221
717 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
718 prototype.
719 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
720 thiscall-convention.
721 (ffi_raw_call): Use ffi_prep_args_raw.
722 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
723 implementation for stub.
724
1e98f62d
KT
7252012-02-10 Kai Tietz <ktietz@redhat.com>
726
727 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
728 windows target.
729 * configure: Regenerated.
34fa7690 730
893f4301
KT
7312012-02-08 Kai Tietz <ktietz@redhat.com>
732
733 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
734 also FFI_THISCALL.
735 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
736 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
737 (ffi_prep_closure_loc): Add FFI_THISCALL support.
738 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
739 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
740 for thiscall-calling convention.
741 * testsuite/libffi.call/closure_thiscall.c: New test.
742
9b850dd9
KT
7432012-01-28 Kai Tietz <ktietz@redhat.com>
744
745 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
746 argument to prototype for specify calling-convention.
747 (ffi_call): Add support for stdcall/thiscall convention.
748 (ffi_prep_args): Likewise.
749 (ffi_raw_call): Likewise.
750 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
751 FFI_FASTCALL.
752 * src/x86/win32.S (_ffi_call_win32): Add support for
753 fastcall/thiscall calling-convention calls.
754 * testsuite/libffi.call/fastthis1_win32.c: New test.
755 * testsuite/libffi.call/fastthis2_win32.c: New test.
756 * testsuite/libffi.call/fastthis3_win32.c: New test.
757 * testsuite/libffi.call/strlen2_win32.c: New test.
758 * testsuite/libffi.call/many2_win32.c: New test.
759 * testsuite/libffi.call/struct1_win32.c: New test.
760 * testsuite/libffi.call/struct2_win32.c: New test.
761
34fa7690
AG
7622012-01-23 Uros Bizjak <ubizjak@gmail.com>
763
764 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
765
7662012-01-23 Anthony Green <green@moxielogic.com>
767 Chris Young <cdyoung@ntlworld.com>
768
769 * configure.ac: Add Amiga support.
770 * configure: Rebuilt.
771
7722012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
773
774 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
775
c1d5e723
AS
7762012-01-23 Andreas Schwab <schwab@linux-m68k.org>
777
778 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
779 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
780
01ddefeb
JJ
7812012-01-19 Jakub Jelinek <jakub@redhat.com>
782
783 PR rtl-optimization/48496
784 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
785
51a9af17
RO
7862012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
787
788 * configure.ac (i?86-*-*): Set TARGET to X86_64.
789 * configure: Regenerate.
790
3b21983d
AP
7912011-12-07 Andrew Pinski <apinski@cavium.com>
792
69090788 793 PR libffi/50051
3b21983d
AP
794 * src/mips/n32.S: Add ".set mips4".
795
c6084f68
AT
7962011-11-21 Andreas Tobler <andreast@fgznet.ch>
797
798 * configure: Regenerate.
799
34fa7690
AG
8002011-11-12 David Gilbert <david.gilbert@linaro.org>
801
802 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
803 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
804 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
805 src/cris/ffi.c, src/prep_cif.c,
806 testsuite/libffi.call/cls_double_va.c,
807 testsuite/libffi.call/cls_longdouble_va.c,
808 testsuite/libffi.call/float_va.c: Many changes to support variadic
809 function calls.
810
8112011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
812
813 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
814 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
815 softfloat powerpc variants.
816
8172011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
818
819 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
820 * configure: Rebuilt.
821
8222011-11-12 Timothy Wall <twall@users.sf.net>
823
824 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
825 alignment of 4 for wince on ARM.
826
8272011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
828 Anthony Green <green@moxielogic.com>
829
830 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
831 instructions (not available on some cores, like the PPC440).
832
8332011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
834
835 * m4/ax_enable_builddir: Change from string comparison to numeric
836 comparison for wc output.
837 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
838 X 10.7.
839 * configure: Rebuilt.
840
8412011-11-12 Anthony Green <green@moxielogic.com>
842
843 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
844 files with debug info.
845 * Makefile.in: Rebuilt.
846
8472011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
848
849 * README: Update list of supported OpenBSD systems.
850
8512011-11-12 Anthony Green <green@moxielogic.com>
852
853 * libtool-version: Update.
854 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
855 FFI_DEBUG.
856 (libffi_la_SOURCES): Remove src/debug.c
857 (EXTRA_DIST): Add src/debug.c
858 * Makefile.in: Rebuilt.
859 * README: Update for 3.0.11.
860
8b01bdb0
RH
8612011-11-10 Richard Henderson <rth@redhat.com>
862
863 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
864 * configure, aclocal.m4: Rebuild.
865
b90c2c4c
IS
8662011-09-04 Iain Sandoe <iains@gcc.gnu.org>
867
868 PR libffi/49594
869 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
870 helper reference track the architecture pointer size.
871
4ac9cf2b
AH
8722011-08-25 Andrew Haley <aph@redhat.com>
873
874 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
875 instructions.
876 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
877
4d4a9b72
AH
8782011-07-11 Andrew Haley <aph@redhat.com>
879
3521ba8b 880 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
4d4a9b72 881
902233e0
RO
8822011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
883
884 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
885 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
886
2ac88e57
RO
8872011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
888
889 PR libffi/46660
890 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
891 mips-sgi-irix6*.
892 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
893
652de9ff
RO
8942011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
895
896 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
897 PRId8 instead of %hhu, %hhd.
898 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
899 PRIu8): Define.
900 [__sgi__] (PRId8, PRIu8): Define.
901
9d9305ea
RO
9022011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
903
904 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
905 Define.
906 Use them to handle ELF vs. ECOFF differences.
907 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
908
34fa7690
AG
9092011-03-30 Timothy Wall <twall@users.sf.net>
910
911 * src/powerpc/darwin.S: Fix unknown FDE encoding.
912 * src/powerpc/darwin_closure.S: ditto.
913
9142011-02-25 Anthony Green <green@moxielogic.com>
915
916 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
917 32-bit ABIs.
918
9192011-02-15 Anthony Green <green@moxielogic.com>
920
921 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
922 * configure: Rebuilt.
923
029c8f3e
RW
9242011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
925
926 * configure: Regenerate.
927
34fa7690
AG
9282011-02-13 Anthony Green <green@moxielogic.com>
929
930 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
931 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
932 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
933
934 * src/prep_cif.c (initialize_aggregate): Convert assertion into
935 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
936
937 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
938 just return FFI_BAD_ABI when things are wrong.
939 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
940 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
941 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
942 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
943 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
944
9452011-02-11 Anthony Green <green@moxielogic.com>
946
947 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
948 just return FFI_BAD_ABI when things are wrong.
949
30255340 9502011-02-11 Eric Botcazou <ebotcazou@adacore.com>
6adb7308
AG
951
952 * src/sparc/v9.S (STACKFRAME): Bump to 176.
953
34fa7690
AG
9542011-02-09 Stuart Shelton <srcshelton@gmail.com>
955
956 http://bugs.gentoo.org/show_bug.cgi?id=286911
957 * src/mips/ffitarget.h: Clean up error messages.
958 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
959 ffi_raw*.
960 * include/ffi.h.in: Add pragma for SGI compiler.
961
9622011-02-09 Anthony Green <green@moxielogic.com>
963
964 * configure.ac: Add powerpc64-*-darwin* support.
965
9662011-02-09 Anthony Green <green@moxielogic.com>
967
968 * README: Mention Interix.
969
9702011-02-09 Jonathan Callen <abcd@gentoo.org>
971
972 * configure.ac: Add Interix to win32/cygwin/mingw case.
973 * configure: Ditto.
974 * src/closures.c: Treat Interix like Cygwin, instead of as a
975 generic win32.
976
9772011-02-09 Anthony Green <green@moxielogic.com>
978
979 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
980 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
981 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
982 (ffi_prep_closure_loc): Check for bad ABI.
983 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
984 (initialize_aggregate): Check for bad types.
985
9862011-02-09 Landon Fuller <landonf@plausible.coop>
987
988 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
989 src/arm/trampoline.S.
990 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
991 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
992 * src/arm/ffi.c (ffi_trampoline_table)
993 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
994 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
995 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
996 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
997 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
998 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
999 separately.
1000 * src/arm/sysv.S: Handle Apple iOS host.
1001 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
1002 * build-ios.sh: New file.
1003 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
1004 * README: Mention ARM iOS.
1005
10062011-02-08 Oren Held <orenhe@il.ibm.com>
1007
1008 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1009 redefinition of mallinfo on HP-UX.
1010
10112011-02-08 Ginn Chen <ginn.chen@oracle.com>
1012
1013 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
1014 aggregate return ABI. Flush cache.
1015 (ffi_prep_closure_loc): Flush cache.
1016
10172011-02-11 Anthony Green <green@moxielogic.com>
1018
1019 From Tom Honermann <tom.honermann@oracle.com>:
1020 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1021 AIX. Declare .ffi_prep_args. Insert nops after branch
1022 instructions so that the AIX linker can insert TOC reload
1023 instructions.
1024 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1025
10262011-02-08 Ed <ed@kdtc.net>
1027
1028 * src/powerpc/asm.h: Fix grammar nit in comment.
1029
10302011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1031
1032 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1033
1bbb4741
RO
10342011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1035
1036 PR libffi/46661
1037 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1038 uintptr_t first.
1039 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1040
34fa7690
AG
10412011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1042
1043 * configure.ac: Fix x86 test for pc related relocs.
1044 * configure: Rebuilt.
1045
899fb23d
JS
10462011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1047
1048 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1049 Handle case when CPU variant does not have long double support.
1050 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1051 and cores with soft floating point.
1052
38db4d09
JS
10532011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1054
1055 * configure.ac: Add mips*-*-rtems* support.
1056 * configure: Regenerate.
1057 * src/mips/ffitarget.h: Ensure needed constants are available
1058 for targets which do not have sgidefs.h.
1059
214dab66
DK
10602011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1061
1062 PR target/40125
1063 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1064 * configure: Regenerate.
1065
3a9f56e8
IS
10662010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1067
1068 PR libffi/29152
1069 PR libffi/42378
1070 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1071 update comments.
1072 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1073 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1074 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1075 update comments.
1076 * src/powerpc/ffi_darwin.c: Likewise.
38be4072 1077
b62305b0
RO
10782010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1079
1080 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1081 backslashes.
1082 (libffi_cv_as_string_pseudo_op): Likewise.
1083 * configure: Regenerate.
1084
fac68065
CLT
10852010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1086
1087 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1088 (ffi_closure_VFP): Same.
1089 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1090 directive.
1091
ce9315a9
RO
10922010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1093
1094 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1095 (PRIuPTR): Define.
1096
e12bcbf4
RH
10972010-11-29 Richard Henderson <rth@redhat.com>
1098 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1099
1100 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1101 (.eh_frame): Use FDE_ENCODING.
1102 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1103
34fa7690
AG
11042010-11-22 Jacek Caban <jacek@codeweavers.com>
1105
1106 * configure.ac: Check for symbol underscores on mingw-w64.
1107 * configure: Rebuilt.
1108 * src/x86/win64.S: Correctly access extern symbols in respect to
1109 underscores.
1110
ed2a97eb
RO
11112010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1112
1113 * testsuite/lib/libffi-dg.exp: Rename ...
1114 * testsuite/lib/libffi.exp: ... to this.
1115 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1116 * libffi/testsuite/libffi.special/special.exp: Likewise.
1117
46e0720d
CLT
11182010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1119
1120 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1121 code, new parameter, and return value. Update comments.
1122 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1123 call to layout_vfp_args().
1124 (ffi_call_SYSV): Update declaration.
1125 (ffi_call_VFP): New declaration.
1126 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1127 when ABI is FFI_VFP.
1128 (ffi_closure_VFP): New declaration.
1129 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1130 ffi_prep_incoming_args_SYSV().
1131 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1132 case handling.
1133 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1134 construction under VFP hard-float.
1135 (rec_vfp_type_p): New function.
1136 (vfp_type_p): Same.
1137 (place_vfp_arg): Same.
1138 (layout_vfp_args): Same.
1139 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1140 based on __ARM_PCS_VFP.
1141 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1142 fields.
1143 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1144 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1145 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1146 direct call. Move function pointer load upwards.
1147 (ffi_call_VFP): New function.
1148 (ffi_closure_VFP): Same.
1149
1150 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1151 (dg-skip-if): New function.
1152 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1153 and compiler options include -mfloat-abi=hard.
1154 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1155
731fc5f0
JJ
11562010-10-01 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR libffi/45677
1159 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1160 a multiple of 8.
1161 * testsuite/libffi.call/many2.c: New test.
1162
2cd86866
MW
11632010-08-20 Mark Wielaard <mjw@redhat.com>
1164
1165 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1166 returns NULL.
1167
87d072e0
AT
11682010-08-09 Andreas Tobler <andreast@fgznet.ch>
1169
1170 * configure.ac: Add target powerpc64-*-freebsd*.
1171 * configure: Regenerate.
1172 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1173 -mlong-double-128 only to linux targets.
1174 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1175 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1176 * testsuite/libffi.call/huge_struct.c: Likewise.
1177
34fa7690
AG
11782010-08-05 Dan Witte <dwitte@mozilla.com>
1179
3521ba8b
AM
1180 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1181 debug CRT when --enable-debug is given.
1182 * configure.ac: Define it.
1183 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
34fa7690
AG
1184
11852010-08-04 Dan Witte <dwitte@mozilla.com>
1186
1187 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1188 platforms.
1189 * src/x86/ffi.c: Remove redundant ifdef checks.
1190 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1191 for X86_ANY so return value space doesn't get added twice.
1192
11932010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1194
1195 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1196
11972010-07-22 Dan Witte <dwitte@mozilla.com>
1198
1199 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1200 * src/prep_cif.c: Fix ABI assertion.
3521ba8b 1201 * src/cris/ffi.c: Ditto.
34fa7690 1202
07b6d9ef
EP
12032010-07-10 Evan Phoenix <evan@fallingsnow.net>
1204
1205 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1206
3d420bdf
DH
12072010-07-07 Dan Horák <dan@danny.cz>
1208
1209 * include/ffi.h.in: Protect #define with #ifndef.
1210 * src/powerpc/ffitarget.h: Ditto.
1211 * src/s390/ffitarget.h: Ditto.
1212 * src/sparc/ffitarget.h: Ditto.
1213
4138b429
NR
12142010-07-07 Neil Roberts <neil@linux.intel.com>
1215
1216 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1217 16-bytes.
1218
f0ee5e3e
JJ
12192010-07-02 Jakub Jelinek <jakub@redhat.com>
1220
1221 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1222 * Makefile.in: Regenerated.
1223
d416abb4
RO
12242010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1225
1226 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1227 output, too.
1228 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1229 (libffi_cv_as_string_pseudo_op): Check for .string.
1230 * configure: Regenerate.
1231 * fficonfig.h.in: Regenerate.
1232 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1233
34fa7690
AG
12342010-05-11 Dan Witte <dwitte@mozilla.com>
1235
1236 * doc/libffi.tex: Document previous change.
1237
12382010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1239
1240 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1241
0af23729
MK
12422010-05-05 Michael Kohler <michaelkohler@live.com>
1243
1244 * src/dlmalloc.c (dlfree): Fix spelling.
1245 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1246 * configure.ac: Ditto.
1247 * configure: Rebuilt.
1248
7862d496
DW
12492010-04-13 Dan Witte <dwitte@mozilla.com>
1250
1251 * msvcc.sh: Build with -W3 instead of -Wall.
1252 * src/powerpc/ffi_darwin.c: Remove build warnings.
1253 * src/x86/ffi.c: Ditto.
1254 * src/x86/ffitarget.h: Ditto.
1255
49f6cd1f
DW
12562010-04-12 Dan Witte <dwitte@mozilla.com>
1257 Walter Meinl <wuno@lsvw.de>
1258
1259 * configure.ac: Add OS/2 support.
1260 * configure: Rebuilt.
1261 * src/closures.c: Ditto.
1262 * src/dlmalloc.c: Ditto.
1263 * src/x86/win32.S: Ditto.
1264
60d3aec4
JJ
12652010-04-07 Jakub Jelinek <jakub@redhat.com>
1266
be94d007 1267 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
60d3aec4 1268
4d9e8446
RW
12692010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1270
1271 * Makefile.in: Regenerate.
1272 * aclocal.m4: Regenerate.
1273 * include/Makefile.in: Regenerate.
1274 * man/Makefile.in: Regenerate.
1275 * testsuite/Makefile.in: Regenerate.
1276
34fa7690
AG
12772010-03-30 Dan Witte <dwitte@mozilla.com>
1278
1279 * msvcc.sh: Disable build warnings.
1280 * README (tested): Clarify windows build procedure.
1281
f4b130bb
RO
12822010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1283
1284 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1285 * configure: Regenerate.
1286 * fficonfig.h.in: Regenerate.
1287 * libffi/src/x86/unix64.S (.eh_frame)
1288 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1289
4736718a
MK
12902010-03-14 Matthias Klose <doko@ubuntu.com>
1291
1292 * src/x86/ffi64.c: Fix typo in comment.
1293 * src/x86/ffi.c: Use /* ... */ comment style.
1294
22faf004
RO
12952010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1296
1297 * doc/libffi.texi (The Closure API): Fix typo.
1298 * doc/libffi.info: Remove.
1299
694d3cfd
MK
13002010-02-15 Matthias Klose <doko@ubuntu.com>
1301
1302 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1303 __ARM_ARCH_7EM__.
1304
3ac097a5
AG
13052010-01-15 Anthony Green <green@redhat.com>
1306
1307 * README: Add notes on building with Microsoft Visual C++.
1308
13092010-01-15 Daniel Witte <dwitte@mozilla.com>
1310
1311 * msvcc.sh: New file.
1312
1313 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1314 * src/x86/ffi.c: Tweak function declaration and remove excess
1315 parens.
1316 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1317 ffi_closure.
1318
1319 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1320 function ffi_call_win32 on X86_WIN32.
1321 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1322 (ffi_call_STDCALL): Remove.
1323
1324 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1325 to ffi_prep_cif_machdep for x86.
1326 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1327
fc28e435
OK
13282010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1329
1330 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
38be4072 1331 Sun Studio compiler compatibility.
fc28e435 1332
f2e994f3
CI
13332010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1334
1335 * doc/libffi.texi: Add closure example.
1336
ec168029
RO
13372010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1338
1339 PR libffi/40701
1340 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1341 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1342 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1343 alpha*-dec-osf*.
1344 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1345 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1346 * testsuite/libffi.call/return_ll1.c: Likewise.
1347 * testsuite/libffi.call/stret_medium2.c: Likewise.
1348 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1349 MAP_FAILED to char *.
1350
86d1b9d1
RO
13512010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1352
1353 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1354
78542dee
AG
13552009-12-31 Anthony Green <green@redhat.com>
1356
1357 * README: Update for libffi 3.0.9.
1358
50117ecb
MK
13592009-12-27 Matthias Klose <doko@ubuntu.com>
1360
1361 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1362 appropriate.
1363 * configure: Rebuilt.
1364
bc472c00
AG
13652009-12-26 Anthony Green <green@redhat.com>
1366
1367 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1368 avr32*-*-*.
1369 * testsuite/libffi.call/cls_double_va.c: Ditto.
1370
d7e9538e
AT
13712009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1372
1373 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1374 and inttypes.h.
1375 * testsuite/libffi.special/unwindtest.cc: Ditto.
1376
cb14fcb8
AT
13772009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1378
1379 * configure.ac: Add amd64-*-openbsd*.
1380 * configure: Rebuilt.
1381 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1382 openbsd programs with -lpthread.
1383
1098bcf8
AG
13842009-12-26 Anthony Green <green@redhat.com>
1385
1386 * testsuite/libffi.call/cls_double_va.c,
1387 testsuite/libffi.call/cls_longdouble.c,
1388 testsuite/libffi.call/cls_longdouble_va.c,
1389 testsuite/libffi.call/cls_pointer.c,
1390 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1391 mips*-*-* and arm*-*-*.
1392 * testsuite/libffi.call/cls_align_longdouble_split.c,
1393 testsuite/libffi.call/cls_align_longdouble_split2.c,
1394 testsuite/libffi.call/stret_medium2.c,
1395 testsuite/libffi.call/stret_medium.c,
1396 testsuite/libffi.call/stret_large.c,
1397 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1398
a761df3d
AG
13992009-12-31 Kay Tietz <ktietz70@googlemail.com>
1400
1401 * testsuite/libffi.call/ffitest.h,
1402 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1403 definitions.
1404
14052009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1406
1407 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1408 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1409 * configure: Rebuilt.
1410 * Makefile.in: Rebuilt.
1411
493278be
AG
14122009-12-31 Anthony Green <green@redhat.com>
1413 Blake Chaffin.
1414
1415 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1416 Chaffin @ Apple.
1417
72b79d39
DE
14182009-12-28 David Edelsohn <edelsohn@gnu.org>
1419
1420 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1421 local variables.
1422 (aix_adjust_aggregate_sizes): New function.
1423 (ffi_prep_cif_machdep): Call it.
1424
99fba2c4
AT
14252009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1426
1427 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1428 * configure: Regenerate.
1429 * fficonfig.h.in: Likewise.
1430 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1431 Solaris/x86.
1432
302486f4
AS
14332009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1434
1435 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1436 when a float arguments is passed in memory.
1437 (ffi_closure_helper_SYSV): Mark general registers as used up when
1438 a 64bit or soft-float long double argument is passed in memory.
1439
b8f38e89 14402009-12-25 Matthias Klose <doko@ubuntu.com>
2c57b161
MK
1441
1442 * man/ffi_call.3: Fix #include in examples.
1443 * doc/libffi.texi: Add dircategory.
1444
c4205f77
FE
14452009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1446
1447 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1448 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1449 IRIX MIPSPro c99.
1450 * include/ffi_common.h: Added '__sgi' define to non
1451 '__attribute__((__mode__()))' integer typedefs.
302486f4 1452 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
c4205f77
FE
1453 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1454 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1455 FFI_LONGDOUBLE support and alignment(N32 only).
1456 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1457 fixed non '__attribute__((__mode__()))' integer typedefs.
1458 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1459 since they are Linux/GNU Assembler specific.
1460
124f60ab
BS
14612009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1462
1463 * configure.ac, Makefile.am, src/avr32/ffi.c,
1464 src/avr32/ffitarget.h,
1465 src/avr32/sysv.S: Add AVR32 port.
1466 * configure, Makefile.in: Rebuilt.
1467
938a483f
AT
14682009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1469
1470 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1471 * configure: Regenerate.
1472
2516c7cd
JDA
14732009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1474
1475 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1476
f93a40ea
JDA
14772009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1478
1479 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1480 type on HP-UX.
1481
6adb7308
AG
14822012-02-13 Kai Tietz <ktietz@redhat.com>
1483
1484 PR libffi/52221
1485 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1486 support for X86_WIN32.
1487 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1488
fb01d970
EB
14892009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1490
1491 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1492 double' arguments.
1493
2ea54b81
EB
14942009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1495
1496 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1497
dcb00f2e
RO
14982009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1499
1500 PR libffi/40700
1501 * src/closures.c [X86_64 && __sun__ && __svr4__]
1502 (FFI_MMAP_EXEC_WRIT): Define.
1503
6c6859a1
DD
15042009-12-08 David Daney <ddaney@caviumnetworks.com>
1505
1506 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1507 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1508 * testsuite/libffi.call/stret_large.c: Same.
1509 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1510 * testsuite/libffi.call/stret_large2.c: Same.
1511 * testsuite/libffi.call/stret_medium2.c: Same.
1512
9e7e65a0
DE
15132009-12-07 David Edelsohn <edelsohn@gnu.org>
1514
1515 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1516 typo.
1517
5d7fc941
DE
15182009-12-05 David Edelsohn <edelsohn@gnu.org>
1519
1520 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1521 code.
9e7e65a0 1522 * src/powerpc/aix_closure.S: Same.
6c6859a1 1523
43e02a8a
RW
15242009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1525
1526 * Makefile.in: Regenerate.
1527 * configure: Regenerate.
1528 * include/Makefile.in: Regenerate.
1529 * man/Makefile.in: Regenerate.
1530 * testsuite/Makefile.in: Regenerate.
1531
2f2d7386
DE
15322009-12-04 David Edelsohn <edelsohn@gnu.org>
1533
1534 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
302486f4 1535 linux64_closure.S.
6c6859a1 1536
6078f50a
UB
15372009-12-04 Uros Bizjak <ubizjak@gmail.com>
1538
1539 PR libffi/41908
1540 * src/x86/ffi64.c (classify_argument): Update from
1541 gcc/config/i386/i386.c.
1542 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1543 SSE registers directly.
1544 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1545 for x86_64 linux targets.
1546
0c552622
DE
15472009-12-04 David Edelsohn <edelsohn@gnu.org>
1548
1549 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1550 pfr for long double split between fpr13 and stack.
1551
afb5e622
DE
15522009-12-03 David Edelsohn <edelsohn@gnu.org>
1553
1554 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1555 fparg_count twice for long double.
1556
be311914
DE
15572009-12-03 David Edelsohn <edelsohn@gnu.org>
1558
1559 PR libffi/42243
1560 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1561
a27c4040
UB
15622009-12-03 Uros Bizjak <ubizjak@gmail.com>
1563
1564 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
ddf6c187 1565 Remove xfails for x86 linux targets.
a27c4040 1566
7837c247
DE
15672009-12-02 David Edelsohn <edelsohn@gnu.org>
1568
1569 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1570 case.
1571
15722009-12-01 David Edelsohn <edelsohn@gnu.org>
6d518d3b
DE
1573
1574 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1575 register usage. Call ffi_prep_args directly. Add long double
1576 return value support.
1577 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1578 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1579 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1580 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1581 mode.
1582 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1583 into case.
1584 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1585 Allocate result area between params and FPRs.
1586
5751cf6f
DE
15872009-11-30 David Edelsohn <edelsohn@gnu.org>
1588
1589 PR target/35484
1590 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1591 AIX64.
1592 * src/powerpc/aix.S: Implement AIX64 version.
1593 * src/powerpc/aix_closure.S: Implement AIX64 version.
1594 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1595 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1596 support.
1597 (ffi_prep_cif_machdep): Same.
1598 (ffi_call): Same.
1599 (ffi_closure_helper_DARWIN): Same.
1600
2265f646
AT
16012009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1602
1603 PR libffi/41908
1604 * testsuite/libffi.call/testclosure.c: New test.
1605
ef6ed66d
KT
16062009-09-28 Kai Tietz <kai.tietz@onevision.com>
1607
1608 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1609 assembly version use of ___chkstk.
1610
29d1370a
MK
16112009-09-23 Matthias Klose <doko@ubuntu.com>
1612
1613 PR libffi/40242, PR libffi/41443
1614 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1615 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1616 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1617 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1618 for -mfloat-abi=softfp to work.
1619
987ce557
LR
16202009-09-17 Loren J. Rittle <ljrittle@acm.org>
1621
1622 PR testsuite/32843 (strikes again)
1623 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1624 enable proper extension on char and short.
1625
5cbf8c8d
DD
16262009-09-15 David Daney <ddaney@caviumnetworks.com>
1627
1628 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1629 handling for FFI_TYPE_POINTER.
1630 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1631 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1632 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1633 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1634 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1635 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1636 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1637 structure and pointer returns.
1638 (ffi_closure_N32): Add handling for pointer returns.
1639 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1640 calc_n32_return_struct_flags): Handle soft-float.
1641 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1642 (ffi_call_N32): Declare proper argument types.
1643 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1644 soft-float.
1645
df58e648
RW
16462009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1647
1648 * configure.ac (AC_PREREQ): Bump to 2.64.
1649
5213506e
RW
16502009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1651
70fa0efa
RW
1652 * Makefile.am (install-html, install-pdf): Remove.
1653 * Makefile.in: Regenerate.
1654
5213506e
RW
1655 * Makefile.in: Regenerate.
1656 * aclocal.m4: Regenerate.
1657 * configure: Regenerate.
1658 * fficonfig.h.in: Regenerate.
1659 * include/Makefile.in: Regenerate.
1660 * man/Makefile.in: Regenerate.
1661 * testsuite/Makefile.in: Regenerate.
1662
34fa7690
AG
16632011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1664
1665 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1666 * configure: Rebuilt.
1667
1b3b24c2
RW
16682009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1669
1670 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1671
723512ba
DK
16722009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1673
1674 PR libffi/40807
1675 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1676 return types for X86_WIN32.
1677 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1678 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1679 _ffi_closure_STDCALL): Likewise.
1680
1681 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1682 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1683
33cde516
RS
16842009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1685
1686 PR testsuite/40699
1687 PR testsuite/40707
1688 PR testsuite/40709
1689 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1690 2009-06-30 commits.
1691
edd3a61c
RS
16922009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1693
1694 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1695 to "" before adding paths. (This reinstates an assignment that
1696 was removed by my 2009-06-30 commit, but changes the initial
1697 value from "." to "".)
1698
33d1a550
L
16992009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1700
1701 PR testsuite/40601
1702 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1703 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1704 empty.
1705
b30bfd40
RS
17062009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1707
1708 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1709 to ld_library_path. Use add_path. Add just find_libgcc_s
1710 to ld_library_path, not every libgcc multilib directory.
1711
6975f17f
WL
17122009-06-16 Wim Lewis <wiml@hhhh.org>
1713
1714 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1715 supposed to be callee-saved.
1716 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1717 return buffer for odd-size structs.
1718
7bbcc286
AT
17192009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1720
1721 PR libffi/40444
1722 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1723 allow_stack_execute for Darwin.
1724
fe673cc9
AH
17252009-06-16 Andrew Haley <aph@redhat.com>
1726
1727 * configure.ac (TARGETDIR): Add missing blank lines.
1728 * configure: Regenerate.
1729
3bc462c2
AH
17302009-06-16 Andrew Haley <aph@redhat.com>
1731
1732 * testsuite/libffi.call/cls_align_sint64.c,
1733 testsuite/libffi.call/cls_align_uint64.c,
1734 testsuite/libffi.call/cls_longdouble_va.c,
1735 testsuite/libffi.call/cls_ulonglong.c,
1736 testsuite/libffi.call/return_ll1.c,
1737 testsuite/libffi.call/stret_medium2.c: Fix printf format
1738 specifiers.
1739 * testsuite/libffi.call/ffitest.h,
1740 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1741
081b044b
AH
17422009-06-15 Andrew Haley <aph@redhat.com>
1743
1744 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1745 * testsuite/libffi.call/err_bad_abi.c: Likewise.
302486f4 1746
062b8279
AH
17472009-06-12 Andrew Haley <aph@redhat.com>
1748
1749 * Makefile.am: Remove info_TEXINFOS.
1750
17512009-06-12 Andrew Haley <aph@redhat.com>
1752
1753 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1754 testsuite/libffi.call/cls_align_uint64.c,
1755 testsuite/libffi.call/cls_ulonglong.c,
1756 testsuite/libffi.call/return_ll1.c,
1757 testsuite/libffi.call/stret_medium2.c: Fix printf format
1758 specifiers.
1759 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1760
17612009-06-11 Timothy Wall <twall@users.sf.net>
1762
1763 * Makefile.am,
302486f4
AS
1764 configure.ac,
1765 include/ffi.h.in,
1766 include/ffi_common.h,
1767 src/closures.c,
1768 src/dlmalloc.c,
1769 src/x86/ffi.c,
1770 src/x86/ffitarget.h,
1771 src/x86/win64.S (new),
062b8279 1772 README: Added win64 support (mingw or MSVC)
302486f4
AS
1773 * Makefile.in,
1774 include/Makefile.in,
1775 man/Makefile.in,
1776 testsuite/Makefile.in,
1777 configure,
1778 aclocal.m4: Regenerated
1779 * ltcf-c.sh: properly escape cygwin/w32 path
1780 * man/ffi_call.3: Clarify size requirements for return value.
1781 * src/x86/ffi64.c: Fix filename in comment.
1782 * src/x86/win32.S: Remove unused extern.
1783
1784 * testsuite/libffi.call/closure_fn0.c,
1785 testsuite/libffi.call/closure_fn1.c,
1786 testsuite/libffi.call/closure_fn2.c,
1787 testsuite/libffi.call/closure_fn3.c,
1788 testsuite/libffi.call/closure_fn4.c,
1789 testsuite/libffi.call/closure_fn5.c,
1790 testsuite/libffi.call/closure_fn6.c,
062b8279
AH
1791 testsuite/libffi.call/closure_stdcall.c,
1792 testsuite/libffi.call/cls_12byte.c,
1793 testsuite/libffi.call/cls_16byte.c,
1794 testsuite/libffi.call/cls_18byte.c,
1795 testsuite/libffi.call/cls_19byte.c,
1796 testsuite/libffi.call/cls_1_1byte.c,
1797 testsuite/libffi.call/cls_20byte.c,
1798 testsuite/libffi.call/cls_20byte1.c,
1799 testsuite/libffi.call/cls_24byte.c,
1800 testsuite/libffi.call/cls_2byte.c,
1801 testsuite/libffi.call/cls_3_1byte.c,
1802 testsuite/libffi.call/cls_3byte1.c,
3521ba8b
AM
1803 testsuite/libffi.call/cls_3byte2.c,
1804 testsuite/libffi.call/cls_4_1byte.c,
1805 testsuite/libffi.call/cls_4byte.c,
1806 testsuite/libffi.call/cls_5_1_byte.c,
1807 testsuite/libffi.call/cls_5byte.c,
1808 testsuite/libffi.call/cls_64byte.c,
1809 testsuite/libffi.call/cls_6_1_byte.c,
1810 testsuite/libffi.call/cls_6byte.c,
1811 testsuite/libffi.call/cls_7_1_byte.c,
1812 testsuite/libffi.call/cls_7byte.c,
1813 testsuite/libffi.call/cls_8byte.c,
1814 testsuite/libffi.call/cls_9byte1.c,
1815 testsuite/libffi.call/cls_9byte2.c,
1816 testsuite/libffi.call/cls_align_double.c,
1817 testsuite/libffi.call/cls_align_float.c,
1818 testsuite/libffi.call/cls_align_longdouble.c,
1819 testsuite/libffi.call/cls_align_longdouble_split.c,
1820 testsuite/libffi.call/cls_align_longdouble_split2.c,
1821 testsuite/libffi.call/cls_align_pointer.c,
1822 testsuite/libffi.call/cls_align_sint16.c,
1823 testsuite/libffi.call/cls_align_sint32.c,
1824 testsuite/libffi.call/cls_align_sint64.c,
1825 testsuite/libffi.call/cls_align_uint16.c,
1826 testsuite/libffi.call/cls_align_uint32.c,
1827 testsuite/libffi.call/cls_align_uint64.c,
1828 testsuite/libffi.call/cls_dbls_struct.c,
1829 testsuite/libffi.call/cls_double.c,
1830 testsuite/libffi.call/cls_double_va.c,
1831 testsuite/libffi.call/cls_float.c,
1832 testsuite/libffi.call/cls_longdouble.c,
1833 testsuite/libffi.call/cls_longdouble_va.c,
1834 testsuite/libffi.call/cls_multi_schar.c,
1835 testsuite/libffi.call/cls_multi_sshort.c,
1836 testsuite/libffi.call/cls_multi_sshortchar.c,
1837 testsuite/libffi.call/cls_multi_uchar.c,
1838 testsuite/libffi.call/cls_multi_ushort.c,
1839 testsuite/libffi.call/cls_multi_ushortchar.c,
1840 testsuite/libffi.call/cls_pointer.c,
1841 testsuite/libffi.call/cls_pointer_stack.c,
1842 testsuite/libffi.call/cls_schar.c,
1843 testsuite/libffi.call/cls_sint.c,
1844 testsuite/libffi.call/cls_sshort.c,
1845 testsuite/libffi.call/cls_uchar.c,
1846 testsuite/libffi.call/cls_uint.c,
1847 testsuite/libffi.call/cls_ulonglong.c,
1848 testsuite/libffi.call/cls_ushort.c,
1849 testsuite/libffi.call/err_bad_abi.c,
1850 testsuite/libffi.call/err_bad_typedef.c,
1851 testsuite/libffi.call/float2.c,
1852 testsuite/libffi.call/huge_struct.c,
1853 testsuite/libffi.call/nested_struct.c,
1854 testsuite/libffi.call/nested_struct1.c,
1855 testsuite/libffi.call/nested_struct10.c,
1856 testsuite/libffi.call/nested_struct2.c,
1857 testsuite/libffi.call/nested_struct3.c,
1858 testsuite/libffi.call/nested_struct4.c,
1859 testsuite/libffi.call/nested_struct5.c,
1860 testsuite/libffi.call/nested_struct6.c,
1861 testsuite/libffi.call/nested_struct7.c,
1862 testsuite/libffi.call/nested_struct8.c,
1863 testsuite/libffi.call/nested_struct9.c,
1864 testsuite/libffi.call/problem1.c,
1865 testsuite/libffi.call/return_ldl.c,
1866 testsuite/libffi.call/return_ll1.c,
1867 testsuite/libffi.call/stret_large.c,
1868 testsuite/libffi.call/stret_large2.c,
1869 testsuite/libffi.call/stret_medium.c,
1870 testsuite/libffi.call/stret_medium2.c,
302486f4
AS
1871 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1872 of checking for MMAP. Use intptr_t instead of long casts.
062b8279 1873
f43def61
KK
18742009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1875
1876 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1877 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1878 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1879
6aa0b218
AH
18802009-06-09 Andrew Haley <aph@redhat.com>
1881
1882 * src/x86/freebsd.S: Add missing file.
1883
b7b857bb
AH
18842009-06-08 Andrew Haley <aph@redhat.com>
1885
1886 Import from libffi 3.0.8:
1887
1888 * doc/libffi.texi: New file.
1889 * doc/libffi.info: Likewise.
1890 * doc/stamp-vti: Likewise.
1891 * man/Makefile.am: New file.
1892 * man/ffi_call.3: New file.
1893
1894 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1895 src/dlmalloc.c.
1896 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1897
1898 * configure.ac: Bump version to 3.0.8.
1899 parisc*-*-linux*: Add.
1900 i386-*-freebsd* | i386-*-openbsd*: Add.
1901 powerpc-*-beos*: Add.
1902 AM_CONDITIONAL X86_FREEBSD: Add.
1903 AC_CONFIG_FILES: Add man/Makefile.
1904
1905 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1906
491e6ad1
AH
19072009-06-08 Andrew Haley <aph@redhat.com>
1908
1909 * README: Import from libffi 3.0.8.
1910
3b5b1a73
AH
19112009-06-08 Andrew Haley <aph@redhat.com>
1912
1913 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1914 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1915 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1916 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1917
1918 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1919 * testsuite/libffi.call/stret_medium.c: Likewise.
1920 * testsuite/libffi.call/stret_large2.c: Likewise.
1921 * testsuite/libffi.call/stret_large.c: Likewise.
1922
19232008-12-26 Timothy Wall <twall@users.sf.net>
1924
302486f4
AS
1925 * testsuite/libffi.call/cls_longdouble.c,
1926 testsuite/libffi.call/cls_longdouble_va.c,
1927 testsuite/libffi.call/cls_align_longdouble.c,
1928 testsuite/libffi.call/cls_align_longdouble_split.c,
1929 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1930 failures on x86_64 cygwin/mingw.
3b5b1a73
AH
1931
19322008-12-22 Timothy Wall <twall@users.sf.net>
1933
302486f4
AS
1934 * testsuite/libffi.call/closure_fn0.c,
1935 testsuite/libffi.call/closure_fn1.c,
1936 testsuite/libffi.call/closure_fn2.c,
1937 testsuite/libffi.call/closure_fn3.c,
1938 testsuite/libffi.call/closure_fn4.c,
1939 testsuite/libffi.call/closure_fn5.c,
1940 testsuite/libffi.call/closure_fn6.c,
1941 testsuite/libffi.call/closure_loc_fn0.c,
1942 testsuite/libffi.call/closure_stdcall.c,
1943 testsuite/libffi.call/cls_align_pointer.c,
1944 testsuite/libffi.call/cls_pointer.c,
1945 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1946 pointer to integer (intptr_t).
1947 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
3b5b1a73
AH
1948
19492008-07-24 Anthony Green <green@redhat.com>
1950
302486f4
AS
1951 * testsuite/libffi.call/cls_dbls_struct.c,
1952 testsuite/libffi.call/cls_double_va.c,
1953 testsuite/libffi.call/cls_longdouble.c,
1954 testsuite/libffi.call/cls_longdouble_va.c,
1955 testsuite/libffi.call/cls_pointer.c,
1956 testsuite/libffi.call/cls_pointer_stack.c,
1957 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1958 compiler warnings.
3b5b1a73
AH
1959
19602008-03-04 Anthony Green <green@redhat.com>
302486f4
AS
1961 Blake Chaffin
1962 hos@tamanegi.org
1963
1964 * testsuite/libffi.call/cls_align_longdouble_split2.c
1965 testsuite/libffi.call/cls_align_longdouble_split.c
1966 testsuite/libffi.call/cls_dbls_struct.c
1967 testsuite/libffi.call/cls_double_va.c
1968 testsuite/libffi.call/cls_longdouble.c
1969 testsuite/libffi.call/cls_longdouble_va.c
1970 testsuite/libffi.call/cls_pointer.c
1971 testsuite/libffi.call/cls_pointer_stack.c
1972 testsuite/libffi.call/err_bad_abi.c
1973 testsuite/libffi.call/err_bad_typedef.c
1974 testsuite/libffi.call/stret_large2.c
1975 testsuite/libffi.call/stret_large.c
1976 testsuite/libffi.call/stret_medium2.c
1977 testsuite/libffi.call/stret_medium.c: New tests from Apple.
3b5b1a73 1978
56faec5e
AH
19792009-06-05 Andrew Haley <aph@redhat.com>
1980
1981 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1982 libffi.
1983
90409e4c
AH
19842009-06-04 Andrew Haley <aph@redhat.com>
1985
1986 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1987 stdcall changes.
1988
b1393750 19892008-02-26 Anthony Green <green@redhat.com>
302486f4 1990 Thomas Heller <theller@ctypes.org>
b1393750 1991
302486f4
AS
1992 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1993 comment.
b1393750
AH
1994
19952008-02-03 Timothy Wall <twall@users.sf.net>
1996
302486f4
AS
1997 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1998 offset based on code pointer, not data pointer.
b1393750
AH
1999
20002008-01-31 Timothy Wall <twall@users.sf.net>
2001
302486f4
AS
2002 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2003 closures.
2004 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2005 closures.
2006 * src/x86/win32.S: Add assembly for stdcall closure.
2007 * src/x86/ffi.c: Initialize stdcall closure trampoline.
b1393750 2008
96baa251
AH
20092009-06-04 Andrew Haley <aph@redhat.com>
2010
2011 * include/ffi.h.in: Change void (*)() to void (*)(void).
2012 * src/x86/ffi.c: Likewise.
2013
7446546a
AH
20142009-06-04 Andrew Haley <aph@redhat.com>
2015
2016 * src/powerpc/ppc_closure.S: Insert licence header.
2017 * src/powerpc/linux64_closure.S: Likewise.
2018 * src/m68k/sysv.S: Likewise.
2019
2020 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2021 * src/powerpc/ffi.c: Likewise.
2022 * src/powerpc/ffi_darwin.c: Likewise.
2023 * src/m32r/ffi.c: Likewise.
2024 * src/sh64/ffi.c: Likewise.
2025 * src/x86/ffi64.c: Likewise.
2026 * src/alpha/ffi.c: Likewise.
2027 * src/alpha/osf.S: Likewise.
2028 * src/frv/ffi.c: Likewise.
2029 * src/s390/ffi.c: Likewise.
2030 * src/pa/ffi.c: Likewise.
2031 * src/pa/hpux32.S: Likewise.
2032 * src/ia64/unix.S: Likewise.
2033 * src/ia64/ffi.c: Likewise.
2034 * src/sparc/ffi.c: Likewise.
2035 * src/mips/ffi.c: Likewise.
2036 * src/sh/ffi.c: Likewise.
2037
20382008-02-15 David Daney <ddaney@avtrex.com>
2039
302486f4
AS
2040 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2041 Define (conditionally), and use it to include cachectl.h.
2042 (ffi_prep_closure_loc): Fix cache flushing.
2043 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
7446546a 2044
5f933ef0
AH
20452009-06-04 Andrew Haley <aph@redhat.com>
2046
2047 include/ffi.h.in,
2048 src/arm/ffitarget.h,
2049 src/arm/ffi.c,
2050 src/arm/sysv.S,
2051 src/powerpc/ffitarget.h,
2052 src/closures.c,
2053 src/sh64/ffitarget.h,
2054 src/sh64/ffi.c,
2055 src/sh64/sysv.S,
2056 src/types.c,
2057 src/x86/ffi64.c,
2058 src/x86/ffitarget.h,
2059 src/x86/win32.S,
2060 src/x86/darwin.S,
2061 src/x86/ffi.c,
2062 src/x86/sysv.S,
2063 src/x86/unix64.S,
2064 src/alpha/ffitarget.h,
2065 src/alpha/ffi.c,
2066 src/alpha/osf.S,
2067 src/m68k/ffitarget.h,
2068 src/frv/ffitarget.h,
2069 src/frv/ffi.c,
2070 src/s390/ffitarget.h,
2071 src/s390/sysv.S,
2072 src/cris/ffitarget.h,
2073 src/pa/linux.S,
2074 src/pa/ffitarget.h,
2075 src/pa/ffi.c,
2076 src/raw_api.c,
2077 src/ia64/ffitarget.h,
2078 src/ia64/unix.S,
2079 src/ia64/ffi.c,
2080 src/ia64/ia64_flags.h,
2081 src/java_raw_api.c,
2082 src/debug.c,
2083 src/sparc/v9.S,
2084 src/sparc/ffitarget.h,
2085 src/sparc/ffi.c,
2086 src/sparc/v8.S,
2087 src/mips/ffitarget.h,
2088 src/mips/n32.S,
2089 src/mips/o32.S,
2090 src/mips/ffi.c,
2091 src/prep_cif.c,
2092 src/sh/ffitarget.h,
2093 src/sh/ffi.c,
2094 src/sh/sysv.S: Update license text.
2095
84c40c4a
DK
20962009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2097
2098 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2099 (.eh_frame): Add FDE for it.
2100
8353cd27
DK
21012009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2102
2103 * configure.ac: Also check if assembler supports pc-relative
2104 relocs on X86_WIN32 targets.
2105 * configure: Regenerate.
2106 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2107 (_ffi_call_SYSV): Add missing function type symbol .def and
2108 add EH markup labels.
2109 (_ffi_call_STDCALL): Likewise.
2110 (_ffi_closure_SYSV): Likewise.
2111 (_ffi_closure_raw_SYSV): Likewise.
2112 (.eh_frame): Add hand-crafted EH data.
2113
748086b7
JJ
21142009-04-09 Jakub Jelinek <jakub@redhat.com>
2115
2116 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2117 version 3 of the GNU General Public License and to point readers
2118 at the COPYING3 file and the FSF's license web page.
2119 * testsuite/libffi.call/call.exp: Likewise.
2120 * testsuite/libffi.special/special.exp: Likewise.
2121
7a9d3fe8
RW
21222009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2123
2124 * configure: Regenerate.
2125
4d3d4078
RO
21262008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2127
2128 PR libffi/26048
2129 * configure.ac (HAVE_AS_X86_PCREL): New test.
2130 * configure: Regenerate.
2131 * fficonfig.h.in: Regenerate.
2132 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2133 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2134 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2135 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2136 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2137 (.Lload_table): Likewise.
2138 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2139
baafc534
RW
21402008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2141
2142 * configure: Regenerate.
2143
da17a98b
EB
21442008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2145
2146 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2147 signed/unsigned int8/16 return values.
2148 * src/sparc/v8.S (ffi_call_v8): Likewise.
2149 (ffi_closure_v8): Likewise.
2150
80c6c2cb 21512008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
302486f4 2152 Steve Ellcey <sje@cup.hp.com>
80c6c2cb
PG
2153
2154 * configure: Regenerate for new libtool.
2155 * Makefile.in: Ditto.
2156 * include/Makefile.in: Ditto.
2157 * aclocal.m4: Ditto.
2158
d7f68a67
AT
21592008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2160
2161 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2162 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2163 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2164 Adjust copyright notice.
2165 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2166 register or two register to use for FFI_SYSV structs.
2167 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2168 (ffi_closure_helper_SYSV): Fix the return type for
2169 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2170 Adjust copyright notice.
2171
130f4c50
KK
21722008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2173
2174 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2175 int.
2176
18c04407
RW
21772008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2178
2179 * configure: Regenerate.
2180 * include/Makefile.in: Regenerate.
2181 * testsuite/Makefile.in: Regenerate.
2182
cd985f66
JM
21832008-06-07 Joseph Myers <joseph@codesourcery.com>
2184
2185 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2186 powerpc-*-beos*): Remove.
2187 * configure: Regenerate.
2188
7afa92c5
JB
21892008-05-09 Julian Brown <julian@codesourcery.com>
2190
2191 * Makefile.am (LTLDFLAGS): New.
2192 (libffi_la_LDFLAGS): Use above.
2193 * Makefile.in: Regenerate.
2194
deb984e6
PB
21952008-04-18 Paolo Bonzini <bonzini@gnu.org>
2196
2197 PR bootstrap/35457
2198 * aclocal.m4: Regenerate.
2199 * configure: Regenerate.
2200
3e9608a5
KK
22012008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2202
2203 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2204 * src/sh64/sysv.S: Likewise.
2205
feb51530
MK
22062008-03-26 Daniel Jacobowitz <dan@debian.org>
2207
2208 * src/arm/sysv.S: Fix ARM comment marker.
2209
22102008-03-26 Jakub Jelinek <jakub@redhat.com>
2211
2212 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2213 * src/s390/sysv.S: Likewise.
2214 * src/powerpc/ppc_closure.S: Likewise.
2215 * src/powerpc/sysv.S: Likewise.
2216 * src/x86/unix64.S: Likewise.
2217 * src/x86/sysv.S: Likewise.
2218 * src/sparc/v8.S: Likewise.
2219 * src/sparc/v9.S: Likewise.
2220 * src/m68k/sysv.S: Likewise.
2221 * src/arm/sysv.S: Likewise.
2222
38d24731
RW
22232008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2224
2225 * aclocal.m4: Regenerate.
2226 * configure: Likewise.
2227 * Makefile.in: Likewise.
2228 * include/Makefile.in: Likewise.
2229 * testsuite/Makefile.in: Likewise.
2230
2e250fa2
BK
22312008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2232 Andreas Tobler <a.tobler@schweiz.org>
2233
2234 * configure.ac: Add amd64-*-freebsd* target.
2235 * configure: Regenerate.
2236
7f92e242
L
22372008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2238
2239 PR libffi/34612
2240 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2241 returning struct.
2242
2243 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2244 tests.
2245
95d4f544
DE
22462008-01-24 David Edelsohn <edelsohn@gnu.org>
2247
2248 * configure: Regenerate.
2249
79ca8fc0
AT
22502008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2251
2252 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2253
d7b07cc7
AT
22542008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2255
2256 PR testsuite/32843
2257 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2258 signed/unsigned int8/16 for X86_DARWIN.
2259 Updated copyright info.
2260 Handle one and two byte structs with special cif->flags.
2261 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2262 Updated copyright info.
2263 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2264 sysv.S
2265 Remove code to pop args from the stack after call.
2266 Special-case signed/unsigned for int8/16, one and two byte structs.
2267 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2268 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2269 FFI_TYPE_SINT32.
2270 Updated copyright info.
2271
c94ae2e4
DD
22722007-12-08 David Daney <ddaney@avtrex.com>
2273
302486f4 2274 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
c94ae2e4
DD
2275 SUBU, add with ADDU and use smaller code sequences.
2276
3875b6d7 22772007-12-07 David Daney <ddaney@avtrex.com>
44be66a1 2278
3875b6d7
DD
2279 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2280 type.
2281
4c42b3d8
DD
22822007-12-06 David Daney <ddaney@avtrex.com>
2283
2284 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2285 defined.
2286 (ffi_java_raw): New typedef.
2287 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2288 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2289 ffi_java_raw.
2290 (ffi_java_raw_closure) : Same.
2291 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2292 parameter types.
2293 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2294 FFI_SIZEOF_JAVA_RAW.
2295 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2296 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2297 sizeof(ffi_java_raw) for alignment calculations.
2298 (ffi_java_ptrarray_to_raw): Same.
2299 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
302486f4 2300 if FFI_SIZEOF_JAVA_RAW == 4.
4c42b3d8
DD
2301 (ffi_java_raw_to_rvalue): Same.
2302 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2303 (ffi_java_translate_args): Same.
2304 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2305 parameter types.
2306 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2307
3ef50b62
DD
23082007-12-06 David Daney <ddaney@avtrex.com>
2309
302486f4 2310 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
3ef50b62
DD
2311 pointer values.
2312
16287148
AT
23132007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2314
2315 PR libffi/31937
2316 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2317 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2318 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2319 set the NUM_FPR_ARG_REGISTERS according to.
2320 Add support for potential soft-float support under hard-float
2321 architecture.
2322 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2323 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2324 to the FFI_LINUX_SOFT_FLOAT ABI.
2325 (ffi_prep_cif_machdep): Likewise.
2326 (ffi_closure_helper_SYSV): Likewise.
2327 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2328 on archs where __NO_FPRS__ is true.
2329 Add FFI_TYPE_UINT128 support.
2330 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2331 Adjust copyright notice.
2332
a4b7c9cd
AT
23332007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2334
2335 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2336 * include/ffi_common.h: ... here.
2337 Update copyright.
2338
e84296c6
AT
23392007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2340
2341 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2342 * src/powerpc/linux64.S: Likewise.
2343 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2344 * testsuite/libffi.call/return_ldl.c: New test.
2345
cb642590
AH
23462007-09-04 <aph@redhat.com>
2347
2348 * src/arm/sysv.S (UNWIND): New.
2349 (Whole file): Conditionally compile unwinder directives.
2350 * src/arm/sysv.S: Add unwinder directives.
2351
2352 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2353 Only treat r0 as a struct address if we're actually returning a
2354 struct by address.
2355 Only copy the bytes that are actually within a struct.
2356 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2357 is returned in r0, not passed by address.
2358 (ffi_call): Allocate a word-sized temporary for the case where
2359 a composite is returned in r0.
2360 (ffi_prep_incoming_args_SYSV): Align as necessary.
2361
23622007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2363
302486f4 2364 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
cb642590
AH
2365 directly using the sys_cacheflush syscall.
2366
23672007-07-27 Andrew Haley <aph@redhat.com>
2368
2369 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2370
8d5c5e35
MR
23712007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2372
2373 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2374 * configure.ac: Likewise.
2375 * Makefile.in: Regenerate.
2376 * include/Makefile.in: Likewise.
2377 * testsuite/Makefile.in: Likewise.
2378 * configure: Likewise.
2379
787b0d19
DD
23802007-08-24 David Daney <ddaney@avtrex.com>
2381
2382 * testsuite/libffi.call/return_sl.c: New test.
2383
dfbb3e36
DD
23842007-08-10 David Daney <ddaney@avtrex.com>
2385
2386 * testsuite/libffi.call/cls_multi_ushort.c,
2387 testsuite/libffi.call/cls_align_uint16.c,
2388 testsuite/libffi.call/nested_struct1.c,
2389 testsuite/libffi.call/nested_struct3.c,
2390 testsuite/libffi.call/cls_7_1_byte.c,
2391 testsuite/libffi.call/nested_struct5.c,
2392 testsuite/libffi.call/cls_double.c,
2393 testsuite/libffi.call/nested_struct7.c,
2394 testsuite/libffi.call/cls_sint.c,
2395 testsuite/libffi.call/nested_struct9.c,
2396 testsuite/libffi.call/cls_20byte1.c,
2397 testsuite/libffi.call/cls_multi_sshortchar.c,
2398 testsuite/libffi.call/cls_align_sint64.c,
2399 testsuite/libffi.call/cls_3byte2.c,
2400 testsuite/libffi.call/cls_multi_schar.c,
2401 testsuite/libffi.call/cls_multi_uchar.c,
2402 testsuite/libffi.call/cls_19byte.c,
2403 testsuite/libffi.call/cls_9byte1.c,
2404 testsuite/libffi.call/cls_align_float.c,
2405 testsuite/libffi.call/closure_fn1.c,
2406 testsuite/libffi.call/problem1.c,
2407 testsuite/libffi.call/closure_fn3.c,
2408 testsuite/libffi.call/cls_sshort.c,
2409 testsuite/libffi.call/closure_fn5.c,
2410 testsuite/libffi.call/cls_align_double.c,
2411 testsuite/libffi.call/nested_struct.c,
2412 testsuite/libffi.call/cls_2byte.c,
2413 testsuite/libffi.call/nested_struct10.c,
2414 testsuite/libffi.call/cls_4byte.c,
2415 testsuite/libffi.call/cls_6byte.c,
2416 testsuite/libffi.call/cls_8byte.c,
2417 testsuite/libffi.call/cls_multi_sshort.c,
2418 testsuite/libffi.call/cls_align_sint16.c,
2419 testsuite/libffi.call/cls_align_uint32.c,
2420 testsuite/libffi.call/cls_20byte.c,
2421 testsuite/libffi.call/cls_float.c,
2422 testsuite/libffi.call/nested_struct2.c,
2423 testsuite/libffi.call/cls_5_1_byte.c,
2424 testsuite/libffi.call/nested_struct4.c,
2425 testsuite/libffi.call/cls_24byte.c,
2426 testsuite/libffi.call/nested_struct6.c,
2427 testsuite/libffi.call/cls_64byte.c,
2428 testsuite/libffi.call/nested_struct8.c,
2429 testsuite/libffi.call/cls_uint.c,
2430 testsuite/libffi.call/cls_multi_ushortchar.c,
2431 testsuite/libffi.call/cls_schar.c,
2432 testsuite/libffi.call/cls_uchar.c,
2433 testsuite/libffi.call/cls_align_uint64.c,
2434 testsuite/libffi.call/cls_ulonglong.c,
2435 testsuite/libffi.call/cls_align_longdouble.c,
2436 testsuite/libffi.call/cls_1_1byte.c,
2437 testsuite/libffi.call/cls_12byte.c,
2438 testsuite/libffi.call/cls_3_1byte.c,
2439 testsuite/libffi.call/cls_3byte1.c,
2440 testsuite/libffi.call/cls_4_1byte.c,
2441 testsuite/libffi.call/cls_6_1_byte.c,
2442 testsuite/libffi.call/cls_16byte.c,
2443 testsuite/libffi.call/cls_18byte.c,
2444 testsuite/libffi.call/closure_fn0.c,
2445 testsuite/libffi.call/cls_9byte2.c,
2446 testsuite/libffi.call/closure_fn2.c,
2447 testsuite/libffi.call/closure_fn4.c,
2448 testsuite/libffi.call/cls_ushort.c,
2449 testsuite/libffi.call/closure_fn6.c,
2450 testsuite/libffi.call/cls_5byte.c,
2451 testsuite/libffi.call/cls_align_pointer.c,
2452 testsuite/libffi.call/cls_7byte.c,
2453 testsuite/libffi.call/cls_align_sint32.c,
2454 testsuite/libffi.special/unwindtest_ffi_call.cc,
2455 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2456
89d9d98a
DD
24572007-08-10 David Daney <ddaney@avtrex.com>
2458
2459 PR libffi/28313
2460 * configure.ac: Don't treat mips64 as a special case.
2461 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2462 * configure: Regenerate
2463 * Makefile.in: Ditto.
2464 * fficonfig.h.in: Ditto.
2465 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2466 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2467 (FFI_DEFAULT_ABI): Set for n64 case.
2468 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2469 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2470 (ffi_closure_N32): New function.
2471 (.eh_frame): New section
2472 * src/mips/o32.S: Clean up comments.
2473 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2474 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2475 _MIPS_SIM == _ABIN32 throughout.
2476 (FFI_MIPS_STOP_HERE): New, use in place of
2477 ffi_stop_here.
2478 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2479 to support n32/n64 ABIs.
2480 (calc_n32_struct_flags): Rewrite.
2481 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2482 position of flag bits.
2483 (ffi_prep_cif_machdep): Rewrite n32 portion.
2484 (ffi_call): Enable for n64. Add special handling for small structure
2485 return values.
2486 (ffi_prep_closure_loc): Add n32 and n64 support.
2487 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2488 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2489
d23869d4
DD
24902007-08-08 David Daney <ddaney@avtrex.com>
2491
2492 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2493 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2494 specifiers.
2495 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2496 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2497 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2498 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2499 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2500 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2501 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2502 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2503 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2504 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2505 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2506 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2507 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2508 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2509 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2510 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2511 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2512 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2513 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2514 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2515 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2516 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2517 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2518 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2519 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2520 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2521 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2522 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2523 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2524 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2525 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2526
536e0a8f
AH
25272007-08-07 Andrew Haley <aph@redhat.com>
2528
2529 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2530 checkin.
2531
7665c9be
AH
25322007-08-06 Andrew Haley <aph@redhat.com>
2533
2534 PR testsuite/32843
2535 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2536 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2537 FFI_TYPE_SINT32.
2538
58e11497
DD
25392007-08-02 David Daney <ddaney@avtrex.com>
2540
2541 * testsuite/libffi.call/return_ul.c (main): Define return type as
2542 ffi_arg. Use proper printf conversion specifier.
302486f4 2543
387cfbba
AH
25442007-07-30 Andrew Haley <aph@redhat.com>
2545
2546 PR testsuite/32843
2547 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2548 signed/unsigned int8/16.
2549 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2550 Use a jump table.
2551 Remove code to pop args from the stack after call.
2552 Special-case signed/unsigned int8/16.
2553 * testsuite/libffi.call/return_sc.c (main): Revert.
2554
0ee0208e
RG
25552007-07-26 Richard Guenther <rguenther@suse.de>
2556
2557 PR testsuite/32843
2558 * testsuite/libffi.call/return_sc.c (main): Verify call
2559 result as signed char, not ffi_arg.
2560
04a49983
RO
25612007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2562
2563 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2564 * configure: Regenerate.
2565
433e6a8c
DD
25662007-07-11 David Daney <ddaney@avtrex.com>
2567
2568 * src/mips/ffi.c: Don't include sys/cachectl.h.
2569 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2570 cacheflush().
2571
0959e2b8
AH
25722007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2573
2574 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2575 from (ffi_prep_closure): ... this.
2576 (FFI_INIT_TRAMPOLINE): Adjust.
2577
25782005-12-31 Phil Blundell <pb@reciva.com>
2579
302486f4
AS
2580 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2581 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
0959e2b8
AH
2582 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2583 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2584 (FFI_CLOSURES): Enable closure support.
2585
25862007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2587
302486f4
AS
2588 * testsuite/libffi.call/cls_multi_ushort.c,
2589 testsuite/libffi.call/cls_align_uint16.c,
2590 testsuite/libffi.call/nested_struct1.c,
2591 testsuite/libffi.call/nested_struct3.c,
2592 testsuite/libffi.call/cls_7_1_byte.c,
2593 testsuite/libffi.call/cls_double.c,
2594 testsuite/libffi.call/nested_struct5.c,
2595 testsuite/libffi.call/nested_struct7.c,
2596 testsuite/libffi.call/cls_sint.c,
2597 testsuite/libffi.call/nested_struct9.c,
2598 testsuite/libffi.call/cls_20byte1.c,
2599 testsuite/libffi.call/cls_multi_sshortchar.c,
2600 testsuite/libffi.call/cls_align_sint64.c,
2601 testsuite/libffi.call/cls_3byte2.c,
2602 testsuite/libffi.call/cls_multi_schar.c,
2603 testsuite/libffi.call/cls_multi_uchar.c,
2604 testsuite/libffi.call/cls_19byte.c,
2605 testsuite/libffi.call/cls_9byte1.c,
2606 testsuite/libffi.call/cls_align_float.c,
2607 testsuite/libffi.call/closure_fn1.c,
2608 testsuite/libffi.call/problem1.c,
2609 testsuite/libffi.call/closure_fn3.c,
2610 testsuite/libffi.call/cls_sshort.c,
2611 testsuite/libffi.call/closure_fn5.c,
2612 testsuite/libffi.call/cls_align_double.c,
2613 testsuite/libffi.call/cls_2byte.c,
2614 testsuite/libffi.call/nested_struct.c,
2615 testsuite/libffi.call/nested_struct10.c,
2616 testsuite/libffi.call/cls_4byte.c,
2617 testsuite/libffi.call/cls_6byte.c,
2618 testsuite/libffi.call/cls_8byte.c,
2619 testsuite/libffi.call/cls_multi_sshort.c,
2620 testsuite/libffi.call/cls_align_uint32.c,
2621 testsuite/libffi.call/cls_align_sint16.c,
2622 testsuite/libffi.call/cls_float.c,
2623 testsuite/libffi.call/cls_20byte.c,
2624 testsuite/libffi.call/cls_5_1_byte.c,
2625 testsuite/libffi.call/nested_struct2.c,
2626 testsuite/libffi.call/cls_24byte.c,
2627 testsuite/libffi.call/nested_struct4.c,
2628 testsuite/libffi.call/nested_struct6.c,
2629 testsuite/libffi.call/cls_64byte.c,
2630 testsuite/libffi.call/nested_struct8.c,
2631 testsuite/libffi.call/cls_uint.c,
2632 testsuite/libffi.call/cls_multi_ushortchar.c,
2633 testsuite/libffi.call/cls_schar.c,
2634 testsuite/libffi.call/cls_uchar.c,
2635 testsuite/libffi.call/cls_align_uint64.c,
2636 testsuite/libffi.call/cls_ulonglong.c,
2637 testsuite/libffi.call/cls_align_longdouble.c,
2638 testsuite/libffi.call/cls_1_1byte.c,
2639 testsuite/libffi.call/cls_12byte.c,
2640 testsuite/libffi.call/cls_3_1byte.c,
2641 testsuite/libffi.call/cls_3byte1.c,
2642 testsuite/libffi.call/cls_4_1byte.c,
2643 testsuite/libffi.call/cls_6_1_byte.c,
2644 testsuite/libffi.call/cls_16byte.c,
2645 testsuite/libffi.call/cls_18byte.c,
2646 testsuite/libffi.call/closure_fn0.c,
2647 testsuite/libffi.call/cls_9byte2.c,
2648 testsuite/libffi.call/closure_fn2.c,
2649 testsuite/libffi.call/closure_fn4.c,
2650 testsuite/libffi.call/cls_ushort.c,
2651 testsuite/libffi.call/closure_fn6.c,
2652 testsuite/libffi.call/cls_5byte.c,
2653 testsuite/libffi.call/cls_align_pointer.c,
2654 testsuite/libffi.call/cls_7byte.c,
2655 testsuite/libffi.call/cls_align_sint32.c,
2656 testsuite/libffi.special/unwindtest_ffi_call.cc,
2657 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
0959e2b8 2658
12a27363
L
26592007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2660
2661 * aclocal.m4: Regenerated.
2662
82a6cadf
PB
26632007-06-02 Paolo Bonzini <bonzini@gnu.org>
2664
2665 * configure: Regenerate.
2666
1cf3d07d
SE
26672007-05-23 Steve Ellcey <sje@cup.hp.com>
2668
2669 * Makefile.in: Regenerate.
2670 * configure: Regenerate.
2671 * aclocal.m4: Regenerate.
2672 * include/Makefile.in: Regenerate.
2673 * testsuite/Makefile.in: Regenerate.
2674
5635c26e
RZ
26752007-05-10 Roman Zippel <zippel@linux-m68k.org>
2676
2677 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2678 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2679 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2680 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2681 (FFI_CLOSURES): Enable closure support.
2682
e6fbf387
RZ
26832007-05-10 Roman Zippel <zippel@linux-m68k.org>
2684
2685 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2686 * configure: Regenerate.
2687 * fficonfig.h.in: Regenerate.
2688 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2689 CFI_OFFSET,CFI_DEF_CFA): New macros.
2690 (ffi_call_SYSV): Add callframe annotation.
2691
b5296e52
RZ
26922007-05-10 Roman Zippel <zippel@linux-m68k.org>
2693
2694 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2695 numerous test suite failures.
2696 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2697
bd61d708
PB
26982007-04-11 Paolo Bonzini <bonzini@gnu.org>
2699
2700 * Makefile.am (EXTRA_DIST): Bring up to date.
2701 * Makefile.in: Regenerate.
2702 * src/frv/eabi.S: Remove RCS keyword.
2703
bf8da5fc
RH
27042007-04-06 Richard Henderson <rth@redhat.com>
2705
2706 * configure.ac: Tidy target case.
2707 (HAVE_LONG_DOUBLE): Allow the target to override.
2708 * configure: Regenerate.
2709 * include/ffi.h.in: Don't define ffi_type_foo if
2710 LIBFFI_HIDE_BASIC_TYPES is defined.
2711 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2712 to ffi_type_double.
2713 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2714 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2715 (ffi_type_longdouble): Special case for Alpha. Don't define
2716 if long double == double.
2717
2718 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2719 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2720 (ffi_call, ffi_closure_osf_inner): Likewise.
2721 (ffi_closure_osf_inner): Likewise. Mark hidden.
2722 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2723 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2724 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2725 (load_table): Handle 128-bit long double.
2726
2727 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2728
8669fed1
TT
27292007-04-06 Tom Tromey <tromey@redhat.com>
2730
2731 PR libffi/31491:
2732 * README: Fixed bug in example.
2733
f0920e6c
JJ
27342007-04-03 Jakub Jelinek <jakub@redhat.com>
2735
2736 * src/closures.c: Include sys/statfs.h.
2737 (_GNU_SOURCE): Define on Linux.
2738 (FFI_MMAP_EXEC_SELINUX): Define.
2739 (selinux_enabled): New variable.
2740 (selinux_enabled_check): New function.
2741 (is_selinux_enabled): Define.
2742 (dlmmap): Use it.
2743
34a6ccda
UB
27442007-03-24 Uros Bizjak <ubizjak@gmail.com>
2745
2746 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2747 Use 'volatile float sum' to create sum of floats to avoid false
2748 negative due to excess precision on ix86 targets.
302486f4 2749 (main): Ditto.
34a6ccda 2750
8b9cf39e
AO
27512007-03-08 Alexandre Oliva <aoliva@redhat.com>
2752
2753 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2754 patch.
2755 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2756
18fa3240
AO
27572007-03-07 Alexandre Oliva <aoliva@redhat.com>
2758
2759 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2760 (ffi_prep_closure_loc): New.
2761 (ffi_prep_raw_closure_loc): New.
2762 (ffi_prep_java_raw_closure_loc): New.
2763 * src/closures.c: New file.
2764 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2765 Replace sflags with exec_offset.
2766 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2767 sub_segment_exec_offset): New macros.
2768 (get_segment_flags, set_segment_flags, check_segment_merge): New
2769 macros.
2770 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2771 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2772 destroy_mspace): Use new macros.
2773 (sys_alloc): Silence warning.
2774 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2775 * Makefile.in: Rebuilt.
2776 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2777 terms of ffi_prep_closure_loc.
2778 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2779 from...
2780 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2781 renamed version.
2782 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2783 adjusted from...
2784 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2785 the renamed version.
2786 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2787 (ffi_prep_closure): ... this.
2788 * src/pa/ffi.c: Likewise.
2789 * src/cris/ffi.c: Likewise. Adjust.
2790 * src/frv/ffi.c: Likewise.
2791 * src/ia64/ffi.c: Likewise.
2792 * src/mips/ffi.c: Likewise.
2793 * src/powerpc/ffi_darwin.c: Likewise.
2794 * src/s390/ffi.c: Likewise.
2795 * src/sh/ffi.c: Likewise.
2796 * src/sh64/ffi.c: Likewise.
2797 * src/sparc/ffi.c: Likewise.
2798 * src/x86/ffi64.c: Likewise.
2799 * src/x86/ffi.c: Likewise.
2800 (FFI_INIT_TRAMPOLINE): Adjust.
2801 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2802 (ffi_prep_raw_closure): ... this.
2803 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2804 (ffi_prep_closure): ... this.
2805 (flush_icache): Adjust.
2806
dd778331
AO
28072007-03-07 Alexandre Oliva <aoliva@redhat.com>
2808
2809 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2810 Lea's malloc.
2811
b5f8d49b
BM
28122007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2813
2814 * Makefile.am: Add dummy install-pdf target.
2815 * Makefile.in: Regenerate
2816
7a23933b
AK
28172007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2818
2819 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2820 ffi_closure_helper_SYSV): Add long double handling.
2821
8aaf4681
JJ
28222007-02-02 Jakub Jelinek <jakub@redhat.com>
2823
2824 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2825 immediately after bctrl instruction.
2826
0eb5e2b9
AO
28272007-01-18 Alexandre Oliva <aoliva@redhat.com>
2828
2829 * Makefile.am (all-recursive, install-recursive,
2830 mostlyclean-recursive, clean-recursive, distclean-recursive,
2831 maintainer-clean-recursive): Add missing targets.
2832 * Makefile.in: Rebuilt.
2833
f4f7486b
AT
28342006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2835
2836 * configure.ac: Add TARGET for x86_64-*-darwin*.
2837 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2838 for X86_DARWIN.
2839 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2840 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2841 * configure: Regenerate.
2842 * Makefile.in: Regenerate.
2843 * include/Makefile.in: Regenerate.
2844 * testsuite/Makefile.in: Regenerate.
2845 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2846 ffi_call only.
2847
3d5eafe2
AT
28482006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2849
2850 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2851 Makefile.am.
2852
d5523ce1 28532006-10-31 Geoffrey Keating <geoffk@apple.com>
58182de3
GK
2854
2855 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2856 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2857 Darwin.
2858 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2859 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2860
a3bd50cc
PB
28612006-10-10 Paolo Bonzini <bonzini@gnu.org>
2862 Sandro Tolaini <tolaini@libero.it>
2863
302486f4 2864 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
a3bd50cc
PB
2865 conditional.
2866 * configure: Regenerated.
2867 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2868 (EXTRA_DIST): Add src/x86/darwin.S.
2869 * Makefile.in: Regenerated.
2870 * include/Makefile.in: Regenerated.
2871 * testsuite/Makefile.in: Regenerated.
2872
2873 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2874 X86_WIN32, and additionally align stack to 16 bytes.
2875 * src/x86/darwin.S: New, based on sysv.S.
2876 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2877
b095810f
DD
28782006-09-12 David Daney <ddaney@avtrex.com>
2879
2880 PR libffi/23935
2881 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2882 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2883 * aclocal.m4: Regenerated for automake 1.9.6.
2884 * Makefile.in: Regenerated.
2885 * include/Makefile.in: Regenerated.
2886 * testsuite/Makefile.in: Regenerated.
2887
110b2db4
AT
28882006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2889
2890 * include/ffi_common.h (struct): Revert accidental commit.
2891
8e5fde87
AT
28922006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2893
2894 * include/ffi_common.h: Remove lint directives.
2895 * include/ffi.h.in: Likewise.
2896
cb4132fe
TS
28972006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2898
2899 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2900 for 32-bit architectures.
2901 * testsuite/libffi.call/return_ul.c: New test case.
2902
0d24c3fa
DD
29032006-07-19 David Daney <ddaney@avtrex.com>
2904
2905 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2906 xfail remains for mips64.
2907
8665824c
CD
29082006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2909
2910 * Makefile.am: Add install-html target. Add install-html to .PHONY
2911 * Makefile.in: Regenerate.
2912 * aclocal.m4: Regenerate.
2913 * include/Makefile.in: Regenerate.
2914 * testsuite/Makefile.in: Regenerate.
2915
84e2e370
JDA
29162006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2917
2918 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2919 stack slot.
2920
ac6ed182
AT
29212006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2922
2923 * README: Remove notice about 'Crazy Comments'.
2924 * src/debug.c: Remove lint directives. Cleanup white spaces.
2925 * src/java_raw_api.c: Likewise.
2926 * src/prep_cif.c: Likewise.
2927 * src/raw_api.c: Likewise.
2928 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2929 to the testsuite.
2930 * src/arm/ffi.c: Remove lint directives.
2931 * src/m32r/ffi.c: Likewise.
2932 * src/pa/ffi.c: Likewise.
2933 * src/powerpc/ffi.c: Likewise.
2934 * src/powerpc/ffi_darwin.c: Likewise.
2935 * src/sh/ffi.c: Likewise.
2936 * src/sh64/ffi.c: Likewise.
2937 * src/x86/ffi.c: Likewise.
2938 * testsuite/libffi.call/float2.c: Likewise.
2939 * testsuite/libffi.call/promotion.c: Likewise.
2940 * testsuite/libffi.call/struct1.c: Likewise.
2941
b7211585
AT
29422006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2943
2944 * src/pa/hpux32.S: Correct unwind offset calculation for
2945 ffi_closure_pa32.
2946 * src/pa/linux.S: Likewise.
2947
86066f9b
JW
29482006-04-12 James E Wilson <wilson@specifix.com>
2949
2950 PR libgcj/26483
2951 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2952 (hfa_type_load): Call stf_spill.
2953 (hfa_type_store): Call ldf_fill.
2954 (ffi_call): Adjust calls to above routines. Add local temps for
2955 macro result.
b7211585 2956
615baed7
MK
29572006-04-10 Matthias Klose <doko@debian.org>
2958
2959 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2960 directory names containing underscores.
2961
8e7a2b58
JW
29622006-04-07 James E Wilson <wilson@specifix.com>
2963
2964 * testsuite/libffi.call/float4.c: New testcase.
2965
e6c300ef
JDA
29662006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2967 Andreas Tobler <a.tobler@schweiz.ch>
2968
2969 * Makefile.am: Add PA_HPUX port.
2970 * Makefile.in: Regenerate.
2971 * include/Makefile.in: Likewise.
2972 * testsuite/Makefile.in: Likewise.
2973 * configure.ac: Add PA_HPUX rules.
2974 * configure: Regenerate.
2975 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2976 Add PA_HPUX and PA64_HPUX.
2977 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2978 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2979 (FFI_TYPE_SMALL_STRUCT2): Define.
2980 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2981 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2982 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2983 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2984 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2985 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2986 * src/pa/ffi.c (ROUND_DOWN): Delete.
2987 (fldw, fstw, fldd, fstd): Use '__asm__'.
2988 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2989 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2990 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2991 Simplify incrementing of stack slot variable. Change type of local
2992 'n' to unsigned int.
2993 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2994 double on PA_HPUX.
2995 (ffi_prep_cif_machdep): Likewise.
2996 (ffi_call): Likewise.
2997 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2998 return type to ffi_status. Simplify incrementing of stack slot
2999 variable. Only copy floating point argument registers when PA_LINUX
3000 is true. Reformat debug statement.
3001 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3002 FFI_TYPE_SMALL_STRUCT8.
3003 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3004 declaration.
3005 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3006 Add nops to cache flush. Add trampoline for PA_HPUX.
3007 * src/pa/hpux32.S: New file.
3008 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3009 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3010 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3011 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3012 argument type checks so that common argument types appear first.
3013 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3014 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3015
75b8b1be
AM
30162006-03-24 Alan Modra <amodra@bigpond.net.au>
3017
3018 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3019 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3020 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3021 FFI_TYPE_LONGDOUBLE.
3022 (ffi_prep_args64): Assert using IBM extended double.
3023 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3024 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3025 (ffi_call): Handle FFI_LINUX.
3026 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3027 gpr3 return pointer as for struct return. Handle FFI_LINUX
3028 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3029 unnecessarily.
3030 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3031 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3032 Don't use r6 as pointer to results, instead use sp offset. Don't
3033 make a special call to load lr with case table address, instead
3034 use offset from previous call.
3035 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3036 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3037 return.
3038
697701ad
KK
30392006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3040
3041 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3042 passed with FP registers correctly.
3043 (ffi_closure_helper_SYSV): Likewise.
3044 * src/sh64/sysv.S: Likewise.
3045
b295c471
AT
30462006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3047
3048 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3049 args and userdata unused.
3050 (closure_test_fn1): Mark cif and userdata unused.
3051 (main): Remove unused res.
3052
9fdeb13b
AT
30532006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3054
3055 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3056 -O2, -O3, -Os and the warning flags -W -Wall.
3057 * testsuite/libffi.special/special.exp: Likewise.
3058 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3059 unused parameter unused for gcc or else do nothing.
3060 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3061 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3062 and userdata unused.
3063 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3064 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3065 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3066 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3067 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3068 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3069 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3070 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3071 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3072 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3073 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3074 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3075 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3076 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3077 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3078 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3079 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3080 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3081 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3082 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3083 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3084 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3085 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3086 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3087 Likewise.
3088 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3089 Likewise.
3090 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3091 Likewise.
3092 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3093 void* to avoid compiler warning.
3094 (main): Likewise.
3095 (cls_struct_align_gn): Mark cif and userdata unused.
3096 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3097 Likewise.
3098 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3099 Likewise.
3100 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3101 Likewise.
3102 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3103 Likewise.
3104 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3105 Likewise.
3106 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3107 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3108 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3109 data unused.
3110 (main): Cast res_call to silence gcc.
3111 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3112 data unused.
3113 (main): Cast res_call to silence gcc.
3114 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3115 and data unused.
3116 (main): Cast res_call to silence gcc.
3117 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3118 data unused.
3119 (main): Cast res_call to silence gcc.
3120 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3121 data unused.
3122 (main): Cast res_call to silence gcc.
3123 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3124 and data unused.
3125 (main): Cast res_call to silence gcc.
3126 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3127 userdata unused.
3128 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3129 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3130 userdata unused.
3131 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3132 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3133 userdata unused.
3134 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3135 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3136 userdata unused.
3137 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3138 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3139 userdata unused.
3140 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3141 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3142 and userdata unused.
3143 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3144 userdata unused.
3145 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3146 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3147 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3148 Cleanup white spaces.
3149 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3150 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3151 cif and userdata unused.
3152 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3153 Likewise.
3154 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3155 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3156 formatters to silence gcc.
3157 (B_gn): Mark cif and userdata unused.
3158 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3159 unused.
3160 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3161 (B_gn): Mark cif and userdata unused.
3162 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3163 unused.
3164 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3165 (B_gn): Mark cif and userdata unused.
3166 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3167 unused.
3168 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3169 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3170 * testsuite/libffi.call/problem1.c (stub): Likewise.
3171 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3172 gcc.
3173 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3174 in the last commit for this test case in the test case itself.
3175 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3176 unused.
3177 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3178 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3179 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3180 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3181 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3182 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3183
0a4e2bb5
KK
31842006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3185
3186 * src/sh/sysv.S: Fix register numbers in the FDE for
3187 ffi_closure_SYSV.
3188
723e5d5a
AT
31892006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3190
3191 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3192 declaration to avoid a false negative on ix86. See PR323.
3193
e097f887
KK
31942006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3195
3196 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3197 and cast integer to void * if needed. Update the pointer to
3198 the FP register saved area correctly.
302486f4 3199
1a4878f7
AT
32002006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3201
3202 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3203 is fixed.
3204 * testsuite/libffi.call/nested_struct4.c: Likewise.
3205
b47b5e08
AT
32062006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3207
6429d58f
AT
3208 * testsuite/libffi.call/return_dbl.c: New test case.
3209 * testsuite/libffi.call/return_dbl1.c: Likewise.
3210 * testsuite/libffi.call/return_dbl2.c: Likewise.
3211 * testsuite/libffi.call/return_fl.c: Likewise.
3212 * testsuite/libffi.call/return_fl1.c: Likewise.
3213 * testsuite/libffi.call/return_fl2.c: Likewise.
3214 * testsuite/libffi.call/return_fl3.c: Likewise.
3215 * testsuite/libffi.call/closure_fn6.c: Likewise.
3216
b47b5e08
AT
3217 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3218 definition.
3219 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3220 here to be used by other test cases too.
3221
3222 * testsuite/libffi.call/nested_struct10.c: New test case.
3223 * testsuite/libffi.call/nested_struct9.c: Likewise.
3224 * testsuite/libffi.call/nested_struct8.c: Likewise.
3225 * testsuite/libffi.call/nested_struct7.c: Likewise.
3226 * testsuite/libffi.call/nested_struct6.c: Likewise.
3227 * testsuite/libffi.call/nested_struct5.c: Likewise.
3228 * testsuite/libffi.call/nested_struct4.c: Likewise.
3229
9abe31d4
AT
32302006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3231
3232 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3233 * configure: Rebuilt.
3234
71aa1a70
JJ
32352006-01-18 Jakub Jelinek <jakub@redhat.com>
3236
3237 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3238 instead do the shifting inline.
3239 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3240 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3241 and 8 byte structs, for the remaining struct sizes don't call
3242 __lshrdi3, instead do the shifting inline.
3243
8a39029d
TS
32442005-12-07 Thiemo Seufer <ths@networkno.de>
3245
3246 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3247 missing parentheses.
3248 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3249 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3250 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3251 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3252 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3253 FA_0_0_OFF2.
3254 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3255 endianness bugs.
3256 (ffi_prep_closure): Improve trampoline instruction scheduling.
3257 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3258
cd4241aa
AM
32592005-12-03 Alan Modra <amodra@bigpond.net.au>
3260
3261 * src/powerpc/ffi.c: Formatting.
3262 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3263 (ffi_prep_args64): Likewise.
3264
0363db46
GK
32652005-09-30 Geoffrey Keating <geoffk@apple.com>
3266
3267 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3268 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3269
d674eb2f
TT
32702005-09-26 Tom Tromey <tromey@redhat.com>
3271
3272 * testsuite/libffi.call/float1.c (value_type): New typedef.
3273 (CANARY): New define.
3274 (main): Check for result buffer overflow.
3275 * src/powerpc/linux64.S: Handle linux64 long double returns.
3276 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3277 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3278
2d9c5743
AM
32792005-08-25 Alan Modra <amodra@bigpond.net.au>
3280
3281 PR target/23404
3282 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3283 homed fp args.
3284 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3285
8a42356f
JJ
32862005-08-11 Jakub Jelinek <jakub@redhat.com>
3287
3288 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3289 (AH_BOTTOM): Add FFI_HIDDEN definition.
3290 * configure: Rebuilt.
3291 * fficonfig.h.in: Rebuilt.
3292 * src/powerpc/ffi.c (hidden): Remove.
3293 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3294 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3295 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3296 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3297 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3298 add FFI_HIDDEN to its prototype.
3299 (ffi_closure_SYSV_inner): New.
3300 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3301 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3302
863c5508
AS
33032005-08-10 Alfred M. Szmidt <ams@gnu.org>
3304
3305 PR libffi/21819:
3306 * configure: Rebuilt.
3307 * configure.ac: Handle i*86-*-gnu*.
3308
6a26ea58
JJ
33092005-08-09 Jakub Jelinek <jakub@redhat.com>
3310
3311 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3312 DW_CFA_offset_extended_sf rather than
3313 DW_CFA_GNU_negative_offset_extended.
3314 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3315
583a92e8
ST
33162005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3317
3318 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3319 on sh3.
3320 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3321 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3322 partially on register.
3323 (ffi_closure_helper_SYSV): Likewise.
3324 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3325
5d0317fc
KK
33262005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3327
3328 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3329 Remove empty line.
3330 * src/sh64/ffi.c (simple_type): Remove.
3331 (return_type): Handle small structures correctly.
3332 (ffi_prep_args): Likewise.
3333 (ffi_call): Likewise.
3334 (ffi_closure_helper_SYSV): Likewise.
3335 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3336 Emit position independent code if PIC and remove wrong datalabel
3337 prefixes from EH data.
3338
8d9fd5f5
AT
33392005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3340
3341 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3342 * Makefile.in: Regenerate.
3343 * include/Makefile.in: Likewise.
3344 * testsuite/Makefile.in: Likewise.
3345 * configure.ac: Add POWERPC_FREEBSD rules.
3346 * configure: Regenerate.
3347 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3348 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3349 * src/powerpc/ffi.c: Add flags to handle small structure returns
3350 in ffi_call_SYSV.
3351 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3352 Aka FFI_SYSV.
3353 (ffi_closure_helper_SYSV): Likewise.
3354 * src/powerpc/ppc_closure.S: Add return types for small structures.
3355 * src/powerpc/sysv.S: Add bits to handle small structures for
3356 final SYSV 4 ABI.
3357
93c76f81
AT
33582005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3359
3360 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3361 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3362 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3363
b65da304
RC
33642005-07-05 Randolph Chung <tausq@debian.org>
3365
3366 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3367 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3368 structures. Kill compilation warnings.
3369 (ffi_closure_inner_LINUX): Print return values as hex in debug
3370 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3371 Properly handle 5-7 byte structure returns.
3372 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3373 (FFI_TYPE_SMALL_STRUCT2): Remove.
3374 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3375 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3376 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3377 (checksmst1, checksmst2): Remove.
3378 (checksmst3): Optimize handling of 3-byte struct returns.
3379 (checksmst567): Properly handle 5-7 byte struct returns.
3380
2572f1c6
RO
33812005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3382
3383 PR libgcj/21943
3384 * src/mips/n32.S: Enforce PIC code.
3385 * src/mips/o32.S: Likewise.
3386
cc786582
RO
33872005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3388
3389 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3390 * configure: Regenerate.
302486f4 3391
6d0d376c
AM
33922005-06-01 Alan Modra <amodra@bigpond.net.au>
3393
3394 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3395 to call ffi_closure_helper_SYSV. Append @local instead.
3396 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3397
a21946f5 33982005-05-17 Kelley Cook <kcook@gcc.gnu.org>
a097ef55
KC
3399
3400 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3401 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3402 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3403 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3404 include/Makefile.in, testsuite/Makefile.in: Regenerate.
302486f4 3405
f4c767fd
MS
34062005-05-09 Mike Stump <mrs@apple.com>
3407
3408 * configure: Regenerate.
3409
7e15b5fe
RH
34102005-05-08 Richard Henderson <rth@redhat.com>
3411
3412 PR libffi/21285
3413 * src/alpha/osf.S: Update unwind into to match code.
3414
d56ea8d9
RH
34152005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3416 Richard Henderson <rth@redhat.com>
3417
3418 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3419 bit 11 of flags.
3420 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3421 (ffi_prep_closure): Set carry bit if sse-used flag set.
3422 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3423 Only load sse registers if ssecount non-zero.
3424 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3425
34262005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
d948c201
RC
3427
3428 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3429 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3430 * configure: Regenerate.
3431
fc0ad8d9
HPN
34322005-04-20 Hans-Peter Nilsson <hp@axis.com>
3433
3434 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3435 have Tcl8.3-compatible intermediate variable.
3436
302486f4 34372005-04-18 Simon Posnjak <simon.posnjak@siol.net>
614348bb
SP
3438 Hans-Peter Nilsson <hp@axis.com>
3439
3440 * Makefile.am: Add CRIS support.
3441 * configure.ac: Likewise.
29ede6db
HPN
3442 * Makefile.in, configure, testsuite/Makefile.in,
3443 include/Makefile.in: Regenerate.
614348bb
SP
3444 * src/cris: New directory.
3445 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3446 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
727e729b
HPN
3447
3448 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3449 \r?\n in output tests.
3450
6dab073b
MS
34512005-04-12 Mike Stump <mrs@apple.com>
3452
3453 * configure: Regenerate.
3454
51f55d7c
HB
34552005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3456
3457 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
302486f4 3458
7efa52a3
SE
34592005-03-30 Steve Ellcey <sje@cup.hp.com>
3460
3461 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3462 (ffi_sarg) Ditto.
3463 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3464 to 64 bits in ILP32 mode.
3465 Load 64 bits even for short data.
3466
1488177a
MS
34672005-03-23 Mike Stump <mrs@apple.com>
3468
3469 * src/powerpc/darwin.S: Update for -m64 multilib.
3470 * src/powerpc/darwin_closure.S: Likewise.
3471
c6900272
ZW
34722005-03-21 Zack Weinberg <zack@codesourcery.com>
3473
3474 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3475 Do not set tool_include_dir.
3476 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3477 Regenerate.
3478 * include/Makefile.am: Set gcc_version and toollibffidir.
3479 * include/Makefile.in: Regenerate.
3480
962eea0a
AH
34812005-02-22 Andrew Haley <aph@redhat.com>
3482
3483 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3484 odd-numbered register pairs for 64-bit integer types.
3485
1b05e8bf
AT
34862005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3487
3488 PR libffi/20104
3489 * testsuite/libffi.call/return_ll1.c: New test case.
3490
6027770b
JJ
34912005-02-11 Janis Johnson <janis187@us.ibm.com>
3492
3493 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3494 * testsuite/libffi.call/float.c: Ditto.
3495 * testsuite/libffi.call/float2.c: Ditto.
3496 * testsuite/libffi.call/float3.c: Ditto.
3497
ee31ea68
AT
34982005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3499
3500 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3501
c16be7d5
EB
35022005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3503
3504 * testsuite/libffi.special/special.exp (cxx_options): Add
3505 -shared-libgcc.
3506
5df07255
RH
35072004-12-31 Richard Henderson <rth@redhat.com>
3508
3509 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3510 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3511 offset parameters with a type parameter; deduce size and structure
3512 alignment. Update all users.
3513
81a69b13
RH
35142004-12-31 Richard Henderson <rth@redhat.com>
3515
3516 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3517 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
c6900272 3518 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
81a69b13
RH
3519 into ffi_prep_closure.
3520 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3521 from scratch.
3522
d833cfb0
RH
35232004-12-27 Richard Henderson <rth@redhat.com>
3524
3525 * src/x86/unix64.S: Fix typo in unwind info.
3526
1a0f488c
RH
35272004-12-25 Richard Henderson <rth@redhat.com>
3528
3529 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3530 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3531 (merge_classes): Check for it.
3532 (SSE_CLASS_P): New.
3533 (classify_argument): Pass byte_offset by value; perform all updates
3534 inside struct case.
3535 (examine_argument): Add classes argument; handle
3536 X86_64_COMPLEX_X87_CLASS.
3537 (ffi_prep_args): Merge into ...
3538 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3539 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3540 (ffi_fill_return_value): Remove.
3541 (ffi_prep_closure): Remove dead assert.
3542 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3543 Rewrite to use struct register_args instead of va_list. Create
3544 flags for handling structure returns.
3545 * src/x86/unix64.S: Remove dead strings.
3546 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3547 stack frame with ffi_call. Handle structure returns properly.
3548 (float2sse, floatfloat2sse, double2sse): Remove.
3549 (sse2float, sse2double, sse2floatfloat): Remove.
3550 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3551 to handle structure returns properly.
3552
7994d50c
DE
35532004-12-08 David Edelsohn <edelsohn@gnu.org>
3554
3555 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3556 PICFLAG.
3557 * Makefile.in: Regenerated.
3558
afabd8e6
RS
35592004-12-02 Richard Sandiford <rsandifo@redhat.com>
3560
3561 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3562 * configure, aclocal.m4, Makefile.in: Regenerate.
3563 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3564
2539bffe
KC
35652004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3566
3567 * configure: Regenerate for libtool change.
3568
767f726e
KC
35692004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3570
3571 * configure: Regenerate for libtool reversion.
3572
2c92e90f
KC
35732004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3574
3575 * configure: Regenerate for libtool change.
3576
1df8e834
JDA
35772004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3578
3579 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3580
35812004-11-23 Richard Sandiford <rsandifo@redhat.com>
3582
3583 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3584 of jal. Use an absolute encoding for the frame information.
3585
35862004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3587
3588 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3589 * acinclude.m4: Delete logic for sincludes.
3590 * aclocal.m4, Makefile.in, configure: Regenerate.
3591 * include/Makefile: Likewise.
3592 * testsuite/Makefile: Likewise.
3593
bf02e7fa
EB
35942004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3595
3596 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3597 on a 8-byte boundary.
3598 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3599
f20459f1
RE
36002004-10-27 Richard Earnshaw <rearnsha@arm.com>
3601
3602 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3603 long long values. Round stack allocation to a multiple of 8 bytes
3604 for ATPCS compatibility.
3605 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3606 names. Handle returning long long types. Add Thumb and interworking
3607 support. Improve soft-float code.
3608
fdc69597
RE
36092004-10-27 Richard Earnshaw <rearnsha@arm.com>
3610
3611 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3612 (libffi_exit): New function.
3613 (libffi_init): Build the testglue wrapper if needed.
3614
1e02510f
EB
36152004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3616
3617 PR other/18138
3618 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3619
d9a193b2
KI
36202004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3621
3622 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3623
1fddb058
KK
36242004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3625
3626 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3627 * testsuite/libffi.call/float3.c: New test case.
3628
e0d3b452
KK
36292004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3630
3631 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3632 the function returning a structure pointed with R2.
3633 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3634 the structure return value if T bit set. Emit position
3635 independent code and EH data if PIC.
3636
a472e9d4
KI
36372004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3638
3639 * Makefile.am: Add m32r support.
3640 * configure.ac: Likewise.
3641 * Makefile.in: Regenerate.
3642 * confiugre: Regenerate.
3643 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3644 (uint64, sint64, double, longdouble)
3645 * src/m32r: New directory.
3646 * src/m32r/ffi.c: New file.
3647 * src/m32r/sysv.S: Likewise.
3648 * src/m32r/ffitarget.h: Likewise.
3649
3d47e9ca
KK
36502004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3651
3652 * testsuite/libffi.call/negint.c: New test case.
3653
fc9051dd
L
36542004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3655
3656 PR libgcj/17465
3657 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3658 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3659 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3660 DYLD_LIBRARY_PATH.
3661
2010caea
AT
36622004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3663
3664 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3665 * testsuite/libffi.call/promotion.c: Likewise.
3666 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3667 whitespaces.
3668 * testsuite/libffi.call/return_sc.c: Likewise.
3669 * testsuite/libffi.call/return_uc.c: Likewise.
3670
894be816
AT
36712004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3672
3673 * src/powerpc/darwin.S: Fix comments and identation.
3674 * src/powerpc/darwin_closure.S: Likewise.
3675
2fe7404a
AT
36762004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3677
3678 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3679 (ffi_prep_args): Handle longdouble arguments.
3680 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3681 longdouble.
3682 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3683 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3684 values.
3685 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3686 * src/types.c: Defined longdouble size and alignment for darwin.
3687
16070e45
AT
36882004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3689
3690 * src/powerpc/aix.S: Remove whitespaces.
3691 * src/powerpc/aix_closure.S: Likewise.
3692 * src/powerpc/asm.h: Likewise.
3693 * src/powerpc/ffi.c: Likewise.
3694 * src/powerpc/ffitarget.h: Likewise.
3695 * src/powerpc/linux64.S: Likewise.
3696 * src/powerpc/linux64_closure.S: Likewise.
3697 * src/powerpc/ppc_closure.S: Likewise.
3698 * src/powerpc/sysv.S: Likewise.
3699
88d8c771
AG
37002004-08-30 Anthony Green <green@redhat.com>
3701
3702 * Makefile.am: Add frv support.
3703 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3704 * configure.ac: Read configure.host.
3705 * configure.in: Read configure.host.
3706 * configure.host: New file. frv-elf needs libgloss.
3707 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
a23adb4d 3708 alignment. This is needed to frv and shouldn't harm the others.
88d8c771
AG
3709 * include/ffi_common.h (ALIGN_DOWN): New macro.
3710 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3711
4c5f37d5
DD
37122004-08-24 David Daney <daney@avtrex.com>
3713
3714 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3715 * testsuite/libffi.call/closure_fn1.c: Likewise.
3716 * testsuite/libffi.call/closure_fn2.c Likewise.
3717 * testsuite/libffi.call/closure_fn3.c: Likewise.
3718 * testsuite/libffi.call/closure_fn4.c: Likewise.
3719 * testsuite/libffi.call/closure_fn5.c: Likewise.
3720 * testsuite/libffi.call/cls_18byte.c: Likewise.
3721 * testsuite/libffi.call/cls_19byte.c: Likewise.
3722 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3723 * testsuite/libffi.call/cls_20byte.c: Likewise.
3724 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3725 * testsuite/libffi.call/cls_24byte.c: Likewise.
3726 * testsuite/libffi.call/cls_2byte.c: Likewise.
3727 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3728 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3729 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3730 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3731 * testsuite/libffi.call/cls_4byte.c: Likewise.
3732 * testsuite/libffi.call/cls_64byte.c: Likewise.
3733 * testsuite/libffi.call/cls_6byte.c: Likewise.
3734 * testsuite/libffi.call/cls_7byte.c: Likewise.
3735 * testsuite/libffi.call/cls_8byte.c: Likewise.
3736 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3737 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3738 * testsuite/libffi.call/cls_align_double.c: Likewise.
3739 * testsuite/libffi.call/cls_align_float.c: Likewise.
3740 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3741 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3742 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3743 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3744 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3745 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3746 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3747 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3748 * testsuite/libffi.call/cls_double.c: Likewise.
3749 * testsuite/libffi.call/cls_float.c: Likewise.
3750 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3751 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3752 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3753 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3754 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3755 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3756 * testsuite/libffi.call/cls_schar.c: Likewise.
3757 * testsuite/libffi.call/cls_sint.c: Likewise.
3758 * testsuite/libffi.call/cls_sshort.c: Likewise.
3759 * testsuite/libffi.call/cls_uchar.c: Likewise.
3760 * testsuite/libffi.call/cls_uint.c: Likewise.
3761 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3762 * testsuite/libffi.call/cls_ushort.c: Likewise.
3763 * testsuite/libffi.call/nested_struct.c: Likewise.
3764 * testsuite/libffi.call/nested_struct1.c: Likewise.
3765 * testsuite/libffi.call/nested_struct2.c: Likewise.
3766 * testsuite/libffi.call/nested_struct3.c: Likewise.
3767 * testsuite/libffi.call/problem1.c: Likewise.
3768 * testsuite/libffi.special/unwindtest.cc: Likewise.
3769 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3770 to zero.
3771 * testsuite/libffi.call/cls_16byte.c: Likewise.
3772 * testsuite/libffi.call/cls_5byte.c: Likewise.
3773
39dca114
DD
37742004-08-23 David Daney <daney@avtrex.com>
3775
3776 PR libgcj/13141
3777 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3778 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3779 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3780 parameters and return types.
3781 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3782 (ffi_prep_closure): Ditto.
3783 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3784 alignment calculations.
3785 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3786 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3787
b790003a
CM
37882004-08-14 Casey Marshall <csm@gnu.org>
3789
3790 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3791 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3792 integer (O32 ABI only).
3793 (ffi_prep_closure): new function.
3794 (ffi_closure_mips_inner_O32): new function.
c6900272 3795 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
b790003a
CM
3796 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3797 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3798 64 bit integers correctly.
3799 (ffi_closure_O32): new function.
3800 Added DWARF-2 unwind info for both functions.
3801
547d71a1
AH
38022004-08-10 Andrew Haley <aph@redhat.com>
3803
3804 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3805
98a5bb3b
RM
38062004-08-01 Robert Millan <robertmh@gnu.org>
3807
3808 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3809 * configure: Regenerate.
3810
4d447364
MR
38112004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3812
3813 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3814 and mmap() explicitly instead of relying on preset autoconf cache
3815 variables.
3816 * aclocal.m4: Regenerate.
3817 * configure: Regenerate.
3818
e5dce82f
UW
38192004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3820
3821 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3822 (ffi_check_float_struct): Remove unused prototype.
3823
e6a0022b
GK
38242004-06-30 Geoffrey Keating <geoffk@apple.com>
3825
3826 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3827 character on Darwin, use '\n\t' instead.
3828
5a2d52ca
MK
38292004-06-26 Matthias Klose <doko@debian.org>
3830
3831 * libtool-version: Fix typo in revision/age.
3832
401844ef
MK
38332004-06-17 Matthias Klose <doko@debian.org>
3834
3835 * libtool-version: New.
3836 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3837 * Makefile.in: Regenerate.
3838
94632047 38392004-06-15 Paolo Bonzini <bonzini@gnu.org>
076e5443
PB
3840
3841 * Makefile.am: Remove useless multilib rules.
3842 * Makefile.in: Regenerate.
3843 * aclocal.m4: Regenerate with automake 1.8.5.
3844 * configure.ac: Remove useless multilib configury.
3845 * configure: Regenerate.
3846
94632047 38472004-06-15 Paolo Bonzini <bonzini@gnu.org>
9ac926b1
PB
3848
3849 * .cvsignore: New file.
3850
37c849e4
JJ
38512004-06-10 Jakub Jelinek <jakub@redhat.com>
3852
3853 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3854 fp_done.
3855 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3856 changed from 8.
3857
cb623172
SM
38582004-06-06 Sean McNeil <sean@mcneil.com>
3859
3860 * configure.ac: Add x86_64-*-freebsd* support.
3861 * configure: Regenerate.
3862
c9b93377
JB
38632004-04-26 Joe Buck <jbuck@welsh-buck.org>
3864
3865 Bug 15093
3866 * configure.ac: Test for existence of mmap and sys/mman.h before
3867 checking blacklist. Fix suggested by Jim Wilson.
3868 * configure: Regenerate.
3869
cf90fd1b
MA
38702004-04-26 Matt Austern <austern@apple.com>
3871
3872 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3873 FDE location.
3874 * src/powerpc/darwin_closure.S: Likewise.
c6900272 3875
67781b44
AT
38762004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3877
3878 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3879 error. Reported by Thomas Heller <theller@python.net>.
3880 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3881 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3882
14b078a8
MK
38832004-03-20 Matthias Klose <doko@debian.org>
3884
3885 * src/pa/linux.S: Fix typo.
3886
d65a810f
MK
38872004-03-19 Matthias Klose <doko@debian.org>
3888
67781b44 3889 * Makefile.am: Update.
d65a810f
MK
3890 * Makefile.in: Regenerate.
3891 * src/pa/ffi.h.in: Remove.
3892 * src/pa/ffitarget.h: New file.
3893
38942004-02-10 Randolph Chung <tausq@debian.org>
3895
3896 * Makefile.am: Add PA support.
3897 * Makefile.in: Regenerate.
3898 * include/Makefile.in: Regenerate.
3899 * configure.ac: Add PA target.
3900 * configure: Regenerate.
3901 * src/pa/ffi.c: New file.
3902 * src/pa/ffi.h.in: Add PA support.
3903 * src/pa/linux.S: New file.
3904 * prep_cif.c: Add PA support.
3905
09cababc
HY
39062004-03-16 Hosaka Yuji <hos@tamanegi.org>
3907
3908 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3909 double.
3910 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3911 with ecif->cif->flags.
3912 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3913 with cif->flags.
3914 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3915 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3916 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3917 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3918
0e8d0c5f
KC
39192004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3920
3921 * configure.in: Rename file to ...
3922 * configure.ac: ... this.
3923 * fficonfig.h.in: Regenerate.
3924 * Makefile.in: Regenerate.
3925 * include/Makefile.in: Regenerate.
3926 * testsuite/Makefile.in: Regenerate.
3927
b8d50739
MA
39282004-03-12 Matt Austern <austern@apple.com>
3929
3930 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3931 changes in EH format resulting from addition of linkonce support.
3932 * src/powerpc/darwin_closure.S: Likewise.
09cababc 3933
3ed8e5b6
AT
39342004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3935 Paolo Bonzini <bonzini@gnu.org>
3936
3937 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3938 Remove VPATH. Remove rules for object files. Remove multilib support.
3939 (AM_CCASFLAGS): Add.
3940 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3941 (AC_PREREQ): Bump version to 2.59.
3942 (AC_INIT): Fill with version info and bug address.
3943 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3944 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3945 De-precious CC so that the right flags are passed down to multilibs.
3946 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3947 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3948 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3949 * configure: Rebuilt.
3950 * aclocal.m4: Likewise.
3951 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3952 * fficonfig.h.in: Likewise.
3953
254ea477
AS
39542004-03-11 Andreas Schwab <schwab@suse.de>
3955
3956 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3957 arguments from fp registers only for the first 8 parameter slots.
3958 Don't convert a float parameter when passed in memory.
3959
3beb1315
HPN
39602004-03-09 Hans-Peter Nilsson <hp@axis.com>
3961
3962 * configure: Regenerate for config/accross.m4 correction.
3963
fecf735c
MK
39642004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3965
3966 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3967 ecif->cif->bytes to bytes.
3968 (ffi_prep_cif_machdep): Add braces around nested if statement.
3969
4243752c
AM
39702004-02-09 Alan Modra <amodra@bigpond.net.au>
3971
12001e0f
AM
3972 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3973
4243752c
AM
3974 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3975 (ffi_closure_helper_LINUX64): Fix typo.
3976 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3977 for powerpc64-*-*.
3978 * testsuite/libffi.call/float.c: Likewise.
3979 * testsuite/libffi.call/float2.c: Likewise.
3980
bf310028
AM
39812004-02-08 Alan Modra <amodra@bigpond.net.au>
3982
3983 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3984 long double function return and long double arg handling.
3985 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3986 Use "end_pfr" instead of "nf". Correct long double handling.
3987 Localise "temp".
3988 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3989 return value.
3990 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3991 space for long double return value. Adjust stack frame and offsets.
3992 Load f2 long double return.
3993
dd5f9ea2
AM
39942004-02-07 Alan Modra <amodra@bigpond.net.au>
3995
3996 * src/types.c: Use 16 byte long double for POWERPC64.
3997
0ce78f01
EB
39982004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3999
4000 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4001 when the structure return address is passed in %o0.
4002 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4003 (ffi_v9_layout_struct): Align the field following a nested structure
4004 on a word boundary. Use memmove instead of memcpy.
4005 (ffi_call): Update call to ffi_V9_return_struct.
4006 (ffi_prep_closure): Define 'ctx' only for V8.
4007 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4008 and ffi_closure_sparc_inner_v9.
4009 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4010 Always skip the structure return address. For structures and long
4011 doubles, copy the argument directly.
4012 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4013 if required. Shift the maximum floating-point slot accordingly. For
4014 big structures, copy the argument directly; otherwise, left-justify the
4015 argument and call ffi_v9_layout_struct to lay out the structure on
4016 the stack.
4017 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4018 (ffi_closure_v8): Pass the structure return address. Update call to
4019 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4020 Skip the 'unimp' insn when returning long doubles and structures.
4021 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4022 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4023 FFI_TYPE_INT handling. Load structures both in integers and
4024 floating-point registers on return.
4025 * README: Update status of the SPARC port.
4026
7fcc1d9b
AT
40272004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4028
4029 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4030 as of type ffi_arg.
4031 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4032
6ed0ecaf
UW
40332004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4034
4035 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4036 value as of type ffi_arg, not unsigned int.
4037
c930d8a5
MR
40382004-01-21 Michael Ritzert <ritzert@t-online.de>
4039
4040 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4041 of the LHS.
4042
7b2e3e60
AT
40432004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4044
4045 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4046 Solaris.
4047
2e89756b
RO
40482004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4049
4050 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4051 to void *.
4052
628b26f8
RH
40532003-12-10 Richard Henderson <rth@redhat.com>
4054
4055 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4056 size_t instead of int.
4057
0ee646d6
HY
40582003-12-04 Hosaka Yuji <hos@tamanegi.org>
4059
4060 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4061 * testsuite/libffi.call/many_win32.c (main): Replace variable
4062 int i with unsigned long ul.
4063
4064 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4065 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4066 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4067 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4068 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4069 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4070 * testsuite/libffi.call/cls_align_float.c: Likewise.
4071 * testsuite/libffi.call/cls_align_double.c: Likewise.
4072 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4073 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4074
2c4ed456
HY
40752003-12-02 Hosaka Yuji <hos@tamanegi.org>
4076
4077 PR other/13221
4078 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4079 Align arguments to 32 bits.
4080
d18c3386
AT
40812003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4082
4083 PR other/13221
4084 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4085 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4086 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4087 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4088 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4089 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4090
4091 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4092
88096b2a
KG
40932003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4094
4095 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4096 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4097
3eee102e
AT
40982003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4099
4100 * Makefile.in: Rebuilt.
4101 * configure: Likewise.
4102 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4103 the right type.
4104
5196736e
AJ
41052003-11-21 Andreas Jaeger <aj@suse.de>
4106 Andreas Tobler <a.tobler@schweiz.ch>
4107
4108 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4109 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4110 * Makefile.in: Rebuilt.
4111 * aclocal.m4: Likewise.
4112 * configure: Likewise.
4113 * fficonfig.h.in: Likewise.
4114 * testsuite/lib/libffi-dg.exp: Add include dir.
4115 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4116 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4117 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4118 for ffi_closure if available.
4119 * testsuite/libffi.call/closure_fn1.c: Likewise.
4120 * testsuite/libffi.call/closure_fn2.c: Likewise.
4121 * testsuite/libffi.call/closure_fn3.c: Likewise.
4122 * testsuite/libffi.call/closure_fn4.c: Likewise.
4123 * testsuite/libffi.call/closure_fn5.c: Likewise.
4124 * testsuite/libffi.call/cls_12byte.c: Likewise.
4125 * testsuite/libffi.call/cls_16byte.c: Likewise.
4126 * testsuite/libffi.call/cls_18byte.c: Likewise.
4127 * testsuite/libffi.call/cls_19byte.c: Likewise.
4128 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4129 * testsuite/libffi.call/cls_20byte.c: Likewise.
4130 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4131 * testsuite/libffi.call/cls_24byte.c: Likewise.
4132 * testsuite/libffi.call/cls_2byte.c: Likewise.
4133 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4134 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4135 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4136 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4137 * testsuite/libffi.call/cls_4byte.c: Likewise.
4138 * testsuite/libffi.call/cls_5byte.c: Likewise.
4139 * testsuite/libffi.call/cls_64byte.c: Likewise.
4140 * testsuite/libffi.call/cls_6byte.c: Likewise.
4141 * testsuite/libffi.call/cls_7byte.c: Likewise.
4142 * testsuite/libffi.call/cls_8byte.c: Likewise.
4143 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4144 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4145 * testsuite/libffi.call/cls_double.c: Likewise.
4146 * testsuite/libffi.call/cls_float.c: Likewise.
4147 * testsuite/libffi.call/cls_schar.c: Likewise.
4148 * testsuite/libffi.call/cls_sint.c: Likewise.
4149 * testsuite/libffi.call/cls_sshort.c: Likewise.
4150 * testsuite/libffi.call/cls_uchar.c: Likewise.
4151 * testsuite/libffi.call/cls_uint.c: Likewise.
4152 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4153 * testsuite/libffi.call/cls_ushort.c: Likewise.
4154 * testsuite/libffi.call/nested_struct.c: Likewise.
4155 * testsuite/libffi.call/nested_struct1.c: Likewise.
4156 * testsuite/libffi.call/nested_struct2.c: Likewise.
4157 * testsuite/libffi.call/nested_struct3.c: Likewise.
4158 * testsuite/libffi.call/problem1.c: Likewise.
4159 * testsuite/libffi.special/unwindtest.cc: Likewise.
4160
9e6c3ecb
AT
41612003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4162
4163 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4164
70d8f2a1
AT
41652003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4166
4167 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4168 Add -lgcc_s to additional flags.
4169
ea81d2a3
AT
41702003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4171
4172 * configure.in, include/Makefile.am: PR libgcj/11147, install
4173 the ffitarget.h header file in a gcc versioned and target
4174 dependent place.
4175 * configure: Regenerated.
4176 * Makefile.in, include/Makefile.in: Likewise.
4177 * testsuite/Makefile.in: Likewise.
4178
647af4a9
AT
41792003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4180
4181 * testsuite/libffi.call/closure_fn0.c: Print result and check
4182 with dg-output to make debugging easier.
4183 * testsuite/libffi.call/closure_fn1.c: Likewise.
4184 * testsuite/libffi.call/closure_fn2.c: Likewise.
4185 * testsuite/libffi.call/closure_fn3.c: Likewise.
4186 * testsuite/libffi.call/closure_fn4.c: Likewise.
4187 * testsuite/libffi.call/closure_fn5.c: Likewise.
4188 * testsuite/libffi.call/cls_12byte.c: Likewise.
4189 * testsuite/libffi.call/cls_16byte.c: Likewise.
4190 * testsuite/libffi.call/cls_18byte.c: Likewise.
4191 * testsuite/libffi.call/cls_19byte.c: Likewise.
4192 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4193 * testsuite/libffi.call/cls_20byte.c: Likewise.
4194 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4195 * testsuite/libffi.call/cls_24byte.c: Likewise.
4196 * testsuite/libffi.call/cls_2byte.c: Likewise.
4197 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4198 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4199 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4200 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4201 * testsuite/libffi.call/cls_4byte.c: Likewise.
4202 * testsuite/libffi.call/cls_5byte.c: Likewise.
4203 * testsuite/libffi.call/cls_64byte.c: Likewise.
4204 * testsuite/libffi.call/cls_6byte.c: Likewise.
4205 * testsuite/libffi.call/cls_7byte.c: Likewise.
4206 * testsuite/libffi.call/cls_8byte.c: Likewise.
4207 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4208 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4209 * testsuite/libffi.call/cls_double.c: Likewise.
4210 * testsuite/libffi.call/cls_float.c: Likewise.
4211 * testsuite/libffi.call/cls_schar.c: Likewise.
4212 * testsuite/libffi.call/cls_sint.c: Likewise.
4213 * testsuite/libffi.call/cls_sshort.c: Likewise.
4214 * testsuite/libffi.call/cls_uchar.c: Likewise.
4215 * testsuite/libffi.call/cls_uint.c: Likewise.
4216 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4217 * testsuite/libffi.call/cls_ushort.c: Likewise.
4218 * testsuite/libffi.call/problem1.c: Likewise.
4219
4220 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4221 static.
4222
ac47cc13
AT
42232003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4224
4225 * testsuite/libffi.call/cls_9byte2.c: New test case.
4226 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4227 * testsuite/libffi.call/cls_64byte.c: Likewise.
4228 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4229 * testsuite/libffi.call/cls_19byte.c: Likewise.
4230 * testsuite/libffi.call/cls_18byte.c: Likewise.
4231 * testsuite/libffi.call/closure_fn4.c: Likewise.
4232 * testsuite/libffi.call/closure_fn5.c: Likewise.
4233 * testsuite/libffi.call/cls_schar.c: Likewise.
4234 * testsuite/libffi.call/cls_sint.c: Likewise.
4235 * testsuite/libffi.call/cls_sshort.c: Likewise.
4236 * testsuite/libffi.call/nested_struct2.c: Likewise.
4237 * testsuite/libffi.call/nested_struct3.c: Likewise.
4238
f145ed6b
AT
42392003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4240
4241 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4242 * testsuite/libffi.call/cls_uchar.c: Likewise.
4243 * testsuite/libffi.call/cls_uint.c: Likewise.
4244 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4245 * testsuite/libffi.call/cls_ushort.c: Likewise.
4246 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4247
2b04d015
AT
42482003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4249
4250 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4251 the initialization.
4252
57f542b3
AT
42532003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4254
2b04d015 4255 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
57f542b3
AT
4256 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4257
e61acf72
DD
42582003-10-22 David Daney <ddaney@avtrex.com>
4259
4260 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4261 __attribute__((__mode__(__SI__))) and friends.
4262
2461c08b
AS
42632003-10-22 Andreas Schwab <schwab@suse.de>
4264
4265 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4266
1450eb7a
AT
42672003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4268
4269 * configure.in: AC_LINK_FILES(ffitarget.h).
4270 * configure: Regenerate.
4271 * Makefile.in: Likewise.
4272 * include/Makefile.in: Likewise.
4273 * testsuite/Makefile.in: Likewise.
4274 * fficonfig.h.in: Likewise.
4275
42762003-10-21 Paolo Bonzini <bonzini@gnu.org>
4277 Richard Henderson <rth@redhat.com>
4278
4279 Avoid that ffi.h includes fficonfig.h.
4280
4281 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4282 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4283 (TARGET_SRC_MIPS_SGI): Removed.
4284 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4285 (MIPS_SGI): Removed.
4286 (CLEANFILES): Removed.
4287 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4288 targets.
4289 * acconfig.h: Removed.
4290 * configure.in: Compute sizeofs only for double and long double.
4291 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4292 into AC_DEFINE instead of using acconfig.h. Create
4293 include/ffitarget.h instead of include/fficonfig.h. Rename
4294 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4295 AC_DEFINE EH_FRAME_FLAGS.
4296 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4297 (hack_DATA): Add ffitarget.h.
4298 * include/ffi.h.in: Remove all system specific definitions.
4299 Declare raw API even if it is not installed, why bother?
4300 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4301 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4302 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4303 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4304 * include/ffi_common.h (bool): Do not define.
4305 (ffi_assert): Accept failed assertion.
4306 (ffi_type_test): Return void and accept file/line.
4307 (FFI_ASSERT): Pass stringized failed assertion.
4308 (FFI_ASSERT_AT): New macro.
4309 (FFI_ASSERT_VALID_TYPE): New macro.
4310 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4311 UINT64, SINT64): Define here with gcc's __attribute__ macro
4312 instead of in ffi.h
4313 (FLOAT32, ALIGN): Define here instead of in ffi.h
4314 * include/ffi-mips.h: Removed. Its content moved to
4315 src/mips/ffitarget.h after separating assembly and C sections.
4316 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4317 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4318 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4319 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4320 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4321 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4322 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4323 (ffi_type_test): Rewritten.
4324 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4325 FFI_ASSERT_VALID_TYPE.
4326 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4327 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4328 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4329 src/s390/ffitarget.h, src/sh/ffitarget.h,
4330 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4331 src/x86/ffitarget.h: New files.
4332 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4333 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4334 src/powerpc/aix.S, src/powerpc/darwin.S,
4335 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4336 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4337 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4338 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4339 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4340 include fficonfig.h
4341
27d54b2a
RO
43422003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4343
4344 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4345 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4346
0df6970d
AT
43472003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4348
4349 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4350 Used when FFI_DEBUG = 1.
4351
2612ffce
AM
43522003-10-14 Alan Modra <amodra@bigpond.net.au>
4353
4354 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4355 and align.
4356
d54f7354
RO
43572003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4358
4359 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4360 FFI_MIPS_O32 for O32 ABI.
4361
7a54c850
AT
43622003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4363
4364 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4365 SPARC64. Cleanup whitespaces.
4366
9e3bfa9b
AT
43672003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4368
4369 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4370 strongarm, xscale. Cleanup whitespaces.
4371 * testsuite/libffi.call/closure_fn1.c: Likewise.
4372 * testsuite/libffi.call/closure_fn2.c: Likewise.
4373 * testsuite/libffi.call/closure_fn3.c: Likewise.
4374 * testsuite/libffi.call/cls_12byte.c: Likewise.
4375 * testsuite/libffi.call/cls_16byte.c: Likewise.
4376 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4377 * testsuite/libffi.call/cls_20byte.c: Likewise.
4378 * testsuite/libffi.call/cls_24byte.c: Likewise.
4379 * testsuite/libffi.call/cls_2byte.c: Likewise.
4380 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4381 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4382 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4383 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4384 * testsuite/libffi.call/cls_4byte.c: Likewise.
4385 * testsuite/libffi.call/cls_5byte.c: Likewise.
4386 * testsuite/libffi.call/cls_6byte.c: Likewise.
4387 * testsuite/libffi.call/cls_7byte.c: Likewise.
4388 * testsuite/libffi.call/cls_8byte.c: Likewise.
4389 * testsuite/libffi.call/cls_double.c: Likewise.
4390 * testsuite/libffi.call/cls_float.c: Likewise.
4391 * testsuite/libffi.call/cls_uchar.c: Likewise.
4392 * testsuite/libffi.call/cls_uint.c: Likewise.
4393 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4394 * testsuite/libffi.call/cls_ushort.c: Likewise.
4395 * testsuite/libffi.call/nested_struct.c: Likewise.
4396 * testsuite/libffi.call/nested_struct1.c: Likewise.
4397 * testsuite/libffi.call/problem1.c: Likewise.
4398 * testsuite/libffi.special/unwindtest.cc: Likewise.
4399 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4400
3e86b595
DE
44012003-09-18 David Edelsohn <edelsohn@gnu.org>
4402
4403 * src/powerpc/aix.S: Cleanup whitespaces.
4404 * src/powerpc/aix_closure.S: Likewise.
4405
8d8369f8
AT
44062003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4407
4408 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4409 * src/powerpc/darwin_closure.S: Likewise.
4410 * src/powerpc/ffi_darwin.c: Likewise.
4411
69b182fd
AT
44122003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4413 David Edelsohn <edelsohn@gnu.org>
4414
4415 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4416 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4417 parameter stack.
4418 * src/powerpc/darwin_closure.S: Likewise.
4419 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4420 according to the Darwin/AIX ABI.
4421 (ffi_prep_cif_machdep): Likewise.
4422 (ffi_closure_helper_DARWIN): Likewise.
4423 Remove the outgoing parameter stack logic. Simplify the evaluation
4424 of the different CASE types.
4425 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4426 statement in the trampoline code.
4427
df805cdc
KK
44282003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4429
4430 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4431 for the register size.
4432 (ffi_closure_helper_SYSV): Handle the structure return value
4433 address correctly.
4434 (ffi_closure_helper_SYSV): Return the appropriate type when
4435 the registers are used for the structure return value.
4436 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4437 the 64-bit return value. Update copyright years.
4438
eb26c76c
RO
44392003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4440
4441 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4442 srcdir for ffi_mips.h.
4443
6350c02c
AM
44442003-09-12 Alan Modra <amodra@bigpond.net.au>
4445
4446 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4447 structure size.
4448 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4449 placement of float result.
4450 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4451 cast of "resp" for big-endian 64 bit machines.
4452
5af1c806
AM
44532003-09-11 Alan Modra <amodra@bigpond.net.au>
4454
4455 * src/types.c (double, longdouble): Merge identical SH and ARM
4456 typedefs, and add POWERPC64.
4457 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4458 struct split over gpr and rest.
4459 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4460 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4461
086a4bd7
AT
44622003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4463
4464 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4465 passing correctly.
c930d8a5 4466
e517f636
AM
44672003-09-09 Alan Modra <amodra@bigpond.net.au>
4468
4469 * configure: Regenerate.
4470
6f20d627
AT
44712003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4472
4473 * Makefile.am: Remove build rules for ffitest.
4474 * Makefile.in: Rebuilt.
c930d8a5 4475
6f20d627 44762003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
226660af
AT
4477
4478 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4479 about implicit declaration of abort().
4480
bbf3057b
AT
44812003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4482
4483 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4484 * Makefile.in: Rebuilt.
4485 * configure.in: Add dejagnu test framework.
4486 * configure: Rebuilt.
4487
4488 * testsuite/Makefile.am: New file.
4489 * testsuite/Makefile.in: Built
c930d8a5 4490 * testsuite/lib/libffi-dg.exp: New file.
bbf3057b
AT
4491 * testsuite/config/default.exp: Likewise.
4492 * testsuite/libffi.call/call.exp: Likewise.
4493 * testsuite/libffi.call/ffitest.h: Likewise.
4494 * testsuite/libffi.call/closure_fn0.c: Likewise.
4495 * testsuite/libffi.call/closure_fn1.c: Likewise.
4496 * testsuite/libffi.call/closure_fn2.c: Likewise.
4497 * testsuite/libffi.call/closure_fn3.c: Likewise.
4498 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4499 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4500 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4501 * testsuite/libffi.call/cls_2byte.c: Likewise.
4502 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4503 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4504 * testsuite/libffi.call/cls_4byte.c: Likewise.
4505 * testsuite/libffi.call/cls_5byte.c: Likewise.
4506 * testsuite/libffi.call/cls_6byte.c: Likewise.
4507 * testsuite/libffi.call/cls_7byte.c: Likewise.
4508 * testsuite/libffi.call/cls_8byte.c: Likewise.
4509 * testsuite/libffi.call/cls_12byte.c: Likewise.
4510 * testsuite/libffi.call/cls_16byte.c: Likewise.
4511 * testsuite/libffi.call/cls_20byte.c: Likewise.
4512 * testsuite/libffi.call/cls_24byte.c: Likewise.
4513 * testsuite/libffi.call/cls_double.c: Likewise.
4514 * testsuite/libffi.call/cls_float.c: Likewise.
4515 * testsuite/libffi.call/cls_uchar.c: Likewise.
4516 * testsuite/libffi.call/cls_uint.c: Likewise.
4517 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4518 * testsuite/libffi.call/cls_ushort.c: Likewise.
4519 * testsuite/libffi.call/float.c: Likewise.
4520 * testsuite/libffi.call/float1.c: Likewise.
4521 * testsuite/libffi.call/float2.c: Likewise.
4522 * testsuite/libffi.call/many.c: Likewise.
4523 * testsuite/libffi.call/many_win32.c: Likewise.
4524 * testsuite/libffi.call/nested_struct.c: Likewise.
4525 * testsuite/libffi.call/nested_struct1.c: Likewise.
4526 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4527 * testsuite/libffi.call/problem1.c: Likewise.
4528 * testsuite/libffi.call/promotion.c: Likewise.
4529 * testsuite/libffi.call/return_ll.c: Likewise.
4530 * testsuite/libffi.call/return_sc.c: Likewise.
4531 * testsuite/libffi.call/return_uc.c: Likewise.
4532 * testsuite/libffi.call/strlen.c: Likewise.
4533 * testsuite/libffi.call/strlen_win32.c: Likewise.
4534 * testsuite/libffi.call/struct1.c: Likewise.
4535 * testsuite/libffi.call/struct2.c: Likewise.
4536 * testsuite/libffi.call/struct3.c: Likewise.
4537 * testsuite/libffi.call/struct4.c: Likewise.
4538 * testsuite/libffi.call/struct5.c: Likewise.
4539 * testsuite/libffi.call/struct6.c: Likewise.
4540 * testsuite/libffi.call/struct7.c: Likewise.
4541 * testsuite/libffi.call/struct8.c: Likewise.
c930d8a5 4542 * testsuite/libffi.call/struct9.c: Likewise.
bbf3057b
AT
4543 * testsuite/libffi.special/special.exp: New file.
4544 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4545 * testsuite/libffi.special/unwindtest.cc: Likewise.
4546
c930d8a5 4547
996b4f8f
KK
45482003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4549
4550 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4551 copyright years.
4552
b00badcd
AM
45532003-08-02 Alan Modra <amodra@bigpond.net.au>
4554
4555 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4556 structure passing.
4557 (ffi_closure_helper_LINUX64): Likewise.
4558 * src/powerpc/linux64.S: Remove code writing to parm save area.
4559 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4560 address in lr from ffi_closure_helper_LINUX64 call to calculate
4561 table address. Optimize function tail.
4562
c1516eae
AT
45632003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4564
4565 * src/sparc/ffi.c: Handle all floating point registers.
4566 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4567
fc0e6222
GP
45682003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4569
4570 * README: Note that libffi is not part of GCC. Update the project
4571 URL and status.
4572
a1569df8
FS
45732003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4574
4575 * src/powerpc/ppc_closure.S: Include ffi.h.
4576
12e816bf
RO
45772003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4578
4579 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4580 Use C style comments.
4581
e860ed6d
KK
45822003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4583
4584 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4585 * Makefile.in: Regenerate.
4586 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4587 * configure: Regenerate.
4588 * include/ffi.h.in: Add SHmedia support.
4589 * src/sh64/ffi.c: New file.
4590 * src/sh64/sysv.S: New file.
4591
a733b15e
JJ
45922003-05-16 Jakub Jelinek <jakub@redhat.com>
4593
4594 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4595 should be read-only.
4596 * configure: Rebuilt.
4597 * fficonfig.h.in: Rebuilt.
4598 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4599 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4600 * src/powerpc/linux64.S: Likewise.
4601 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4602 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4603 if -fpic/-fPIC/-mrelocatable.
4604 * src/powerpc/powerpc_closure.S: Likewise.
4605 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4606 #write in .eh_frame flags.
4607 * src/sparc/v9.S: Likewise.
4608 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4609 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4610 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4611
bd19c9f4
JS
46122003-05-07 Jeff Sturm <jsturm@one-point.com>
4613
4614 Fixes PR bootstrap/10656
4615 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4616 support for .register pseudo-op.
4617 * src/sparc/v8.S: Use it.
4618 * fficonfig.h.in: Rebuilt.
4619 * configure: Rebuilt.
4620
e9b84181
JJ
46212003-04-18 Jakub Jelinek <jakub@redhat.com>
4622
4623 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4624 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4625 Make it the default on POWERPC64.
4626 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4627 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4628 * configure: Rebuilt.
4629 * src/powerpc/ffi.c (hidden): Define.
4630 (ffi_prep_args_SYSV): Renamed from
4631 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4632 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4633 ASM_NEEDS_REGISTERS64): New.
4634 (ffi_prep_args64): New function.
4635 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4636 (ffi_call): Likewise.
4637 (ffi_prep_closure): Likewise.
4638 (flush_icache): Surround by #ifndef POWERPC64.
4639 (ffi_dblfl): New union type.
4640 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4641 (ffi_closure_helper_LINUX64): New function.
4642 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4643 __powerpc64__.
4644 * src/powerpc/sysv.S: Likewise.
4645 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4646 * src/powerpc/linux64.S: New file.
4647 * src/powerpc/linux64_closure.S: New file.
4648 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4649 src/powerpc/linux64_closure.S.
4650 (TARGET_SRC_POWERPC): Likewise.
4651
4652 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4653 closure_test_fn3): Fix result printing on big-endian 64-bit
4654 machines.
4655 (main): Print tst2_arg instead of uninitialized tst2_result.
4656
4657 * src/ffitest.c (main): Hide what closure pointer really points to
4658 from the compiler.
4659
908a31e1
RE
46602003-04-16 Richard Earnshaw <rearnsha@arm.com>
4661
4662 * configure.in (arm-*-netbsdelf*): Add configuration.
4663 (configure): Regenerated.
4664
41a73c4c
LR
46652003-04-04 Loren J. Rittle <ljrittle@acm.org>
4666
4667 * include/Makefile.in: Regenerate.
4668
cd41c847
ZD
46692003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4670
4671 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4672 bit mode.
4673 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4674 Receive closure pointer through parameter, read args using
4675 __builtin_dwarf_cfa.
4676 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4677
6db450f9
AS
46782003-03-12 Andreas Schwab <schwab@suse.de>
4679
4680 * configure.in: Avoid trailing /. in toolexeclibdir.
4681 * configure: Rebuilt.
4682
70144e9c
AT
46832003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4684
c6900272 4685 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
70144e9c 4686
79e43f89
AT
46872003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4688
4689 * libffi/src/powerpc/darwin_closure.S:
4690 Fix alignement bug, allocate 8 bytes for the result.
c930d8a5 4691 * libffi/src/powerpc/aix_closure.S:
79e43f89
AT
4692 Likewise.
4693 * libffi/src/powerpc/ffi_darwin.c:
4694 Update stackframe description for aix/darwin_closure.S.
c930d8a5 4695
0fcc9e55
JJ
46962003-02-06 Jakub Jelinek <jakub@redhat.com>
4697
4698 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4699 attribute.
4700
63b87c2e
CC
47012003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4702 Andreas Schwab <schwab@suse.de>
4703
c6900272 4704 * configure.in: Adjust command to source config-ml.in to account
63b87c2e
CC
4705 for changes to the libffi_basedir definition.
4706 (libffi_basedir): Remove ${srcdir} from value and include trailing
4707 slash if nonempty.
c930d8a5 4708
c6900272 4709 * configure: Regenerate.
63b87c2e 4710
c33402e2
FS
47112003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4712
4713 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4714
fd2e49b2
AH
47152003-01-28 Andrew Haley <aph@redhat.com>
4716
4717 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4718 * src/x86/ffi64.c (ffi_prep_closure): New.
4719 (ffi_closure_UNIX64_inner): New.
4720 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4721
0e292c01
AO
47222003-01-27 Alexandre Oliva <aoliva@redhat.com>
4723
4724 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4725 Remove USE_LIBDIR conditional.
4726 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4727 * Makefile.in, configure: Rebuilt.
4728
acabc220
DE
47292003-01027 David Edelsohn <edelsohn@gnu.org>
4730
4731 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4732 * Makefile.in: Regenerate.
4733
be0acd42
AH
47342003-01-22 Andrew Haley <aph@redhat.com>
4735
4736 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4737 unwind info.
4738
ed695c8e
AT
47392003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4740
4741 * src/powerpc/darwin.S: Add unwind info.
4742 * src/powerpc/darwin_closure.S: Likewise.
4743
45ba15f4
AH
47442003-01-14 Andrew Haley <aph@redhat.com>
4745
4746 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4747 (ffi_prep_cif_machdep): Likewise.
4748 * src/x86/unix64.S: Add unwind info.
4749
4b5f402e
AJ
47502003-01-14 Andreas Jaeger <aj@suse.de>
4751
4752 * src/ffitest.c (main): Only use ffi_closures if those are
4753 supported.
4754
7b5102af
TT
47552003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4756
4757 * libffi/src/ffitest.c
c6900272 4758 add closure testcases
7b5102af
TT
4759
47602003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4761
4762 * libffi/src/powerpc/ffi.c
c6900272 4763 fix alignment bug for float (4 byte aligned iso 8 byte)
7b5102af 4764
5f7c78d8
GK
47652003-01-09 Geoffrey Keating <geoffk@apple.com>
4766
4767 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4768 * src/powerpc/darwin.S: Remove RCS version string.
4769
c75c7793
JS
47702003-01-03 Jeff Sturm <jsturm@one-point.com>
4771
4772 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4773 * src/ffitest.c (main): Use static storage for closure.
4774 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4775 * src/sparc/v8.S (ffi_closure_v8): New.
4776 * src/sparc/v9.S (ffi_closure_v9): New.
4777
eb3c46a1
RM
47782002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4779
4780 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4781 enumeration for X86_WIN32.
4782 * src/x86/win32.S: Added ffi_call_STDCALL function
4783 definition.
4784 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4785 switch cases for recognising FFI_STDCALL and
4786 calling ffi_call_STDCALL if target is X86_WIN32.
4787 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4788 stdcall versions of the "my_strlen" and "many"
4789 test functions (for X86_WIN32).
4790 Added test cases to test stdcall invocation using
4791 these functions.
4792
4977bab6
ZW
47932002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4794
4795 * src/sh/sysv.S: Add DWARF2 unwind info.
4796
67333e84
UW
47972002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4798
4799 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4800
bc3cf760
JW
48012002-11-26 Jim Wilson <wilson@redhat.com>
4802
4803 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4804
4977bab6
ZW
48052002-11-23 H.J. Lu <hjl@gnu.org>
4806
4807 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4808 Include ../config/accross.m4.
4809 * aclocal.m4; Rebuild.
4810 * configure: Likewise.
4811
18789f4e
UW
48122002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4813
4814 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4815
6bee5372
DD
48162002-11-11 DJ Delorie <dj@redhat.com>
4817
4818 * configure.in: Look for common files in the right place.
4819
8177895b
UW
48202002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4821
4822 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4823 raw data as _Jv_word values, not ffi_raw.
4824 (ffi_java_ptrarray_to_raw): Likewise.
4825 (ffi_java_rvalue_to_raw): New function.
4826 (ffi_java_raw_call): Call it.
4827 (ffi_java_raw_to_rvalue): New function.
4828 (ffi_java_translate_args): Call it.
4829 * src/ffitest.c (closure_test_fn): Interpret return value
4830 as ffi_arg, not int.
4831 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4832 FFI_TYPE_POINTER case.
4833 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4834 values extended to word size.
4835
af50f4c8
AJ
48362002-10-02 Andreas Jaeger <aj@suse.de>
4837
4838 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4839
5d297584
BT
48402002-10-01 Bo Thorsen <bo@smetana.suse.de>
4841
4842 * include/ffi.h.in: Fix i386 win32 compilation.
4843
c4f17c6f
UW
48442002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4845
4846 * configure.in: Add s390x-*-linux-* target.
4847 * configure: Regenerate.
4848 * include/ffi.h.in: Define S390X for s390x targets.
4849 (FFI_CLOSURES): Define for s390/s390x.
4850 (FFI_TRAMPOLINE_SIZE): Likewise.
4851 (FFI_NATIVE_RAW_API): Likewise.
4852 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4853 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4977bab6 4854 * src/s390/ffi.c: Major rework of existing code. Add support for
c4f17c6f
UW
4855 s390x targets. Add closure support.
4856 * src/s390/sysv.S: Likewise.
4857
d7b52625
RE
48582002-09-29 Richard Earnshaw <rearnsha@arm.com>
4859
4860 * src/arm/sysv.S: Fix typo.
4861
28165e22
RE
48622002-09-28 Richard Earnshaw <rearnsha@arm.com>
4863
4864 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4865 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4866 (ffi_call_SYSV): Handle soft-float.
4867
0b0f4163
BT
48682002-09-27 Bo Thorsen <bo@suse.de>
4869
4870 * include/ffi.h.in: Fix multilib x86-64 support.
4871
6c5d742e
KG
48722002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4873
4874 * Makefile.am (all-multi): Fix multilib parallel build.
4875
f4b2b0d6
KK
48762002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4877
4878 * configure.in (sh[34]*-*-linux*): Add brackets.
4879 * configure: Regenerate.
4880
ddebdfeb
KK
48812002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4882
4883 * Makefile.am: Add SH support.
4884 * Makefile.in: Regenerate.
4885 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4886 * configure: Regenerate.
4887 * include/ffi.h.in: Add SH support.
4888 * src/sh/ffi.c: New file.
4889 * src/sh/sysv.S: New file.
4890 * src/types.c: Add SH support.
4891
c94974ca
BT
48922002-07-16 Bo Thorsen <bo@suse.de>
4893
4894 * src/x86/ffi64.c: New file that adds x86-64 support.
4895 * src/x86/unix64.S: New file that handles argument setup for
4896 x86-64.
4897 * src/x86/sysv.S: Don't use this on x86-64.
4898 * src/x86/ffi.c: Don't use this on x86-64.
4899 Remove unused vars.
4900 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4901 for x86-64.
4902 * src/ffitest.c (struct6): New test that tests a special case in
4903 the x86-64 ABI.
4904 (struct7): Likewise.
4905 (struct8): Likewise.
4906 (struct9): Likewise.
4907 (closure_test_fn): Silence warning about this when it's not used.
4908 (main): Add the new tests.
4909 (main): Fix a couple of wrong casts and silence some compiler warnings.
4910 * include/ffi.h.in: Add x86-64 ABI definition.
4911 * fficonfig.h.in: Regenerate.
4912 * Makefile.am: Add x86-64 support.
4913 * configure.in: Likewise.
4914 * Makefile.in: Regenerate.
4915 * configure: Likewise.
4916
49172002-06-24 Bo Thorsen <bo@suse.de>
4918
4919 * src/types.c: Merge settings for similar architectures.
4920 Add x86-64 sizes and alignments.
4921
49222002-06-23 Bo Thorsen <bo@suse.de>
4923
4924 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4925 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4926 * src/mips/ffi.c (ffi_prep_args): Likewise.
4927 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4928
5be36a8f
L
49292002-07-18 H.J. Lu (hjl@gnu.org)
4930
4931 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4932 (libffi_la_SOURCES): Support MIPS_LINUX.
4933 (libffi_convenience_la_SOURCES): Likewise.
4934 * Makefile.in: Regenerated.
4935
4936 * configure.in (mips64*-*): Skip.
4937 (mips*-*-linux*): New.
4938 * configure: Regenerated.
4939
4940 * src/mips/ffi.c: Include <sgidefs.h>.
4941
ad5e163c
UW
49422002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4943
4944 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4945
ee4586c5
RS
49462002-05-27 Roger Sayle <roger@eyesopen.com>
4947
4948 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4949
b86aa7b0
BT
49502002-05-27 Bo Thorsen <bo@suse.de>
4951
4952 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4953 fix formatting.
4954
859f7aaf
AT
49552002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4956
4957 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4958 beginning of function (for older apple cc).
4959
6706f116
AO
49602002-05-08 Alexandre Oliva <aoliva@redhat.com>
4961
4962 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4963 script entry, and set LD to it when configuring multilibs.
4964 * configure: Rebuilt.
4965
fad655c8
JT
49662002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4967
4968 * configure.in (sparc64-*-netbsd*): Add target.
4969 (sparc-*-netbsdelf*): Likewise.
4970 * configure: Regenerate.
4971
189ab118
DM
49722002-04-28 David S. Miller <davem@redhat.com>
4973
4974 * configure.in, configure: Fix SPARC test in previous change.
4975
22bcf65c
GT
49762002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4977
4978 * Makefile.am: Add Linux for S/390 support.
4979 * Makefile.in: Regenerate.
4980 * configure.in: Add Linux for S/390 support.
4981 * configure: Regenerate.
4982 * include/ffi.h.in: Add Linux for S/390 support.
4983 * src/s390/ffi.c: New file from libffi CVS tree.
4984 * src/s390/sysv.S: New file from libffi CVS tree.
4985
5d84cf0b
JJ
49862002-04-28 Jakub Jelinek <jakub@redhat.com>
4987
4988 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4989 %r_disp32().
4990 * src/sparc/v8.S: Use it.
4991 * src/sparc/v9.S: Likewise.
4992 * fficonfig.h.in: Rebuilt.
4993 * configure: Rebuilt.
4994
cc382e5c
HB
49952002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4996
4997 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4998 correctly.
4999 * src/ia64/unix.S: Add unwind information. Fix comments.
5000 Save sp in a way that's compatible with unwind info.
5001 (ffi_call_unix): Correctly restore sp in all cases.
5002 * src/ia64/ffi.c: Add, fix comments.
5003
dc798645
JJ
50042002-04-08 Jakub Jelinek <jakub@redhat.com>
5005
5006 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5007
da00eaab
JT
50082002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5009
5010 * configure.in (alpha*-*-netbsd*): Add target.
5011 * configure: Regenerate.
5012
0c0b87ad
JS
50132002-04-04 Jeff Sturm <jsturm@one-point.com>
5014
5015 * src/sparc/v8.S: Add unwind info.
5016 * src/sparc/v9.S: Likewise.
5017
320d7e7a
KW
50182002-03-30 Krister Walfridsson <cato@df.lth.se>
5019
5020 * configure.in: Enable i*86-*-netbsdelf*.
5021 * configure: Rebuilt.
4977bab6 5022
c75e51ed
DB
50232002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5024
5025 PR other/2620
5026 * src/mips/n32.s: Delete
5027 * src/mips/o32.s: Delete
5028
5bb366e0
LR
50292002-03-21 Loren J. Rittle <ljrittle@acm.org>
5030
5031 * configure.in: Enable alpha*-*-freebsd*.
5032 * configure: Rebuilt.
5033
ce3b24a7
BM
50342002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5035
5036 * Makefile.am: libfficonvenience -> libffi_convenience.
5037 * Makefile.in: Rebuilt.
4977bab6 5038
1eb7ba30
BM
5039 * Makefile.am: Define ffitest_OBJECTS.
5040 * Makefile.in: Rebuilt.
ce3b24a7 5041
073ae293
AT
50422002-03-07 Andreas Tobler <toa@pop.agri.ch>
5043 David Edelsohn <edelsohn@gnu.org>
5044
5045 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5046 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5047 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5048 * Makefile.in: Regenerate.
5049 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5050 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5051 (flush_icache, flush_range): New functions.
5052 (ffi_closure_helper_DARWIN): New function.
5053 * src/powerpc/aix_closure.S: New file.
5054 * src/powerpc/darwin_closure.S: New file.
4977bab6 5055
02c521f4
JS
50562002-02-24 Jeff Sturm <jsturm@one-point.com>
5057
5058 * include/ffi.h.in: Add typedef for ffi_arg.
5059 * src/ffitest.c (main): Declare rint with ffi_arg.
4977bab6 5060
287dd527
AT
50612002-02-21 Andreas Tobler <toa@pop.agri.ch>
5062
5063 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5064 number of GPRs for floating-point arguments.
5065
e2f2e70a
AG
50662002-01-31 Anthony Green <green@redhat.com>
5067
5068 * configure: Rebuilt.
5069 * configure.in: Replace CHECK_SIZEOF and endian tests with
5070 cross-compiler friendly macros.
5071 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5072 macros.
5073
15b9b32f
DE
50742002-01-18 David Edelsohn <edelsohn@gnu.org>
5075
5076 * src/powerpc/darwin.S (_ffi_call_AIX): New.
1f7d5413 5077 * src/powerpc/aix.S (ffi_call_DARWIN): New.
15b9b32f 5078
2f4006f8
DE
50792002-01-17 David Edelsohn <edelsohn@gnu.org>
5080
5081 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5082 (TARGET_SRC_POWERPC_AIX): New.
5083 (POWERPC_AIX): New stanza.
5084 * Makefile.in: Regenerate.
5085 * configure.in: Add AIX case.
5086 * configure: Regenerate.
5087 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5088 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5089 size. Fix "long double" support.
5090 (ffi_call): Add FFI_AIX case.
5091 * src/powerpc/aix.S: New.
5092
3c017635
JH
50932001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5094
5095 Implement Darwin PowerPC ABI.
5096 * configure.in: Handle powerpc-*-darwin*.
5097 * Makefile.am: Set source files for POWERPC_DARWIN.
5098 * configure: Rebuilt.
5099 * Makefile.in: Rebuilt.
5100 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5101 POWERPC_DARWIN.
5102 * src/powerpc/darwin.S: New file.
5103 * src/powerpc/ffi_darwin.c: New file.
5104
cc712abf
JM
51052001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5106
5107 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5108
03a8de49
RO
51092001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5110
5111 * src/x86/sysv.S: Avoid gas-only .balign directive.
5112 Use C style comments.
5113
92a0e6c6
RO
51142001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5115
5116 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5117 Fixes PR bootstrap/3563.
5118
57482f58
RO
51192001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5120
5121 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5122
d7e2dd2f
RO
51232001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5124
5125 * configure.in: Recognize sparc*-sun-* host.
5126 * configure: Regenerate.
4977bab6 5127
be72207c
AH
51282001-06-06 Andrew Haley <aph@redhat.com>
5129
4075db8f 5130 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
be72207c 5131
552cb45a
AH
51322001-06-03 Andrew Haley <aph@redhat.com>
5133
4075db8f
BT
5134 * src/alpha/osf.S: Add unwind info.
5135 * src/powerpc/sysv.S: Add unwind info.
5136 * src/powerpc/ppc_closure.S: Likewise.
552cb45a 5137
7d45b968
JS
51382000-05-31 Jeff Sturm <jsturm@one-point.com>
5139
5140 * configure.in: Fix AC_ARG_ENABLE usage.
5141 * configure: Rebuilt.
5142
2a7f63c4
BM
51432001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5144
5145 * configure.in: Remove warning about beta code.
5146 * configure: Rebuilt.
5147
51482001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5149
03a55252
HB
5150 * src/ia64/unix.S: Restore stack pointer when returning from
5151 ffi_closure_UNIX.
5152 * src/ia64/ffi.c: Fix typo in comment.
5153
df5da1c4
JW
51542001-04-18 Jim Wilson <wilson@redhat.com>
5155
5156 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5157 to eliminate RAW DV.
5158
52c28977
BM
51592001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5160
5161 * Makefile.am: Make a libtool convenience library.
5162 * Makefile.in: Rebuilt.
5163
3b905056
BM
51642001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5165
5166 * configure.in: Use different syntax for subdirectory creation.
5167 * configure: Rebuilt.
5168
d6c4152a
JB
51692001-03-27 Jon Beniston <jon@beniston.com>
5170
5171 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5172 * configure: Rebuilt.
5173 * Makefile.am: Added X86_WIN32 target support.
5174 * Makefile.in: Rebuilt.
5175
5176 * include/ffi.h.in: Added X86_WIN32 target support.
5177
5178 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5179 * src/types.c: Added X86_WIN32 target support.
5180
5181 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5182 stuff removed and made to work with CygWin's gas.
5183
675cdab3
BM
51842001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5185
5186 * configure.in: Make target subdirectory in build dir.
5187 * Makefile.am: Override suffix based rules to specify correct output
5188 subdirectory.
5189 * Makefile.in: Rebuilt.
5190 * configure: Rebuilt.
5191
e5f8858a 51922001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
cc4c8975
KH
5193
5194 * src/powerpc/ppc_closure.S: New file.
5195 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5196 involving long long and register pairs.
5197 (ffi_prep_closure): New function.
5198 (flush_icache): Likewise.
5199 (ffi_closure_helper_SYSV): Likewise.
5200 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5201 (FFI_TRAMPOLINE_SIZE): Likewise.
5202 (FFI_NATIVE_RAW_API): Likewise.
5203 * Makefile.in: Rebuilt.
5204 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5205 (TARGET_SRC_POWERPC): Likewise.
5206
9450a929
TT
52072001-03-19 Tom Tromey <tromey@redhat.com>
5208
5209 * Makefile.in: Rebuilt.
5210 * Makefile.am (ffitest_LDFLAGS): New macro.
5211
4d2cf715
NC
52122001-03-02 Nick Clifton <nickc@redhat.com>
5213
5214 * include/ffi.h.in: Remove RCS ident string.
5215 * include/ffi_mips.h: Remove RCS ident string.
5216 * src/debug.c: Remove RCS ident string.
5217 * src/ffitest.c: Remove RCS ident string.
5218 * src/prep_cif.c: Remove RCS ident string.
5219 * src/types.c: Remove RCS ident string.
5220 * src/alpha/ffi.c: Remove RCS ident string.
5221 * src/alpha/osf.S: Remove RCS ident string.
5222 * src/arm/ffi.c: Remove RCS ident string.
5223 * src/arm/sysv.S: Remove RCS ident string.
5224 * src/mips/ffi.c: Remove RCS ident string.
5225 * src/mips/n32.S: Remove RCS ident string.
5226 * src/mips/o32.S: Remove RCS ident string.
5227 * src/sparc/ffi.c: Remove RCS ident string.
5228 * src/sparc/v8.S: Remove RCS ident string.
5229 * src/sparc/v9.S: Remove RCS ident string.
5230 * src/x86/ffi.c: Remove RCS ident string.
5231 * src/x86/sysv.S: Remove RCS ident string.
5232
7e5fd99f
JM
52332001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5234
5235 * include/ffi.h.in: Change sourceware.cygnus.com references to
5236 gcc.gnu.org.
5237
3f67ba6e
RH
52382000-12-09 Richard Henderson <rth@redhat.com>
5239
5240 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5241 (ffi_closure_osf_inner): Index rather than increment avalue
5242 and arg_types. Give ffi_closure_osf the raw return value type.
5243 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5244 promotion.
5245
52462000-12-07 Richard Henderson <rth@redhat.com>
29fe0479
RH
5247
5248 * src/raw_api.c (ffi_translate_args): Fix typo.
5249 (ffi_prep_closure): Likewise.
5250
5251 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5252 FFI_TRAMPOLINE_SIZE.
5253 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5254 cif->bytes for new ffi_call_osf implementation.
5255 (ffi_prep_args): Absorb into ...
5256 (ffi_call): ... here. Do all stack allocation here and
5257 avoid a callback function.
5258 (ffi_prep_closure, ffi_closure_osf_inner): New.
5259 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5260 (ffi_closure_osf): New.
5261
2f7bf5b7
AO
52622000-09-10 Alexandre Oliva <aoliva@redhat.com>
5263
ed1c1a1a
AO
5264 * config.guess, config.sub, install-sh: Removed.
5265 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5266 * Makefile.in: Rebuilt.
5267
2f7bf5b7
AO
5268 * acinclude.m4: Include libtool macros from the top level.
5269 * aclocal.m4, configure: Rebuilt.
5270
e15a68e7
AO
52712000-08-22 Alexandre Oliva <aoliva@redhat.com>
5272
5273 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5274 * configure: Rebuilt.
5275
7f8c11d5
SB
52762000-05-11 Scott Bambrough <scottb@netwinder.org>
5277
4977bab6
ZW
5278 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5279 memory correctly. Use conditional instructions, not branches where
7f8c11d5
SB
5280 possible.
5281
c5acf51f
TT
52822000-05-04 Tom Tromey <tromey@cygnus.com>
5283
5284 * configure: Rebuilt.
5285 * configure.in: Match `arm*-*-linux-*'.
5286 From Chris Dornan <cdornan@arm.com>.
5287
91bffbe9
JJ
52882000-04-28 Jakub Jelinek <jakub@redhat.com>
5289
5290 * Makefile.am (SUBDIRS): Define.
5291 (AM_MAKEFLAGS): Likewise.
5292 (Multilib support.): Add section.
5293 * Makefile.in: Rebuilt.
5294 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4075db8f
BT
5295 New variables. Set for gcc using -print-multi-lib. Export them
5296 to libtool.
5297 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5298 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5299 for -shared links.
5300 (extra_compiler_flags_value, extra_compiler_flags): Check these
5301 for extra compiler options which need to be passed down in
5302 compiler_flags.
91bffbe9 5303
bd66587e
AG
53042000-04-16 Anthony Green <green@redhat.com>
5305
5306 * configure: Rebuilt.
5307 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5308
3791773c
JJ
53092000-04-14 Jakub Jelinek <jakub@redhat.com>
5310
4075db8f 5311 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3791773c
JJ
5312 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5313 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5314 Replace all void * sizeofs with sizeof(int).
5315 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5316 different than DOUBLE.
5317 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5318 (ffi_prep_args_v9): New function.
5319 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5320 (ffi_V9_return_struct): New function.
5321 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5322 32bit code (not yet cross-arch calls).
5323 * src/sparc/v8.S: Add struct return delay nop.
5324 Handle long long.
5325 * src/sparc/v9.S: New file.
5326 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5327 is used on sparc64 only for structures larger than 32 bytes.
5328 Pass by reference for structures is done for structure arguments
5329 larger than 16 bytes.
5330 * src/ffitest.c (main): Use 64bit rint on sparc64.
5331 Run long long tests on sparc.
5332 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5333 sparc64.
5334 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5335 on sparc64.
5336 * configure.in (sparc-*-linux*): New supported target.
5337 (sparc64-*-linux*): Likewise.
5338 * configure: Rebuilt.
5339 * Makefile.am: Add v9.S to SPARC files.
5340 * Makefile.in: Likewise.
5341 (LINK): Surround $(CCLD) into double quotes, so that multilib
5342 compiles work correctly.
5343
db459595
APB
53442000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5345
5346 * configure: Rebuilt.
5347 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5348 proposed by Bryce McKinlay.
5349
c1f63902
TT
53502000-03-20 Tom Tromey <tromey@cygnus.com>
5351
5352 * Makefile.in: Hand edit for java_raw_api.lo.
5353
0f72dc9e
BM
53542000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5355
5356 * config.guess, config.sub: Update from the gcc tree.
5357 Fix for PR libgcj/168.
5358
3c18f2d1
TT
53592000-03-03 Tom Tromey <tromey@cygnus.com>
5360
323eee8a
TT
5361 * Makefile.in: Fixed ia64 by hand.
5362
3c18f2d1
TT
5363 * configure: Rebuilt.
5364 * configure.in (--enable-multilib): New option.
5365 (libffi_basedir): New subst.
5366 (AC_OUTPUT): Added multilib code.
5367
a2b10a92
TT
53682000-03-02 Tom Tromey <tromey@cygnus.com>
5369
5370 * Makefile.in: Rebuilt.
5371 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5372 directory name.
5373
dc5de370
HB
53742000-02-25 Hans Boehm <boehm@acm.org>
5375
5376 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5377 files.
5378 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5379 list.
5380 (ffi_prep_raw_closure): Use ffi_translate_args, not
5381 ffi_closure_translate.
5382 * src/java_raw_api.c: New file.
5383 * src/ffitest.c (closure_test_fn): New function.
5384 (main): Define `rint' as long long on IA64. Added new test when
5385 FFI_CLOSURES is defined.
5386 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5387 (ffi_abi): Recognize IA64.
5388 (ffi_raw): Added `flt' field.
5389 Added "Java raw API" code.
5390 * configure.in: Recognize ia64.
5391 * Makefile.am (TARGET_SRC_IA64): New macro.
5392 (libffi_la_common_SOURCES): Added java_raw_api.c.
5393 (libffi_la_SOURCES): Define in IA64 case.
5394
d79229bd
TT
53952000-01-04 Tom Tromey <tromey@cygnus.com>
5396
5397 * Makefile.in: Rebuilt with newer automake.
5398
2c33b220
TT
53991999-12-31 Tom Tromey <tromey@cygnus.com>
5400
5401 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5402
6ba9e3b0
TT
54031999-09-01 Tom Tromey <tromey@cygnus.com>
5404
5405 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5406 undefs.
5407 * fficonfig.h.in: Rebuilt.
5408 * configure: Rebuilt.
5409 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5410 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5411 * acconfig.h: Don't #undef PACKAGE or VERSION.
5412
63e5e3e0
AG
54131999-08-09 Anthony Green <green@cygnus.com>
5414
5415 * include/ffi.h.in: Try to work around messy header problem
5416 with PACKAGE and VERSION.
5417
5418 * configure: Rebuilt.
5419 * configure.in: Change version to 2.00-beta.
5420
4075db8f 5421 * fficonfig.h.in: Rebuilt.
63e5e3e0
AG
5422 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5423
5424 * src/x86/ffi.c (ffi_raw_call): Rename.
5425
54261999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5427
5428 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5429 (ffi_prep_incoming_args_SYSV): Ditto.
5430 (ffi_prep_closure): Ditto.
5431 (ffi_closure_raw_SYSV): Ditto.
5432 (ffi_prep_raw_closure): More ditto.
5433 (ffi_call_raw): Final ditto.
5434
5435 * include/ffi.h.in: Add definitions for closure and raw API.
5436
5437 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4977bab6 5438 FFI_TYPE_UINT64.
63e5e3e0
AG
5439
5440 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5441
5442 * src/raw_api.c: New file.
5443
5444 * include/ffi.h.in (ffi_raw): New type.
5445 (UINT_ARG, SINT_ARG): New defines.
5446 (ffi_closure, ffi_raw_closure): New types.
5447 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4977bab6 5448
63e5e3e0
AG
5449 * configure.in: Add check for endianness and sizeof void*.
5450
5451 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5452 instead of directly.
5453
5454 * configure: Rebuilt.
5455
5456Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5457
5458 * configure.in: Add x86 and powerpc BeOS configurations.
5459 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5460
54611999-05-09 Anthony Green <green@cygnus.com>
5462
5463 * configure.in: Add warning about this being beta code.
5464 Remove src/Makefile.am from the picture.
5465 * configure: Rebuilt.
5466
5467 * Makefile.am: Move logic from src/Makefile.am. Add changes
5468 to support libffi as a target library.
5469 * Makefile.in: Rebuilt.
5470
5471 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5472 Upgraded to new autoconf, automake, libtool.
5473
5474 * README: Tweaks.
5475
5476 * LICENSE: Update copyright date.
5477
5478 * src/Makefile.am, src/Makefile.in: Removed.
5479
54801998-11-29 Anthony Green <green@cygnus.com>
5481
5482 * include/ChangeLog: Removed.
5483 * src/ChangeLog: Removed.
5484 * src/mips/ChangeLog: Removed.
5485 * src/sparc/ChangeLog: Remboved.
5486 * src/x86/ChangeLog: Removed.
5487
5488 * ChangeLog.v1: Created.