]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
configure.host: Remove extra brackets for sh.
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
b1479ae3
KK
12015-01-13 Kaz Kojima <kkojima@gcc.gnu.org>
2
3 * configure.host: Remove extra brackets for sh.
4
ff8ebda1
L
52015-01-13 H.J. Lu <hongjiu.lu@intel.com>
6
7 PR bootstrap/64575
8 * configure.host (TARGET): Set to X86_64 if __x86_64__ is defined.
9
be723d1e
RH
102015-01-12 Richard Henderson <rth@redhat.com>
11
12 PR libffi/64572
13 * src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
14 (FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
15
ca46eab7
RH
162015-01-12 Richard Henderson <rth@redhat.com>
17
18 * src/x86/ffi.c (ffi_raw_call): Fill in frame.
19
b1760f7f
RH
202015-01-12 Richard Henderson <rth@redhat.com>
21
22 Merge to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16.
23
a699d672
L
242014-11-21 H.J. Lu <hongjiu.lu@intel.com>
25
26 PR bootstrap/63784
27 * configure: Regenerated.
28
ebf6d33b
FXC
292014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
30
31 PR target/63610
32 * configure: Regenerate.
33
bb8c2886
ILT
342014-10-15 Ian Lance Taylor <iant@google.com>
35
36 * configure.ac: If the compiler supports -Qunused-arguments, use
37 it when running the compiler on .s files.
38 * configure: Regenerated.
39
1138382b
JJ
402014-09-11 Jakub Jelinek <jakub@redhat.com>
41
42 * src/powerpc/linux64.S: Emit .note.GNU-stack even when
43 POWERPC64 is not defined.
44 * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2.
45
f54860ea
UB
462014-07-21 Uros Bizjak <ubizjak@gmail.com>
47
48 * src/alpha/ffi.c: Do not include stdlib.h.
49 (ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort.
50
a03bd005
TS
512014-07-04 Thomas Schwinge <thomas@codesourcery.com>
52
53 * testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
54 match to dg-runtest's.
55
8ec7c36a
SH
562014-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
57
58 * testsuite/lib/libffi.exp (load_gcc_lib): Register loaded libs.
59
54fde020
BE
602014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
61
62 Fix current cygwin-64 build problems.
63 * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
64 * src/x86/ffi.c: Add if defined(__CYGWIN__).
65 * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
66 handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
67 Added SEH information. Fixed formatting.
68
f7468577
JJ
692014-04-22 Jakub Jelinek <jakub@redhat.com>
70
71 PR other/43620
72 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
73 * Makefile.in: Regenerated.
74 * include/Makefile.in: Regenerated.
75 * man/Makefile.in: Regenerated.
76 * testsuite/Makefile.in: Regenerated.
77
5309143d
YZ
782014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
79
80 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
81 main CFA reg; update cfi_rel_offset.
82
248d745a
EB
832014-02-17 Eric Botcazou <ebotcazou@adacore.com>
84
85 PR libffi/60073
86 * src/sparc/v8.S: Assemble only if !SPARC64.
87 * src/sparc/v9.S: Remove obsolete comment.
88 * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
89 (V8_ABI_P): New macro.
90 (V9_ABI_P): Likewise.
91 (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
92 * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
93 (ffi_prep_args_v9): Compile only if SPARC64.
94 (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
95 (ffi_prep_cif_machdep): Guard access to nfixedargs field.
96 (ffi_prep_cif_machdep_var): Likewise.
97 (ffi_v9_layout_struct): Compile only if SPARC64.
98 (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
99 (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
100 (ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
101 (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
102 to nfixedargs field.
103
30255340
EB
1042014-02-13 Eric Botcazou <ebotcazou@adacore.com>
105
106 PR libffi/60073
107 * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
108 (FFI_EXTRA_CIF_FIELDS): Likewise.
109 (FFI_NATIVE_RAW_API): Move around.
110 * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from...
111 (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core.
112 (ffi_prep_cif_machdep_var): New function.
113 (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in
114 FP registers.
115 * doc/libffi.texi (Introduction): Fix inaccuracy.
116
e73d2479
AM
1172013-12-10 Alan Modra <amodra@gmail.com>
118
119 * src/powerpc/ffitarget.h: Import from upstream.
120 * src/powerpc/ffi_powerpc.h: Likewise.
121 * src/powerpc/ffi.c: Likewise.
122 * src/powerpc/ffi_sysv.c: Likewise.
123 * src/powerpc/ffi_linux64.c: Likewise.
124 * src/powerpc/sysv.S: Likewise.
125 * src/powerpc/ppc_closure.S: Likewise.
126 * src/powerpc/linux64.S: Likewise.
127 * src/powerpc/linux64_closure.S: Likewise.
128 * src/types.c: Likewise.
129 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
130 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
131 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
132 * include/ffi.h.in (ffi_prep_types): Declare.
133 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
134 * configure: Regenerate.
135 * fficonfig.h.in: Regenerate.
136 * Makefile.in: Regenerate.
137 * man/Makefile.in: Regenerate.
138 * include/Makefile.in: Regenerate.
139 * testsuite/Makefile.in: Regenerate.
140
3521ba8b
AM
1412013-11-18 Alan Modra <amodra@gmail.com>
142
fd4da58c
AM
143 * src/powerpc/ppc_closure.S: Don't bl .Luint128.
144
3521ba8b
AM
145 * src/powerpc/ffitarget.h: Import from upstream.
146 * src/powerpc/ffi.c: Likewise.
147 * src/powerpc/linux64.S: Likewise.
148 * src/powerpc/linux64_closure.S: Likewise.
149 * doc/libffi.texi: Likewise.
150 * testsuite/libffi.call/cls_double_va.c: Likewise.
151 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
152
3cbe17f7
AM
1532013-09-20 Alan Modra <amodra@gmail.com>
154
155 * configure: Regenerate.
156
40b45a6d
AM
1572013-06-25 Alan Modra <amodra@gmail.com>
158
159 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
160 before statements.
161 (ffi_prep_args64): Support little-endian.
162 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
163 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
164 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
165
1e1ba2d7
DH
1662013-05-22 Dominique d'Humieres <dominiq@lps.ens.fr>
167 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
168
169 PR libffi/56033
170 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
171 ffi_arg *.
172 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
173 * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
174 * testsuite/libffi.call/va_struct1.c (main): Likewise.
175
8280eba0
KT
1762013-03-22 Kai Tietz <ktietz@redhat.com>
177
178 * src/x86/win64.S: Make use of ffi_closure_win64_inner
179 symbol pc-relative.
180
bb78d7c4
DK
1812013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
182
183 * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
184 Move default definition outside enclosing #if scope.
185
8f093ea0
AT
1862013-02-06 Andreas Tobler <andreast@fgznet.ch>
187
188 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
189 DOUBLE equal LONGDOUBLE.
190
7b045477
TG
1912013-01-07 Thorsten Glaser <tg@mirbsd.org>
192
193 * testsuite/libffi.call/cls_uchar_va.c,
194 testsuite/libffi.call/cls_ushort_va.c,
195 testsuite/libffi.call/va_1.c: Testsuite fixes.
196
4e70f25f
AS
1972012-12-29 Andreas Schwab <schwab@linux-m68k.org>
198
199 * Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
200 (STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES)
201 (MAINTAINERCLEANFILES): Define.
202 (all-local, stamp-geninsrc, stamp-build-info): New targets.
203 (doc/libffi.info): Depend on $(STAMP_BUILD_INFO)
204 * configure.ac: Check for modern makeinfo. Add support for
205 --enable-generated-files-in-srcdir.
206 * libffi/mdate-sh: New file.
207 * testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite
208 lib dir.
209 (libffi-init): Properly set library paths for multilibs and add
210 path to libstdc++.
211 * configure: Regenerate.
212 * aclocal.m4: Regenerate.
213 * Makefile.in: Regenerate.
214 * doc/stamp-vti: Regenerate.
215 * doc/version.texi: Regenerate.
216 * fficonfig.h.in: Regenerate.
217 * include/Makefile.in: Regenerate.
218 * man/Makefile.in: Regenerate.
219 * testsuite/Makefile.in: Regenerate.
220
7054d980
AM
2212012-10-31 Alan Modra <amodra@gmail.com>
222
223 * src/powerpc/linux64_closure.S: Add new ABI support.
224 * src/powerpc/linux64.S: Likewise.
225
b4b575ce
AG
2262012-10-30 Magnus Granberg <zorry@gentoo.org>
227 Pavel Labushev <pavel.labushev@runbox.ru>
228
229 * configure.ac: New options pax_emutramp
230 * configure, fficonfig.h.in: Regenerated
231 * src/closures.c: New function emutramp_enabled_check() and
232 checks.
233
2342012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
235
236 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
237 lion) and future version.
238 * configure: Rebuild.
239
2402012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
241 Marcus Shawcroft <marcus.shawcroft at arm.com>
242
3521ba8b
AM
243 * README: Add details of aarch64 port.
244 * src/aarch64/ffi.c: New.
245 * src/aarch64/ffitarget.h: Likewise.
246 * src/aarch64/sysv.S: Likewise.
b4b575ce
AG
247 * Makefile.am: Support aarch64.
248 * configure.ac: Support aarch64.
249 * Makefile.in, configure: Rebuilt.
250
2512012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
252 Marcus Shawcroft <marcus.shawcroft at arm.com>
253
3521ba8b
AM
254 * testsuite/lib/libffi.exp: Add support for aarch64.
255 * testsuite/libffi.call/cls_struct_va1.c: New.
256 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
257 * testsuite/libffi.call/cls_uint_va.c: Likewise.
258 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
259 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
260 * testsuite/libffi.call/nested_struct11.c: Likewise.
261 * testsuite/libffi.call/uninitialized.c: Likewise.
262 * testsuite/libffi.call/va_1.c: Likewise.
263 * testsuite/libffi.call/va_struct1.c: Likewise.
264 * testsuite/libffi.call/va_struct2.c: Likewise.
265 * testsuite/libffi.call/va_struct3.c: Likewise.
b4b575ce
AG
266
2672012-10-12 Walter Lee <walt@tilera.com>
268
3521ba8b
AM
269 * Makefile.am: Add TILE-Gx/TILEPro support.
270 * configure.ac: Likewise.
271 * Makefile.in: Regenerate.
272 * configure: Likewise.
273 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
274 * src/tile: New directory.
275 * src/tile/ffi.c: New file.
276 * src/tile/ffitarget.h: Ditto.
277 * src/tile/tile.S: Ditto.
b4b575ce
AG
278
2792012-10-12 Matthias Klose <doko@ubuntu.com>
280
281 * generate-osx-source-and-headers.py: Normalize whitespace.
282
cbbd536a
DE
2832012-09-14 David Edelsohn <dje.gcc@gmail.com>
284
285 * configure: Regenerated.
286
c5a3fffa
AP
2872012-08-26 Andrew Pinski <apinski@cavium.com>
288
289 PR libffi/53014
290 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
291 soft-float.
292
aa5d8db0
UB
2932012-08-08 Uros Bizjak <ubizjak@gmail.com>
294
295 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
296 just return FFI_BAD_ABI when things are wrong.
297
1ff8c79b
UB
2982012-07-18 H.J. Lu <hongjiu.lu@intel.com>
299
300 PR libffi/53982
301 PR libffi/53973
302 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
303 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
304
3052012-05-16 H.J. Lu <hongjiu.lu@intel.com>
306
307 * configure: Regenerated.
308
b4b575ce
AG
3092012-05-05 Nicolas Lelong
310
311 * libffi.xcodeproj/project.pbxproj: Fixes.
312 * README: Update for iOS builds.
313
3142012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
315
316 * configure.ac: Add Blackfin/sysv support
317 * Makefile.am: Add Blackfin/sysv support
318 * src/bfin/ffi.c: Add Blackfin/sysv support
319 * src/bfin/ffitarget.h: Add Blackfin/sysv support
320
3212012-04-11 Anthony Green <green@moxielogic.com>
322
323 * Makefile.am (EXTRA_DIST): Add new script.
324 * Makefile.in: Rebuilt.
325
3262012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
327
328 * generate-ios-source-and-headers.py,
329 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
330 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
331 generation into an Xcode "run script" phase. Include both as
332 Xcode build scripts. Don't always regenerate config files.
333
3342012-04-10 Anthony Green <green@moxielogic.com>
335
336 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
337
3382012-04-06 Anthony Green <green@moxielogic.com>
339
340 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
341 * Makefile.in: Rebuilt.
342
3432012-04-06 Mike Lewis <mikelikespie@gmail.com>
344
345 * generate-ios-source-and-headers.py: New file.
346 * libffi.xcodeproj/project.pbxproj: New file.
347 * README: Update instructions on building iOS binary.
348 * build-ios.sh: Delete.
349
3502012-04-06 Anthony Green <green@moxielogic.com>
351
352 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
353 compilers, then use it.
354
3552012-04-06 H.J. Lu <hongjiu.lu@intel.com>
356
357 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
358
3592012-04-06 Anthony Green <green@moxielogic.com>
360
361 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
362 * testsuite/Makefile.in: Rebuilt.
363
3642012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
365
366 * include/ffi.h.in: Add missing trampoline table fields.
367 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
368 in CNAME.
369 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
370
3712012-03-29 Peter Rosin <peda@lysator.liu.se>
372
373 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
374 generation, fix the ENDP label and remove the surplus third arg
375 from the 'lea' insn.
376
3772012-03-29 Peter Rosin <peda@lysator.liu.se>
378
379 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
380 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
381 it. Also instruct the assembler to add a frame to the function.
382
3832012-03-23 Peter Rosin <peda@lysator.liu.se>
384
385 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
386 * Makefile.in: Rebuilt.
387 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
388 to all data exports, when compiling libffi clients using MSVC.
389
3902012-03-29 Peter Rosin <peda@lysator.liu.se>
391
392 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
393 make it the default for MSVC.
394 (FFI_TYPE_MS_STRUCT): New structure return convention.
395 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
396 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
397 instead of an ordinary FFI_TYPE_STRUCT.
398 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
399 (ffi_call): Likewise.
400 (ffi_prep_incoming_args_SYSV): Likewise.
401 (ffi_raw_call): Likewise.
402 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
403 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
404 return a pointer to the result structure in eax and don't pop
405 that pointer from the stack, the caller takes care of it.
406 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
407 (ffi_closure_raw_SYSV): Likewise.
408
4092012-03-22 Peter Rosin <peda@lysator.liu.se>
410
411 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
412 assembly version with Intel syntax.
413 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
414
4152012-03-23 Peter Rosin <peda@lysator.liu.se>
416
417 * testsuite/libffi.call/ffitest.h: Provide abstration of
418 __attribute__((fastcall)) in the form of a __FASTCALL__
419 define. Define it to __fastcall for MSVC.
420 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
421 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
422 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
423 * testsuite/libffi.call/strlen2_win32.c: Likewise.
424 * testsuite/libffi.call/struct1_win32.c: Likewise.
425 * testsuite/libffi.call/struct2_win32.c: Likewise.
426
4272012-03-22 Peter Rosin <peda@lysator.liu.se>
428
429 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
430 frame on function entry, MASM adds one automatically.
431
4322012-03-22 Peter Rosin <peda@lysator.liu.se>
433
434 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
435 bits in the MSVC headers.
436
4372012-03-22 Peter Rosin <peda@lysator.liu.se>
438
439 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
440 with no declarations after statements.
441 * testsuite/libffi.call/cls_16byte.c: Likewise.
442 * testsuite/libffi.call/cls_18byte.c: Likewise.
443 * testsuite/libffi.call/cls_19byte.c: Likewise.
444 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
445 * testsuite/libffi.call/cls_20byte.c: Likewise.
446 * testsuite/libffi.call/cls_20byte1.c: Likewise.
447 * testsuite/libffi.call/cls_24byte.c: Likewise.
448 * testsuite/libffi.call/cls_2byte.c: Likewise.
449 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
450 * testsuite/libffi.call/cls_3byte1.c: Likewise.
451 * testsuite/libffi.call/cls_3byte2.c: Likewise.
452 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
453 * testsuite/libffi.call/cls_4byte.c: Likewise.
454 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
455 * testsuite/libffi.call/cls_5byte.c: Likewise.
456 * testsuite/libffi.call/cls_64byte.c: Likewise.
457 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
458 * testsuite/libffi.call/cls_6byte.c: Likewise.
459 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
460 * testsuite/libffi.call/cls_7byte.c: Likewise.
461 * testsuite/libffi.call/cls_8byte.c: Likewise.
462 * testsuite/libffi.call/cls_9byte1.c: Likewise.
463 * testsuite/libffi.call/cls_9byte2.c: Likewise.
464 * testsuite/libffi.call/cls_align_double.c: Likewise.
465 * testsuite/libffi.call/cls_align_float.c: Likewise.
466 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
467 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
468 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
469 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
470 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
471 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
472 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
473 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
474 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
475 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
476 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
477 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
478 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
479 * testsuite/libffi.call/huge_struct.c: Likewise.
480 * testsuite/libffi.call/nested_struct.c: Likewise.
481 * testsuite/libffi.call/nested_struct1.c: Likewise.
482 * testsuite/libffi.call/nested_struct10.c: Likewise.
483 * testsuite/libffi.call/nested_struct2.c: Likewise.
484 * testsuite/libffi.call/nested_struct3.c: Likewise.
485 * testsuite/libffi.call/nested_struct4.c: Likewise.
486 * testsuite/libffi.call/nested_struct5.c: Likewise.
487 * testsuite/libffi.call/nested_struct6.c: Likewise.
488 * testsuite/libffi.call/nested_struct7.c: Likewise.
489 * testsuite/libffi.call/nested_struct8.c: Likewise.
490 * testsuite/libffi.call/nested_struct9.c: Likewise.
491 * testsuite/libffi.call/stret_large.c: Likewise.
492 * testsuite/libffi.call/stret_large2.c: Likewise.
493 * testsuite/libffi.call/stret_medium.c: Likewise.
494 * testsuite/libffi.call/stret_medium2.c: Likewise.
495 * testsuite/libffi.call/struct1.c: Likewise.
496 * testsuite/libffi.call/struct1_win32.c: Likewise.
497 * testsuite/libffi.call/struct2.c: Likewise.
498 * testsuite/libffi.call/struct2_win32.c: Likewise.
499 * testsuite/libffi.call/struct3.c: Likewise.
500 * testsuite/libffi.call/struct4.c: Likewise.
501 * testsuite/libffi.call/struct5.c: Likewise.
502 * testsuite/libffi.call/struct6.c: Likewise.
503 * testsuite/libffi.call/struct7.c: Likewise.
504 * testsuite/libffi.call/struct8.c: Likewise.
505 * testsuite/libffi.call/struct9.c: Likewise.
506 * testsuite/libffi.call/testclosure.c: Likewise.
507
5082012-03-21 Peter Rosin <peda@lysator.liu.se>
509
510 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
511 printing doubles (%lf is for long doubles).
512 (main): Likewise.
513
5142012-03-21 Peter Rosin <peda@lysator.liu.se>
515
516 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
517 (set_ld_library_path_env_vars): Add the library search dir to PATH
518 (and save PATH for later).
519 (restore_ld_library_path_env_vars): Restore PATH.
520
5212012-03-20 Peter Rosin <peda@lysator.liu.se>
522
523 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
524 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
525 visible outside the PROC, so that ffi_closure_THISCALL can see it.
526
5272012-03-20 Peter Rosin <peda@lysator.liu.se>
528
529 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
530 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
531 visible outside the PROC, so that ffi_closure_THISCALL can see it.
532
5332012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
534
535 * src/m68k/ffi.c: Add MINT support.
536 * src/m68k/sysv.S: Ditto.
537
5382012-03-19 chennam <csit@axway.com>
539
540 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
541 support.
542
5432012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
544
545 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
546 ffi_call_VFP().
547 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
548 ffi_closure_VFP.
549 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
550
efe2a4b7
PB
5512012-04-02 Peter Bergner <bergner@vnet.ibm.com>
552
553 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
554 Silence casting pointer to integer of different size warning.
555 Delete goto to previously deleted label.
556 (ffi_call): Silence possibly undefined warning.
557 (ffi_closure_helper_SYSV): Declare variable type.
558
b4b575ce
AG
5592012-04-02 Peter Rosin <peda@lysator.liu.se>
560
561 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
562 value in the Intel version as is already done for the AT&T version.
563 (ffi_closure_SYSV): Likewise.
564 (ffi_closure_raw_SYSV): Likewise.
565 (ffi_closure_STDCALL): Likewise.
566
60f9021b
KK
5672012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
568
569 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
570 just return FFI_BAD_ABI when things are wrong.
571 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
572
e5552514
DE
5732012-03-09 David Edelsohn <dje.gcc@gmail.com>
574
575 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
576 change to return value of ffi_closure_helper_DARWIN and load type
577 from return type.
578
34fa7690 5792012-03-03 H.J. Lu <hongjiu.lu@intel.com>
2c2a780f 580
34fa7690
AG
581 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
582 long.
583 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
584 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
585 first.
586
587 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
588 (ffi_arg): Set to unsigned long long for x32.
589 (ffi_sarg): Set to long long for x32.
2c2a780f 590
34fa7690 5912012-03-03 H.J. Lu <hongjiu.lu@intel.com>
ffc81ae2 592
34fa7690 593 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
ffc81ae2 594
34fa7690 5952012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
d86c2d94 596
34fa7690
AG
597 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
598 windows-like hosts.
599 * configure: Rebuilt.
d86c2d94 600
6adb7308
AG
6012012-02-27 Mikael Pettersson <mikpe@it.uu.se>
602
603 PR libffi/52223
604 * Makefile.am (FLAGS_TO_PASS): Define.
605 * Makefile.in: Regenerate.
606
34fa7690 6072012-02-23 Anthony Green <green@moxielogic.com>
a0dfc1fe 608
34fa7690
AG
609 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
610 directly.
a0dfc1fe 611
6adb7308
AG
6122012-02-23 Kai Tietz <ktietz@redhat.com>
613
614 PR libffi/52221
615 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
616 prototype.
617 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
618 thiscall-convention.
619 (ffi_raw_call): Use ffi_prep_args_raw.
620 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
621 implementation for stub.
622
1e98f62d
KT
6232012-02-10 Kai Tietz <ktietz@redhat.com>
624
625 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
626 windows target.
627 * configure: Regenerated.
34fa7690 628
893f4301
KT
6292012-02-08 Kai Tietz <ktietz@redhat.com>
630
631 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
632 also FFI_THISCALL.
633 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
634 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
635 (ffi_prep_closure_loc): Add FFI_THISCALL support.
636 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
637 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
638 for thiscall-calling convention.
639 * testsuite/libffi.call/closure_thiscall.c: New test.
640
9b850dd9
KT
6412012-01-28 Kai Tietz <ktietz@redhat.com>
642
643 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
644 argument to prototype for specify calling-convention.
645 (ffi_call): Add support for stdcall/thiscall convention.
646 (ffi_prep_args): Likewise.
647 (ffi_raw_call): Likewise.
648 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
649 FFI_FASTCALL.
650 * src/x86/win32.S (_ffi_call_win32): Add support for
651 fastcall/thiscall calling-convention calls.
652 * testsuite/libffi.call/fastthis1_win32.c: New test.
653 * testsuite/libffi.call/fastthis2_win32.c: New test.
654 * testsuite/libffi.call/fastthis3_win32.c: New test.
655 * testsuite/libffi.call/strlen2_win32.c: New test.
656 * testsuite/libffi.call/many2_win32.c: New test.
657 * testsuite/libffi.call/struct1_win32.c: New test.
658 * testsuite/libffi.call/struct2_win32.c: New test.
659
34fa7690
AG
6602012-01-23 Uros Bizjak <ubizjak@gmail.com>
661
662 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
663
6642012-01-23 Anthony Green <green@moxielogic.com>
665 Chris Young <cdyoung@ntlworld.com>
666
667 * configure.ac: Add Amiga support.
668 * configure: Rebuilt.
669
6702012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
671
672 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
673
c1d5e723
AS
6742012-01-23 Andreas Schwab <schwab@linux-m68k.org>
675
676 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
677 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
678
01ddefeb
JJ
6792012-01-19 Jakub Jelinek <jakub@redhat.com>
680
681 PR rtl-optimization/48496
682 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
683
51a9af17
RO
6842012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
685
686 * configure.ac (i?86-*-*): Set TARGET to X86_64.
687 * configure: Regenerate.
688
3b21983d
AP
6892011-12-07 Andrew Pinski <apinski@cavium.com>
690
69090788 691 PR libffi/50051
3b21983d
AP
692 * src/mips/n32.S: Add ".set mips4".
693
c6084f68
AT
6942011-11-21 Andreas Tobler <andreast@fgznet.ch>
695
696 * configure: Regenerate.
697
34fa7690
AG
6982011-11-12 David Gilbert <david.gilbert@linaro.org>
699
700 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
701 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
702 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
703 src/cris/ffi.c, src/prep_cif.c,
704 testsuite/libffi.call/cls_double_va.c,
705 testsuite/libffi.call/cls_longdouble_va.c,
706 testsuite/libffi.call/float_va.c: Many changes to support variadic
707 function calls.
708
7092011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
710
711 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
712 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
713 softfloat powerpc variants.
714
7152011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
716
717 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
718 * configure: Rebuilt.
719
7202011-11-12 Timothy Wall <twall@users.sf.net>
721
722 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
723 alignment of 4 for wince on ARM.
724
7252011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
726 Anthony Green <green@moxielogic.com>
727
728 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
729 instructions (not available on some cores, like the PPC440).
730
7312011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
732
733 * m4/ax_enable_builddir: Change from string comparison to numeric
734 comparison for wc output.
735 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
736 X 10.7.
737 * configure: Rebuilt.
738
7392011-11-12 Anthony Green <green@moxielogic.com>
740
741 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
742 files with debug info.
743 * Makefile.in: Rebuilt.
744
7452011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
746
747 * README: Update list of supported OpenBSD systems.
748
7492011-11-12 Anthony Green <green@moxielogic.com>
750
751 * libtool-version: Update.
752 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
753 FFI_DEBUG.
754 (libffi_la_SOURCES): Remove src/debug.c
755 (EXTRA_DIST): Add src/debug.c
756 * Makefile.in: Rebuilt.
757 * README: Update for 3.0.11.
758
8b01bdb0
RH
7592011-11-10 Richard Henderson <rth@redhat.com>
760
761 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
762 * configure, aclocal.m4: Rebuild.
763
b90c2c4c
IS
7642011-09-04 Iain Sandoe <iains@gcc.gnu.org>
765
766 PR libffi/49594
767 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
768 helper reference track the architecture pointer size.
769
4ac9cf2b
AH
7702011-08-25 Andrew Haley <aph@redhat.com>
771
772 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
773 instructions.
774 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
775
4d4a9b72
AH
7762011-07-11 Andrew Haley <aph@redhat.com>
777
3521ba8b 778 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
4d4a9b72 779
902233e0
RO
7802011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
781
782 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
783 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
784
2ac88e57
RO
7852011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
786
787 PR libffi/46660
788 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
789 mips-sgi-irix6*.
790 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
791
652de9ff
RO
7922011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
793
794 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
795 PRId8 instead of %hhu, %hhd.
796 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
797 PRIu8): Define.
798 [__sgi__] (PRId8, PRIu8): Define.
799
9d9305ea
RO
8002011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
801
802 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
803 Define.
804 Use them to handle ELF vs. ECOFF differences.
805 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
806
34fa7690
AG
8072011-03-30 Timothy Wall <twall@users.sf.net>
808
809 * src/powerpc/darwin.S: Fix unknown FDE encoding.
810 * src/powerpc/darwin_closure.S: ditto.
811
8122011-02-25 Anthony Green <green@moxielogic.com>
813
814 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
815 32-bit ABIs.
816
8172011-02-15 Anthony Green <green@moxielogic.com>
818
819 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
820 * configure: Rebuilt.
821
029c8f3e
RW
8222011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
823
824 * configure: Regenerate.
825
34fa7690
AG
8262011-02-13 Anthony Green <green@moxielogic.com>
827
828 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
829 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
830 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
831
832 * src/prep_cif.c (initialize_aggregate): Convert assertion into
833 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
834
835 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
836 just return FFI_BAD_ABI when things are wrong.
837 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
838 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
839 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
840 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
841 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
842
8432011-02-11 Anthony Green <green@moxielogic.com>
844
845 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
846 just return FFI_BAD_ABI when things are wrong.
847
30255340 8482011-02-11 Eric Botcazou <ebotcazou@adacore.com>
6adb7308
AG
849
850 * src/sparc/v9.S (STACKFRAME): Bump to 176.
851
34fa7690
AG
8522011-02-09 Stuart Shelton <srcshelton@gmail.com>
853
854 http://bugs.gentoo.org/show_bug.cgi?id=286911
855 * src/mips/ffitarget.h: Clean up error messages.
856 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
857 ffi_raw*.
858 * include/ffi.h.in: Add pragma for SGI compiler.
859
8602011-02-09 Anthony Green <green@moxielogic.com>
861
862 * configure.ac: Add powerpc64-*-darwin* support.
863
8642011-02-09 Anthony Green <green@moxielogic.com>
865
866 * README: Mention Interix.
867
8682011-02-09 Jonathan Callen <abcd@gentoo.org>
869
870 * configure.ac: Add Interix to win32/cygwin/mingw case.
871 * configure: Ditto.
872 * src/closures.c: Treat Interix like Cygwin, instead of as a
873 generic win32.
874
8752011-02-09 Anthony Green <green@moxielogic.com>
876
877 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
878 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
879 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
880 (ffi_prep_closure_loc): Check for bad ABI.
881 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
882 (initialize_aggregate): Check for bad types.
883
8842011-02-09 Landon Fuller <landonf@plausible.coop>
885
886 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
887 src/arm/trampoline.S.
888 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
889 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
890 * src/arm/ffi.c (ffi_trampoline_table)
891 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
892 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
893 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
894 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
895 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
896 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
897 separately.
898 * src/arm/sysv.S: Handle Apple iOS host.
899 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
900 * build-ios.sh: New file.
901 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
902 * README: Mention ARM iOS.
903
9042011-02-08 Oren Held <orenhe@il.ibm.com>
905
906 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
907 redefinition of mallinfo on HP-UX.
908
9092011-02-08 Ginn Chen <ginn.chen@oracle.com>
910
911 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
912 aggregate return ABI. Flush cache.
913 (ffi_prep_closure_loc): Flush cache.
914
9152011-02-11 Anthony Green <green@moxielogic.com>
916
917 From Tom Honermann <tom.honermann@oracle.com>:
918 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
919 AIX. Declare .ffi_prep_args. Insert nops after branch
920 instructions so that the AIX linker can insert TOC reload
921 instructions.
922 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
923
9242011-02-08 Ed <ed@kdtc.net>
925
926 * src/powerpc/asm.h: Fix grammar nit in comment.
927
9282011-02-08 Uli Link <ul.mcamafia@linkitup.de>
929
930 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
931
1bbb4741
RO
9322011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
933
934 PR libffi/46661
935 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
936 uintptr_t first.
937 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
938
34fa7690
AG
9392011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
940
941 * configure.ac: Fix x86 test for pc related relocs.
942 * configure: Rebuilt.
943
899fb23d
JS
9442011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
945
946 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
947 Handle case when CPU variant does not have long double support.
948 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
949 and cores with soft floating point.
950
38db4d09
JS
9512011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
952
953 * configure.ac: Add mips*-*-rtems* support.
954 * configure: Regenerate.
955 * src/mips/ffitarget.h: Ensure needed constants are available
956 for targets which do not have sgidefs.h.
957
214dab66
DK
9582011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
959
960 PR target/40125
961 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
962 * configure: Regenerate.
963
3a9f56e8
IS
9642010-12-18 Iain Sandoe <iains@gcc.gnu.org>
965
966 PR libffi/29152
967 PR libffi/42378
968 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
969 update comments.
970 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
971 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
972 * src/powerpc/darwin.S: Provide Darwin64 implementation,
973 update comments.
974 * src/powerpc/ffi_darwin.c: Likewise.
38be4072 975
b62305b0
RO
9762010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
977
978 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
979 backslashes.
980 (libffi_cv_as_string_pseudo_op): Likewise.
981 * configure: Regenerate.
982
fac68065
CLT
9832010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
984
985 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
986 (ffi_closure_VFP): Same.
987 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
988 directive.
989
ce9315a9
RO
9902010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
991
992 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
993 (PRIuPTR): Define.
994
e12bcbf4
RH
9952010-11-29 Richard Henderson <rth@redhat.com>
996 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
997
998 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
999 (.eh_frame): Use FDE_ENCODING.
1000 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1001
34fa7690
AG
10022010-11-22 Jacek Caban <jacek@codeweavers.com>
1003
1004 * configure.ac: Check for symbol underscores on mingw-w64.
1005 * configure: Rebuilt.
1006 * src/x86/win64.S: Correctly access extern symbols in respect to
1007 underscores.
1008
ed2a97eb
RO
10092010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1010
1011 * testsuite/lib/libffi-dg.exp: Rename ...
1012 * testsuite/lib/libffi.exp: ... to this.
1013 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1014 * libffi/testsuite/libffi.special/special.exp: Likewise.
1015
46e0720d
CLT
10162010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1017
1018 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1019 code, new parameter, and return value. Update comments.
1020 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1021 call to layout_vfp_args().
1022 (ffi_call_SYSV): Update declaration.
1023 (ffi_call_VFP): New declaration.
1024 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1025 when ABI is FFI_VFP.
1026 (ffi_closure_VFP): New declaration.
1027 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1028 ffi_prep_incoming_args_SYSV().
1029 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1030 case handling.
1031 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1032 construction under VFP hard-float.
1033 (rec_vfp_type_p): New function.
1034 (vfp_type_p): Same.
1035 (place_vfp_arg): Same.
1036 (layout_vfp_args): Same.
1037 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1038 based on __ARM_PCS_VFP.
1039 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1040 fields.
1041 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1042 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1043 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1044 direct call. Move function pointer load upwards.
1045 (ffi_call_VFP): New function.
1046 (ffi_closure_VFP): Same.
1047
1048 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1049 (dg-skip-if): New function.
1050 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1051 and compiler options include -mfloat-abi=hard.
1052 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1053
731fc5f0
JJ
10542010-10-01 Jakub Jelinek <jakub@redhat.com>
1055
1056 PR libffi/45677
1057 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1058 a multiple of 8.
1059 * testsuite/libffi.call/many2.c: New test.
1060
2cd86866
MW
10612010-08-20 Mark Wielaard <mjw@redhat.com>
1062
1063 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1064 returns NULL.
1065
87d072e0
AT
10662010-08-09 Andreas Tobler <andreast@fgznet.ch>
1067
1068 * configure.ac: Add target powerpc64-*-freebsd*.
1069 * configure: Regenerate.
1070 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1071 -mlong-double-128 only to linux targets.
1072 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1073 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1074 * testsuite/libffi.call/huge_struct.c: Likewise.
1075
34fa7690
AG
10762010-08-05 Dan Witte <dwitte@mozilla.com>
1077
3521ba8b
AM
1078 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1079 debug CRT when --enable-debug is given.
1080 * configure.ac: Define it.
1081 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
34fa7690
AG
1082
10832010-08-04 Dan Witte <dwitte@mozilla.com>
1084
1085 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1086 platforms.
1087 * src/x86/ffi.c: Remove redundant ifdef checks.
1088 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1089 for X86_ANY so return value space doesn't get added twice.
1090
10912010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1092
1093 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1094
10952010-07-22 Dan Witte <dwitte@mozilla.com>
1096
1097 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1098 * src/prep_cif.c: Fix ABI assertion.
3521ba8b 1099 * src/cris/ffi.c: Ditto.
34fa7690 1100
07b6d9ef
EP
11012010-07-10 Evan Phoenix <evan@fallingsnow.net>
1102
1103 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1104
3d420bdf
DH
11052010-07-07 Dan Horák <dan@danny.cz>
1106
1107 * include/ffi.h.in: Protect #define with #ifndef.
1108 * src/powerpc/ffitarget.h: Ditto.
1109 * src/s390/ffitarget.h: Ditto.
1110 * src/sparc/ffitarget.h: Ditto.
1111
4138b429
NR
11122010-07-07 Neil Roberts <neil@linux.intel.com>
1113
1114 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1115 16-bytes.
1116
f0ee5e3e
JJ
11172010-07-02 Jakub Jelinek <jakub@redhat.com>
1118
1119 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1120 * Makefile.in: Regenerated.
1121
d416abb4
RO
11222010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1123
1124 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1125 output, too.
1126 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1127 (libffi_cv_as_string_pseudo_op): Check for .string.
1128 * configure: Regenerate.
1129 * fficonfig.h.in: Regenerate.
1130 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1131
34fa7690
AG
11322010-05-11 Dan Witte <dwitte@mozilla.com>
1133
1134 * doc/libffi.tex: Document previous change.
1135
11362010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1137
1138 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1139
0af23729
MK
11402010-05-05 Michael Kohler <michaelkohler@live.com>
1141
1142 * src/dlmalloc.c (dlfree): Fix spelling.
1143 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1144 * configure.ac: Ditto.
1145 * configure: Rebuilt.
1146
7862d496
DW
11472010-04-13 Dan Witte <dwitte@mozilla.com>
1148
1149 * msvcc.sh: Build with -W3 instead of -Wall.
1150 * src/powerpc/ffi_darwin.c: Remove build warnings.
1151 * src/x86/ffi.c: Ditto.
1152 * src/x86/ffitarget.h: Ditto.
1153
49f6cd1f
DW
11542010-04-12 Dan Witte <dwitte@mozilla.com>
1155 Walter Meinl <wuno@lsvw.de>
1156
1157 * configure.ac: Add OS/2 support.
1158 * configure: Rebuilt.
1159 * src/closures.c: Ditto.
1160 * src/dlmalloc.c: Ditto.
1161 * src/x86/win32.S: Ditto.
1162
60d3aec4
JJ
11632010-04-07 Jakub Jelinek <jakub@redhat.com>
1164
be94d007 1165 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
60d3aec4 1166
4d9e8446
RW
11672010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1168
1169 * Makefile.in: Regenerate.
1170 * aclocal.m4: Regenerate.
1171 * include/Makefile.in: Regenerate.
1172 * man/Makefile.in: Regenerate.
1173 * testsuite/Makefile.in: Regenerate.
1174
34fa7690
AG
11752010-03-30 Dan Witte <dwitte@mozilla.com>
1176
1177 * msvcc.sh: Disable build warnings.
1178 * README (tested): Clarify windows build procedure.
1179
f4b130bb
RO
11802010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1181
1182 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1183 * configure: Regenerate.
1184 * fficonfig.h.in: Regenerate.
1185 * libffi/src/x86/unix64.S (.eh_frame)
1186 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1187
4736718a
MK
11882010-03-14 Matthias Klose <doko@ubuntu.com>
1189
1190 * src/x86/ffi64.c: Fix typo in comment.
1191 * src/x86/ffi.c: Use /* ... */ comment style.
1192
22faf004
RO
11932010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1194
1195 * doc/libffi.texi (The Closure API): Fix typo.
1196 * doc/libffi.info: Remove.
1197
694d3cfd
MK
11982010-02-15 Matthias Klose <doko@ubuntu.com>
1199
1200 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1201 __ARM_ARCH_7EM__.
1202
3ac097a5
AG
12032010-01-15 Anthony Green <green@redhat.com>
1204
1205 * README: Add notes on building with Microsoft Visual C++.
1206
12072010-01-15 Daniel Witte <dwitte@mozilla.com>
1208
1209 * msvcc.sh: New file.
1210
1211 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1212 * src/x86/ffi.c: Tweak function declaration and remove excess
1213 parens.
1214 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1215 ffi_closure.
1216
1217 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1218 function ffi_call_win32 on X86_WIN32.
1219 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1220 (ffi_call_STDCALL): Remove.
1221
1222 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1223 to ffi_prep_cif_machdep for x86.
1224 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1225
fc28e435
OK
12262010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1227
1228 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
38be4072 1229 Sun Studio compiler compatibility.
fc28e435 1230
f2e994f3
CI
12312010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1232
1233 * doc/libffi.texi: Add closure example.
1234
ec168029
RO
12352010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1236
1237 PR libffi/40701
1238 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1239 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1240 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1241 alpha*-dec-osf*.
1242 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1243 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1244 * testsuite/libffi.call/return_ll1.c: Likewise.
1245 * testsuite/libffi.call/stret_medium2.c: Likewise.
1246 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1247 MAP_FAILED to char *.
1248
86d1b9d1
RO
12492010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1250
1251 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1252
78542dee
AG
12532009-12-31 Anthony Green <green@redhat.com>
1254
1255 * README: Update for libffi 3.0.9.
1256
50117ecb
MK
12572009-12-27 Matthias Klose <doko@ubuntu.com>
1258
1259 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1260 appropriate.
1261 * configure: Rebuilt.
1262
bc472c00
AG
12632009-12-26 Anthony Green <green@redhat.com>
1264
1265 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1266 avr32*-*-*.
1267 * testsuite/libffi.call/cls_double_va.c: Ditto.
1268
d7e9538e
AT
12692009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1270
1271 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1272 and inttypes.h.
1273 * testsuite/libffi.special/unwindtest.cc: Ditto.
1274
cb14fcb8
AT
12752009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1276
1277 * configure.ac: Add amd64-*-openbsd*.
1278 * configure: Rebuilt.
1279 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1280 openbsd programs with -lpthread.
1281
1098bcf8
AG
12822009-12-26 Anthony Green <green@redhat.com>
1283
1284 * testsuite/libffi.call/cls_double_va.c,
1285 testsuite/libffi.call/cls_longdouble.c,
1286 testsuite/libffi.call/cls_longdouble_va.c,
1287 testsuite/libffi.call/cls_pointer.c,
1288 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1289 mips*-*-* and arm*-*-*.
1290 * testsuite/libffi.call/cls_align_longdouble_split.c,
1291 testsuite/libffi.call/cls_align_longdouble_split2.c,
1292 testsuite/libffi.call/stret_medium2.c,
1293 testsuite/libffi.call/stret_medium.c,
1294 testsuite/libffi.call/stret_large.c,
1295 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1296
a761df3d
AG
12972009-12-31 Kay Tietz <ktietz70@googlemail.com>
1298
1299 * testsuite/libffi.call/ffitest.h,
1300 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1301 definitions.
1302
13032009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1304
1305 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1306 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1307 * configure: Rebuilt.
1308 * Makefile.in: Rebuilt.
1309
493278be
AG
13102009-12-31 Anthony Green <green@redhat.com>
1311 Blake Chaffin.
1312
1313 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1314 Chaffin @ Apple.
1315
72b79d39
DE
13162009-12-28 David Edelsohn <edelsohn@gnu.org>
1317
1318 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1319 local variables.
1320 (aix_adjust_aggregate_sizes): New function.
1321 (ffi_prep_cif_machdep): Call it.
1322
99fba2c4
AT
13232009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1324
1325 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1326 * configure: Regenerate.
1327 * fficonfig.h.in: Likewise.
1328 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1329 Solaris/x86.
1330
302486f4
AS
13312009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1332
1333 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1334 when a float arguments is passed in memory.
1335 (ffi_closure_helper_SYSV): Mark general registers as used up when
1336 a 64bit or soft-float long double argument is passed in memory.
1337
b8f38e89 13382009-12-25 Matthias Klose <doko@ubuntu.com>
2c57b161
MK
1339
1340 * man/ffi_call.3: Fix #include in examples.
1341 * doc/libffi.texi: Add dircategory.
1342
c4205f77
FE
13432009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1344
1345 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1346 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1347 IRIX MIPSPro c99.
1348 * include/ffi_common.h: Added '__sgi' define to non
1349 '__attribute__((__mode__()))' integer typedefs.
302486f4 1350 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
c4205f77
FE
1351 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1352 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1353 FFI_LONGDOUBLE support and alignment(N32 only).
1354 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1355 fixed non '__attribute__((__mode__()))' integer typedefs.
1356 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1357 since they are Linux/GNU Assembler specific.
1358
124f60ab
BS
13592009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1360
1361 * configure.ac, Makefile.am, src/avr32/ffi.c,
1362 src/avr32/ffitarget.h,
1363 src/avr32/sysv.S: Add AVR32 port.
1364 * configure, Makefile.in: Rebuilt.
1365
938a483f
AT
13662009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1367
1368 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1369 * configure: Regenerate.
1370
2516c7cd
JDA
13712009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1372
1373 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1374
f93a40ea
JDA
13752009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1376
1377 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1378 type on HP-UX.
1379
6adb7308
AG
13802012-02-13 Kai Tietz <ktietz@redhat.com>
1381
1382 PR libffi/52221
1383 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1384 support for X86_WIN32.
1385 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1386
fb01d970
EB
13872009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1388
1389 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1390 double' arguments.
1391
2ea54b81
EB
13922009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1393
1394 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1395
dcb00f2e
RO
13962009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1397
1398 PR libffi/40700
1399 * src/closures.c [X86_64 && __sun__ && __svr4__]
1400 (FFI_MMAP_EXEC_WRIT): Define.
1401
6c6859a1
DD
14022009-12-08 David Daney <ddaney@caviumnetworks.com>
1403
1404 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1405 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1406 * testsuite/libffi.call/stret_large.c: Same.
1407 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1408 * testsuite/libffi.call/stret_large2.c: Same.
1409 * testsuite/libffi.call/stret_medium2.c: Same.
1410
9e7e65a0
DE
14112009-12-07 David Edelsohn <edelsohn@gnu.org>
1412
1413 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1414 typo.
1415
5d7fc941
DE
14162009-12-05 David Edelsohn <edelsohn@gnu.org>
1417
1418 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1419 code.
9e7e65a0 1420 * src/powerpc/aix_closure.S: Same.
6c6859a1 1421
43e02a8a
RW
14222009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1423
1424 * Makefile.in: Regenerate.
1425 * configure: Regenerate.
1426 * include/Makefile.in: Regenerate.
1427 * man/Makefile.in: Regenerate.
1428 * testsuite/Makefile.in: Regenerate.
1429
2f2d7386
DE
14302009-12-04 David Edelsohn <edelsohn@gnu.org>
1431
1432 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
302486f4 1433 linux64_closure.S.
6c6859a1 1434
6078f50a
UB
14352009-12-04 Uros Bizjak <ubizjak@gmail.com>
1436
1437 PR libffi/41908
1438 * src/x86/ffi64.c (classify_argument): Update from
1439 gcc/config/i386/i386.c.
1440 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1441 SSE registers directly.
1442 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1443 for x86_64 linux targets.
1444
0c552622
DE
14452009-12-04 David Edelsohn <edelsohn@gnu.org>
1446
1447 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1448 pfr for long double split between fpr13 and stack.
1449
afb5e622
DE
14502009-12-03 David Edelsohn <edelsohn@gnu.org>
1451
1452 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1453 fparg_count twice for long double.
1454
be311914
DE
14552009-12-03 David Edelsohn <edelsohn@gnu.org>
1456
1457 PR libffi/42243
1458 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1459
a27c4040
UB
14602009-12-03 Uros Bizjak <ubizjak@gmail.com>
1461
1462 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
ddf6c187 1463 Remove xfails for x86 linux targets.
a27c4040 1464
7837c247
DE
14652009-12-02 David Edelsohn <edelsohn@gnu.org>
1466
1467 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1468 case.
1469
14702009-12-01 David Edelsohn <edelsohn@gnu.org>
6d518d3b
DE
1471
1472 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1473 register usage. Call ffi_prep_args directly. Add long double
1474 return value support.
1475 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1476 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1477 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1478 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1479 mode.
1480 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1481 into case.
1482 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1483 Allocate result area between params and FPRs.
1484
5751cf6f
DE
14852009-11-30 David Edelsohn <edelsohn@gnu.org>
1486
1487 PR target/35484
1488 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1489 AIX64.
1490 * src/powerpc/aix.S: Implement AIX64 version.
1491 * src/powerpc/aix_closure.S: Implement AIX64 version.
1492 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1493 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1494 support.
1495 (ffi_prep_cif_machdep): Same.
1496 (ffi_call): Same.
1497 (ffi_closure_helper_DARWIN): Same.
1498
2265f646
AT
14992009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1500
1501 PR libffi/41908
1502 * testsuite/libffi.call/testclosure.c: New test.
1503
ef6ed66d
KT
15042009-09-28 Kai Tietz <kai.tietz@onevision.com>
1505
1506 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1507 assembly version use of ___chkstk.
1508
29d1370a
MK
15092009-09-23 Matthias Klose <doko@ubuntu.com>
1510
1511 PR libffi/40242, PR libffi/41443
1512 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1513 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1514 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1515 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1516 for -mfloat-abi=softfp to work.
1517
987ce557
LR
15182009-09-17 Loren J. Rittle <ljrittle@acm.org>
1519
1520 PR testsuite/32843 (strikes again)
1521 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1522 enable proper extension on char and short.
1523
5cbf8c8d
DD
15242009-09-15 David Daney <ddaney@caviumnetworks.com>
1525
1526 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1527 handling for FFI_TYPE_POINTER.
1528 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1529 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1530 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1531 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1532 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1533 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1534 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1535 structure and pointer returns.
1536 (ffi_closure_N32): Add handling for pointer returns.
1537 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1538 calc_n32_return_struct_flags): Handle soft-float.
1539 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1540 (ffi_call_N32): Declare proper argument types.
1541 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1542 soft-float.
1543
df58e648
RW
15442009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1545
1546 * configure.ac (AC_PREREQ): Bump to 2.64.
1547
5213506e
RW
15482009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1549
70fa0efa
RW
1550 * Makefile.am (install-html, install-pdf): Remove.
1551 * Makefile.in: Regenerate.
1552
5213506e
RW
1553 * Makefile.in: Regenerate.
1554 * aclocal.m4: Regenerate.
1555 * configure: Regenerate.
1556 * fficonfig.h.in: Regenerate.
1557 * include/Makefile.in: Regenerate.
1558 * man/Makefile.in: Regenerate.
1559 * testsuite/Makefile.in: Regenerate.
1560
34fa7690
AG
15612011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1562
1563 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1564 * configure: Rebuilt.
1565
1b3b24c2
RW
15662009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1567
1568 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1569
723512ba
DK
15702009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1571
1572 PR libffi/40807
1573 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1574 return types for X86_WIN32.
1575 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1576 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1577 _ffi_closure_STDCALL): Likewise.
1578
1579 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1580 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1581
33cde516
RS
15822009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1583
1584 PR testsuite/40699
1585 PR testsuite/40707
1586 PR testsuite/40709
1587 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1588 2009-06-30 commits.
1589
edd3a61c
RS
15902009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1591
1592 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1593 to "" before adding paths. (This reinstates an assignment that
1594 was removed by my 2009-06-30 commit, but changes the initial
1595 value from "." to "".)
1596
33d1a550
L
15972009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1598
1599 PR testsuite/40601
1600 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1601 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1602 empty.
1603
b30bfd40
RS
16042009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1605
1606 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1607 to ld_library_path. Use add_path. Add just find_libgcc_s
1608 to ld_library_path, not every libgcc multilib directory.
1609
6975f17f
WL
16102009-06-16 Wim Lewis <wiml@hhhh.org>
1611
1612 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1613 supposed to be callee-saved.
1614 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1615 return buffer for odd-size structs.
1616
7bbcc286
AT
16172009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1618
1619 PR libffi/40444
1620 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1621 allow_stack_execute for Darwin.
1622
fe673cc9
AH
16232009-06-16 Andrew Haley <aph@redhat.com>
1624
1625 * configure.ac (TARGETDIR): Add missing blank lines.
1626 * configure: Regenerate.
1627
3bc462c2
AH
16282009-06-16 Andrew Haley <aph@redhat.com>
1629
1630 * testsuite/libffi.call/cls_align_sint64.c,
1631 testsuite/libffi.call/cls_align_uint64.c,
1632 testsuite/libffi.call/cls_longdouble_va.c,
1633 testsuite/libffi.call/cls_ulonglong.c,
1634 testsuite/libffi.call/return_ll1.c,
1635 testsuite/libffi.call/stret_medium2.c: Fix printf format
1636 specifiers.
1637 * testsuite/libffi.call/ffitest.h,
1638 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1639
081b044b
AH
16402009-06-15 Andrew Haley <aph@redhat.com>
1641
1642 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1643 * testsuite/libffi.call/err_bad_abi.c: Likewise.
302486f4 1644
062b8279
AH
16452009-06-12 Andrew Haley <aph@redhat.com>
1646
1647 * Makefile.am: Remove info_TEXINFOS.
1648
16492009-06-12 Andrew Haley <aph@redhat.com>
1650
1651 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1652 testsuite/libffi.call/cls_align_uint64.c,
1653 testsuite/libffi.call/cls_ulonglong.c,
1654 testsuite/libffi.call/return_ll1.c,
1655 testsuite/libffi.call/stret_medium2.c: Fix printf format
1656 specifiers.
1657 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1658
16592009-06-11 Timothy Wall <twall@users.sf.net>
1660
1661 * Makefile.am,
302486f4
AS
1662 configure.ac,
1663 include/ffi.h.in,
1664 include/ffi_common.h,
1665 src/closures.c,
1666 src/dlmalloc.c,
1667 src/x86/ffi.c,
1668 src/x86/ffitarget.h,
1669 src/x86/win64.S (new),
062b8279 1670 README: Added win64 support (mingw or MSVC)
302486f4
AS
1671 * Makefile.in,
1672 include/Makefile.in,
1673 man/Makefile.in,
1674 testsuite/Makefile.in,
1675 configure,
1676 aclocal.m4: Regenerated
1677 * ltcf-c.sh: properly escape cygwin/w32 path
1678 * man/ffi_call.3: Clarify size requirements for return value.
1679 * src/x86/ffi64.c: Fix filename in comment.
1680 * src/x86/win32.S: Remove unused extern.
1681
1682 * testsuite/libffi.call/closure_fn0.c,
1683 testsuite/libffi.call/closure_fn1.c,
1684 testsuite/libffi.call/closure_fn2.c,
1685 testsuite/libffi.call/closure_fn3.c,
1686 testsuite/libffi.call/closure_fn4.c,
1687 testsuite/libffi.call/closure_fn5.c,
1688 testsuite/libffi.call/closure_fn6.c,
062b8279
AH
1689 testsuite/libffi.call/closure_stdcall.c,
1690 testsuite/libffi.call/cls_12byte.c,
1691 testsuite/libffi.call/cls_16byte.c,
1692 testsuite/libffi.call/cls_18byte.c,
1693 testsuite/libffi.call/cls_19byte.c,
1694 testsuite/libffi.call/cls_1_1byte.c,
1695 testsuite/libffi.call/cls_20byte.c,
1696 testsuite/libffi.call/cls_20byte1.c,
1697 testsuite/libffi.call/cls_24byte.c,
1698 testsuite/libffi.call/cls_2byte.c,
1699 testsuite/libffi.call/cls_3_1byte.c,
1700 testsuite/libffi.call/cls_3byte1.c,
3521ba8b
AM
1701 testsuite/libffi.call/cls_3byte2.c,
1702 testsuite/libffi.call/cls_4_1byte.c,
1703 testsuite/libffi.call/cls_4byte.c,
1704 testsuite/libffi.call/cls_5_1_byte.c,
1705 testsuite/libffi.call/cls_5byte.c,
1706 testsuite/libffi.call/cls_64byte.c,
1707 testsuite/libffi.call/cls_6_1_byte.c,
1708 testsuite/libffi.call/cls_6byte.c,
1709 testsuite/libffi.call/cls_7_1_byte.c,
1710 testsuite/libffi.call/cls_7byte.c,
1711 testsuite/libffi.call/cls_8byte.c,
1712 testsuite/libffi.call/cls_9byte1.c,
1713 testsuite/libffi.call/cls_9byte2.c,
1714 testsuite/libffi.call/cls_align_double.c,
1715 testsuite/libffi.call/cls_align_float.c,
1716 testsuite/libffi.call/cls_align_longdouble.c,
1717 testsuite/libffi.call/cls_align_longdouble_split.c,
1718 testsuite/libffi.call/cls_align_longdouble_split2.c,
1719 testsuite/libffi.call/cls_align_pointer.c,
1720 testsuite/libffi.call/cls_align_sint16.c,
1721 testsuite/libffi.call/cls_align_sint32.c,
1722 testsuite/libffi.call/cls_align_sint64.c,
1723 testsuite/libffi.call/cls_align_uint16.c,
1724 testsuite/libffi.call/cls_align_uint32.c,
1725 testsuite/libffi.call/cls_align_uint64.c,
1726 testsuite/libffi.call/cls_dbls_struct.c,
1727 testsuite/libffi.call/cls_double.c,
1728 testsuite/libffi.call/cls_double_va.c,
1729 testsuite/libffi.call/cls_float.c,
1730 testsuite/libffi.call/cls_longdouble.c,
1731 testsuite/libffi.call/cls_longdouble_va.c,
1732 testsuite/libffi.call/cls_multi_schar.c,
1733 testsuite/libffi.call/cls_multi_sshort.c,
1734 testsuite/libffi.call/cls_multi_sshortchar.c,
1735 testsuite/libffi.call/cls_multi_uchar.c,
1736 testsuite/libffi.call/cls_multi_ushort.c,
1737 testsuite/libffi.call/cls_multi_ushortchar.c,
1738 testsuite/libffi.call/cls_pointer.c,
1739 testsuite/libffi.call/cls_pointer_stack.c,
1740 testsuite/libffi.call/cls_schar.c,
1741 testsuite/libffi.call/cls_sint.c,
1742 testsuite/libffi.call/cls_sshort.c,
1743 testsuite/libffi.call/cls_uchar.c,
1744 testsuite/libffi.call/cls_uint.c,
1745 testsuite/libffi.call/cls_ulonglong.c,
1746 testsuite/libffi.call/cls_ushort.c,
1747 testsuite/libffi.call/err_bad_abi.c,
1748 testsuite/libffi.call/err_bad_typedef.c,
1749 testsuite/libffi.call/float2.c,
1750 testsuite/libffi.call/huge_struct.c,
1751 testsuite/libffi.call/nested_struct.c,
1752 testsuite/libffi.call/nested_struct1.c,
1753 testsuite/libffi.call/nested_struct10.c,
1754 testsuite/libffi.call/nested_struct2.c,
1755 testsuite/libffi.call/nested_struct3.c,
1756 testsuite/libffi.call/nested_struct4.c,
1757 testsuite/libffi.call/nested_struct5.c,
1758 testsuite/libffi.call/nested_struct6.c,
1759 testsuite/libffi.call/nested_struct7.c,
1760 testsuite/libffi.call/nested_struct8.c,
1761 testsuite/libffi.call/nested_struct9.c,
1762 testsuite/libffi.call/problem1.c,
1763 testsuite/libffi.call/return_ldl.c,
1764 testsuite/libffi.call/return_ll1.c,
1765 testsuite/libffi.call/stret_large.c,
1766 testsuite/libffi.call/stret_large2.c,
1767 testsuite/libffi.call/stret_medium.c,
1768 testsuite/libffi.call/stret_medium2.c,
302486f4
AS
1769 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1770 of checking for MMAP. Use intptr_t instead of long casts.
062b8279 1771
f43def61
KK
17722009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1773
1774 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1775 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1776 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1777
6aa0b218
AH
17782009-06-09 Andrew Haley <aph@redhat.com>
1779
1780 * src/x86/freebsd.S: Add missing file.
1781
b7b857bb
AH
17822009-06-08 Andrew Haley <aph@redhat.com>
1783
1784 Import from libffi 3.0.8:
1785
1786 * doc/libffi.texi: New file.
1787 * doc/libffi.info: Likewise.
1788 * doc/stamp-vti: Likewise.
1789 * man/Makefile.am: New file.
1790 * man/ffi_call.3: New file.
1791
1792 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1793 src/dlmalloc.c.
1794 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1795
1796 * configure.ac: Bump version to 3.0.8.
1797 parisc*-*-linux*: Add.
1798 i386-*-freebsd* | i386-*-openbsd*: Add.
1799 powerpc-*-beos*: Add.
1800 AM_CONDITIONAL X86_FREEBSD: Add.
1801 AC_CONFIG_FILES: Add man/Makefile.
1802
1803 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1804
491e6ad1
AH
18052009-06-08 Andrew Haley <aph@redhat.com>
1806
1807 * README: Import from libffi 3.0.8.
1808
3b5b1a73
AH
18092009-06-08 Andrew Haley <aph@redhat.com>
1810
1811 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1812 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1813 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1814 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1815
1816 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1817 * testsuite/libffi.call/stret_medium.c: Likewise.
1818 * testsuite/libffi.call/stret_large2.c: Likewise.
1819 * testsuite/libffi.call/stret_large.c: Likewise.
1820
18212008-12-26 Timothy Wall <twall@users.sf.net>
1822
302486f4
AS
1823 * testsuite/libffi.call/cls_longdouble.c,
1824 testsuite/libffi.call/cls_longdouble_va.c,
1825 testsuite/libffi.call/cls_align_longdouble.c,
1826 testsuite/libffi.call/cls_align_longdouble_split.c,
1827 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1828 failures on x86_64 cygwin/mingw.
3b5b1a73
AH
1829
18302008-12-22 Timothy Wall <twall@users.sf.net>
1831
302486f4
AS
1832 * testsuite/libffi.call/closure_fn0.c,
1833 testsuite/libffi.call/closure_fn1.c,
1834 testsuite/libffi.call/closure_fn2.c,
1835 testsuite/libffi.call/closure_fn3.c,
1836 testsuite/libffi.call/closure_fn4.c,
1837 testsuite/libffi.call/closure_fn5.c,
1838 testsuite/libffi.call/closure_fn6.c,
1839 testsuite/libffi.call/closure_loc_fn0.c,
1840 testsuite/libffi.call/closure_stdcall.c,
1841 testsuite/libffi.call/cls_align_pointer.c,
1842 testsuite/libffi.call/cls_pointer.c,
1843 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1844 pointer to integer (intptr_t).
1845 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
3b5b1a73
AH
1846
18472008-07-24 Anthony Green <green@redhat.com>
1848
302486f4
AS
1849 * testsuite/libffi.call/cls_dbls_struct.c,
1850 testsuite/libffi.call/cls_double_va.c,
1851 testsuite/libffi.call/cls_longdouble.c,
1852 testsuite/libffi.call/cls_longdouble_va.c,
1853 testsuite/libffi.call/cls_pointer.c,
1854 testsuite/libffi.call/cls_pointer_stack.c,
1855 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1856 compiler warnings.
3b5b1a73
AH
1857
18582008-03-04 Anthony Green <green@redhat.com>
302486f4
AS
1859 Blake Chaffin
1860 hos@tamanegi.org
1861
1862 * testsuite/libffi.call/cls_align_longdouble_split2.c
1863 testsuite/libffi.call/cls_align_longdouble_split.c
1864 testsuite/libffi.call/cls_dbls_struct.c
1865 testsuite/libffi.call/cls_double_va.c
1866 testsuite/libffi.call/cls_longdouble.c
1867 testsuite/libffi.call/cls_longdouble_va.c
1868 testsuite/libffi.call/cls_pointer.c
1869 testsuite/libffi.call/cls_pointer_stack.c
1870 testsuite/libffi.call/err_bad_abi.c
1871 testsuite/libffi.call/err_bad_typedef.c
1872 testsuite/libffi.call/stret_large2.c
1873 testsuite/libffi.call/stret_large.c
1874 testsuite/libffi.call/stret_medium2.c
1875 testsuite/libffi.call/stret_medium.c: New tests from Apple.
3b5b1a73 1876
56faec5e
AH
18772009-06-05 Andrew Haley <aph@redhat.com>
1878
1879 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1880 libffi.
1881
90409e4c
AH
18822009-06-04 Andrew Haley <aph@redhat.com>
1883
1884 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1885 stdcall changes.
1886
b1393750 18872008-02-26 Anthony Green <green@redhat.com>
302486f4 1888 Thomas Heller <theller@ctypes.org>
b1393750 1889
302486f4
AS
1890 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1891 comment.
b1393750
AH
1892
18932008-02-03 Timothy Wall <twall@users.sf.net>
1894
302486f4
AS
1895 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1896 offset based on code pointer, not data pointer.
b1393750
AH
1897
18982008-01-31 Timothy Wall <twall@users.sf.net>
1899
302486f4
AS
1900 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1901 closures.
1902 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1903 closures.
1904 * src/x86/win32.S: Add assembly for stdcall closure.
1905 * src/x86/ffi.c: Initialize stdcall closure trampoline.
b1393750 1906
96baa251
AH
19072009-06-04 Andrew Haley <aph@redhat.com>
1908
1909 * include/ffi.h.in: Change void (*)() to void (*)(void).
1910 * src/x86/ffi.c: Likewise.
1911
7446546a
AH
19122009-06-04 Andrew Haley <aph@redhat.com>
1913
1914 * src/powerpc/ppc_closure.S: Insert licence header.
1915 * src/powerpc/linux64_closure.S: Likewise.
1916 * src/m68k/sysv.S: Likewise.
1917
1918 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1919 * src/powerpc/ffi.c: Likewise.
1920 * src/powerpc/ffi_darwin.c: Likewise.
1921 * src/m32r/ffi.c: Likewise.
1922 * src/sh64/ffi.c: Likewise.
1923 * src/x86/ffi64.c: Likewise.
1924 * src/alpha/ffi.c: Likewise.
1925 * src/alpha/osf.S: Likewise.
1926 * src/frv/ffi.c: Likewise.
1927 * src/s390/ffi.c: Likewise.
1928 * src/pa/ffi.c: Likewise.
1929 * src/pa/hpux32.S: Likewise.
1930 * src/ia64/unix.S: Likewise.
1931 * src/ia64/ffi.c: Likewise.
1932 * src/sparc/ffi.c: Likewise.
1933 * src/mips/ffi.c: Likewise.
1934 * src/sh/ffi.c: Likewise.
1935
19362008-02-15 David Daney <ddaney@avtrex.com>
1937
302486f4
AS
1938 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1939 Define (conditionally), and use it to include cachectl.h.
1940 (ffi_prep_closure_loc): Fix cache flushing.
1941 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
7446546a 1942
5f933ef0
AH
19432009-06-04 Andrew Haley <aph@redhat.com>
1944
1945 include/ffi.h.in,
1946 src/arm/ffitarget.h,
1947 src/arm/ffi.c,
1948 src/arm/sysv.S,
1949 src/powerpc/ffitarget.h,
1950 src/closures.c,
1951 src/sh64/ffitarget.h,
1952 src/sh64/ffi.c,
1953 src/sh64/sysv.S,
1954 src/types.c,
1955 src/x86/ffi64.c,
1956 src/x86/ffitarget.h,
1957 src/x86/win32.S,
1958 src/x86/darwin.S,
1959 src/x86/ffi.c,
1960 src/x86/sysv.S,
1961 src/x86/unix64.S,
1962 src/alpha/ffitarget.h,
1963 src/alpha/ffi.c,
1964 src/alpha/osf.S,
1965 src/m68k/ffitarget.h,
1966 src/frv/ffitarget.h,
1967 src/frv/ffi.c,
1968 src/s390/ffitarget.h,
1969 src/s390/sysv.S,
1970 src/cris/ffitarget.h,
1971 src/pa/linux.S,
1972 src/pa/ffitarget.h,
1973 src/pa/ffi.c,
1974 src/raw_api.c,
1975 src/ia64/ffitarget.h,
1976 src/ia64/unix.S,
1977 src/ia64/ffi.c,
1978 src/ia64/ia64_flags.h,
1979 src/java_raw_api.c,
1980 src/debug.c,
1981 src/sparc/v9.S,
1982 src/sparc/ffitarget.h,
1983 src/sparc/ffi.c,
1984 src/sparc/v8.S,
1985 src/mips/ffitarget.h,
1986 src/mips/n32.S,
1987 src/mips/o32.S,
1988 src/mips/ffi.c,
1989 src/prep_cif.c,
1990 src/sh/ffitarget.h,
1991 src/sh/ffi.c,
1992 src/sh/sysv.S: Update license text.
1993
84c40c4a
DK
19942009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1995
1996 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1997 (.eh_frame): Add FDE for it.
1998
8353cd27
DK
19992009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2000
2001 * configure.ac: Also check if assembler supports pc-relative
2002 relocs on X86_WIN32 targets.
2003 * configure: Regenerate.
2004 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2005 (_ffi_call_SYSV): Add missing function type symbol .def and
2006 add EH markup labels.
2007 (_ffi_call_STDCALL): Likewise.
2008 (_ffi_closure_SYSV): Likewise.
2009 (_ffi_closure_raw_SYSV): Likewise.
2010 (.eh_frame): Add hand-crafted EH data.
2011
748086b7
JJ
20122009-04-09 Jakub Jelinek <jakub@redhat.com>
2013
2014 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2015 version 3 of the GNU General Public License and to point readers
2016 at the COPYING3 file and the FSF's license web page.
2017 * testsuite/libffi.call/call.exp: Likewise.
2018 * testsuite/libffi.special/special.exp: Likewise.
2019
7a9d3fe8
RW
20202009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2021
2022 * configure: Regenerate.
2023
4d3d4078
RO
20242008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2025
2026 PR libffi/26048
2027 * configure.ac (HAVE_AS_X86_PCREL): New test.
2028 * configure: Regenerate.
2029 * fficonfig.h.in: Regenerate.
2030 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2031 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2032 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2033 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2034 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2035 (.Lload_table): Likewise.
2036 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2037
baafc534
RW
20382008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2039
2040 * configure: Regenerate.
2041
da17a98b
EB
20422008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2043
2044 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2045 signed/unsigned int8/16 return values.
2046 * src/sparc/v8.S (ffi_call_v8): Likewise.
2047 (ffi_closure_v8): Likewise.
2048
80c6c2cb 20492008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
302486f4 2050 Steve Ellcey <sje@cup.hp.com>
80c6c2cb
PG
2051
2052 * configure: Regenerate for new libtool.
2053 * Makefile.in: Ditto.
2054 * include/Makefile.in: Ditto.
2055 * aclocal.m4: Ditto.
2056
d7f68a67
AT
20572008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2058
2059 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2060 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2061 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2062 Adjust copyright notice.
2063 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2064 register or two register to use for FFI_SYSV structs.
2065 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2066 (ffi_closure_helper_SYSV): Fix the return type for
2067 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2068 Adjust copyright notice.
2069
130f4c50
KK
20702008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2071
2072 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2073 int.
2074
18c04407
RW
20752008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2076
2077 * configure: Regenerate.
2078 * include/Makefile.in: Regenerate.
2079 * testsuite/Makefile.in: Regenerate.
2080
cd985f66
JM
20812008-06-07 Joseph Myers <joseph@codesourcery.com>
2082
2083 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2084 powerpc-*-beos*): Remove.
2085 * configure: Regenerate.
2086
7afa92c5
JB
20872008-05-09 Julian Brown <julian@codesourcery.com>
2088
2089 * Makefile.am (LTLDFLAGS): New.
2090 (libffi_la_LDFLAGS): Use above.
2091 * Makefile.in: Regenerate.
2092
deb984e6
PB
20932008-04-18 Paolo Bonzini <bonzini@gnu.org>
2094
2095 PR bootstrap/35457
2096 * aclocal.m4: Regenerate.
2097 * configure: Regenerate.
2098
3e9608a5
KK
20992008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2100
2101 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2102 * src/sh64/sysv.S: Likewise.
2103
feb51530
MK
21042008-03-26 Daniel Jacobowitz <dan@debian.org>
2105
2106 * src/arm/sysv.S: Fix ARM comment marker.
2107
21082008-03-26 Jakub Jelinek <jakub@redhat.com>
2109
2110 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2111 * src/s390/sysv.S: Likewise.
2112 * src/powerpc/ppc_closure.S: Likewise.
2113 * src/powerpc/sysv.S: Likewise.
2114 * src/x86/unix64.S: Likewise.
2115 * src/x86/sysv.S: Likewise.
2116 * src/sparc/v8.S: Likewise.
2117 * src/sparc/v9.S: Likewise.
2118 * src/m68k/sysv.S: Likewise.
2119 * src/arm/sysv.S: Likewise.
2120
38d24731
RW
21212008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2122
2123 * aclocal.m4: Regenerate.
2124 * configure: Likewise.
2125 * Makefile.in: Likewise.
2126 * include/Makefile.in: Likewise.
2127 * testsuite/Makefile.in: Likewise.
2128
2e250fa2
BK
21292008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2130 Andreas Tobler <a.tobler@schweiz.org>
2131
2132 * configure.ac: Add amd64-*-freebsd* target.
2133 * configure: Regenerate.
2134
7f92e242
L
21352008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2136
2137 PR libffi/34612
2138 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2139 returning struct.
2140
2141 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2142 tests.
2143
95d4f544
DE
21442008-01-24 David Edelsohn <edelsohn@gnu.org>
2145
2146 * configure: Regenerate.
2147
79ca8fc0
AT
21482008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2149
2150 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2151
d7b07cc7
AT
21522008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2153
2154 PR testsuite/32843
2155 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2156 signed/unsigned int8/16 for X86_DARWIN.
2157 Updated copyright info.
2158 Handle one and two byte structs with special cif->flags.
2159 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2160 Updated copyright info.
2161 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2162 sysv.S
2163 Remove code to pop args from the stack after call.
2164 Special-case signed/unsigned for int8/16, one and two byte structs.
2165 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2166 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2167 FFI_TYPE_SINT32.
2168 Updated copyright info.
2169
c94ae2e4
DD
21702007-12-08 David Daney <ddaney@avtrex.com>
2171
302486f4 2172 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
c94ae2e4
DD
2173 SUBU, add with ADDU and use smaller code sequences.
2174
3875b6d7 21752007-12-07 David Daney <ddaney@avtrex.com>
44be66a1 2176
3875b6d7
DD
2177 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2178 type.
2179
4c42b3d8
DD
21802007-12-06 David Daney <ddaney@avtrex.com>
2181
2182 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2183 defined.
2184 (ffi_java_raw): New typedef.
2185 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2186 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2187 ffi_java_raw.
2188 (ffi_java_raw_closure) : Same.
2189 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2190 parameter types.
2191 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2192 FFI_SIZEOF_JAVA_RAW.
2193 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2194 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2195 sizeof(ffi_java_raw) for alignment calculations.
2196 (ffi_java_ptrarray_to_raw): Same.
2197 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
302486f4 2198 if FFI_SIZEOF_JAVA_RAW == 4.
4c42b3d8
DD
2199 (ffi_java_raw_to_rvalue): Same.
2200 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2201 (ffi_java_translate_args): Same.
2202 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2203 parameter types.
2204 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2205
3ef50b62
DD
22062007-12-06 David Daney <ddaney@avtrex.com>
2207
302486f4 2208 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
3ef50b62
DD
2209 pointer values.
2210
16287148
AT
22112007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2212
2213 PR libffi/31937
2214 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2215 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2216 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2217 set the NUM_FPR_ARG_REGISTERS according to.
2218 Add support for potential soft-float support under hard-float
2219 architecture.
2220 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2221 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2222 to the FFI_LINUX_SOFT_FLOAT ABI.
2223 (ffi_prep_cif_machdep): Likewise.
2224 (ffi_closure_helper_SYSV): Likewise.
2225 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2226 on archs where __NO_FPRS__ is true.
2227 Add FFI_TYPE_UINT128 support.
2228 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2229 Adjust copyright notice.
2230
a4b7c9cd
AT
22312007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2232
2233 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2234 * include/ffi_common.h: ... here.
2235 Update copyright.
2236
e84296c6
AT
22372007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2238
2239 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2240 * src/powerpc/linux64.S: Likewise.
2241 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2242 * testsuite/libffi.call/return_ldl.c: New test.
2243
cb642590
AH
22442007-09-04 <aph@redhat.com>
2245
2246 * src/arm/sysv.S (UNWIND): New.
2247 (Whole file): Conditionally compile unwinder directives.
2248 * src/arm/sysv.S: Add unwinder directives.
2249
2250 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2251 Only treat r0 as a struct address if we're actually returning a
2252 struct by address.
2253 Only copy the bytes that are actually within a struct.
2254 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2255 is returned in r0, not passed by address.
2256 (ffi_call): Allocate a word-sized temporary for the case where
2257 a composite is returned in r0.
2258 (ffi_prep_incoming_args_SYSV): Align as necessary.
2259
22602007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2261
302486f4 2262 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
cb642590
AH
2263 directly using the sys_cacheflush syscall.
2264
22652007-07-27 Andrew Haley <aph@redhat.com>
2266
2267 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2268
8d5c5e35
MR
22692007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2270
2271 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2272 * configure.ac: Likewise.
2273 * Makefile.in: Regenerate.
2274 * include/Makefile.in: Likewise.
2275 * testsuite/Makefile.in: Likewise.
2276 * configure: Likewise.
2277
787b0d19
DD
22782007-08-24 David Daney <ddaney@avtrex.com>
2279
2280 * testsuite/libffi.call/return_sl.c: New test.
2281
dfbb3e36
DD
22822007-08-10 David Daney <ddaney@avtrex.com>
2283
2284 * testsuite/libffi.call/cls_multi_ushort.c,
2285 testsuite/libffi.call/cls_align_uint16.c,
2286 testsuite/libffi.call/nested_struct1.c,
2287 testsuite/libffi.call/nested_struct3.c,
2288 testsuite/libffi.call/cls_7_1_byte.c,
2289 testsuite/libffi.call/nested_struct5.c,
2290 testsuite/libffi.call/cls_double.c,
2291 testsuite/libffi.call/nested_struct7.c,
2292 testsuite/libffi.call/cls_sint.c,
2293 testsuite/libffi.call/nested_struct9.c,
2294 testsuite/libffi.call/cls_20byte1.c,
2295 testsuite/libffi.call/cls_multi_sshortchar.c,
2296 testsuite/libffi.call/cls_align_sint64.c,
2297 testsuite/libffi.call/cls_3byte2.c,
2298 testsuite/libffi.call/cls_multi_schar.c,
2299 testsuite/libffi.call/cls_multi_uchar.c,
2300 testsuite/libffi.call/cls_19byte.c,
2301 testsuite/libffi.call/cls_9byte1.c,
2302 testsuite/libffi.call/cls_align_float.c,
2303 testsuite/libffi.call/closure_fn1.c,
2304 testsuite/libffi.call/problem1.c,
2305 testsuite/libffi.call/closure_fn3.c,
2306 testsuite/libffi.call/cls_sshort.c,
2307 testsuite/libffi.call/closure_fn5.c,
2308 testsuite/libffi.call/cls_align_double.c,
2309 testsuite/libffi.call/nested_struct.c,
2310 testsuite/libffi.call/cls_2byte.c,
2311 testsuite/libffi.call/nested_struct10.c,
2312 testsuite/libffi.call/cls_4byte.c,
2313 testsuite/libffi.call/cls_6byte.c,
2314 testsuite/libffi.call/cls_8byte.c,
2315 testsuite/libffi.call/cls_multi_sshort.c,
2316 testsuite/libffi.call/cls_align_sint16.c,
2317 testsuite/libffi.call/cls_align_uint32.c,
2318 testsuite/libffi.call/cls_20byte.c,
2319 testsuite/libffi.call/cls_float.c,
2320 testsuite/libffi.call/nested_struct2.c,
2321 testsuite/libffi.call/cls_5_1_byte.c,
2322 testsuite/libffi.call/nested_struct4.c,
2323 testsuite/libffi.call/cls_24byte.c,
2324 testsuite/libffi.call/nested_struct6.c,
2325 testsuite/libffi.call/cls_64byte.c,
2326 testsuite/libffi.call/nested_struct8.c,
2327 testsuite/libffi.call/cls_uint.c,
2328 testsuite/libffi.call/cls_multi_ushortchar.c,
2329 testsuite/libffi.call/cls_schar.c,
2330 testsuite/libffi.call/cls_uchar.c,
2331 testsuite/libffi.call/cls_align_uint64.c,
2332 testsuite/libffi.call/cls_ulonglong.c,
2333 testsuite/libffi.call/cls_align_longdouble.c,
2334 testsuite/libffi.call/cls_1_1byte.c,
2335 testsuite/libffi.call/cls_12byte.c,
2336 testsuite/libffi.call/cls_3_1byte.c,
2337 testsuite/libffi.call/cls_3byte1.c,
2338 testsuite/libffi.call/cls_4_1byte.c,
2339 testsuite/libffi.call/cls_6_1_byte.c,
2340 testsuite/libffi.call/cls_16byte.c,
2341 testsuite/libffi.call/cls_18byte.c,
2342 testsuite/libffi.call/closure_fn0.c,
2343 testsuite/libffi.call/cls_9byte2.c,
2344 testsuite/libffi.call/closure_fn2.c,
2345 testsuite/libffi.call/closure_fn4.c,
2346 testsuite/libffi.call/cls_ushort.c,
2347 testsuite/libffi.call/closure_fn6.c,
2348 testsuite/libffi.call/cls_5byte.c,
2349 testsuite/libffi.call/cls_align_pointer.c,
2350 testsuite/libffi.call/cls_7byte.c,
2351 testsuite/libffi.call/cls_align_sint32.c,
2352 testsuite/libffi.special/unwindtest_ffi_call.cc,
2353 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2354
89d9d98a
DD
23552007-08-10 David Daney <ddaney@avtrex.com>
2356
2357 PR libffi/28313
2358 * configure.ac: Don't treat mips64 as a special case.
2359 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2360 * configure: Regenerate
2361 * Makefile.in: Ditto.
2362 * fficonfig.h.in: Ditto.
2363 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2364 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2365 (FFI_DEFAULT_ABI): Set for n64 case.
2366 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2367 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2368 (ffi_closure_N32): New function.
2369 (.eh_frame): New section
2370 * src/mips/o32.S: Clean up comments.
2371 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2372 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2373 _MIPS_SIM == _ABIN32 throughout.
2374 (FFI_MIPS_STOP_HERE): New, use in place of
2375 ffi_stop_here.
2376 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2377 to support n32/n64 ABIs.
2378 (calc_n32_struct_flags): Rewrite.
2379 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2380 position of flag bits.
2381 (ffi_prep_cif_machdep): Rewrite n32 portion.
2382 (ffi_call): Enable for n64. Add special handling for small structure
2383 return values.
2384 (ffi_prep_closure_loc): Add n32 and n64 support.
2385 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2386 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2387
d23869d4
DD
23882007-08-08 David Daney <ddaney@avtrex.com>
2389
2390 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2391 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2392 specifiers.
2393 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2394 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2395 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2396 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2397 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2398 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2399 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2400 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2401 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2402 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2403 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2404 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2405 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2406 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2407 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2408 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2409 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2410 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2411 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2412 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2413 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2414 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2415 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2416 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2417 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2418 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2419 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2420 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2421 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2422 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2423 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2424
536e0a8f
AH
24252007-08-07 Andrew Haley <aph@redhat.com>
2426
2427 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2428 checkin.
2429
7665c9be
AH
24302007-08-06 Andrew Haley <aph@redhat.com>
2431
2432 PR testsuite/32843
2433 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2434 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2435 FFI_TYPE_SINT32.
2436
58e11497
DD
24372007-08-02 David Daney <ddaney@avtrex.com>
2438
2439 * testsuite/libffi.call/return_ul.c (main): Define return type as
2440 ffi_arg. Use proper printf conversion specifier.
302486f4 2441
387cfbba
AH
24422007-07-30 Andrew Haley <aph@redhat.com>
2443
2444 PR testsuite/32843
2445 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2446 signed/unsigned int8/16.
2447 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2448 Use a jump table.
2449 Remove code to pop args from the stack after call.
2450 Special-case signed/unsigned int8/16.
2451 * testsuite/libffi.call/return_sc.c (main): Revert.
2452
0ee0208e
RG
24532007-07-26 Richard Guenther <rguenther@suse.de>
2454
2455 PR testsuite/32843
2456 * testsuite/libffi.call/return_sc.c (main): Verify call
2457 result as signed char, not ffi_arg.
2458
04a49983
RO
24592007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2460
2461 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2462 * configure: Regenerate.
2463
433e6a8c
DD
24642007-07-11 David Daney <ddaney@avtrex.com>
2465
2466 * src/mips/ffi.c: Don't include sys/cachectl.h.
2467 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2468 cacheflush().
2469
0959e2b8
AH
24702007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2471
2472 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2473 from (ffi_prep_closure): ... this.
2474 (FFI_INIT_TRAMPOLINE): Adjust.
2475
24762005-12-31 Phil Blundell <pb@reciva.com>
2477
302486f4
AS
2478 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2479 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
0959e2b8
AH
2480 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2481 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2482 (FFI_CLOSURES): Enable closure support.
2483
24842007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2485
302486f4
AS
2486 * testsuite/libffi.call/cls_multi_ushort.c,
2487 testsuite/libffi.call/cls_align_uint16.c,
2488 testsuite/libffi.call/nested_struct1.c,
2489 testsuite/libffi.call/nested_struct3.c,
2490 testsuite/libffi.call/cls_7_1_byte.c,
2491 testsuite/libffi.call/cls_double.c,
2492 testsuite/libffi.call/nested_struct5.c,
2493 testsuite/libffi.call/nested_struct7.c,
2494 testsuite/libffi.call/cls_sint.c,
2495 testsuite/libffi.call/nested_struct9.c,
2496 testsuite/libffi.call/cls_20byte1.c,
2497 testsuite/libffi.call/cls_multi_sshortchar.c,
2498 testsuite/libffi.call/cls_align_sint64.c,
2499 testsuite/libffi.call/cls_3byte2.c,
2500 testsuite/libffi.call/cls_multi_schar.c,
2501 testsuite/libffi.call/cls_multi_uchar.c,
2502 testsuite/libffi.call/cls_19byte.c,
2503 testsuite/libffi.call/cls_9byte1.c,
2504 testsuite/libffi.call/cls_align_float.c,
2505 testsuite/libffi.call/closure_fn1.c,
2506 testsuite/libffi.call/problem1.c,
2507 testsuite/libffi.call/closure_fn3.c,
2508 testsuite/libffi.call/cls_sshort.c,
2509 testsuite/libffi.call/closure_fn5.c,
2510 testsuite/libffi.call/cls_align_double.c,
2511 testsuite/libffi.call/cls_2byte.c,
2512 testsuite/libffi.call/nested_struct.c,
2513 testsuite/libffi.call/nested_struct10.c,
2514 testsuite/libffi.call/cls_4byte.c,
2515 testsuite/libffi.call/cls_6byte.c,
2516 testsuite/libffi.call/cls_8byte.c,
2517 testsuite/libffi.call/cls_multi_sshort.c,
2518 testsuite/libffi.call/cls_align_uint32.c,
2519 testsuite/libffi.call/cls_align_sint16.c,
2520 testsuite/libffi.call/cls_float.c,
2521 testsuite/libffi.call/cls_20byte.c,
2522 testsuite/libffi.call/cls_5_1_byte.c,
2523 testsuite/libffi.call/nested_struct2.c,
2524 testsuite/libffi.call/cls_24byte.c,
2525 testsuite/libffi.call/nested_struct4.c,
2526 testsuite/libffi.call/nested_struct6.c,
2527 testsuite/libffi.call/cls_64byte.c,
2528 testsuite/libffi.call/nested_struct8.c,
2529 testsuite/libffi.call/cls_uint.c,
2530 testsuite/libffi.call/cls_multi_ushortchar.c,
2531 testsuite/libffi.call/cls_schar.c,
2532 testsuite/libffi.call/cls_uchar.c,
2533 testsuite/libffi.call/cls_align_uint64.c,
2534 testsuite/libffi.call/cls_ulonglong.c,
2535 testsuite/libffi.call/cls_align_longdouble.c,
2536 testsuite/libffi.call/cls_1_1byte.c,
2537 testsuite/libffi.call/cls_12byte.c,
2538 testsuite/libffi.call/cls_3_1byte.c,
2539 testsuite/libffi.call/cls_3byte1.c,
2540 testsuite/libffi.call/cls_4_1byte.c,
2541 testsuite/libffi.call/cls_6_1_byte.c,
2542 testsuite/libffi.call/cls_16byte.c,
2543 testsuite/libffi.call/cls_18byte.c,
2544 testsuite/libffi.call/closure_fn0.c,
2545 testsuite/libffi.call/cls_9byte2.c,
2546 testsuite/libffi.call/closure_fn2.c,
2547 testsuite/libffi.call/closure_fn4.c,
2548 testsuite/libffi.call/cls_ushort.c,
2549 testsuite/libffi.call/closure_fn6.c,
2550 testsuite/libffi.call/cls_5byte.c,
2551 testsuite/libffi.call/cls_align_pointer.c,
2552 testsuite/libffi.call/cls_7byte.c,
2553 testsuite/libffi.call/cls_align_sint32.c,
2554 testsuite/libffi.special/unwindtest_ffi_call.cc,
2555 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
0959e2b8 2556
12a27363
L
25572007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2558
2559 * aclocal.m4: Regenerated.
2560
82a6cadf
PB
25612007-06-02 Paolo Bonzini <bonzini@gnu.org>
2562
2563 * configure: Regenerate.
2564
1cf3d07d
SE
25652007-05-23 Steve Ellcey <sje@cup.hp.com>
2566
2567 * Makefile.in: Regenerate.
2568 * configure: Regenerate.
2569 * aclocal.m4: Regenerate.
2570 * include/Makefile.in: Regenerate.
2571 * testsuite/Makefile.in: Regenerate.
2572
5635c26e
RZ
25732007-05-10 Roman Zippel <zippel@linux-m68k.org>
2574
2575 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2576 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2577 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2578 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2579 (FFI_CLOSURES): Enable closure support.
2580
e6fbf387
RZ
25812007-05-10 Roman Zippel <zippel@linux-m68k.org>
2582
2583 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2584 * configure: Regenerate.
2585 * fficonfig.h.in: Regenerate.
2586 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2587 CFI_OFFSET,CFI_DEF_CFA): New macros.
2588 (ffi_call_SYSV): Add callframe annotation.
2589
b5296e52
RZ
25902007-05-10 Roman Zippel <zippel@linux-m68k.org>
2591
2592 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2593 numerous test suite failures.
2594 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2595
bd61d708
PB
25962007-04-11 Paolo Bonzini <bonzini@gnu.org>
2597
2598 * Makefile.am (EXTRA_DIST): Bring up to date.
2599 * Makefile.in: Regenerate.
2600 * src/frv/eabi.S: Remove RCS keyword.
2601
bf8da5fc
RH
26022007-04-06 Richard Henderson <rth@redhat.com>
2603
2604 * configure.ac: Tidy target case.
2605 (HAVE_LONG_DOUBLE): Allow the target to override.
2606 * configure: Regenerate.
2607 * include/ffi.h.in: Don't define ffi_type_foo if
2608 LIBFFI_HIDE_BASIC_TYPES is defined.
2609 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2610 to ffi_type_double.
2611 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2612 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2613 (ffi_type_longdouble): Special case for Alpha. Don't define
2614 if long double == double.
2615
2616 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2617 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2618 (ffi_call, ffi_closure_osf_inner): Likewise.
2619 (ffi_closure_osf_inner): Likewise. Mark hidden.
2620 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2621 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2622 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2623 (load_table): Handle 128-bit long double.
2624
2625 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2626
8669fed1
TT
26272007-04-06 Tom Tromey <tromey@redhat.com>
2628
2629 PR libffi/31491:
2630 * README: Fixed bug in example.
2631
f0920e6c
JJ
26322007-04-03 Jakub Jelinek <jakub@redhat.com>
2633
2634 * src/closures.c: Include sys/statfs.h.
2635 (_GNU_SOURCE): Define on Linux.
2636 (FFI_MMAP_EXEC_SELINUX): Define.
2637 (selinux_enabled): New variable.
2638 (selinux_enabled_check): New function.
2639 (is_selinux_enabled): Define.
2640 (dlmmap): Use it.
2641
34a6ccda
UB
26422007-03-24 Uros Bizjak <ubizjak@gmail.com>
2643
2644 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2645 Use 'volatile float sum' to create sum of floats to avoid false
2646 negative due to excess precision on ix86 targets.
302486f4 2647 (main): Ditto.
34a6ccda 2648
8b9cf39e
AO
26492007-03-08 Alexandre Oliva <aoliva@redhat.com>
2650
2651 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2652 patch.
2653 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2654
18fa3240
AO
26552007-03-07 Alexandre Oliva <aoliva@redhat.com>
2656
2657 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2658 (ffi_prep_closure_loc): New.
2659 (ffi_prep_raw_closure_loc): New.
2660 (ffi_prep_java_raw_closure_loc): New.
2661 * src/closures.c: New file.
2662 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2663 Replace sflags with exec_offset.
2664 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2665 sub_segment_exec_offset): New macros.
2666 (get_segment_flags, set_segment_flags, check_segment_merge): New
2667 macros.
2668 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2669 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2670 destroy_mspace): Use new macros.
2671 (sys_alloc): Silence warning.
2672 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2673 * Makefile.in: Rebuilt.
2674 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2675 terms of ffi_prep_closure_loc.
2676 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2677 from...
2678 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2679 renamed version.
2680 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2681 adjusted from...
2682 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2683 the renamed version.
2684 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2685 (ffi_prep_closure): ... this.
2686 * src/pa/ffi.c: Likewise.
2687 * src/cris/ffi.c: Likewise. Adjust.
2688 * src/frv/ffi.c: Likewise.
2689 * src/ia64/ffi.c: Likewise.
2690 * src/mips/ffi.c: Likewise.
2691 * src/powerpc/ffi_darwin.c: Likewise.
2692 * src/s390/ffi.c: Likewise.
2693 * src/sh/ffi.c: Likewise.
2694 * src/sh64/ffi.c: Likewise.
2695 * src/sparc/ffi.c: Likewise.
2696 * src/x86/ffi64.c: Likewise.
2697 * src/x86/ffi.c: Likewise.
2698 (FFI_INIT_TRAMPOLINE): Adjust.
2699 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2700 (ffi_prep_raw_closure): ... this.
2701 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2702 (ffi_prep_closure): ... this.
2703 (flush_icache): Adjust.
2704
dd778331
AO
27052007-03-07 Alexandre Oliva <aoliva@redhat.com>
2706
2707 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2708 Lea's malloc.
2709
b5f8d49b
BM
27102007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2711
2712 * Makefile.am: Add dummy install-pdf target.
2713 * Makefile.in: Regenerate
2714
7a23933b
AK
27152007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2716
2717 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2718 ffi_closure_helper_SYSV): Add long double handling.
2719
8aaf4681
JJ
27202007-02-02 Jakub Jelinek <jakub@redhat.com>
2721
2722 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2723 immediately after bctrl instruction.
2724
0eb5e2b9
AO
27252007-01-18 Alexandre Oliva <aoliva@redhat.com>
2726
2727 * Makefile.am (all-recursive, install-recursive,
2728 mostlyclean-recursive, clean-recursive, distclean-recursive,
2729 maintainer-clean-recursive): Add missing targets.
2730 * Makefile.in: Rebuilt.
2731
f4f7486b
AT
27322006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2733
2734 * configure.ac: Add TARGET for x86_64-*-darwin*.
2735 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2736 for X86_DARWIN.
2737 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2738 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2739 * configure: Regenerate.
2740 * Makefile.in: Regenerate.
2741 * include/Makefile.in: Regenerate.
2742 * testsuite/Makefile.in: Regenerate.
2743 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2744 ffi_call only.
2745
3d5eafe2
AT
27462006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2747
2748 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2749 Makefile.am.
2750
d5523ce1 27512006-10-31 Geoffrey Keating <geoffk@apple.com>
58182de3
GK
2752
2753 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2754 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2755 Darwin.
2756 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2757 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2758
a3bd50cc
PB
27592006-10-10 Paolo Bonzini <bonzini@gnu.org>
2760 Sandro Tolaini <tolaini@libero.it>
2761
302486f4 2762 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
a3bd50cc
PB
2763 conditional.
2764 * configure: Regenerated.
2765 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2766 (EXTRA_DIST): Add src/x86/darwin.S.
2767 * Makefile.in: Regenerated.
2768 * include/Makefile.in: Regenerated.
2769 * testsuite/Makefile.in: Regenerated.
2770
2771 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2772 X86_WIN32, and additionally align stack to 16 bytes.
2773 * src/x86/darwin.S: New, based on sysv.S.
2774 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2775
b095810f
DD
27762006-09-12 David Daney <ddaney@avtrex.com>
2777
2778 PR libffi/23935
2779 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2780 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2781 * aclocal.m4: Regenerated for automake 1.9.6.
2782 * Makefile.in: Regenerated.
2783 * include/Makefile.in: Regenerated.
2784 * testsuite/Makefile.in: Regenerated.
2785
110b2db4
AT
27862006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2787
2788 * include/ffi_common.h (struct): Revert accidental commit.
2789
8e5fde87
AT
27902006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2791
2792 * include/ffi_common.h: Remove lint directives.
2793 * include/ffi.h.in: Likewise.
2794
cb4132fe
TS
27952006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2796
2797 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2798 for 32-bit architectures.
2799 * testsuite/libffi.call/return_ul.c: New test case.
2800
0d24c3fa
DD
28012006-07-19 David Daney <ddaney@avtrex.com>
2802
2803 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2804 xfail remains for mips64.
2805
8665824c
CD
28062006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2807
2808 * Makefile.am: Add install-html target. Add install-html to .PHONY
2809 * Makefile.in: Regenerate.
2810 * aclocal.m4: Regenerate.
2811 * include/Makefile.in: Regenerate.
2812 * testsuite/Makefile.in: Regenerate.
2813
84e2e370
JDA
28142006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2815
2816 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2817 stack slot.
2818
ac6ed182
AT
28192006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2820
2821 * README: Remove notice about 'Crazy Comments'.
2822 * src/debug.c: Remove lint directives. Cleanup white spaces.
2823 * src/java_raw_api.c: Likewise.
2824 * src/prep_cif.c: Likewise.
2825 * src/raw_api.c: Likewise.
2826 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2827 to the testsuite.
2828 * src/arm/ffi.c: Remove lint directives.
2829 * src/m32r/ffi.c: Likewise.
2830 * src/pa/ffi.c: Likewise.
2831 * src/powerpc/ffi.c: Likewise.
2832 * src/powerpc/ffi_darwin.c: Likewise.
2833 * src/sh/ffi.c: Likewise.
2834 * src/sh64/ffi.c: Likewise.
2835 * src/x86/ffi.c: Likewise.
2836 * testsuite/libffi.call/float2.c: Likewise.
2837 * testsuite/libffi.call/promotion.c: Likewise.
2838 * testsuite/libffi.call/struct1.c: Likewise.
2839
b7211585
AT
28402006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2841
2842 * src/pa/hpux32.S: Correct unwind offset calculation for
2843 ffi_closure_pa32.
2844 * src/pa/linux.S: Likewise.
2845
86066f9b
JW
28462006-04-12 James E Wilson <wilson@specifix.com>
2847
2848 PR libgcj/26483
2849 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2850 (hfa_type_load): Call stf_spill.
2851 (hfa_type_store): Call ldf_fill.
2852 (ffi_call): Adjust calls to above routines. Add local temps for
2853 macro result.
b7211585 2854
615baed7
MK
28552006-04-10 Matthias Klose <doko@debian.org>
2856
2857 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2858 directory names containing underscores.
2859
8e7a2b58
JW
28602006-04-07 James E Wilson <wilson@specifix.com>
2861
2862 * testsuite/libffi.call/float4.c: New testcase.
2863
e6c300ef
JDA
28642006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2865 Andreas Tobler <a.tobler@schweiz.ch>
2866
2867 * Makefile.am: Add PA_HPUX port.
2868 * Makefile.in: Regenerate.
2869 * include/Makefile.in: Likewise.
2870 * testsuite/Makefile.in: Likewise.
2871 * configure.ac: Add PA_HPUX rules.
2872 * configure: Regenerate.
2873 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2874 Add PA_HPUX and PA64_HPUX.
2875 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2876 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2877 (FFI_TYPE_SMALL_STRUCT2): Define.
2878 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2879 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2880 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2881 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2882 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2883 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2884 * src/pa/ffi.c (ROUND_DOWN): Delete.
2885 (fldw, fstw, fldd, fstd): Use '__asm__'.
2886 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2887 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2888 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2889 Simplify incrementing of stack slot variable. Change type of local
2890 'n' to unsigned int.
2891 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2892 double on PA_HPUX.
2893 (ffi_prep_cif_machdep): Likewise.
2894 (ffi_call): Likewise.
2895 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2896 return type to ffi_status. Simplify incrementing of stack slot
2897 variable. Only copy floating point argument registers when PA_LINUX
2898 is true. Reformat debug statement.
2899 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2900 FFI_TYPE_SMALL_STRUCT8.
2901 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2902 declaration.
2903 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2904 Add nops to cache flush. Add trampoline for PA_HPUX.
2905 * src/pa/hpux32.S: New file.
2906 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2907 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2908 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2909 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2910 argument type checks so that common argument types appear first.
2911 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2912 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2913
75b8b1be
AM
29142006-03-24 Alan Modra <amodra@bigpond.net.au>
2915
2916 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2917 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2918 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2919 FFI_TYPE_LONGDOUBLE.
2920 (ffi_prep_args64): Assert using IBM extended double.
2921 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2922 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2923 (ffi_call): Handle FFI_LINUX.
2924 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2925 gpr3 return pointer as for struct return. Handle FFI_LINUX
2926 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2927 unnecessarily.
2928 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2929 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2930 Don't use r6 as pointer to results, instead use sp offset. Don't
2931 make a special call to load lr with case table address, instead
2932 use offset from previous call.
2933 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2934 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2935 return.
2936
697701ad
KK
29372006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2938
2939 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2940 passed with FP registers correctly.
2941 (ffi_closure_helper_SYSV): Likewise.
2942 * src/sh64/sysv.S: Likewise.
2943
b295c471
AT
29442006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2945
2946 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2947 args and userdata unused.
2948 (closure_test_fn1): Mark cif and userdata unused.
2949 (main): Remove unused res.
2950
9fdeb13b
AT
29512006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2952
2953 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2954 -O2, -O3, -Os and the warning flags -W -Wall.
2955 * testsuite/libffi.special/special.exp: Likewise.
2956 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2957 unused parameter unused for gcc or else do nothing.
2958 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2959 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2960 and userdata unused.
2961 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2962 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2963 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2964 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2965 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2966 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2967 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2968 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2969 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2970 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2971 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2972 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2973 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2974 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2975 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2976 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2977 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2978 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2979 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2980 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2981 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2982 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2983 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2984 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2985 Likewise.
2986 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2987 Likewise.
2988 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2989 Likewise.
2990 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2991 void* to avoid compiler warning.
2992 (main): Likewise.
2993 (cls_struct_align_gn): Mark cif and userdata unused.
2994 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2995 Likewise.
2996 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2997 Likewise.
2998 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2999 Likewise.
3000 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3001 Likewise.
3002 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3003 Likewise.
3004 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3005 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3006 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3007 data unused.
3008 (main): Cast res_call to silence gcc.
3009 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3010 data unused.
3011 (main): Cast res_call to silence gcc.
3012 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3013 and data unused.
3014 (main): Cast res_call to silence gcc.
3015 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3016 data unused.
3017 (main): Cast res_call to silence gcc.
3018 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3019 data unused.
3020 (main): Cast res_call to silence gcc.
3021 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3022 and data unused.
3023 (main): Cast res_call to silence gcc.
3024 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3025 userdata unused.
3026 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3027 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3028 userdata unused.
3029 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3030 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3031 userdata unused.
3032 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3033 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3034 userdata unused.
3035 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3036 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3037 userdata unused.
3038 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3039 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3040 and userdata unused.
3041 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3042 userdata unused.
3043 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3044 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3045 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3046 Cleanup white spaces.
3047 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3048 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3049 cif and userdata unused.
3050 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3051 Likewise.
3052 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3053 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3054 formatters to silence gcc.
3055 (B_gn): Mark cif and userdata unused.
3056 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3057 unused.
3058 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3059 (B_gn): Mark cif and userdata unused.
3060 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3061 unused.
3062 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3063 (B_gn): Mark cif and userdata unused.
3064 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3065 unused.
3066 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3067 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3068 * testsuite/libffi.call/problem1.c (stub): Likewise.
3069 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3070 gcc.
3071 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3072 in the last commit for this test case in the test case itself.
3073 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3074 unused.
3075 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3076 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3077 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3078 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3079 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3080 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3081
0a4e2bb5
KK
30822006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3083
3084 * src/sh/sysv.S: Fix register numbers in the FDE for
3085 ffi_closure_SYSV.
3086
723e5d5a
AT
30872006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3088
3089 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3090 declaration to avoid a false negative on ix86. See PR323.
3091
e097f887
KK
30922006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3093
3094 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3095 and cast integer to void * if needed. Update the pointer to
3096 the FP register saved area correctly.
302486f4 3097
1a4878f7
AT
30982006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3099
3100 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3101 is fixed.
3102 * testsuite/libffi.call/nested_struct4.c: Likewise.
3103
b47b5e08
AT
31042006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3105
6429d58f
AT
3106 * testsuite/libffi.call/return_dbl.c: New test case.
3107 * testsuite/libffi.call/return_dbl1.c: Likewise.
3108 * testsuite/libffi.call/return_dbl2.c: Likewise.
3109 * testsuite/libffi.call/return_fl.c: Likewise.
3110 * testsuite/libffi.call/return_fl1.c: Likewise.
3111 * testsuite/libffi.call/return_fl2.c: Likewise.
3112 * testsuite/libffi.call/return_fl3.c: Likewise.
3113 * testsuite/libffi.call/closure_fn6.c: Likewise.
3114
b47b5e08
AT
3115 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3116 definition.
3117 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3118 here to be used by other test cases too.
3119
3120 * testsuite/libffi.call/nested_struct10.c: New test case.
3121 * testsuite/libffi.call/nested_struct9.c: Likewise.
3122 * testsuite/libffi.call/nested_struct8.c: Likewise.
3123 * testsuite/libffi.call/nested_struct7.c: Likewise.
3124 * testsuite/libffi.call/nested_struct6.c: Likewise.
3125 * testsuite/libffi.call/nested_struct5.c: Likewise.
3126 * testsuite/libffi.call/nested_struct4.c: Likewise.
3127
9abe31d4
AT
31282006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3129
3130 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3131 * configure: Rebuilt.
3132
71aa1a70
JJ
31332006-01-18 Jakub Jelinek <jakub@redhat.com>
3134
3135 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3136 instead do the shifting inline.
3137 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3138 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3139 and 8 byte structs, for the remaining struct sizes don't call
3140 __lshrdi3, instead do the shifting inline.
3141
8a39029d
TS
31422005-12-07 Thiemo Seufer <ths@networkno.de>
3143
3144 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3145 missing parentheses.
3146 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3147 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3148 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3149 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3150 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3151 FA_0_0_OFF2.
3152 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3153 endianness bugs.
3154 (ffi_prep_closure): Improve trampoline instruction scheduling.
3155 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3156
cd4241aa
AM
31572005-12-03 Alan Modra <amodra@bigpond.net.au>
3158
3159 * src/powerpc/ffi.c: Formatting.
3160 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3161 (ffi_prep_args64): Likewise.
3162
0363db46
GK
31632005-09-30 Geoffrey Keating <geoffk@apple.com>
3164
3165 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3166 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3167
d674eb2f
TT
31682005-09-26 Tom Tromey <tromey@redhat.com>
3169
3170 * testsuite/libffi.call/float1.c (value_type): New typedef.
3171 (CANARY): New define.
3172 (main): Check for result buffer overflow.
3173 * src/powerpc/linux64.S: Handle linux64 long double returns.
3174 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3175 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3176
2d9c5743
AM
31772005-08-25 Alan Modra <amodra@bigpond.net.au>
3178
3179 PR target/23404
3180 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3181 homed fp args.
3182 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3183
8a42356f
JJ
31842005-08-11 Jakub Jelinek <jakub@redhat.com>
3185
3186 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3187 (AH_BOTTOM): Add FFI_HIDDEN definition.
3188 * configure: Rebuilt.
3189 * fficonfig.h.in: Rebuilt.
3190 * src/powerpc/ffi.c (hidden): Remove.
3191 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3192 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3193 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3194 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3195 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3196 add FFI_HIDDEN to its prototype.
3197 (ffi_closure_SYSV_inner): New.
3198 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3199 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3200
863c5508
AS
32012005-08-10 Alfred M. Szmidt <ams@gnu.org>
3202
3203 PR libffi/21819:
3204 * configure: Rebuilt.
3205 * configure.ac: Handle i*86-*-gnu*.
3206
6a26ea58
JJ
32072005-08-09 Jakub Jelinek <jakub@redhat.com>
3208
3209 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3210 DW_CFA_offset_extended_sf rather than
3211 DW_CFA_GNU_negative_offset_extended.
3212 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3213
583a92e8
ST
32142005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3215
3216 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3217 on sh3.
3218 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3219 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3220 partially on register.
3221 (ffi_closure_helper_SYSV): Likewise.
3222 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3223
5d0317fc
KK
32242005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3225
3226 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3227 Remove empty line.
3228 * src/sh64/ffi.c (simple_type): Remove.
3229 (return_type): Handle small structures correctly.
3230 (ffi_prep_args): Likewise.
3231 (ffi_call): Likewise.
3232 (ffi_closure_helper_SYSV): Likewise.
3233 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3234 Emit position independent code if PIC and remove wrong datalabel
3235 prefixes from EH data.
3236
8d9fd5f5
AT
32372005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3238
3239 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3240 * Makefile.in: Regenerate.
3241 * include/Makefile.in: Likewise.
3242 * testsuite/Makefile.in: Likewise.
3243 * configure.ac: Add POWERPC_FREEBSD rules.
3244 * configure: Regenerate.
3245 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3246 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3247 * src/powerpc/ffi.c: Add flags to handle small structure returns
3248 in ffi_call_SYSV.
3249 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3250 Aka FFI_SYSV.
3251 (ffi_closure_helper_SYSV): Likewise.
3252 * src/powerpc/ppc_closure.S: Add return types for small structures.
3253 * src/powerpc/sysv.S: Add bits to handle small structures for
3254 final SYSV 4 ABI.
3255
93c76f81
AT
32562005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3257
3258 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3259 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3260 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3261
b65da304
RC
32622005-07-05 Randolph Chung <tausq@debian.org>
3263
3264 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3265 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3266 structures. Kill compilation warnings.
3267 (ffi_closure_inner_LINUX): Print return values as hex in debug
3268 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3269 Properly handle 5-7 byte structure returns.
3270 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3271 (FFI_TYPE_SMALL_STRUCT2): Remove.
3272 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3273 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3274 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3275 (checksmst1, checksmst2): Remove.
3276 (checksmst3): Optimize handling of 3-byte struct returns.
3277 (checksmst567): Properly handle 5-7 byte struct returns.
3278
2572f1c6
RO
32792005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3280
3281 PR libgcj/21943
3282 * src/mips/n32.S: Enforce PIC code.
3283 * src/mips/o32.S: Likewise.
3284
cc786582
RO
32852005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3286
3287 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3288 * configure: Regenerate.
302486f4 3289
6d0d376c
AM
32902005-06-01 Alan Modra <amodra@bigpond.net.au>
3291
3292 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3293 to call ffi_closure_helper_SYSV. Append @local instead.
3294 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3295
a21946f5 32962005-05-17 Kelley Cook <kcook@gcc.gnu.org>
a097ef55
KC
3297
3298 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3299 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3300 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3301 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3302 include/Makefile.in, testsuite/Makefile.in: Regenerate.
302486f4 3303
f4c767fd
MS
33042005-05-09 Mike Stump <mrs@apple.com>
3305
3306 * configure: Regenerate.
3307
7e15b5fe
RH
33082005-05-08 Richard Henderson <rth@redhat.com>
3309
3310 PR libffi/21285
3311 * src/alpha/osf.S: Update unwind into to match code.
3312
d56ea8d9
RH
33132005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3314 Richard Henderson <rth@redhat.com>
3315
3316 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3317 bit 11 of flags.
3318 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3319 (ffi_prep_closure): Set carry bit if sse-used flag set.
3320 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3321 Only load sse registers if ssecount non-zero.
3322 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3323
33242005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
d948c201
RC
3325
3326 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3327 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3328 * configure: Regenerate.
3329
fc0ad8d9
HPN
33302005-04-20 Hans-Peter Nilsson <hp@axis.com>
3331
3332 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3333 have Tcl8.3-compatible intermediate variable.
3334
302486f4 33352005-04-18 Simon Posnjak <simon.posnjak@siol.net>
614348bb
SP
3336 Hans-Peter Nilsson <hp@axis.com>
3337
3338 * Makefile.am: Add CRIS support.
3339 * configure.ac: Likewise.
29ede6db
HPN
3340 * Makefile.in, configure, testsuite/Makefile.in,
3341 include/Makefile.in: Regenerate.
614348bb
SP
3342 * src/cris: New directory.
3343 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3344 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
727e729b
HPN
3345
3346 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3347 \r?\n in output tests.
3348
6dab073b
MS
33492005-04-12 Mike Stump <mrs@apple.com>
3350
3351 * configure: Regenerate.
3352
51f55d7c
HB
33532005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3354
3355 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
302486f4 3356
7efa52a3
SE
33572005-03-30 Steve Ellcey <sje@cup.hp.com>
3358
3359 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3360 (ffi_sarg) Ditto.
3361 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3362 to 64 bits in ILP32 mode.
3363 Load 64 bits even for short data.
3364
1488177a
MS
33652005-03-23 Mike Stump <mrs@apple.com>
3366
3367 * src/powerpc/darwin.S: Update for -m64 multilib.
3368 * src/powerpc/darwin_closure.S: Likewise.
3369
c6900272
ZW
33702005-03-21 Zack Weinberg <zack@codesourcery.com>
3371
3372 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3373 Do not set tool_include_dir.
3374 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3375 Regenerate.
3376 * include/Makefile.am: Set gcc_version and toollibffidir.
3377 * include/Makefile.in: Regenerate.
3378
962eea0a
AH
33792005-02-22 Andrew Haley <aph@redhat.com>
3380
3381 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3382 odd-numbered register pairs for 64-bit integer types.
3383
1b05e8bf
AT
33842005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3385
3386 PR libffi/20104
3387 * testsuite/libffi.call/return_ll1.c: New test case.
3388
6027770b
JJ
33892005-02-11 Janis Johnson <janis187@us.ibm.com>
3390
3391 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3392 * testsuite/libffi.call/float.c: Ditto.
3393 * testsuite/libffi.call/float2.c: Ditto.
3394 * testsuite/libffi.call/float3.c: Ditto.
3395
ee31ea68
AT
33962005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3397
3398 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3399
c16be7d5
EB
34002005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3401
3402 * testsuite/libffi.special/special.exp (cxx_options): Add
3403 -shared-libgcc.
3404
5df07255
RH
34052004-12-31 Richard Henderson <rth@redhat.com>
3406
3407 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3408 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3409 offset parameters with a type parameter; deduce size and structure
3410 alignment. Update all users.
3411
81a69b13
RH
34122004-12-31 Richard Henderson <rth@redhat.com>
3413
3414 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3415 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
c6900272 3416 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
81a69b13
RH
3417 into ffi_prep_closure.
3418 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3419 from scratch.
3420
d833cfb0
RH
34212004-12-27 Richard Henderson <rth@redhat.com>
3422
3423 * src/x86/unix64.S: Fix typo in unwind info.
3424
1a0f488c
RH
34252004-12-25 Richard Henderson <rth@redhat.com>
3426
3427 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3428 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3429 (merge_classes): Check for it.
3430 (SSE_CLASS_P): New.
3431 (classify_argument): Pass byte_offset by value; perform all updates
3432 inside struct case.
3433 (examine_argument): Add classes argument; handle
3434 X86_64_COMPLEX_X87_CLASS.
3435 (ffi_prep_args): Merge into ...
3436 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3437 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3438 (ffi_fill_return_value): Remove.
3439 (ffi_prep_closure): Remove dead assert.
3440 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3441 Rewrite to use struct register_args instead of va_list. Create
3442 flags for handling structure returns.
3443 * src/x86/unix64.S: Remove dead strings.
3444 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3445 stack frame with ffi_call. Handle structure returns properly.
3446 (float2sse, floatfloat2sse, double2sse): Remove.
3447 (sse2float, sse2double, sse2floatfloat): Remove.
3448 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3449 to handle structure returns properly.
3450
7994d50c
DE
34512004-12-08 David Edelsohn <edelsohn@gnu.org>
3452
3453 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3454 PICFLAG.
3455 * Makefile.in: Regenerated.
3456
afabd8e6
RS
34572004-12-02 Richard Sandiford <rsandifo@redhat.com>
3458
3459 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3460 * configure, aclocal.m4, Makefile.in: Regenerate.
3461 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3462
2539bffe
KC
34632004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3464
3465 * configure: Regenerate for libtool change.
3466
767f726e
KC
34672004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3468
3469 * configure: Regenerate for libtool reversion.
3470
2c92e90f
KC
34712004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3472
3473 * configure: Regenerate for libtool change.
3474
1df8e834
JDA
34752004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3476
3477 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3478
34792004-11-23 Richard Sandiford <rsandifo@redhat.com>
3480
3481 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3482 of jal. Use an absolute encoding for the frame information.
3483
34842004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3485
3486 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3487 * acinclude.m4: Delete logic for sincludes.
3488 * aclocal.m4, Makefile.in, configure: Regenerate.
3489 * include/Makefile: Likewise.
3490 * testsuite/Makefile: Likewise.
3491
bf02e7fa
EB
34922004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3493
3494 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3495 on a 8-byte boundary.
3496 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3497
f20459f1
RE
34982004-10-27 Richard Earnshaw <rearnsha@arm.com>
3499
3500 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3501 long long values. Round stack allocation to a multiple of 8 bytes
3502 for ATPCS compatibility.
3503 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3504 names. Handle returning long long types. Add Thumb and interworking
3505 support. Improve soft-float code.
3506
fdc69597
RE
35072004-10-27 Richard Earnshaw <rearnsha@arm.com>
3508
3509 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3510 (libffi_exit): New function.
3511 (libffi_init): Build the testglue wrapper if needed.
3512
1e02510f
EB
35132004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3514
3515 PR other/18138
3516 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3517
d9a193b2
KI
35182004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3519
3520 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3521
1fddb058
KK
35222004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3523
3524 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3525 * testsuite/libffi.call/float3.c: New test case.
3526
e0d3b452
KK
35272004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3528
3529 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3530 the function returning a structure pointed with R2.
3531 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3532 the structure return value if T bit set. Emit position
3533 independent code and EH data if PIC.
3534
a472e9d4
KI
35352004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3536
3537 * Makefile.am: Add m32r support.
3538 * configure.ac: Likewise.
3539 * Makefile.in: Regenerate.
3540 * confiugre: Regenerate.
3541 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3542 (uint64, sint64, double, longdouble)
3543 * src/m32r: New directory.
3544 * src/m32r/ffi.c: New file.
3545 * src/m32r/sysv.S: Likewise.
3546 * src/m32r/ffitarget.h: Likewise.
3547
3d47e9ca
KK
35482004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3549
3550 * testsuite/libffi.call/negint.c: New test case.
3551
fc9051dd
L
35522004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3553
3554 PR libgcj/17465
3555 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3556 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3557 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3558 DYLD_LIBRARY_PATH.
3559
2010caea
AT
35602004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3561
3562 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3563 * testsuite/libffi.call/promotion.c: Likewise.
3564 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3565 whitespaces.
3566 * testsuite/libffi.call/return_sc.c: Likewise.
3567 * testsuite/libffi.call/return_uc.c: Likewise.
3568
894be816
AT
35692004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3570
3571 * src/powerpc/darwin.S: Fix comments and identation.
3572 * src/powerpc/darwin_closure.S: Likewise.
3573
2fe7404a
AT
35742004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3575
3576 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3577 (ffi_prep_args): Handle longdouble arguments.
3578 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3579 longdouble.
3580 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3581 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3582 values.
3583 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3584 * src/types.c: Defined longdouble size and alignment for darwin.
3585
16070e45
AT
35862004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3587
3588 * src/powerpc/aix.S: Remove whitespaces.
3589 * src/powerpc/aix_closure.S: Likewise.
3590 * src/powerpc/asm.h: Likewise.
3591 * src/powerpc/ffi.c: Likewise.
3592 * src/powerpc/ffitarget.h: Likewise.
3593 * src/powerpc/linux64.S: Likewise.
3594 * src/powerpc/linux64_closure.S: Likewise.
3595 * src/powerpc/ppc_closure.S: Likewise.
3596 * src/powerpc/sysv.S: Likewise.
3597
88d8c771
AG
35982004-08-30 Anthony Green <green@redhat.com>
3599
3600 * Makefile.am: Add frv support.
3601 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3602 * configure.ac: Read configure.host.
3603 * configure.in: Read configure.host.
3604 * configure.host: New file. frv-elf needs libgloss.
3605 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
a23adb4d 3606 alignment. This is needed to frv and shouldn't harm the others.
88d8c771
AG
3607 * include/ffi_common.h (ALIGN_DOWN): New macro.
3608 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3609
4c5f37d5
DD
36102004-08-24 David Daney <daney@avtrex.com>
3611
3612 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3613 * testsuite/libffi.call/closure_fn1.c: Likewise.
3614 * testsuite/libffi.call/closure_fn2.c Likewise.
3615 * testsuite/libffi.call/closure_fn3.c: Likewise.
3616 * testsuite/libffi.call/closure_fn4.c: Likewise.
3617 * testsuite/libffi.call/closure_fn5.c: Likewise.
3618 * testsuite/libffi.call/cls_18byte.c: Likewise.
3619 * testsuite/libffi.call/cls_19byte.c: Likewise.
3620 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3621 * testsuite/libffi.call/cls_20byte.c: Likewise.
3622 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3623 * testsuite/libffi.call/cls_24byte.c: Likewise.
3624 * testsuite/libffi.call/cls_2byte.c: Likewise.
3625 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3626 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3627 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3628 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3629 * testsuite/libffi.call/cls_4byte.c: Likewise.
3630 * testsuite/libffi.call/cls_64byte.c: Likewise.
3631 * testsuite/libffi.call/cls_6byte.c: Likewise.
3632 * testsuite/libffi.call/cls_7byte.c: Likewise.
3633 * testsuite/libffi.call/cls_8byte.c: Likewise.
3634 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3635 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3636 * testsuite/libffi.call/cls_align_double.c: Likewise.
3637 * testsuite/libffi.call/cls_align_float.c: Likewise.
3638 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3639 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3640 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3641 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3642 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3643 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3644 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3645 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3646 * testsuite/libffi.call/cls_double.c: Likewise.
3647 * testsuite/libffi.call/cls_float.c: Likewise.
3648 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3649 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3650 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3651 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3652 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3653 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3654 * testsuite/libffi.call/cls_schar.c: Likewise.
3655 * testsuite/libffi.call/cls_sint.c: Likewise.
3656 * testsuite/libffi.call/cls_sshort.c: Likewise.
3657 * testsuite/libffi.call/cls_uchar.c: Likewise.
3658 * testsuite/libffi.call/cls_uint.c: Likewise.
3659 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3660 * testsuite/libffi.call/cls_ushort.c: Likewise.
3661 * testsuite/libffi.call/nested_struct.c: Likewise.
3662 * testsuite/libffi.call/nested_struct1.c: Likewise.
3663 * testsuite/libffi.call/nested_struct2.c: Likewise.
3664 * testsuite/libffi.call/nested_struct3.c: Likewise.
3665 * testsuite/libffi.call/problem1.c: Likewise.
3666 * testsuite/libffi.special/unwindtest.cc: Likewise.
3667 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3668 to zero.
3669 * testsuite/libffi.call/cls_16byte.c: Likewise.
3670 * testsuite/libffi.call/cls_5byte.c: Likewise.
3671
39dca114
DD
36722004-08-23 David Daney <daney@avtrex.com>
3673
3674 PR libgcj/13141
3675 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3676 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3677 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3678 parameters and return types.
3679 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3680 (ffi_prep_closure): Ditto.
3681 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3682 alignment calculations.
3683 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3684 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3685
b790003a
CM
36862004-08-14 Casey Marshall <csm@gnu.org>
3687
3688 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3689 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3690 integer (O32 ABI only).
3691 (ffi_prep_closure): new function.
3692 (ffi_closure_mips_inner_O32): new function.
c6900272 3693 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
b790003a
CM
3694 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3695 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3696 64 bit integers correctly.
3697 (ffi_closure_O32): new function.
3698 Added DWARF-2 unwind info for both functions.
3699
547d71a1
AH
37002004-08-10 Andrew Haley <aph@redhat.com>
3701
3702 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3703
98a5bb3b
RM
37042004-08-01 Robert Millan <robertmh@gnu.org>
3705
3706 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3707 * configure: Regenerate.
3708
4d447364
MR
37092004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3710
3711 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3712 and mmap() explicitly instead of relying on preset autoconf cache
3713 variables.
3714 * aclocal.m4: Regenerate.
3715 * configure: Regenerate.
3716
e5dce82f
UW
37172004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3718
3719 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3720 (ffi_check_float_struct): Remove unused prototype.
3721
e6a0022b
GK
37222004-06-30 Geoffrey Keating <geoffk@apple.com>
3723
3724 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3725 character on Darwin, use '\n\t' instead.
3726
5a2d52ca
MK
37272004-06-26 Matthias Klose <doko@debian.org>
3728
3729 * libtool-version: Fix typo in revision/age.
3730
401844ef
MK
37312004-06-17 Matthias Klose <doko@debian.org>
3732
3733 * libtool-version: New.
3734 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3735 * Makefile.in: Regenerate.
3736
94632047 37372004-06-15 Paolo Bonzini <bonzini@gnu.org>
076e5443
PB
3738
3739 * Makefile.am: Remove useless multilib rules.
3740 * Makefile.in: Regenerate.
3741 * aclocal.m4: Regenerate with automake 1.8.5.
3742 * configure.ac: Remove useless multilib configury.
3743 * configure: Regenerate.
3744
94632047 37452004-06-15 Paolo Bonzini <bonzini@gnu.org>
9ac926b1
PB
3746
3747 * .cvsignore: New file.
3748
37c849e4
JJ
37492004-06-10 Jakub Jelinek <jakub@redhat.com>
3750
3751 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3752 fp_done.
3753 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3754 changed from 8.
3755
cb623172
SM
37562004-06-06 Sean McNeil <sean@mcneil.com>
3757
3758 * configure.ac: Add x86_64-*-freebsd* support.
3759 * configure: Regenerate.
3760
c9b93377
JB
37612004-04-26 Joe Buck <jbuck@welsh-buck.org>
3762
3763 Bug 15093
3764 * configure.ac: Test for existence of mmap and sys/mman.h before
3765 checking blacklist. Fix suggested by Jim Wilson.
3766 * configure: Regenerate.
3767
cf90fd1b
MA
37682004-04-26 Matt Austern <austern@apple.com>
3769
3770 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3771 FDE location.
3772 * src/powerpc/darwin_closure.S: Likewise.
c6900272 3773
67781b44
AT
37742004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3775
3776 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3777 error. Reported by Thomas Heller <theller@python.net>.
3778 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3779 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3780
14b078a8
MK
37812004-03-20 Matthias Klose <doko@debian.org>
3782
3783 * src/pa/linux.S: Fix typo.
3784
d65a810f
MK
37852004-03-19 Matthias Klose <doko@debian.org>
3786
67781b44 3787 * Makefile.am: Update.
d65a810f
MK
3788 * Makefile.in: Regenerate.
3789 * src/pa/ffi.h.in: Remove.
3790 * src/pa/ffitarget.h: New file.
3791
37922004-02-10 Randolph Chung <tausq@debian.org>
3793
3794 * Makefile.am: Add PA support.
3795 * Makefile.in: Regenerate.
3796 * include/Makefile.in: Regenerate.
3797 * configure.ac: Add PA target.
3798 * configure: Regenerate.
3799 * src/pa/ffi.c: New file.
3800 * src/pa/ffi.h.in: Add PA support.
3801 * src/pa/linux.S: New file.
3802 * prep_cif.c: Add PA support.
3803
09cababc
HY
38042004-03-16 Hosaka Yuji <hos@tamanegi.org>
3805
3806 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3807 double.
3808 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3809 with ecif->cif->flags.
3810 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3811 with cif->flags.
3812 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3813 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3814 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3815 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3816
0e8d0c5f
KC
38172004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3818
3819 * configure.in: Rename file to ...
3820 * configure.ac: ... this.
3821 * fficonfig.h.in: Regenerate.
3822 * Makefile.in: Regenerate.
3823 * include/Makefile.in: Regenerate.
3824 * testsuite/Makefile.in: Regenerate.
3825
b8d50739
MA
38262004-03-12 Matt Austern <austern@apple.com>
3827
3828 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3829 changes in EH format resulting from addition of linkonce support.
3830 * src/powerpc/darwin_closure.S: Likewise.
09cababc 3831
3ed8e5b6
AT
38322004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3833 Paolo Bonzini <bonzini@gnu.org>
3834
3835 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3836 Remove VPATH. Remove rules for object files. Remove multilib support.
3837 (AM_CCASFLAGS): Add.
3838 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3839 (AC_PREREQ): Bump version to 2.59.
3840 (AC_INIT): Fill with version info and bug address.
3841 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3842 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3843 De-precious CC so that the right flags are passed down to multilibs.
3844 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3845 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3846 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3847 * configure: Rebuilt.
3848 * aclocal.m4: Likewise.
3849 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3850 * fficonfig.h.in: Likewise.
3851
254ea477
AS
38522004-03-11 Andreas Schwab <schwab@suse.de>
3853
3854 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3855 arguments from fp registers only for the first 8 parameter slots.
3856 Don't convert a float parameter when passed in memory.
3857
3beb1315
HPN
38582004-03-09 Hans-Peter Nilsson <hp@axis.com>
3859
3860 * configure: Regenerate for config/accross.m4 correction.
3861
fecf735c
MK
38622004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3863
3864 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3865 ecif->cif->bytes to bytes.
3866 (ffi_prep_cif_machdep): Add braces around nested if statement.
3867
4243752c
AM
38682004-02-09 Alan Modra <amodra@bigpond.net.au>
3869
12001e0f
AM
3870 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3871
4243752c
AM
3872 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3873 (ffi_closure_helper_LINUX64): Fix typo.
3874 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3875 for powerpc64-*-*.
3876 * testsuite/libffi.call/float.c: Likewise.
3877 * testsuite/libffi.call/float2.c: Likewise.
3878
bf310028
AM
38792004-02-08 Alan Modra <amodra@bigpond.net.au>
3880
3881 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3882 long double function return and long double arg handling.
3883 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3884 Use "end_pfr" instead of "nf". Correct long double handling.
3885 Localise "temp".
3886 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3887 return value.
3888 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3889 space for long double return value. Adjust stack frame and offsets.
3890 Load f2 long double return.
3891
dd5f9ea2
AM
38922004-02-07 Alan Modra <amodra@bigpond.net.au>
3893
3894 * src/types.c: Use 16 byte long double for POWERPC64.
3895
0ce78f01
EB
38962004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3897
3898 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3899 when the structure return address is passed in %o0.
3900 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3901 (ffi_v9_layout_struct): Align the field following a nested structure
3902 on a word boundary. Use memmove instead of memcpy.
3903 (ffi_call): Update call to ffi_V9_return_struct.
3904 (ffi_prep_closure): Define 'ctx' only for V8.
3905 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3906 and ffi_closure_sparc_inner_v9.
3907 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3908 Always skip the structure return address. For structures and long
3909 doubles, copy the argument directly.
3910 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3911 if required. Shift the maximum floating-point slot accordingly. For
3912 big structures, copy the argument directly; otherwise, left-justify the
3913 argument and call ffi_v9_layout_struct to lay out the structure on
3914 the stack.
3915 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3916 (ffi_closure_v8): Pass the structure return address. Update call to
3917 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3918 Skip the 'unimp' insn when returning long doubles and structures.
3919 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3920 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3921 FFI_TYPE_INT handling. Load structures both in integers and
3922 floating-point registers on return.
3923 * README: Update status of the SPARC port.
3924
7fcc1d9b
AT
39252004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3926
3927 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3928 as of type ffi_arg.
3929 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3930
6ed0ecaf
UW
39312004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3932
3933 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3934 value as of type ffi_arg, not unsigned int.
3935
c930d8a5
MR
39362004-01-21 Michael Ritzert <ritzert@t-online.de>
3937
3938 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3939 of the LHS.
3940
7b2e3e60
AT
39412004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3942
3943 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3944 Solaris.
3945
2e89756b
RO
39462004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3947
3948 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3949 to void *.
3950
628b26f8
RH
39512003-12-10 Richard Henderson <rth@redhat.com>
3952
3953 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3954 size_t instead of int.
3955
0ee646d6
HY
39562003-12-04 Hosaka Yuji <hos@tamanegi.org>
3957
3958 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3959 * testsuite/libffi.call/many_win32.c (main): Replace variable
3960 int i with unsigned long ul.
3961
3962 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3963 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3964 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3965 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3966 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3967 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3968 * testsuite/libffi.call/cls_align_float.c: Likewise.
3969 * testsuite/libffi.call/cls_align_double.c: Likewise.
3970 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3971 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3972
2c4ed456
HY
39732003-12-02 Hosaka Yuji <hos@tamanegi.org>
3974
3975 PR other/13221
3976 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3977 Align arguments to 32 bits.
3978
d18c3386
AT
39792003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3980
3981 PR other/13221
3982 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3983 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3984 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3985 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3986 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3987 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3988
3989 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3990
88096b2a
KG
39912003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3992
3993 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3994 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3995
3eee102e
AT
39962003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3997
3998 * Makefile.in: Rebuilt.
3999 * configure: Likewise.
4000 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4001 the right type.
4002
5196736e
AJ
40032003-11-21 Andreas Jaeger <aj@suse.de>
4004 Andreas Tobler <a.tobler@schweiz.ch>
4005
4006 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4007 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4008 * Makefile.in: Rebuilt.
4009 * aclocal.m4: Likewise.
4010 * configure: Likewise.
4011 * fficonfig.h.in: Likewise.
4012 * testsuite/lib/libffi-dg.exp: Add include dir.
4013 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4014 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4015 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4016 for ffi_closure if available.
4017 * testsuite/libffi.call/closure_fn1.c: Likewise.
4018 * testsuite/libffi.call/closure_fn2.c: Likewise.
4019 * testsuite/libffi.call/closure_fn3.c: Likewise.
4020 * testsuite/libffi.call/closure_fn4.c: Likewise.
4021 * testsuite/libffi.call/closure_fn5.c: Likewise.
4022 * testsuite/libffi.call/cls_12byte.c: Likewise.
4023 * testsuite/libffi.call/cls_16byte.c: Likewise.
4024 * testsuite/libffi.call/cls_18byte.c: Likewise.
4025 * testsuite/libffi.call/cls_19byte.c: Likewise.
4026 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4027 * testsuite/libffi.call/cls_20byte.c: Likewise.
4028 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4029 * testsuite/libffi.call/cls_24byte.c: Likewise.
4030 * testsuite/libffi.call/cls_2byte.c: Likewise.
4031 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4032 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4033 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4034 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4035 * testsuite/libffi.call/cls_4byte.c: Likewise.
4036 * testsuite/libffi.call/cls_5byte.c: Likewise.
4037 * testsuite/libffi.call/cls_64byte.c: Likewise.
4038 * testsuite/libffi.call/cls_6byte.c: Likewise.
4039 * testsuite/libffi.call/cls_7byte.c: Likewise.
4040 * testsuite/libffi.call/cls_8byte.c: Likewise.
4041 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4042 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4043 * testsuite/libffi.call/cls_double.c: Likewise.
4044 * testsuite/libffi.call/cls_float.c: Likewise.
4045 * testsuite/libffi.call/cls_schar.c: Likewise.
4046 * testsuite/libffi.call/cls_sint.c: Likewise.
4047 * testsuite/libffi.call/cls_sshort.c: Likewise.
4048 * testsuite/libffi.call/cls_uchar.c: Likewise.
4049 * testsuite/libffi.call/cls_uint.c: Likewise.
4050 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4051 * testsuite/libffi.call/cls_ushort.c: Likewise.
4052 * testsuite/libffi.call/nested_struct.c: Likewise.
4053 * testsuite/libffi.call/nested_struct1.c: Likewise.
4054 * testsuite/libffi.call/nested_struct2.c: Likewise.
4055 * testsuite/libffi.call/nested_struct3.c: Likewise.
4056 * testsuite/libffi.call/problem1.c: Likewise.
4057 * testsuite/libffi.special/unwindtest.cc: Likewise.
4058
9e6c3ecb
AT
40592003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4060
4061 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4062
70d8f2a1
AT
40632003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4064
4065 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4066 Add -lgcc_s to additional flags.
4067
ea81d2a3
AT
40682003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4069
4070 * configure.in, include/Makefile.am: PR libgcj/11147, install
4071 the ffitarget.h header file in a gcc versioned and target
4072 dependent place.
4073 * configure: Regenerated.
4074 * Makefile.in, include/Makefile.in: Likewise.
4075 * testsuite/Makefile.in: Likewise.
4076
647af4a9
AT
40772003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4078
4079 * testsuite/libffi.call/closure_fn0.c: Print result and check
4080 with dg-output to make debugging easier.
4081 * testsuite/libffi.call/closure_fn1.c: Likewise.
4082 * testsuite/libffi.call/closure_fn2.c: Likewise.
4083 * testsuite/libffi.call/closure_fn3.c: Likewise.
4084 * testsuite/libffi.call/closure_fn4.c: Likewise.
4085 * testsuite/libffi.call/closure_fn5.c: Likewise.
4086 * testsuite/libffi.call/cls_12byte.c: Likewise.
4087 * testsuite/libffi.call/cls_16byte.c: Likewise.
4088 * testsuite/libffi.call/cls_18byte.c: Likewise.
4089 * testsuite/libffi.call/cls_19byte.c: Likewise.
4090 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4091 * testsuite/libffi.call/cls_20byte.c: Likewise.
4092 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4093 * testsuite/libffi.call/cls_24byte.c: Likewise.
4094 * testsuite/libffi.call/cls_2byte.c: Likewise.
4095 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4096 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4097 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4098 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4099 * testsuite/libffi.call/cls_4byte.c: Likewise.
4100 * testsuite/libffi.call/cls_5byte.c: Likewise.
4101 * testsuite/libffi.call/cls_64byte.c: Likewise.
4102 * testsuite/libffi.call/cls_6byte.c: Likewise.
4103 * testsuite/libffi.call/cls_7byte.c: Likewise.
4104 * testsuite/libffi.call/cls_8byte.c: Likewise.
4105 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4106 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4107 * testsuite/libffi.call/cls_double.c: Likewise.
4108 * testsuite/libffi.call/cls_float.c: Likewise.
4109 * testsuite/libffi.call/cls_schar.c: Likewise.
4110 * testsuite/libffi.call/cls_sint.c: Likewise.
4111 * testsuite/libffi.call/cls_sshort.c: Likewise.
4112 * testsuite/libffi.call/cls_uchar.c: Likewise.
4113 * testsuite/libffi.call/cls_uint.c: Likewise.
4114 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4115 * testsuite/libffi.call/cls_ushort.c: Likewise.
4116 * testsuite/libffi.call/problem1.c: Likewise.
4117
4118 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4119 static.
4120
ac47cc13
AT
41212003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4122
4123 * testsuite/libffi.call/cls_9byte2.c: New test case.
4124 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4125 * testsuite/libffi.call/cls_64byte.c: Likewise.
4126 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4127 * testsuite/libffi.call/cls_19byte.c: Likewise.
4128 * testsuite/libffi.call/cls_18byte.c: Likewise.
4129 * testsuite/libffi.call/closure_fn4.c: Likewise.
4130 * testsuite/libffi.call/closure_fn5.c: Likewise.
4131 * testsuite/libffi.call/cls_schar.c: Likewise.
4132 * testsuite/libffi.call/cls_sint.c: Likewise.
4133 * testsuite/libffi.call/cls_sshort.c: Likewise.
4134 * testsuite/libffi.call/nested_struct2.c: Likewise.
4135 * testsuite/libffi.call/nested_struct3.c: Likewise.
4136
f145ed6b
AT
41372003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4138
4139 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4140 * testsuite/libffi.call/cls_uchar.c: Likewise.
4141 * testsuite/libffi.call/cls_uint.c: Likewise.
4142 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4143 * testsuite/libffi.call/cls_ushort.c: Likewise.
4144 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4145
2b04d015
AT
41462003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4147
4148 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4149 the initialization.
4150
57f542b3
AT
41512003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4152
2b04d015 4153 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
57f542b3
AT
4154 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4155
e61acf72
DD
41562003-10-22 David Daney <ddaney@avtrex.com>
4157
4158 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4159 __attribute__((__mode__(__SI__))) and friends.
4160
2461c08b
AS
41612003-10-22 Andreas Schwab <schwab@suse.de>
4162
4163 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4164
1450eb7a
AT
41652003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4166
4167 * configure.in: AC_LINK_FILES(ffitarget.h).
4168 * configure: Regenerate.
4169 * Makefile.in: Likewise.
4170 * include/Makefile.in: Likewise.
4171 * testsuite/Makefile.in: Likewise.
4172 * fficonfig.h.in: Likewise.
4173
41742003-10-21 Paolo Bonzini <bonzini@gnu.org>
4175 Richard Henderson <rth@redhat.com>
4176
4177 Avoid that ffi.h includes fficonfig.h.
4178
4179 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4180 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4181 (TARGET_SRC_MIPS_SGI): Removed.
4182 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4183 (MIPS_SGI): Removed.
4184 (CLEANFILES): Removed.
4185 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4186 targets.
4187 * acconfig.h: Removed.
4188 * configure.in: Compute sizeofs only for double and long double.
4189 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4190 into AC_DEFINE instead of using acconfig.h. Create
4191 include/ffitarget.h instead of include/fficonfig.h. Rename
4192 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4193 AC_DEFINE EH_FRAME_FLAGS.
4194 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4195 (hack_DATA): Add ffitarget.h.
4196 * include/ffi.h.in: Remove all system specific definitions.
4197 Declare raw API even if it is not installed, why bother?
4198 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4199 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4200 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4201 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4202 * include/ffi_common.h (bool): Do not define.
4203 (ffi_assert): Accept failed assertion.
4204 (ffi_type_test): Return void and accept file/line.
4205 (FFI_ASSERT): Pass stringized failed assertion.
4206 (FFI_ASSERT_AT): New macro.
4207 (FFI_ASSERT_VALID_TYPE): New macro.
4208 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4209 UINT64, SINT64): Define here with gcc's __attribute__ macro
4210 instead of in ffi.h
4211 (FLOAT32, ALIGN): Define here instead of in ffi.h
4212 * include/ffi-mips.h: Removed. Its content moved to
4213 src/mips/ffitarget.h after separating assembly and C sections.
4214 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4215 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4216 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4217 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4218 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4219 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4220 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4221 (ffi_type_test): Rewritten.
4222 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4223 FFI_ASSERT_VALID_TYPE.
4224 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4225 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4226 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4227 src/s390/ffitarget.h, src/sh/ffitarget.h,
4228 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4229 src/x86/ffitarget.h: New files.
4230 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4231 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4232 src/powerpc/aix.S, src/powerpc/darwin.S,
4233 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4234 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4235 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4236 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4237 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4238 include fficonfig.h
4239
27d54b2a
RO
42402003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4241
4242 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4243 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4244
0df6970d
AT
42452003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4246
4247 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4248 Used when FFI_DEBUG = 1.
4249
2612ffce
AM
42502003-10-14 Alan Modra <amodra@bigpond.net.au>
4251
4252 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4253 and align.
4254
d54f7354
RO
42552003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4256
4257 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4258 FFI_MIPS_O32 for O32 ABI.
4259
7a54c850
AT
42602003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4261
4262 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4263 SPARC64. Cleanup whitespaces.
4264
9e3bfa9b
AT
42652003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4266
4267 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4268 strongarm, xscale. Cleanup whitespaces.
4269 * testsuite/libffi.call/closure_fn1.c: Likewise.
4270 * testsuite/libffi.call/closure_fn2.c: Likewise.
4271 * testsuite/libffi.call/closure_fn3.c: Likewise.
4272 * testsuite/libffi.call/cls_12byte.c: Likewise.
4273 * testsuite/libffi.call/cls_16byte.c: Likewise.
4274 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4275 * testsuite/libffi.call/cls_20byte.c: Likewise.
4276 * testsuite/libffi.call/cls_24byte.c: Likewise.
4277 * testsuite/libffi.call/cls_2byte.c: Likewise.
4278 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4279 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4280 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4281 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4282 * testsuite/libffi.call/cls_4byte.c: Likewise.
4283 * testsuite/libffi.call/cls_5byte.c: Likewise.
4284 * testsuite/libffi.call/cls_6byte.c: Likewise.
4285 * testsuite/libffi.call/cls_7byte.c: Likewise.
4286 * testsuite/libffi.call/cls_8byte.c: Likewise.
4287 * testsuite/libffi.call/cls_double.c: Likewise.
4288 * testsuite/libffi.call/cls_float.c: Likewise.
4289 * testsuite/libffi.call/cls_uchar.c: Likewise.
4290 * testsuite/libffi.call/cls_uint.c: Likewise.
4291 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4292 * testsuite/libffi.call/cls_ushort.c: Likewise.
4293 * testsuite/libffi.call/nested_struct.c: Likewise.
4294 * testsuite/libffi.call/nested_struct1.c: Likewise.
4295 * testsuite/libffi.call/problem1.c: Likewise.
4296 * testsuite/libffi.special/unwindtest.cc: Likewise.
4297 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4298
3e86b595
DE
42992003-09-18 David Edelsohn <edelsohn@gnu.org>
4300
4301 * src/powerpc/aix.S: Cleanup whitespaces.
4302 * src/powerpc/aix_closure.S: Likewise.
4303
8d8369f8
AT
43042003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4305
4306 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4307 * src/powerpc/darwin_closure.S: Likewise.
4308 * src/powerpc/ffi_darwin.c: Likewise.
4309
69b182fd
AT
43102003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4311 David Edelsohn <edelsohn@gnu.org>
4312
4313 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4314 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4315 parameter stack.
4316 * src/powerpc/darwin_closure.S: Likewise.
4317 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4318 according to the Darwin/AIX ABI.
4319 (ffi_prep_cif_machdep): Likewise.
4320 (ffi_closure_helper_DARWIN): Likewise.
4321 Remove the outgoing parameter stack logic. Simplify the evaluation
4322 of the different CASE types.
4323 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4324 statement in the trampoline code.
4325
df805cdc
KK
43262003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4327
4328 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4329 for the register size.
4330 (ffi_closure_helper_SYSV): Handle the structure return value
4331 address correctly.
4332 (ffi_closure_helper_SYSV): Return the appropriate type when
4333 the registers are used for the structure return value.
4334 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4335 the 64-bit return value. Update copyright years.
4336
eb26c76c
RO
43372003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4338
4339 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4340 srcdir for ffi_mips.h.
4341
6350c02c
AM
43422003-09-12 Alan Modra <amodra@bigpond.net.au>
4343
4344 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4345 structure size.
4346 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4347 placement of float result.
4348 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4349 cast of "resp" for big-endian 64 bit machines.
4350
5af1c806
AM
43512003-09-11 Alan Modra <amodra@bigpond.net.au>
4352
4353 * src/types.c (double, longdouble): Merge identical SH and ARM
4354 typedefs, and add POWERPC64.
4355 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4356 struct split over gpr and rest.
4357 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4358 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4359
086a4bd7
AT
43602003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4361
4362 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4363 passing correctly.
c930d8a5 4364
e517f636
AM
43652003-09-09 Alan Modra <amodra@bigpond.net.au>
4366
4367 * configure: Regenerate.
4368
6f20d627
AT
43692003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4370
4371 * Makefile.am: Remove build rules for ffitest.
4372 * Makefile.in: Rebuilt.
c930d8a5 4373
6f20d627 43742003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
226660af
AT
4375
4376 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4377 about implicit declaration of abort().
4378
bbf3057b
AT
43792003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4380
4381 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4382 * Makefile.in: Rebuilt.
4383 * configure.in: Add dejagnu test framework.
4384 * configure: Rebuilt.
4385
4386 * testsuite/Makefile.am: New file.
4387 * testsuite/Makefile.in: Built
c930d8a5 4388 * testsuite/lib/libffi-dg.exp: New file.
bbf3057b
AT
4389 * testsuite/config/default.exp: Likewise.
4390 * testsuite/libffi.call/call.exp: Likewise.
4391 * testsuite/libffi.call/ffitest.h: Likewise.
4392 * testsuite/libffi.call/closure_fn0.c: Likewise.
4393 * testsuite/libffi.call/closure_fn1.c: Likewise.
4394 * testsuite/libffi.call/closure_fn2.c: Likewise.
4395 * testsuite/libffi.call/closure_fn3.c: Likewise.
4396 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4397 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4398 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4399 * testsuite/libffi.call/cls_2byte.c: Likewise.
4400 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4401 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4402 * testsuite/libffi.call/cls_4byte.c: Likewise.
4403 * testsuite/libffi.call/cls_5byte.c: Likewise.
4404 * testsuite/libffi.call/cls_6byte.c: Likewise.
4405 * testsuite/libffi.call/cls_7byte.c: Likewise.
4406 * testsuite/libffi.call/cls_8byte.c: Likewise.
4407 * testsuite/libffi.call/cls_12byte.c: Likewise.
4408 * testsuite/libffi.call/cls_16byte.c: Likewise.
4409 * testsuite/libffi.call/cls_20byte.c: Likewise.
4410 * testsuite/libffi.call/cls_24byte.c: Likewise.
4411 * testsuite/libffi.call/cls_double.c: Likewise.
4412 * testsuite/libffi.call/cls_float.c: Likewise.
4413 * testsuite/libffi.call/cls_uchar.c: Likewise.
4414 * testsuite/libffi.call/cls_uint.c: Likewise.
4415 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4416 * testsuite/libffi.call/cls_ushort.c: Likewise.
4417 * testsuite/libffi.call/float.c: Likewise.
4418 * testsuite/libffi.call/float1.c: Likewise.
4419 * testsuite/libffi.call/float2.c: Likewise.
4420 * testsuite/libffi.call/many.c: Likewise.
4421 * testsuite/libffi.call/many_win32.c: Likewise.
4422 * testsuite/libffi.call/nested_struct.c: Likewise.
4423 * testsuite/libffi.call/nested_struct1.c: Likewise.
4424 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4425 * testsuite/libffi.call/problem1.c: Likewise.
4426 * testsuite/libffi.call/promotion.c: Likewise.
4427 * testsuite/libffi.call/return_ll.c: Likewise.
4428 * testsuite/libffi.call/return_sc.c: Likewise.
4429 * testsuite/libffi.call/return_uc.c: Likewise.
4430 * testsuite/libffi.call/strlen.c: Likewise.
4431 * testsuite/libffi.call/strlen_win32.c: Likewise.
4432 * testsuite/libffi.call/struct1.c: Likewise.
4433 * testsuite/libffi.call/struct2.c: Likewise.
4434 * testsuite/libffi.call/struct3.c: Likewise.
4435 * testsuite/libffi.call/struct4.c: Likewise.
4436 * testsuite/libffi.call/struct5.c: Likewise.
4437 * testsuite/libffi.call/struct6.c: Likewise.
4438 * testsuite/libffi.call/struct7.c: Likewise.
4439 * testsuite/libffi.call/struct8.c: Likewise.
c930d8a5 4440 * testsuite/libffi.call/struct9.c: Likewise.
bbf3057b
AT
4441 * testsuite/libffi.special/special.exp: New file.
4442 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4443 * testsuite/libffi.special/unwindtest.cc: Likewise.
4444
c930d8a5 4445
996b4f8f
KK
44462003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4447
4448 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4449 copyright years.
4450
b00badcd
AM
44512003-08-02 Alan Modra <amodra@bigpond.net.au>
4452
4453 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4454 structure passing.
4455 (ffi_closure_helper_LINUX64): Likewise.
4456 * src/powerpc/linux64.S: Remove code writing to parm save area.
4457 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4458 address in lr from ffi_closure_helper_LINUX64 call to calculate
4459 table address. Optimize function tail.
4460
c1516eae
AT
44612003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4462
4463 * src/sparc/ffi.c: Handle all floating point registers.
4464 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4465
fc0e6222
GP
44662003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4467
4468 * README: Note that libffi is not part of GCC. Update the project
4469 URL and status.
4470
a1569df8
FS
44712003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4472
4473 * src/powerpc/ppc_closure.S: Include ffi.h.
4474
12e816bf
RO
44752003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4476
4477 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4478 Use C style comments.
4479
e860ed6d
KK
44802003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4481
4482 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4483 * Makefile.in: Regenerate.
4484 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4485 * configure: Regenerate.
4486 * include/ffi.h.in: Add SHmedia support.
4487 * src/sh64/ffi.c: New file.
4488 * src/sh64/sysv.S: New file.
4489
a733b15e
JJ
44902003-05-16 Jakub Jelinek <jakub@redhat.com>
4491
4492 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4493 should be read-only.
4494 * configure: Rebuilt.
4495 * fficonfig.h.in: Rebuilt.
4496 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4497 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4498 * src/powerpc/linux64.S: Likewise.
4499 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4500 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4501 if -fpic/-fPIC/-mrelocatable.
4502 * src/powerpc/powerpc_closure.S: Likewise.
4503 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4504 #write in .eh_frame flags.
4505 * src/sparc/v9.S: Likewise.
4506 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4507 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4508 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4509
bd19c9f4
JS
45102003-05-07 Jeff Sturm <jsturm@one-point.com>
4511
4512 Fixes PR bootstrap/10656
4513 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4514 support for .register pseudo-op.
4515 * src/sparc/v8.S: Use it.
4516 * fficonfig.h.in: Rebuilt.
4517 * configure: Rebuilt.
4518
e9b84181
JJ
45192003-04-18 Jakub Jelinek <jakub@redhat.com>
4520
4521 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4522 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4523 Make it the default on POWERPC64.
4524 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4525 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4526 * configure: Rebuilt.
4527 * src/powerpc/ffi.c (hidden): Define.
4528 (ffi_prep_args_SYSV): Renamed from
4529 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4530 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4531 ASM_NEEDS_REGISTERS64): New.
4532 (ffi_prep_args64): New function.
4533 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4534 (ffi_call): Likewise.
4535 (ffi_prep_closure): Likewise.
4536 (flush_icache): Surround by #ifndef POWERPC64.
4537 (ffi_dblfl): New union type.
4538 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4539 (ffi_closure_helper_LINUX64): New function.
4540 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4541 __powerpc64__.
4542 * src/powerpc/sysv.S: Likewise.
4543 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4544 * src/powerpc/linux64.S: New file.
4545 * src/powerpc/linux64_closure.S: New file.
4546 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4547 src/powerpc/linux64_closure.S.
4548 (TARGET_SRC_POWERPC): Likewise.
4549
4550 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4551 closure_test_fn3): Fix result printing on big-endian 64-bit
4552 machines.
4553 (main): Print tst2_arg instead of uninitialized tst2_result.
4554
4555 * src/ffitest.c (main): Hide what closure pointer really points to
4556 from the compiler.
4557
908a31e1
RE
45582003-04-16 Richard Earnshaw <rearnsha@arm.com>
4559
4560 * configure.in (arm-*-netbsdelf*): Add configuration.
4561 (configure): Regenerated.
4562
41a73c4c
LR
45632003-04-04 Loren J. Rittle <ljrittle@acm.org>
4564
4565 * include/Makefile.in: Regenerate.
4566
cd41c847
ZD
45672003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4568
4569 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4570 bit mode.
4571 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4572 Receive closure pointer through parameter, read args using
4573 __builtin_dwarf_cfa.
4574 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4575
6db450f9
AS
45762003-03-12 Andreas Schwab <schwab@suse.de>
4577
4578 * configure.in: Avoid trailing /. in toolexeclibdir.
4579 * configure: Rebuilt.
4580
70144e9c
AT
45812003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4582
c6900272 4583 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
70144e9c 4584
79e43f89
AT
45852003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4586
4587 * libffi/src/powerpc/darwin_closure.S:
4588 Fix alignement bug, allocate 8 bytes for the result.
c930d8a5 4589 * libffi/src/powerpc/aix_closure.S:
79e43f89
AT
4590 Likewise.
4591 * libffi/src/powerpc/ffi_darwin.c:
4592 Update stackframe description for aix/darwin_closure.S.
c930d8a5 4593
0fcc9e55
JJ
45942003-02-06 Jakub Jelinek <jakub@redhat.com>
4595
4596 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4597 attribute.
4598
63b87c2e
CC
45992003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4600 Andreas Schwab <schwab@suse.de>
4601
c6900272 4602 * configure.in: Adjust command to source config-ml.in to account
63b87c2e
CC
4603 for changes to the libffi_basedir definition.
4604 (libffi_basedir): Remove ${srcdir} from value and include trailing
4605 slash if nonempty.
c930d8a5 4606
c6900272 4607 * configure: Regenerate.
63b87c2e 4608
c33402e2
FS
46092003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4610
4611 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4612
fd2e49b2
AH
46132003-01-28 Andrew Haley <aph@redhat.com>
4614
4615 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4616 * src/x86/ffi64.c (ffi_prep_closure): New.
4617 (ffi_closure_UNIX64_inner): New.
4618 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4619
0e292c01
AO
46202003-01-27 Alexandre Oliva <aoliva@redhat.com>
4621
4622 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4623 Remove USE_LIBDIR conditional.
4624 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4625 * Makefile.in, configure: Rebuilt.
4626
acabc220
DE
46272003-01027 David Edelsohn <edelsohn@gnu.org>
4628
4629 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4630 * Makefile.in: Regenerate.
4631
be0acd42
AH
46322003-01-22 Andrew Haley <aph@redhat.com>
4633
4634 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4635 unwind info.
4636
ed695c8e
AT
46372003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4638
4639 * src/powerpc/darwin.S: Add unwind info.
4640 * src/powerpc/darwin_closure.S: Likewise.
4641
45ba15f4
AH
46422003-01-14 Andrew Haley <aph@redhat.com>
4643
4644 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4645 (ffi_prep_cif_machdep): Likewise.
4646 * src/x86/unix64.S: Add unwind info.
4647
4b5f402e
AJ
46482003-01-14 Andreas Jaeger <aj@suse.de>
4649
4650 * src/ffitest.c (main): Only use ffi_closures if those are
4651 supported.
4652
7b5102af
TT
46532003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4654
4655 * libffi/src/ffitest.c
c6900272 4656 add closure testcases
7b5102af
TT
4657
46582003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4659
4660 * libffi/src/powerpc/ffi.c
c6900272 4661 fix alignment bug for float (4 byte aligned iso 8 byte)
7b5102af 4662
5f7c78d8
GK
46632003-01-09 Geoffrey Keating <geoffk@apple.com>
4664
4665 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4666 * src/powerpc/darwin.S: Remove RCS version string.
4667
c75c7793
JS
46682003-01-03 Jeff Sturm <jsturm@one-point.com>
4669
4670 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4671 * src/ffitest.c (main): Use static storage for closure.
4672 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4673 * src/sparc/v8.S (ffi_closure_v8): New.
4674 * src/sparc/v9.S (ffi_closure_v9): New.
4675
eb3c46a1
RM
46762002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4677
4678 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4679 enumeration for X86_WIN32.
4680 * src/x86/win32.S: Added ffi_call_STDCALL function
4681 definition.
4682 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4683 switch cases for recognising FFI_STDCALL and
4684 calling ffi_call_STDCALL if target is X86_WIN32.
4685 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4686 stdcall versions of the "my_strlen" and "many"
4687 test functions (for X86_WIN32).
4688 Added test cases to test stdcall invocation using
4689 these functions.
4690
4977bab6
ZW
46912002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4692
4693 * src/sh/sysv.S: Add DWARF2 unwind info.
4694
67333e84
UW
46952002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4696
4697 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4698
bc3cf760
JW
46992002-11-26 Jim Wilson <wilson@redhat.com>
4700
4701 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4702
4977bab6
ZW
47032002-11-23 H.J. Lu <hjl@gnu.org>
4704
4705 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4706 Include ../config/accross.m4.
4707 * aclocal.m4; Rebuild.
4708 * configure: Likewise.
4709
18789f4e
UW
47102002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4711
4712 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4713
6bee5372
DD
47142002-11-11 DJ Delorie <dj@redhat.com>
4715
4716 * configure.in: Look for common files in the right place.
4717
8177895b
UW
47182002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4719
4720 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4721 raw data as _Jv_word values, not ffi_raw.
4722 (ffi_java_ptrarray_to_raw): Likewise.
4723 (ffi_java_rvalue_to_raw): New function.
4724 (ffi_java_raw_call): Call it.
4725 (ffi_java_raw_to_rvalue): New function.
4726 (ffi_java_translate_args): Call it.
4727 * src/ffitest.c (closure_test_fn): Interpret return value
4728 as ffi_arg, not int.
4729 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4730 FFI_TYPE_POINTER case.
4731 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4732 values extended to word size.
4733
af50f4c8
AJ
47342002-10-02 Andreas Jaeger <aj@suse.de>
4735
4736 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4737
5d297584
BT
47382002-10-01 Bo Thorsen <bo@smetana.suse.de>
4739
4740 * include/ffi.h.in: Fix i386 win32 compilation.
4741
c4f17c6f
UW
47422002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4743
4744 * configure.in: Add s390x-*-linux-* target.
4745 * configure: Regenerate.
4746 * include/ffi.h.in: Define S390X for s390x targets.
4747 (FFI_CLOSURES): Define for s390/s390x.
4748 (FFI_TRAMPOLINE_SIZE): Likewise.
4749 (FFI_NATIVE_RAW_API): Likewise.
4750 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4751 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4977bab6 4752 * src/s390/ffi.c: Major rework of existing code. Add support for
c4f17c6f
UW
4753 s390x targets. Add closure support.
4754 * src/s390/sysv.S: Likewise.
4755
d7b52625
RE
47562002-09-29 Richard Earnshaw <rearnsha@arm.com>
4757
4758 * src/arm/sysv.S: Fix typo.
4759
28165e22
RE
47602002-09-28 Richard Earnshaw <rearnsha@arm.com>
4761
4762 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4763 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4764 (ffi_call_SYSV): Handle soft-float.
4765
0b0f4163
BT
47662002-09-27 Bo Thorsen <bo@suse.de>
4767
4768 * include/ffi.h.in: Fix multilib x86-64 support.
4769
6c5d742e
KG
47702002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4771
4772 * Makefile.am (all-multi): Fix multilib parallel build.
4773
f4b2b0d6
KK
47742002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4775
4776 * configure.in (sh[34]*-*-linux*): Add brackets.
4777 * configure: Regenerate.
4778
ddebdfeb
KK
47792002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4780
4781 * Makefile.am: Add SH support.
4782 * Makefile.in: Regenerate.
4783 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4784 * configure: Regenerate.
4785 * include/ffi.h.in: Add SH support.
4786 * src/sh/ffi.c: New file.
4787 * src/sh/sysv.S: New file.
4788 * src/types.c: Add SH support.
4789
c94974ca
BT
47902002-07-16 Bo Thorsen <bo@suse.de>
4791
4792 * src/x86/ffi64.c: New file that adds x86-64 support.
4793 * src/x86/unix64.S: New file that handles argument setup for
4794 x86-64.
4795 * src/x86/sysv.S: Don't use this on x86-64.
4796 * src/x86/ffi.c: Don't use this on x86-64.
4797 Remove unused vars.
4798 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4799 for x86-64.
4800 * src/ffitest.c (struct6): New test that tests a special case in
4801 the x86-64 ABI.
4802 (struct7): Likewise.
4803 (struct8): Likewise.
4804 (struct9): Likewise.
4805 (closure_test_fn): Silence warning about this when it's not used.
4806 (main): Add the new tests.
4807 (main): Fix a couple of wrong casts and silence some compiler warnings.
4808 * include/ffi.h.in: Add x86-64 ABI definition.
4809 * fficonfig.h.in: Regenerate.
4810 * Makefile.am: Add x86-64 support.
4811 * configure.in: Likewise.
4812 * Makefile.in: Regenerate.
4813 * configure: Likewise.
4814
48152002-06-24 Bo Thorsen <bo@suse.de>
4816
4817 * src/types.c: Merge settings for similar architectures.
4818 Add x86-64 sizes and alignments.
4819
48202002-06-23 Bo Thorsen <bo@suse.de>
4821
4822 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4823 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4824 * src/mips/ffi.c (ffi_prep_args): Likewise.
4825 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4826
5be36a8f
L
48272002-07-18 H.J. Lu (hjl@gnu.org)
4828
4829 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4830 (libffi_la_SOURCES): Support MIPS_LINUX.
4831 (libffi_convenience_la_SOURCES): Likewise.
4832 * Makefile.in: Regenerated.
4833
4834 * configure.in (mips64*-*): Skip.
4835 (mips*-*-linux*): New.
4836 * configure: Regenerated.
4837
4838 * src/mips/ffi.c: Include <sgidefs.h>.
4839
ad5e163c
UW
48402002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4841
4842 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4843
ee4586c5
RS
48442002-05-27 Roger Sayle <roger@eyesopen.com>
4845
4846 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4847
b86aa7b0
BT
48482002-05-27 Bo Thorsen <bo@suse.de>
4849
4850 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4851 fix formatting.
4852
859f7aaf
AT
48532002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4854
4855 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4856 beginning of function (for older apple cc).
4857
6706f116
AO
48582002-05-08 Alexandre Oliva <aoliva@redhat.com>
4859
4860 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4861 script entry, and set LD to it when configuring multilibs.
4862 * configure: Rebuilt.
4863
fad655c8
JT
48642002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4865
4866 * configure.in (sparc64-*-netbsd*): Add target.
4867 (sparc-*-netbsdelf*): Likewise.
4868 * configure: Regenerate.
4869
189ab118
DM
48702002-04-28 David S. Miller <davem@redhat.com>
4871
4872 * configure.in, configure: Fix SPARC test in previous change.
4873
22bcf65c
GT
48742002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4875
4876 * Makefile.am: Add Linux for S/390 support.
4877 * Makefile.in: Regenerate.
4878 * configure.in: Add Linux for S/390 support.
4879 * configure: Regenerate.
4880 * include/ffi.h.in: Add Linux for S/390 support.
4881 * src/s390/ffi.c: New file from libffi CVS tree.
4882 * src/s390/sysv.S: New file from libffi CVS tree.
4883
5d84cf0b
JJ
48842002-04-28 Jakub Jelinek <jakub@redhat.com>
4885
4886 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4887 %r_disp32().
4888 * src/sparc/v8.S: Use it.
4889 * src/sparc/v9.S: Likewise.
4890 * fficonfig.h.in: Rebuilt.
4891 * configure: Rebuilt.
4892
cc382e5c
HB
48932002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4894
4895 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4896 correctly.
4897 * src/ia64/unix.S: Add unwind information. Fix comments.
4898 Save sp in a way that's compatible with unwind info.
4899 (ffi_call_unix): Correctly restore sp in all cases.
4900 * src/ia64/ffi.c: Add, fix comments.
4901
dc798645
JJ
49022002-04-08 Jakub Jelinek <jakub@redhat.com>
4903
4904 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4905
da00eaab
JT
49062002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4907
4908 * configure.in (alpha*-*-netbsd*): Add target.
4909 * configure: Regenerate.
4910
0c0b87ad
JS
49112002-04-04 Jeff Sturm <jsturm@one-point.com>
4912
4913 * src/sparc/v8.S: Add unwind info.
4914 * src/sparc/v9.S: Likewise.
4915
320d7e7a
KW
49162002-03-30 Krister Walfridsson <cato@df.lth.se>
4917
4918 * configure.in: Enable i*86-*-netbsdelf*.
4919 * configure: Rebuilt.
4977bab6 4920
c75e51ed
DB
49212002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4922
4923 PR other/2620
4924 * src/mips/n32.s: Delete
4925 * src/mips/o32.s: Delete
4926
5bb366e0
LR
49272002-03-21 Loren J. Rittle <ljrittle@acm.org>
4928
4929 * configure.in: Enable alpha*-*-freebsd*.
4930 * configure: Rebuilt.
4931
ce3b24a7
BM
49322002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4933
4934 * Makefile.am: libfficonvenience -> libffi_convenience.
4935 * Makefile.in: Rebuilt.
4977bab6 4936
1eb7ba30
BM
4937 * Makefile.am: Define ffitest_OBJECTS.
4938 * Makefile.in: Rebuilt.
ce3b24a7 4939
073ae293
AT
49402002-03-07 Andreas Tobler <toa@pop.agri.ch>
4941 David Edelsohn <edelsohn@gnu.org>
4942
4943 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4944 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4945 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4946 * Makefile.in: Regenerate.
4947 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4948 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4949 (flush_icache, flush_range): New functions.
4950 (ffi_closure_helper_DARWIN): New function.
4951 * src/powerpc/aix_closure.S: New file.
4952 * src/powerpc/darwin_closure.S: New file.
4977bab6 4953
02c521f4
JS
49542002-02-24 Jeff Sturm <jsturm@one-point.com>
4955
4956 * include/ffi.h.in: Add typedef for ffi_arg.
4957 * src/ffitest.c (main): Declare rint with ffi_arg.
4977bab6 4958
287dd527
AT
49592002-02-21 Andreas Tobler <toa@pop.agri.ch>
4960
4961 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4962 number of GPRs for floating-point arguments.
4963
e2f2e70a
AG
49642002-01-31 Anthony Green <green@redhat.com>
4965
4966 * configure: Rebuilt.
4967 * configure.in: Replace CHECK_SIZEOF and endian tests with
4968 cross-compiler friendly macros.
4969 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4970 macros.
4971
15b9b32f
DE
49722002-01-18 David Edelsohn <edelsohn@gnu.org>
4973
4974 * src/powerpc/darwin.S (_ffi_call_AIX): New.
1f7d5413 4975 * src/powerpc/aix.S (ffi_call_DARWIN): New.
15b9b32f 4976
2f4006f8
DE
49772002-01-17 David Edelsohn <edelsohn@gnu.org>
4978
4979 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4980 (TARGET_SRC_POWERPC_AIX): New.
4981 (POWERPC_AIX): New stanza.
4982 * Makefile.in: Regenerate.
4983 * configure.in: Add AIX case.
4984 * configure: Regenerate.
4985 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4986 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4987 size. Fix "long double" support.
4988 (ffi_call): Add FFI_AIX case.
4989 * src/powerpc/aix.S: New.
4990
3c017635
JH
49912001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4992
4993 Implement Darwin PowerPC ABI.
4994 * configure.in: Handle powerpc-*-darwin*.
4995 * Makefile.am: Set source files for POWERPC_DARWIN.
4996 * configure: Rebuilt.
4997 * Makefile.in: Rebuilt.
4998 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4999 POWERPC_DARWIN.
5000 * src/powerpc/darwin.S: New file.
5001 * src/powerpc/ffi_darwin.c: New file.
5002
cc712abf
JM
50032001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5004
5005 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5006
03a8de49
RO
50072001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5008
5009 * src/x86/sysv.S: Avoid gas-only .balign directive.
5010 Use C style comments.
5011
92a0e6c6
RO
50122001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5013
5014 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5015 Fixes PR bootstrap/3563.
5016
57482f58
RO
50172001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5018
5019 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5020
d7e2dd2f
RO
50212001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5022
5023 * configure.in: Recognize sparc*-sun-* host.
5024 * configure: Regenerate.
4977bab6 5025
be72207c
AH
50262001-06-06 Andrew Haley <aph@redhat.com>
5027
4075db8f 5028 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
be72207c 5029
552cb45a
AH
50302001-06-03 Andrew Haley <aph@redhat.com>
5031
4075db8f
BT
5032 * src/alpha/osf.S: Add unwind info.
5033 * src/powerpc/sysv.S: Add unwind info.
5034 * src/powerpc/ppc_closure.S: Likewise.
552cb45a 5035
7d45b968
JS
50362000-05-31 Jeff Sturm <jsturm@one-point.com>
5037
5038 * configure.in: Fix AC_ARG_ENABLE usage.
5039 * configure: Rebuilt.
5040
2a7f63c4
BM
50412001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5042
5043 * configure.in: Remove warning about beta code.
5044 * configure: Rebuilt.
5045
50462001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5047
03a55252
HB
5048 * src/ia64/unix.S: Restore stack pointer when returning from
5049 ffi_closure_UNIX.
5050 * src/ia64/ffi.c: Fix typo in comment.
5051
df5da1c4
JW
50522001-04-18 Jim Wilson <wilson@redhat.com>
5053
5054 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5055 to eliminate RAW DV.
5056
52c28977
BM
50572001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5058
5059 * Makefile.am: Make a libtool convenience library.
5060 * Makefile.in: Rebuilt.
5061
3b905056
BM
50622001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5063
5064 * configure.in: Use different syntax for subdirectory creation.
5065 * configure: Rebuilt.
5066
d6c4152a
JB
50672001-03-27 Jon Beniston <jon@beniston.com>
5068
5069 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5070 * configure: Rebuilt.
5071 * Makefile.am: Added X86_WIN32 target support.
5072 * Makefile.in: Rebuilt.
5073
5074 * include/ffi.h.in: Added X86_WIN32 target support.
5075
5076 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5077 * src/types.c: Added X86_WIN32 target support.
5078
5079 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5080 stuff removed and made to work with CygWin's gas.
5081
675cdab3
BM
50822001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5083
5084 * configure.in: Make target subdirectory in build dir.
5085 * Makefile.am: Override suffix based rules to specify correct output
5086 subdirectory.
5087 * Makefile.in: Rebuilt.
5088 * configure: Rebuilt.
5089
e5f8858a 50902001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
cc4c8975
KH
5091
5092 * src/powerpc/ppc_closure.S: New file.
5093 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5094 involving long long and register pairs.
5095 (ffi_prep_closure): New function.
5096 (flush_icache): Likewise.
5097 (ffi_closure_helper_SYSV): Likewise.
5098 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5099 (FFI_TRAMPOLINE_SIZE): Likewise.
5100 (FFI_NATIVE_RAW_API): Likewise.
5101 * Makefile.in: Rebuilt.
5102 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5103 (TARGET_SRC_POWERPC): Likewise.
5104
9450a929
TT
51052001-03-19 Tom Tromey <tromey@redhat.com>
5106
5107 * Makefile.in: Rebuilt.
5108 * Makefile.am (ffitest_LDFLAGS): New macro.
5109
4d2cf715
NC
51102001-03-02 Nick Clifton <nickc@redhat.com>
5111
5112 * include/ffi.h.in: Remove RCS ident string.
5113 * include/ffi_mips.h: Remove RCS ident string.
5114 * src/debug.c: Remove RCS ident string.
5115 * src/ffitest.c: Remove RCS ident string.
5116 * src/prep_cif.c: Remove RCS ident string.
5117 * src/types.c: Remove RCS ident string.
5118 * src/alpha/ffi.c: Remove RCS ident string.
5119 * src/alpha/osf.S: Remove RCS ident string.
5120 * src/arm/ffi.c: Remove RCS ident string.
5121 * src/arm/sysv.S: Remove RCS ident string.
5122 * src/mips/ffi.c: Remove RCS ident string.
5123 * src/mips/n32.S: Remove RCS ident string.
5124 * src/mips/o32.S: Remove RCS ident string.
5125 * src/sparc/ffi.c: Remove RCS ident string.
5126 * src/sparc/v8.S: Remove RCS ident string.
5127 * src/sparc/v9.S: Remove RCS ident string.
5128 * src/x86/ffi.c: Remove RCS ident string.
5129 * src/x86/sysv.S: Remove RCS ident string.
5130
7e5fd99f
JM
51312001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5132
5133 * include/ffi.h.in: Change sourceware.cygnus.com references to
5134 gcc.gnu.org.
5135
3f67ba6e
RH
51362000-12-09 Richard Henderson <rth@redhat.com>
5137
5138 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5139 (ffi_closure_osf_inner): Index rather than increment avalue
5140 and arg_types. Give ffi_closure_osf the raw return value type.
5141 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5142 promotion.
5143
51442000-12-07 Richard Henderson <rth@redhat.com>
29fe0479
RH
5145
5146 * src/raw_api.c (ffi_translate_args): Fix typo.
5147 (ffi_prep_closure): Likewise.
5148
5149 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5150 FFI_TRAMPOLINE_SIZE.
5151 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5152 cif->bytes for new ffi_call_osf implementation.
5153 (ffi_prep_args): Absorb into ...
5154 (ffi_call): ... here. Do all stack allocation here and
5155 avoid a callback function.
5156 (ffi_prep_closure, ffi_closure_osf_inner): New.
5157 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5158 (ffi_closure_osf): New.
5159
2f7bf5b7
AO
51602000-09-10 Alexandre Oliva <aoliva@redhat.com>
5161
ed1c1a1a
AO
5162 * config.guess, config.sub, install-sh: Removed.
5163 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5164 * Makefile.in: Rebuilt.
5165
2f7bf5b7
AO
5166 * acinclude.m4: Include libtool macros from the top level.
5167 * aclocal.m4, configure: Rebuilt.
5168
e15a68e7
AO
51692000-08-22 Alexandre Oliva <aoliva@redhat.com>
5170
5171 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5172 * configure: Rebuilt.
5173
7f8c11d5
SB
51742000-05-11 Scott Bambrough <scottb@netwinder.org>
5175
4977bab6
ZW
5176 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5177 memory correctly. Use conditional instructions, not branches where
7f8c11d5
SB
5178 possible.
5179
c5acf51f
TT
51802000-05-04 Tom Tromey <tromey@cygnus.com>
5181
5182 * configure: Rebuilt.
5183 * configure.in: Match `arm*-*-linux-*'.
5184 From Chris Dornan <cdornan@arm.com>.
5185
91bffbe9
JJ
51862000-04-28 Jakub Jelinek <jakub@redhat.com>
5187
5188 * Makefile.am (SUBDIRS): Define.
5189 (AM_MAKEFLAGS): Likewise.
5190 (Multilib support.): Add section.
5191 * Makefile.in: Rebuilt.
5192 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4075db8f
BT
5193 New variables. Set for gcc using -print-multi-lib. Export them
5194 to libtool.
5195 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5196 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5197 for -shared links.
5198 (extra_compiler_flags_value, extra_compiler_flags): Check these
5199 for extra compiler options which need to be passed down in
5200 compiler_flags.
91bffbe9 5201
bd66587e
AG
52022000-04-16 Anthony Green <green@redhat.com>
5203
5204 * configure: Rebuilt.
5205 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5206
3791773c
JJ
52072000-04-14 Jakub Jelinek <jakub@redhat.com>
5208
4075db8f 5209 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3791773c
JJ
5210 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5211 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5212 Replace all void * sizeofs with sizeof(int).
5213 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5214 different than DOUBLE.
5215 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5216 (ffi_prep_args_v9): New function.
5217 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5218 (ffi_V9_return_struct): New function.
5219 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5220 32bit code (not yet cross-arch calls).
5221 * src/sparc/v8.S: Add struct return delay nop.
5222 Handle long long.
5223 * src/sparc/v9.S: New file.
5224 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5225 is used on sparc64 only for structures larger than 32 bytes.
5226 Pass by reference for structures is done for structure arguments
5227 larger than 16 bytes.
5228 * src/ffitest.c (main): Use 64bit rint on sparc64.
5229 Run long long tests on sparc.
5230 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5231 sparc64.
5232 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5233 on sparc64.
5234 * configure.in (sparc-*-linux*): New supported target.
5235 (sparc64-*-linux*): Likewise.
5236 * configure: Rebuilt.
5237 * Makefile.am: Add v9.S to SPARC files.
5238 * Makefile.in: Likewise.
5239 (LINK): Surround $(CCLD) into double quotes, so that multilib
5240 compiles work correctly.
5241
db459595
APB
52422000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5243
5244 * configure: Rebuilt.
5245 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5246 proposed by Bryce McKinlay.
5247
c1f63902
TT
52482000-03-20 Tom Tromey <tromey@cygnus.com>
5249
5250 * Makefile.in: Hand edit for java_raw_api.lo.
5251
0f72dc9e
BM
52522000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5253
5254 * config.guess, config.sub: Update from the gcc tree.
5255 Fix for PR libgcj/168.
5256
3c18f2d1
TT
52572000-03-03 Tom Tromey <tromey@cygnus.com>
5258
323eee8a
TT
5259 * Makefile.in: Fixed ia64 by hand.
5260
3c18f2d1
TT
5261 * configure: Rebuilt.
5262 * configure.in (--enable-multilib): New option.
5263 (libffi_basedir): New subst.
5264 (AC_OUTPUT): Added multilib code.
5265
a2b10a92
TT
52662000-03-02 Tom Tromey <tromey@cygnus.com>
5267
5268 * Makefile.in: Rebuilt.
5269 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5270 directory name.
5271
dc5de370
HB
52722000-02-25 Hans Boehm <boehm@acm.org>
5273
5274 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5275 files.
5276 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5277 list.
5278 (ffi_prep_raw_closure): Use ffi_translate_args, not
5279 ffi_closure_translate.
5280 * src/java_raw_api.c: New file.
5281 * src/ffitest.c (closure_test_fn): New function.
5282 (main): Define `rint' as long long on IA64. Added new test when
5283 FFI_CLOSURES is defined.
5284 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5285 (ffi_abi): Recognize IA64.
5286 (ffi_raw): Added `flt' field.
5287 Added "Java raw API" code.
5288 * configure.in: Recognize ia64.
5289 * Makefile.am (TARGET_SRC_IA64): New macro.
5290 (libffi_la_common_SOURCES): Added java_raw_api.c.
5291 (libffi_la_SOURCES): Define in IA64 case.
5292
d79229bd
TT
52932000-01-04 Tom Tromey <tromey@cygnus.com>
5294
5295 * Makefile.in: Rebuilt with newer automake.
5296
2c33b220
TT
52971999-12-31 Tom Tromey <tromey@cygnus.com>
5298
5299 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5300
6ba9e3b0
TT
53011999-09-01 Tom Tromey <tromey@cygnus.com>
5302
5303 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5304 undefs.
5305 * fficonfig.h.in: Rebuilt.
5306 * configure: Rebuilt.
5307 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5308 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5309 * acconfig.h: Don't #undef PACKAGE or VERSION.
5310
63e5e3e0
AG
53111999-08-09 Anthony Green <green@cygnus.com>
5312
5313 * include/ffi.h.in: Try to work around messy header problem
5314 with PACKAGE and VERSION.
5315
5316 * configure: Rebuilt.
5317 * configure.in: Change version to 2.00-beta.
5318
4075db8f 5319 * fficonfig.h.in: Rebuilt.
63e5e3e0
AG
5320 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5321
5322 * src/x86/ffi.c (ffi_raw_call): Rename.
5323
53241999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5325
5326 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5327 (ffi_prep_incoming_args_SYSV): Ditto.
5328 (ffi_prep_closure): Ditto.
5329 (ffi_closure_raw_SYSV): Ditto.
5330 (ffi_prep_raw_closure): More ditto.
5331 (ffi_call_raw): Final ditto.
5332
5333 * include/ffi.h.in: Add definitions for closure and raw API.
5334
5335 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4977bab6 5336 FFI_TYPE_UINT64.
63e5e3e0
AG
5337
5338 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5339
5340 * src/raw_api.c: New file.
5341
5342 * include/ffi.h.in (ffi_raw): New type.
5343 (UINT_ARG, SINT_ARG): New defines.
5344 (ffi_closure, ffi_raw_closure): New types.
5345 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4977bab6 5346
63e5e3e0
AG
5347 * configure.in: Add check for endianness and sizeof void*.
5348
5349 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5350 instead of directly.
5351
5352 * configure: Rebuilt.
5353
5354Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5355
5356 * configure.in: Add x86 and powerpc BeOS configurations.
5357 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5358
53591999-05-09 Anthony Green <green@cygnus.com>
5360
5361 * configure.in: Add warning about this being beta code.
5362 Remove src/Makefile.am from the picture.
5363 * configure: Rebuilt.
5364
5365 * Makefile.am: Move logic from src/Makefile.am. Add changes
5366 to support libffi as a target library.
5367 * Makefile.in: Rebuilt.
5368
5369 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5370 Upgraded to new autoconf, automake, libtool.
5371
5372 * README: Tweaks.
5373
5374 * LICENSE: Update copyright date.
5375
5376 * src/Makefile.am, src/Makefile.in: Removed.
5377
53781998-11-29 Anthony Green <green@cygnus.com>
5379
5380 * include/ChangeLog: Removed.
5381 * src/ChangeLog: Removed.
5382 * src/mips/ChangeLog: Removed.
5383 * src/sparc/ChangeLog: Remboved.
5384 * src/x86/ChangeLog: Removed.
5385
5386 * ChangeLog.v1: Created.