]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
configure.host (sparc*-sun-solaris2.*): New case.
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
9e7e65a0
DE
12009-12-07 David Edelsohn <edelsohn@gnu.org>
2
3 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
4 typo.
5
5d7fc941
DE
62009-12-05 David Edelsohn <edelsohn@gnu.org>
7
8 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
9 code.
9e7e65a0 10 * src/powerpc/aix_closure.S: Same.
5d7fc941 11
43e02a8a
RW
122009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13
14 * Makefile.in: Regenerate.
15 * configure: Regenerate.
16 * include/Makefile.in: Regenerate.
17 * man/Makefile.in: Regenerate.
18 * testsuite/Makefile.in: Regenerate.
19
2f2d7386
DE
202009-12-04 David Edelsohn <edelsohn@gnu.org>
21
22 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
23 linux64_closure.S.
24
6078f50a
UB
252009-12-04 Uros Bizjak <ubizjak@gmail.com>
26
27 PR libffi/41908
28 * src/x86/ffi64.c (classify_argument): Update from
29 gcc/config/i386/i386.c.
30 (ffi_closure_unix64_inner): Do not use the address of two consecutive
31 SSE registers directly.
32 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
33 for x86_64 linux targets.
34
0c552622
DE
352009-12-04 David Edelsohn <edelsohn@gnu.org>
36
37 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
38 pfr for long double split between fpr13 and stack.
39
afb5e622
DE
402009-12-03 David Edelsohn <edelsohn@gnu.org>
41
42 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
43 fparg_count twice for long double.
44
be311914
DE
452009-12-03 David Edelsohn <edelsohn@gnu.org>
46
47 PR libffi/42243
48 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
49
a27c4040
UB
502009-12-03 Uros Bizjak <ubizjak@gmail.com>
51
52 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
ddf6c187 53 Remove xfails for x86 linux targets.
a27c4040 54
7837c247
DE
552009-12-02 David Edelsohn <edelsohn@gnu.org>
56
57 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
58 case.
59
602009-12-01 David Edelsohn <edelsohn@gnu.org>
6d518d3b
DE
61
62 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
63 register usage. Call ffi_prep_args directly. Add long double
64 return value support.
65 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
66 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
67 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
68 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
69 mode.
70 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
71 into case.
72 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
73 Allocate result area between params and FPRs.
74
5751cf6f
DE
752009-11-30 David Edelsohn <edelsohn@gnu.org>
76
77 PR target/35484
78 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
79 AIX64.
80 * src/powerpc/aix.S: Implement AIX64 version.
81 * src/powerpc/aix_closure.S: Implement AIX64 version.
82 (ffi_closure_ASM): Use extsb, lha and displament addresses.
83 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
84 support.
85 (ffi_prep_cif_machdep): Same.
86 (ffi_call): Same.
87 (ffi_closure_helper_DARWIN): Same.
88
2265f646
AT
892009-11-02 Andreas Tobler <a.tobler@schweiz.org>
90
91 PR libffi/41908
92 * testsuite/libffi.call/testclosure.c: New test.
93
ef6ed66d
KT
942009-09-28 Kai Tietz <kai.tietz@onevision.com>
95
96 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
97 assembly version use of ___chkstk.
98
29d1370a
MK
992009-09-23 Matthias Klose <doko@ubuntu.com>
100
101 PR libffi/40242, PR libffi/41443
102 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
103 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
104 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
105 Change the conditionals to __SOFTFP__ || __ARM_EABI__
106 for -mfloat-abi=softfp to work.
107
987ce557
LR
1082009-09-17 Loren J. Rittle <ljrittle@acm.org>
109
110 PR testsuite/32843 (strikes again)
111 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
112 enable proper extension on char and short.
113
5cbf8c8d
DD
1142009-09-15 David Daney <ddaney@caviumnetworks.com>
115
116 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
117 handling for FFI_TYPE_POINTER.
118 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
119 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
120 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
121 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
122 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
123 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
124 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
125 structure and pointer returns.
126 (ffi_closure_N32): Add handling for pointer returns.
127 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
128 calc_n32_return_struct_flags): Handle soft-float.
129 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
130 (ffi_call_N32): Declare proper argument types.
131 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
132 soft-float.
133
df58e648
RW
1342009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
135
136 * configure.ac (AC_PREREQ): Bump to 2.64.
137
5213506e
RW
1382009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
139
70fa0efa
RW
140 * Makefile.am (install-html, install-pdf): Remove.
141 * Makefile.in: Regenerate.
142
5213506e
RW
143 * Makefile.in: Regenerate.
144 * aclocal.m4: Regenerate.
145 * configure: Regenerate.
146 * fficonfig.h.in: Regenerate.
147 * include/Makefile.in: Regenerate.
148 * man/Makefile.in: Regenerate.
149 * testsuite/Makefile.in: Regenerate.
150
1b3b24c2
RW
1512009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
152
153 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
154
723512ba
DK
1552009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
156
157 PR libffi/40807
158 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
159 return types for X86_WIN32.
160 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
161 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
162 _ffi_closure_STDCALL): Likewise.
163
164 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
165 (dlmmap, dlmunmap): Also use these functions on Cygwin.
166
33cde516
RS
1672009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
168
169 PR testsuite/40699
170 PR testsuite/40707
171 PR testsuite/40709
172 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
173 2009-06-30 commits.
174
edd3a61c
RS
1752009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
176
177 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
178 to "" before adding paths. (This reinstates an assignment that
179 was removed by my 2009-06-30 commit, but changes the initial
180 value from "." to "".)
181
33d1a550
L
1822009-07-01 H.J. Lu <hongjiu.lu@intel.com>
183
184 PR testsuite/40601
185 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
186 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
187 empty.
188
b30bfd40
RS
1892009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
190
191 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
192 to ld_library_path. Use add_path. Add just find_libgcc_s
193 to ld_library_path, not every libgcc multilib directory.
194
6975f17f
WL
1952009-06-16 Wim Lewis <wiml@hhhh.org>
196
197 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
198 supposed to be callee-saved.
199 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
200 return buffer for odd-size structs.
201
7bbcc286
AT
2022009-06-16 Andreas Tobler <a.tobler@schweiz.org>
203
204 PR libffi/40444
205 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
206 allow_stack_execute for Darwin.
207
fe673cc9
AH
2082009-06-16 Andrew Haley <aph@redhat.com>
209
210 * configure.ac (TARGETDIR): Add missing blank lines.
211 * configure: Regenerate.
212
3bc462c2
AH
2132009-06-16 Andrew Haley <aph@redhat.com>
214
215 * testsuite/libffi.call/cls_align_sint64.c,
216 testsuite/libffi.call/cls_align_uint64.c,
217 testsuite/libffi.call/cls_longdouble_va.c,
218 testsuite/libffi.call/cls_ulonglong.c,
219 testsuite/libffi.call/return_ll1.c,
220 testsuite/libffi.call/stret_medium2.c: Fix printf format
221 specifiers.
222 * testsuite/libffi.call/ffitest.h,
223 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
224
081b044b
AH
2252009-06-15 Andrew Haley <aph@redhat.com>
226
227 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
228 * testsuite/libffi.call/err_bad_abi.c: Likewise.
229
062b8279
AH
2302009-06-12 Andrew Haley <aph@redhat.com>
231
232 * Makefile.am: Remove info_TEXINFOS.
233
2342009-06-12 Andrew Haley <aph@redhat.com>
235
236 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
237 testsuite/libffi.call/cls_align_uint64.c,
238 testsuite/libffi.call/cls_ulonglong.c,
239 testsuite/libffi.call/return_ll1.c,
240 testsuite/libffi.call/stret_medium2.c: Fix printf format
241 specifiers.
242 testsuite/libffi.special/unwindtest.cc: include stdint.h.
243
2442009-06-11 Timothy Wall <twall@users.sf.net>
245
246 * Makefile.am,
247 configure.ac,
248 include/ffi.h.in,
249 include/ffi_common.h,
250 src/closures.c,
251 src/dlmalloc.c,
252 src/x86/ffi.c,
253 src/x86/ffitarget.h,
254 src/x86/win64.S (new),
255 README: Added win64 support (mingw or MSVC)
256 * Makefile.in,
257 include/Makefile.in,
258 man/Makefile.in,
259 testsuite/Makefile.in,
260 configure,
261 aclocal.m4: Regenerated
262 * ltcf-c.sh: properly escape cygwin/w32 path
263 * man/ffi_call.3: Clarify size requirements for return value.
264 * src/x86/ffi64.c: Fix filename in comment.
265 * src/x86/win32.S: Remove unused extern.
266
267 * testsuite/libffi.call/closure_fn0.c,
268 testsuite/libffi.call/closure_fn1.c,
269 testsuite/libffi.call/closure_fn2.c,
270 testsuite/libffi.call/closure_fn3.c,
271 testsuite/libffi.call/closure_fn4.c,
272 testsuite/libffi.call/closure_fn5.c,
273 testsuite/libffi.call/closure_fn6.c,
274 testsuite/libffi.call/closure_stdcall.c,
275 testsuite/libffi.call/cls_12byte.c,
276 testsuite/libffi.call/cls_16byte.c,
277 testsuite/libffi.call/cls_18byte.c,
278 testsuite/libffi.call/cls_19byte.c,
279 testsuite/libffi.call/cls_1_1byte.c,
280 testsuite/libffi.call/cls_20byte.c,
281 testsuite/libffi.call/cls_20byte1.c,
282 testsuite/libffi.call/cls_24byte.c,
283 testsuite/libffi.call/cls_2byte.c,
284 testsuite/libffi.call/cls_3_1byte.c,
285 testsuite/libffi.call/cls_3byte1.c,
286 testsuite/libffi.call/cls_3byte2.c,
287 testsuite/libffi.call/cls_4_1byte.c,
288 testsuite/libffi.call/cls_4byte.c,
289 testsuite/libffi.call/cls_5_1_byte.c,
290 testsuite/libffi.call/cls_5byte.c,
291 testsuite/libffi.call/cls_64byte.c,
292 testsuite/libffi.call/cls_6_1_byte.c,
293 testsuite/libffi.call/cls_6byte.c,
294 testsuite/libffi.call/cls_7_1_byte.c,
295 testsuite/libffi.call/cls_7byte.c,
296 testsuite/libffi.call/cls_8byte.c,
297 testsuite/libffi.call/cls_9byte1.c,
298 testsuite/libffi.call/cls_9byte2.c,
299 testsuite/libffi.call/cls_align_double.c,
300 testsuite/libffi.call/cls_align_float.c,
301 testsuite/libffi.call/cls_align_longdouble.c,
302 testsuite/libffi.call/cls_align_longdouble_split.c,
303 testsuite/libffi.call/cls_align_longdouble_split2.c,
304 testsuite/libffi.call/cls_align_pointer.c,
305 testsuite/libffi.call/cls_align_sint16.c,
306 testsuite/libffi.call/cls_align_sint32.c,
307 testsuite/libffi.call/cls_align_sint64.c,
308 testsuite/libffi.call/cls_align_uint16.c,
309 testsuite/libffi.call/cls_align_uint32.c,
310 testsuite/libffi.call/cls_align_uint64.c,
311 testsuite/libffi.call/cls_dbls_struct.c,
312 testsuite/libffi.call/cls_double.c,
313 testsuite/libffi.call/cls_double_va.c,
314 testsuite/libffi.call/cls_float.c,
315 testsuite/libffi.call/cls_longdouble.c,
316 testsuite/libffi.call/cls_longdouble_va.c,
317 testsuite/libffi.call/cls_multi_schar.c,
318 testsuite/libffi.call/cls_multi_sshort.c,
319 testsuite/libffi.call/cls_multi_sshortchar.c,
320 testsuite/libffi.call/cls_multi_uchar.c,
321 testsuite/libffi.call/cls_multi_ushort.c,
322 testsuite/libffi.call/cls_multi_ushortchar.c,
323 testsuite/libffi.call/cls_pointer.c,
324 testsuite/libffi.call/cls_pointer_stack.c,
325 testsuite/libffi.call/cls_schar.c,
326 testsuite/libffi.call/cls_sint.c,
327 testsuite/libffi.call/cls_sshort.c,
328 testsuite/libffi.call/cls_uchar.c,
329 testsuite/libffi.call/cls_uint.c,
330 testsuite/libffi.call/cls_ulonglong.c,
331 testsuite/libffi.call/cls_ushort.c,
332 testsuite/libffi.call/err_bad_abi.c,
333 testsuite/libffi.call/err_bad_typedef.c,
334 testsuite/libffi.call/float2.c,
335 testsuite/libffi.call/huge_struct.c,
336 testsuite/libffi.call/nested_struct.c,
337 testsuite/libffi.call/nested_struct1.c,
338 testsuite/libffi.call/nested_struct10.c,
339 testsuite/libffi.call/nested_struct2.c,
340 testsuite/libffi.call/nested_struct3.c,
341 testsuite/libffi.call/nested_struct4.c,
342 testsuite/libffi.call/nested_struct5.c,
343 testsuite/libffi.call/nested_struct6.c,
344 testsuite/libffi.call/nested_struct7.c,
345 testsuite/libffi.call/nested_struct8.c,
346 testsuite/libffi.call/nested_struct9.c,
347 testsuite/libffi.call/problem1.c,
348 testsuite/libffi.call/return_ldl.c,
349 testsuite/libffi.call/return_ll1.c,
350 testsuite/libffi.call/stret_large.c,
351 testsuite/libffi.call/stret_large2.c,
352 testsuite/libffi.call/stret_medium.c,
353 testsuite/libffi.call/stret_medium2.c,
354 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
355 of checking for MMAP. Use intptr_t instead of long casts.
356
f43def61
KK
3572009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
358
359 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
360 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
361 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
362
6aa0b218
AH
3632009-06-09 Andrew Haley <aph@redhat.com>
364
365 * src/x86/freebsd.S: Add missing file.
366
b7b857bb
AH
3672009-06-08 Andrew Haley <aph@redhat.com>
368
369 Import from libffi 3.0.8:
370
371 * doc/libffi.texi: New file.
372 * doc/libffi.info: Likewise.
373 * doc/stamp-vti: Likewise.
374 * man/Makefile.am: New file.
375 * man/ffi_call.3: New file.
376
377 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
378 src/dlmalloc.c.
379 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
380
381 * configure.ac: Bump version to 3.0.8.
382 parisc*-*-linux*: Add.
383 i386-*-freebsd* | i386-*-openbsd*: Add.
384 powerpc-*-beos*: Add.
385 AM_CONDITIONAL X86_FREEBSD: Add.
386 AC_CONFIG_FILES: Add man/Makefile.
387
388 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
389
491e6ad1
AH
3902009-06-08 Andrew Haley <aph@redhat.com>
391
392 * README: Import from libffi 3.0.8.
393
3b5b1a73
AH
3942009-06-08 Andrew Haley <aph@redhat.com>
395
396 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
397 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
398 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
399 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
400
401 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
402 * testsuite/libffi.call/stret_medium.c: Likewise.
403 * testsuite/libffi.call/stret_large2.c: Likewise.
404 * testsuite/libffi.call/stret_large.c: Likewise.
405
4062008-12-26 Timothy Wall <twall@users.sf.net>
407
408 * testsuite/libffi.call/cls_longdouble.c,
409 testsuite/libffi.call/cls_longdouble_va.c,
410 testsuite/libffi.call/cls_align_longdouble.c,
411 testsuite/libffi.call/cls_align_longdouble_split.c,
412 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
413 failures on x86_64 cygwin/mingw.
414
4152008-12-22 Timothy Wall <twall@users.sf.net>
416
417 * testsuite/libffi.call/closure_fn0.c,
418 testsuite/libffi.call/closure_fn1.c,
419 testsuite/libffi.call/closure_fn2.c,
420 testsuite/libffi.call/closure_fn3.c,
421 testsuite/libffi.call/closure_fn4.c,
422 testsuite/libffi.call/closure_fn5.c,
423 testsuite/libffi.call/closure_fn6.c,
424 testsuite/libffi.call/closure_loc_fn0.c,
425 testsuite/libffi.call/closure_stdcall.c,
426 testsuite/libffi.call/cls_align_pointer.c,
427 testsuite/libffi.call/cls_pointer.c,
428 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
429 pointer to integer (intptr_t).
430 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
431
4322008-07-24 Anthony Green <green@redhat.com>
433
434 * testsuite/libffi.call/cls_dbls_struct.c,
435 testsuite/libffi.call/cls_double_va.c,
436 testsuite/libffi.call/cls_longdouble.c,
437 testsuite/libffi.call/cls_longdouble_va.c,
438 testsuite/libffi.call/cls_pointer.c,
439 testsuite/libffi.call/cls_pointer_stack.c,
440 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
441 compiler warnings.
442
4432008-03-04 Anthony Green <green@redhat.com>
444 Blake Chaffin
445 hos@tamanegi.org
446
447 * testsuite/libffi.call/cls_align_longdouble_split2.c
448 testsuite/libffi.call/cls_align_longdouble_split.c
449 testsuite/libffi.call/cls_dbls_struct.c
450 testsuite/libffi.call/cls_double_va.c
451 testsuite/libffi.call/cls_longdouble.c
452 testsuite/libffi.call/cls_longdouble_va.c
453 testsuite/libffi.call/cls_pointer.c
454 testsuite/libffi.call/cls_pointer_stack.c
455 testsuite/libffi.call/err_bad_abi.c
456 testsuite/libffi.call/err_bad_typedef.c
457 testsuite/libffi.call/stret_large2.c
458 testsuite/libffi.call/stret_large.c
459 testsuite/libffi.call/stret_medium2.c
460 testsuite/libffi.call/stret_medium.c: New tests from Apple.
461
56faec5e
AH
4622009-06-05 Andrew Haley <aph@redhat.com>
463
464 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
465 libffi.
466
90409e4c
AH
4672009-06-04 Andrew Haley <aph@redhat.com>
468
469 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
470 stdcall changes.
471
b1393750
AH
4722008-02-26 Anthony Green <green@redhat.com>
473 Thomas Heller <theller@ctypes.org>
474
475 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
476 comment.
477
4782008-02-03 Timothy Wall <twall@users.sf.net>
479
480 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
481 offset based on code pointer, not data pointer.
482
4832008-01-31 Timothy Wall <twall@users.sf.net>
484
485 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
486 closures.
487 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
488 closures.
489 * src/x86/win32.S: Add assembly for stdcall closure.
490 * src/x86/ffi.c: Initialize stdcall closure trampoline.
491
96baa251
AH
4922009-06-04 Andrew Haley <aph@redhat.com>
493
494 * include/ffi.h.in: Change void (*)() to void (*)(void).
495 * src/x86/ffi.c: Likewise.
496
7446546a
AH
4972009-06-04 Andrew Haley <aph@redhat.com>
498
499 * src/powerpc/ppc_closure.S: Insert licence header.
500 * src/powerpc/linux64_closure.S: Likewise.
501 * src/m68k/sysv.S: Likewise.
502
503 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
504 * src/powerpc/ffi.c: Likewise.
505 * src/powerpc/ffi_darwin.c: Likewise.
506 * src/m32r/ffi.c: Likewise.
507 * src/sh64/ffi.c: Likewise.
508 * src/x86/ffi64.c: Likewise.
509 * src/alpha/ffi.c: Likewise.
510 * src/alpha/osf.S: Likewise.
511 * src/frv/ffi.c: Likewise.
512 * src/s390/ffi.c: Likewise.
513 * src/pa/ffi.c: Likewise.
514 * src/pa/hpux32.S: Likewise.
515 * src/ia64/unix.S: Likewise.
516 * src/ia64/ffi.c: Likewise.
517 * src/sparc/ffi.c: Likewise.
518 * src/mips/ffi.c: Likewise.
519 * src/sh/ffi.c: Likewise.
520
5212008-02-15 David Daney <ddaney@avtrex.com>
522
523 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
524 Define (conditionally), and use it to include cachectl.h.
525 (ffi_prep_closure_loc): Fix cache flushing.
526 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
527
5f933ef0
AH
5282009-06-04 Andrew Haley <aph@redhat.com>
529
530 include/ffi.h.in,
531 src/arm/ffitarget.h,
532 src/arm/ffi.c,
533 src/arm/sysv.S,
534 src/powerpc/ffitarget.h,
535 src/closures.c,
536 src/sh64/ffitarget.h,
537 src/sh64/ffi.c,
538 src/sh64/sysv.S,
539 src/types.c,
540 src/x86/ffi64.c,
541 src/x86/ffitarget.h,
542 src/x86/win32.S,
543 src/x86/darwin.S,
544 src/x86/ffi.c,
545 src/x86/sysv.S,
546 src/x86/unix64.S,
547 src/alpha/ffitarget.h,
548 src/alpha/ffi.c,
549 src/alpha/osf.S,
550 src/m68k/ffitarget.h,
551 src/frv/ffitarget.h,
552 src/frv/ffi.c,
553 src/s390/ffitarget.h,
554 src/s390/sysv.S,
555 src/cris/ffitarget.h,
556 src/pa/linux.S,
557 src/pa/ffitarget.h,
558 src/pa/ffi.c,
559 src/raw_api.c,
560 src/ia64/ffitarget.h,
561 src/ia64/unix.S,
562 src/ia64/ffi.c,
563 src/ia64/ia64_flags.h,
564 src/java_raw_api.c,
565 src/debug.c,
566 src/sparc/v9.S,
567 src/sparc/ffitarget.h,
568 src/sparc/ffi.c,
569 src/sparc/v8.S,
570 src/mips/ffitarget.h,
571 src/mips/n32.S,
572 src/mips/o32.S,
573 src/mips/ffi.c,
574 src/prep_cif.c,
575 src/sh/ffitarget.h,
576 src/sh/ffi.c,
577 src/sh/sysv.S: Update license text.
578
84c40c4a
DK
5792009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
580
581 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
582 (.eh_frame): Add FDE for it.
583
8353cd27
DK
5842009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
585
586 * configure.ac: Also check if assembler supports pc-relative
587 relocs on X86_WIN32 targets.
588 * configure: Regenerate.
589 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
590 (_ffi_call_SYSV): Add missing function type symbol .def and
591 add EH markup labels.
592 (_ffi_call_STDCALL): Likewise.
593 (_ffi_closure_SYSV): Likewise.
594 (_ffi_closure_raw_SYSV): Likewise.
595 (.eh_frame): Add hand-crafted EH data.
596
748086b7
JJ
5972009-04-09 Jakub Jelinek <jakub@redhat.com>
598
599 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
600 version 3 of the GNU General Public License and to point readers
601 at the COPYING3 file and the FSF's license web page.
602 * testsuite/libffi.call/call.exp: Likewise.
603 * testsuite/libffi.special/special.exp: Likewise.
604
7a9d3fe8
RW
6052009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
606
607 * configure: Regenerate.
608
4d3d4078
RO
6092008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
610
611 PR libffi/26048
612 * configure.ac (HAVE_AS_X86_PCREL): New test.
613 * configure: Regenerate.
614 * fficonfig.h.in: Regenerate.
615 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
616 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
617 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
618 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
619 * src/x86/unix64.S (.Lstore_table): Move to .text section.
620 (.Lload_table): Likewise.
621 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
622
baafc534
RW
6232008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
624
625 * configure: Regenerate.
626
da17a98b
EB
6272008-11-21 Eric Botcazou <ebotcazou@adacore.com>
628
629 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
630 signed/unsigned int8/16 return values.
631 * src/sparc/v8.S (ffi_call_v8): Likewise.
632 (ffi_closure_v8): Likewise.
633
80c6c2cb
PG
6342008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
635 Steve Ellcey <sje@cup.hp.com>
636
637 * configure: Regenerate for new libtool.
638 * Makefile.in: Ditto.
639 * include/Makefile.in: Ditto.
640 * aclocal.m4: Ditto.
641
d7f68a67
AT
6422008-08-25 Andreas Tobler <a.tobler@schweiz.org>
643
644 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
645 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
646 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
647 Adjust copyright notice.
648 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
649 register or two register to use for FFI_SYSV structs.
650 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
651 (ffi_closure_helper_SYSV): Fix the return type for
652 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
653 Adjust copyright notice.
654
130f4c50
KK
6552008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
656
657 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
658 int.
659
18c04407
RW
6602008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
661
662 * configure: Regenerate.
663 * include/Makefile.in: Regenerate.
664 * testsuite/Makefile.in: Regenerate.
665
cd985f66
JM
6662008-06-07 Joseph Myers <joseph@codesourcery.com>
667
668 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
669 powerpc-*-beos*): Remove.
670 * configure: Regenerate.
671
7afa92c5
JB
6722008-05-09 Julian Brown <julian@codesourcery.com>
673
674 * Makefile.am (LTLDFLAGS): New.
675 (libffi_la_LDFLAGS): Use above.
676 * Makefile.in: Regenerate.
677
deb984e6
PB
6782008-04-18 Paolo Bonzini <bonzini@gnu.org>
679
680 PR bootstrap/35457
681 * aclocal.m4: Regenerate.
682 * configure: Regenerate.
683
3e9608a5
KK
6842008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
685
686 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
687 * src/sh64/sysv.S: Likewise.
688
feb51530
MK
6892008-03-26 Daniel Jacobowitz <dan@debian.org>
690
691 * src/arm/sysv.S: Fix ARM comment marker.
692
6932008-03-26 Jakub Jelinek <jakub@redhat.com>
694
695 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
696 * src/s390/sysv.S: Likewise.
697 * src/powerpc/ppc_closure.S: Likewise.
698 * src/powerpc/sysv.S: Likewise.
699 * src/x86/unix64.S: Likewise.
700 * src/x86/sysv.S: Likewise.
701 * src/sparc/v8.S: Likewise.
702 * src/sparc/v9.S: Likewise.
703 * src/m68k/sysv.S: Likewise.
704 * src/arm/sysv.S: Likewise.
705
38d24731
RW
7062008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
707
708 * aclocal.m4: Regenerate.
709 * configure: Likewise.
710 * Makefile.in: Likewise.
711 * include/Makefile.in: Likewise.
712 * testsuite/Makefile.in: Likewise.
713
2e250fa2
BK
7142008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
715 Andreas Tobler <a.tobler@schweiz.org>
716
717 * configure.ac: Add amd64-*-freebsd* target.
718 * configure: Regenerate.
719
7f92e242
L
7202008-01-30 H.J. Lu <hongjiu.lu@intel.com>
721
722 PR libffi/34612
723 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
724 returning struct.
725
726 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
727 tests.
728
95d4f544
DE
7292008-01-24 David Edelsohn <edelsohn@gnu.org>
730
731 * configure: Regenerate.
732
79ca8fc0
AT
7332008-01-06 Andreas Tobler <a.tobler@schweiz.org>
734
735 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
736
d7b07cc7
AT
7372008-01-05 Andreas Tobler <a.tobler@schweiz.org>
738
739 PR testsuite/32843
740 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
741 signed/unsigned int8/16 for X86_DARWIN.
742 Updated copyright info.
743 Handle one and two byte structs with special cif->flags.
744 * src/x86/ffitarget.h: Add special types for one and two byte structs.
745 Updated copyright info.
746 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
747 sysv.S
748 Remove code to pop args from the stack after call.
749 Special-case signed/unsigned for int8/16, one and two byte structs.
750 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
751 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
752 FFI_TYPE_SINT32.
753 Updated copyright info.
754
c94ae2e4
DD
7552007-12-08 David Daney <ddaney@avtrex.com>
756
757 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
758 SUBU, add with ADDU and use smaller code sequences.
759
3875b6d7 7602007-12-07 David Daney <ddaney@avtrex.com>
44be66a1 761
3875b6d7
DD
762 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
763 type.
764
4c42b3d8
DD
7652007-12-06 David Daney <ddaney@avtrex.com>
766
767 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
768 defined.
769 (ffi_java_raw): New typedef.
770 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
771 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
772 ffi_java_raw.
773 (ffi_java_raw_closure) : Same.
774 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
775 parameter types.
776 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
777 FFI_SIZEOF_JAVA_RAW.
778 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
779 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
780 sizeof(ffi_java_raw) for alignment calculations.
781 (ffi_java_ptrarray_to_raw): Same.
782 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
783 if FFI_SIZEOF_JAVA_RAW == 4.
784 (ffi_java_raw_to_rvalue): Same.
785 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
786 (ffi_java_translate_args): Same.
787 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
788 parameter types.
789 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
790
3ef50b62
DD
7912007-12-06 David Daney <ddaney@avtrex.com>
792
793 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
794 pointer values.
795
16287148
AT
7962007-12-01 Andreas Tobler <a.tobler@schweiz.org>
797
798 PR libffi/31937
799 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
800 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
801 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
802 set the NUM_FPR_ARG_REGISTERS according to.
803 Add support for potential soft-float support under hard-float
804 architecture.
805 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
806 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
807 to the FFI_LINUX_SOFT_FLOAT ABI.
808 (ffi_prep_cif_machdep): Likewise.
809 (ffi_closure_helper_SYSV): Likewise.
810 * src/powerpc/ppc_closure.S: Make sure not to store float/double
811 on archs where __NO_FPRS__ is true.
812 Add FFI_TYPE_UINT128 support.
813 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
814 Adjust copyright notice.
815
a4b7c9cd
AT
8162007-11-25 Andreas Tobler <a.tobler@schweiz.org>
817
818 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
819 * include/ffi_common.h: ... here.
820 Update copyright.
821
e84296c6
AT
8222007-11-17 Andreas Tobler <a.tobler@schweiz.org>
823
824 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
825 * src/powerpc/linux64.S: Likewise.
826 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
827 * testsuite/libffi.call/return_ldl.c: New test.
828
cb642590
AH
8292007-09-04 <aph@redhat.com>
830
831 * src/arm/sysv.S (UNWIND): New.
832 (Whole file): Conditionally compile unwinder directives.
833 * src/arm/sysv.S: Add unwinder directives.
834
835 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
836 Only treat r0 as a struct address if we're actually returning a
837 struct by address.
838 Only copy the bytes that are actually within a struct.
839 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
840 is returned in r0, not passed by address.
841 (ffi_call): Allocate a word-sized temporary for the case where
842 a composite is returned in r0.
843 (ffi_prep_incoming_args_SYSV): Align as necessary.
844
8452007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
846
847 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
848 directly using the sys_cacheflush syscall.
849
8502007-07-27 Andrew Haley <aph@redhat.com>
851
852 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
853
8d5c5e35
MR
8542007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
855
856 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
857 * configure.ac: Likewise.
858 * Makefile.in: Regenerate.
859 * include/Makefile.in: Likewise.
860 * testsuite/Makefile.in: Likewise.
861 * configure: Likewise.
862
787b0d19
DD
8632007-08-24 David Daney <ddaney@avtrex.com>
864
865 * testsuite/libffi.call/return_sl.c: New test.
866
dfbb3e36
DD
8672007-08-10 David Daney <ddaney@avtrex.com>
868
869 * testsuite/libffi.call/cls_multi_ushort.c,
870 testsuite/libffi.call/cls_align_uint16.c,
871 testsuite/libffi.call/nested_struct1.c,
872 testsuite/libffi.call/nested_struct3.c,
873 testsuite/libffi.call/cls_7_1_byte.c,
874 testsuite/libffi.call/nested_struct5.c,
875 testsuite/libffi.call/cls_double.c,
876 testsuite/libffi.call/nested_struct7.c,
877 testsuite/libffi.call/cls_sint.c,
878 testsuite/libffi.call/nested_struct9.c,
879 testsuite/libffi.call/cls_20byte1.c,
880 testsuite/libffi.call/cls_multi_sshortchar.c,
881 testsuite/libffi.call/cls_align_sint64.c,
882 testsuite/libffi.call/cls_3byte2.c,
883 testsuite/libffi.call/cls_multi_schar.c,
884 testsuite/libffi.call/cls_multi_uchar.c,
885 testsuite/libffi.call/cls_19byte.c,
886 testsuite/libffi.call/cls_9byte1.c,
887 testsuite/libffi.call/cls_align_float.c,
888 testsuite/libffi.call/closure_fn1.c,
889 testsuite/libffi.call/problem1.c,
890 testsuite/libffi.call/closure_fn3.c,
891 testsuite/libffi.call/cls_sshort.c,
892 testsuite/libffi.call/closure_fn5.c,
893 testsuite/libffi.call/cls_align_double.c,
894 testsuite/libffi.call/nested_struct.c,
895 testsuite/libffi.call/cls_2byte.c,
896 testsuite/libffi.call/nested_struct10.c,
897 testsuite/libffi.call/cls_4byte.c,
898 testsuite/libffi.call/cls_6byte.c,
899 testsuite/libffi.call/cls_8byte.c,
900 testsuite/libffi.call/cls_multi_sshort.c,
901 testsuite/libffi.call/cls_align_sint16.c,
902 testsuite/libffi.call/cls_align_uint32.c,
903 testsuite/libffi.call/cls_20byte.c,
904 testsuite/libffi.call/cls_float.c,
905 testsuite/libffi.call/nested_struct2.c,
906 testsuite/libffi.call/cls_5_1_byte.c,
907 testsuite/libffi.call/nested_struct4.c,
908 testsuite/libffi.call/cls_24byte.c,
909 testsuite/libffi.call/nested_struct6.c,
910 testsuite/libffi.call/cls_64byte.c,
911 testsuite/libffi.call/nested_struct8.c,
912 testsuite/libffi.call/cls_uint.c,
913 testsuite/libffi.call/cls_multi_ushortchar.c,
914 testsuite/libffi.call/cls_schar.c,
915 testsuite/libffi.call/cls_uchar.c,
916 testsuite/libffi.call/cls_align_uint64.c,
917 testsuite/libffi.call/cls_ulonglong.c,
918 testsuite/libffi.call/cls_align_longdouble.c,
919 testsuite/libffi.call/cls_1_1byte.c,
920 testsuite/libffi.call/cls_12byte.c,
921 testsuite/libffi.call/cls_3_1byte.c,
922 testsuite/libffi.call/cls_3byte1.c,
923 testsuite/libffi.call/cls_4_1byte.c,
924 testsuite/libffi.call/cls_6_1_byte.c,
925 testsuite/libffi.call/cls_16byte.c,
926 testsuite/libffi.call/cls_18byte.c,
927 testsuite/libffi.call/closure_fn0.c,
928 testsuite/libffi.call/cls_9byte2.c,
929 testsuite/libffi.call/closure_fn2.c,
930 testsuite/libffi.call/closure_fn4.c,
931 testsuite/libffi.call/cls_ushort.c,
932 testsuite/libffi.call/closure_fn6.c,
933 testsuite/libffi.call/cls_5byte.c,
934 testsuite/libffi.call/cls_align_pointer.c,
935 testsuite/libffi.call/cls_7byte.c,
936 testsuite/libffi.call/cls_align_sint32.c,
937 testsuite/libffi.special/unwindtest_ffi_call.cc,
938 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
939
89d9d98a
DD
9402007-08-10 David Daney <ddaney@avtrex.com>
941
942 PR libffi/28313
943 * configure.ac: Don't treat mips64 as a special case.
944 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
945 * configure: Regenerate
946 * Makefile.in: Ditto.
947 * fficonfig.h.in: Ditto.
948 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
949 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
950 (FFI_DEFAULT_ABI): Set for n64 case.
951 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
952 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
953 (ffi_closure_N32): New function.
954 (.eh_frame): New section
955 * src/mips/o32.S: Clean up comments.
956 (ffi_closure_O32): Pass ffi_closure parameter in $12.
957 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
958 _MIPS_SIM == _ABIN32 throughout.
959 (FFI_MIPS_STOP_HERE): New, use in place of
960 ffi_stop_here.
961 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
962 to support n32/n64 ABIs.
963 (calc_n32_struct_flags): Rewrite.
964 (calc_n32_return_struct_flags): Remove unused variable. Reverse
965 position of flag bits.
966 (ffi_prep_cif_machdep): Rewrite n32 portion.
967 (ffi_call): Enable for n64. Add special handling for small structure
968 return values.
969 (ffi_prep_closure_loc): Add n32 and n64 support.
970 (ffi_closure_mips_inner_O32): Add cast to silence warning.
971 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
972
d23869d4
DD
9732007-08-08 David Daney <ddaney@avtrex.com>
974
975 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
976 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
977 specifiers.
978 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
979 * testsuite/libffi.call/cls_sint.c (main): Ditto.
980 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
981 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
982 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
983 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
984 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
985 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
986 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
987 * testsuite/libffi.call/return_fl3.c (main): Ditto.
988 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
989 * testsuite/libffi.call/nested_struct.c (main): Ditto.
990 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
991 * testsuite/libffi.call/return_ll1.c (main): Ditto.
992 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
993 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
994 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
995 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
996 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
997 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
998 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
999 * testsuite/libffi.call/cls_uint.c (main): Ditto.
1000 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1001 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1002 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1003 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1004 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1005 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1006 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1007 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1008 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1009
536e0a8f
AH
10102007-08-07 Andrew Haley <aph@redhat.com>
1011
1012 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1013 checkin.
1014
7665c9be
AH
10152007-08-06 Andrew Haley <aph@redhat.com>
1016
1017 PR testsuite/32843
1018 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1019 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1020 FFI_TYPE_SINT32.
1021
58e11497
DD
10222007-08-02 David Daney <ddaney@avtrex.com>
1023
1024 * testsuite/libffi.call/return_ul.c (main): Define return type as
1025 ffi_arg. Use proper printf conversion specifier.
1026
387cfbba
AH
10272007-07-30 Andrew Haley <aph@redhat.com>
1028
1029 PR testsuite/32843
1030 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1031 signed/unsigned int8/16.
1032 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1033 Use a jump table.
1034 Remove code to pop args from the stack after call.
1035 Special-case signed/unsigned int8/16.
1036 * testsuite/libffi.call/return_sc.c (main): Revert.
1037
0ee0208e
RG
10382007-07-26 Richard Guenther <rguenther@suse.de>
1039
1040 PR testsuite/32843
1041 * testsuite/libffi.call/return_sc.c (main): Verify call
1042 result as signed char, not ffi_arg.
1043
04a49983
RO
10442007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1045
1046 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1047 * configure: Regenerate.
1048
433e6a8c
DD
10492007-07-11 David Daney <ddaney@avtrex.com>
1050
1051 * src/mips/ffi.c: Don't include sys/cachectl.h.
1052 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1053 cacheflush().
1054
0959e2b8
AH
10552007-05-18 Aurelien Jarno <aurelien@aurel32.net>
1056
1057 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1058 from (ffi_prep_closure): ... this.
1059 (FFI_INIT_TRAMPOLINE): Adjust.
1060
10612005-12-31 Phil Blundell <pb@reciva.com>
1062
1063 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1064 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
1065 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1066 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1067 (FFI_CLOSURES): Enable closure support.
1068
10692007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
1070
1071 * testsuite/libffi.call/cls_multi_ushort.c,
1072 testsuite/libffi.call/cls_align_uint16.c,
1073 testsuite/libffi.call/nested_struct1.c,
1074 testsuite/libffi.call/nested_struct3.c,
1075 testsuite/libffi.call/cls_7_1_byte.c,
1076 testsuite/libffi.call/cls_double.c,
1077 testsuite/libffi.call/nested_struct5.c,
1078 testsuite/libffi.call/nested_struct7.c,
1079 testsuite/libffi.call/cls_sint.c,
1080 testsuite/libffi.call/nested_struct9.c,
1081 testsuite/libffi.call/cls_20byte1.c,
1082 testsuite/libffi.call/cls_multi_sshortchar.c,
1083 testsuite/libffi.call/cls_align_sint64.c,
1084 testsuite/libffi.call/cls_3byte2.c,
1085 testsuite/libffi.call/cls_multi_schar.c,
1086 testsuite/libffi.call/cls_multi_uchar.c,
1087 testsuite/libffi.call/cls_19byte.c,
1088 testsuite/libffi.call/cls_9byte1.c,
1089 testsuite/libffi.call/cls_align_float.c,
1090 testsuite/libffi.call/closure_fn1.c,
1091 testsuite/libffi.call/problem1.c,
1092 testsuite/libffi.call/closure_fn3.c,
1093 testsuite/libffi.call/cls_sshort.c,
1094 testsuite/libffi.call/closure_fn5.c,
1095 testsuite/libffi.call/cls_align_double.c,
1096 testsuite/libffi.call/cls_2byte.c,
1097 testsuite/libffi.call/nested_struct.c,
1098 testsuite/libffi.call/nested_struct10.c,
1099 testsuite/libffi.call/cls_4byte.c,
1100 testsuite/libffi.call/cls_6byte.c,
1101 testsuite/libffi.call/cls_8byte.c,
1102 testsuite/libffi.call/cls_multi_sshort.c,
1103 testsuite/libffi.call/cls_align_uint32.c,
1104 testsuite/libffi.call/cls_align_sint16.c,
1105 testsuite/libffi.call/cls_float.c,
1106 testsuite/libffi.call/cls_20byte.c,
1107 testsuite/libffi.call/cls_5_1_byte.c,
1108 testsuite/libffi.call/nested_struct2.c,
1109 testsuite/libffi.call/cls_24byte.c,
1110 testsuite/libffi.call/nested_struct4.c,
1111 testsuite/libffi.call/nested_struct6.c,
1112 testsuite/libffi.call/cls_64byte.c,
1113 testsuite/libffi.call/nested_struct8.c,
1114 testsuite/libffi.call/cls_uint.c,
1115 testsuite/libffi.call/cls_multi_ushortchar.c,
1116 testsuite/libffi.call/cls_schar.c,
1117 testsuite/libffi.call/cls_uchar.c,
1118 testsuite/libffi.call/cls_align_uint64.c,
1119 testsuite/libffi.call/cls_ulonglong.c,
1120 testsuite/libffi.call/cls_align_longdouble.c,
1121 testsuite/libffi.call/cls_1_1byte.c,
1122 testsuite/libffi.call/cls_12byte.c,
1123 testsuite/libffi.call/cls_3_1byte.c,
1124 testsuite/libffi.call/cls_3byte1.c,
1125 testsuite/libffi.call/cls_4_1byte.c,
1126 testsuite/libffi.call/cls_6_1_byte.c,
1127 testsuite/libffi.call/cls_16byte.c,
1128 testsuite/libffi.call/cls_18byte.c,
1129 testsuite/libffi.call/closure_fn0.c,
1130 testsuite/libffi.call/cls_9byte2.c,
1131 testsuite/libffi.call/closure_fn2.c,
1132 testsuite/libffi.call/closure_fn4.c,
1133 testsuite/libffi.call/cls_ushort.c,
1134 testsuite/libffi.call/closure_fn6.c,
1135 testsuite/libffi.call/cls_5byte.c,
1136 testsuite/libffi.call/cls_align_pointer.c,
1137 testsuite/libffi.call/cls_7byte.c,
1138 testsuite/libffi.call/cls_align_sint32.c,
1139 testsuite/libffi.special/unwindtest_ffi_call.cc,
1140 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
1141
12a27363
L
11422007-07-05 H.J. Lu <hongjiu.lu@intel.com>
1143
1144 * aclocal.m4: Regenerated.
1145
82a6cadf
PB
11462007-06-02 Paolo Bonzini <bonzini@gnu.org>
1147
1148 * configure: Regenerate.
1149
1cf3d07d
SE
11502007-05-23 Steve Ellcey <sje@cup.hp.com>
1151
1152 * Makefile.in: Regenerate.
1153 * configure: Regenerate.
1154 * aclocal.m4: Regenerate.
1155 * include/Makefile.in: Regenerate.
1156 * testsuite/Makefile.in: Regenerate.
1157
5635c26e
RZ
11582007-05-10 Roman Zippel <zippel@linux-m68k.org>
1159
1160 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1161 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1162 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1163 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1164 (FFI_CLOSURES): Enable closure support.
1165
e6fbf387
RZ
11662007-05-10 Roman Zippel <zippel@linux-m68k.org>
1167
1168 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1169 * configure: Regenerate.
1170 * fficonfig.h.in: Regenerate.
1171 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1172 CFI_OFFSET,CFI_DEF_CFA): New macros.
1173 (ffi_call_SYSV): Add callframe annotation.
1174
b5296e52
RZ
11752007-05-10 Roman Zippel <zippel@linux-m68k.org>
1176
1177 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1178 numerous test suite failures.
1179 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1180
bd61d708
PB
11812007-04-11 Paolo Bonzini <bonzini@gnu.org>
1182
1183 * Makefile.am (EXTRA_DIST): Bring up to date.
1184 * Makefile.in: Regenerate.
1185 * src/frv/eabi.S: Remove RCS keyword.
1186
bf8da5fc
RH
11872007-04-06 Richard Henderson <rth@redhat.com>
1188
1189 * configure.ac: Tidy target case.
1190 (HAVE_LONG_DOUBLE): Allow the target to override.
1191 * configure: Regenerate.
1192 * include/ffi.h.in: Don't define ffi_type_foo if
1193 LIBFFI_HIDE_BASIC_TYPES is defined.
1194 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1195 to ffi_type_double.
1196 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1197 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1198 (ffi_type_longdouble): Special case for Alpha. Don't define
1199 if long double == double.
1200
1201 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1202 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1203 (ffi_call, ffi_closure_osf_inner): Likewise.
1204 (ffi_closure_osf_inner): Likewise. Mark hidden.
1205 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1206 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1207 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1208 (load_table): Handle 128-bit long double.
1209
1210 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1211
8669fed1
TT
12122007-04-06 Tom Tromey <tromey@redhat.com>
1213
1214 PR libffi/31491:
1215 * README: Fixed bug in example.
1216
f0920e6c
JJ
12172007-04-03 Jakub Jelinek <jakub@redhat.com>
1218
1219 * src/closures.c: Include sys/statfs.h.
1220 (_GNU_SOURCE): Define on Linux.
1221 (FFI_MMAP_EXEC_SELINUX): Define.
1222 (selinux_enabled): New variable.
1223 (selinux_enabled_check): New function.
1224 (is_selinux_enabled): Define.
1225 (dlmmap): Use it.
1226
34a6ccda
UB
12272007-03-24 Uros Bizjak <ubizjak@gmail.com>
1228
1229 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1230 Use 'volatile float sum' to create sum of floats to avoid false
1231 negative due to excess precision on ix86 targets.
1232 (main): Ditto.
1233
8b9cf39e
AO
12342007-03-08 Alexandre Oliva <aoliva@redhat.com>
1235
1236 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1237 patch.
1238 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1239
18fa3240
AO
12402007-03-07 Alexandre Oliva <aoliva@redhat.com>
1241
1242 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1243 (ffi_prep_closure_loc): New.
1244 (ffi_prep_raw_closure_loc): New.
1245 (ffi_prep_java_raw_closure_loc): New.
1246 * src/closures.c: New file.
1247 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1248 Replace sflags with exec_offset.
1249 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1250 sub_segment_exec_offset): New macros.
1251 (get_segment_flags, set_segment_flags, check_segment_merge): New
1252 macros.
1253 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1254 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1255 destroy_mspace): Use new macros.
1256 (sys_alloc): Silence warning.
1257 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1258 * Makefile.in: Rebuilt.
1259 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1260 terms of ffi_prep_closure_loc.
1261 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1262 from...
1263 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1264 renamed version.
1265 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1266 adjusted from...
1267 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1268 the renamed version.
1269 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1270 (ffi_prep_closure): ... this.
1271 * src/pa/ffi.c: Likewise.
1272 * src/cris/ffi.c: Likewise. Adjust.
1273 * src/frv/ffi.c: Likewise.
1274 * src/ia64/ffi.c: Likewise.
1275 * src/mips/ffi.c: Likewise.
1276 * src/powerpc/ffi_darwin.c: Likewise.
1277 * src/s390/ffi.c: Likewise.
1278 * src/sh/ffi.c: Likewise.
1279 * src/sh64/ffi.c: Likewise.
1280 * src/sparc/ffi.c: Likewise.
1281 * src/x86/ffi64.c: Likewise.
1282 * src/x86/ffi.c: Likewise.
1283 (FFI_INIT_TRAMPOLINE): Adjust.
1284 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1285 (ffi_prep_raw_closure): ... this.
1286 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1287 (ffi_prep_closure): ... this.
1288 (flush_icache): Adjust.
1289
dd778331
AO
12902007-03-07 Alexandre Oliva <aoliva@redhat.com>
1291
1292 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1293 Lea's malloc.
1294
b5f8d49b
BM
12952007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1296
1297 * Makefile.am: Add dummy install-pdf target.
1298 * Makefile.in: Regenerate
1299
7a23933b
AK
13002007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1301
1302 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1303 ffi_closure_helper_SYSV): Add long double handling.
1304
8aaf4681
JJ
13052007-02-02 Jakub Jelinek <jakub@redhat.com>
1306
1307 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1308 immediately after bctrl instruction.
1309
0eb5e2b9
AO
13102007-01-18 Alexandre Oliva <aoliva@redhat.com>
1311
1312 * Makefile.am (all-recursive, install-recursive,
1313 mostlyclean-recursive, clean-recursive, distclean-recursive,
1314 maintainer-clean-recursive): Add missing targets.
1315 * Makefile.in: Rebuilt.
1316
f4f7486b
AT
13172006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1318
1319 * configure.ac: Add TARGET for x86_64-*-darwin*.
1320 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1321 for X86_DARWIN.
1322 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1323 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1324 * configure: Regenerate.
1325 * Makefile.in: Regenerate.
1326 * include/Makefile.in: Regenerate.
1327 * testsuite/Makefile.in: Regenerate.
1328 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1329 ffi_call only.
1330
3d5eafe2
AT
13312006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1332
1333 * aclocal.m4: Regenerate with aclocal -I .. as written in the
1334 Makefile.am.
1335
d5523ce1 13362006-10-31 Geoffrey Keating <geoffk@apple.com>
58182de3
GK
1337
1338 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1339 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1340 Darwin.
1341 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1342 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1343
a3bd50cc
PB
13442006-10-10 Paolo Bonzini <bonzini@gnu.org>
1345 Sandro Tolaini <tolaini@libero.it>
1346
1347 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
1348 conditional.
1349 * configure: Regenerated.
1350 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1351 (EXTRA_DIST): Add src/x86/darwin.S.
1352 * Makefile.in: Regenerated.
1353 * include/Makefile.in: Regenerated.
1354 * testsuite/Makefile.in: Regenerated.
1355
1356 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1357 X86_WIN32, and additionally align stack to 16 bytes.
1358 * src/x86/darwin.S: New, based on sysv.S.
1359 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1360
b095810f
DD
13612006-09-12 David Daney <ddaney@avtrex.com>
1362
1363 PR libffi/23935
1364 * include/Makefile.am: Install both ffi.h and ffitarget.h in
1365 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1366 * aclocal.m4: Regenerated for automake 1.9.6.
1367 * Makefile.in: Regenerated.
1368 * include/Makefile.in: Regenerated.
1369 * testsuite/Makefile.in: Regenerated.
1370
110b2db4
AT
13712006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1372
1373 * include/ffi_common.h (struct): Revert accidental commit.
1374
8e5fde87
AT
13752006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
1376
1377 * include/ffi_common.h: Remove lint directives.
1378 * include/ffi.h.in: Likewise.
1379
cb4132fe
TS
13802006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
1381
1382 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1383 for 32-bit architectures.
1384 * testsuite/libffi.call/return_ul.c: New test case.
1385
0d24c3fa
DD
13862006-07-19 David Daney <ddaney@avtrex.com>
1387
1388 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1389 xfail remains for mips64.
1390
8665824c
CD
13912006-05-23 Carlos O'Donell <carlos@codesourcery.com>
1392
1393 * Makefile.am: Add install-html target. Add install-html to .PHONY
1394 * Makefile.in: Regenerate.
1395 * aclocal.m4: Regenerate.
1396 * include/Makefile.in: Regenerate.
1397 * testsuite/Makefile.in: Regenerate.
1398
84e2e370
JDA
13992006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1400
1401 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1402 stack slot.
1403
ac6ed182
AT
14042006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
1405
1406 * README: Remove notice about 'Crazy Comments'.
1407 * src/debug.c: Remove lint directives. Cleanup white spaces.
1408 * src/java_raw_api.c: Likewise.
1409 * src/prep_cif.c: Likewise.
1410 * src/raw_api.c: Likewise.
1411 * src/ffitest.c: Delete. No longer needed, all test cases migrated
1412 to the testsuite.
1413 * src/arm/ffi.c: Remove lint directives.
1414 * src/m32r/ffi.c: Likewise.
1415 * src/pa/ffi.c: Likewise.
1416 * src/powerpc/ffi.c: Likewise.
1417 * src/powerpc/ffi_darwin.c: Likewise.
1418 * src/sh/ffi.c: Likewise.
1419 * src/sh64/ffi.c: Likewise.
1420 * src/x86/ffi.c: Likewise.
1421 * testsuite/libffi.call/float2.c: Likewise.
1422 * testsuite/libffi.call/promotion.c: Likewise.
1423 * testsuite/libffi.call/struct1.c: Likewise.
1424
b7211585
AT
14252006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
1426
1427 * src/pa/hpux32.S: Correct unwind offset calculation for
1428 ffi_closure_pa32.
1429 * src/pa/linux.S: Likewise.
1430
86066f9b
JW
14312006-04-12 James E Wilson <wilson@specifix.com>
1432
1433 PR libgcj/26483
1434 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
1435 (hfa_type_load): Call stf_spill.
1436 (hfa_type_store): Call ldf_fill.
1437 (ffi_call): Adjust calls to above routines. Add local temps for
1438 macro result.
b7211585 1439
615baed7
MK
14402006-04-10 Matthias Klose <doko@debian.org>
1441
1442 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
1443 directory names containing underscores.
1444
8e7a2b58
JW
14452006-04-07 James E Wilson <wilson@specifix.com>
1446
1447 * testsuite/libffi.call/float4.c: New testcase.
1448
e6c300ef
JDA
14492006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1450 Andreas Tobler <a.tobler@schweiz.ch>
1451
1452 * Makefile.am: Add PA_HPUX port.
1453 * Makefile.in: Regenerate.
1454 * include/Makefile.in: Likewise.
1455 * testsuite/Makefile.in: Likewise.
1456 * configure.ac: Add PA_HPUX rules.
1457 * configure: Regenerate.
1458 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
1459 Add PA_HPUX and PA64_HPUX.
1460 Rename FFI_LINUX ABI to FFI_PA32 ABI.
1461 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
1462 (FFI_TYPE_SMALL_STRUCT2): Define.
1463 (FFI_TYPE_SMALL_STRUCT4): Likewise.
1464 (FFI_TYPE_SMALL_STRUCT8): Likewise.
1465 (FFI_TYPE_SMALL_STRUCT3): Redefine.
1466 (FFI_TYPE_SMALL_STRUCT5): Likewise.
1467 (FFI_TYPE_SMALL_STRUCT6): Likewise.
1468 (FFI_TYPE_SMALL_STRUCT7): Likewise.
1469 * src/pa/ffi.c (ROUND_DOWN): Delete.
1470 (fldw, fstw, fldd, fstd): Use '__asm__'.
1471 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
1472 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
1473 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
1474 Simplify incrementing of stack slot variable. Change type of local
1475 'n' to unsigned int.
1476 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
1477 double on PA_HPUX.
1478 (ffi_prep_cif_machdep): Likewise.
1479 (ffi_call): Likewise.
1480 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
1481 return type to ffi_status. Simplify incrementing of stack slot
1482 variable. Only copy floating point argument registers when PA_LINUX
1483 is true. Reformat debug statement.
1484 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
1485 FFI_TYPE_SMALL_STRUCT8.
1486 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
1487 declaration.
1488 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
1489 Add nops to cache flush. Add trampoline for PA_HPUX.
1490 * src/pa/hpux32.S: New file.
1491 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
1492 ffi_prep_args_LINUX to ffi_prep_args_pa32.
1493 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
1494 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
1495 argument type checks so that common argument types appear first.
1496 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
1497 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
1498
75b8b1be
AM
14992006-03-24 Alan Modra <amodra@bigpond.net.au>
1500
1501 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
1502 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
1503 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
1504 FFI_TYPE_LONGDOUBLE.
1505 (ffi_prep_args64): Assert using IBM extended double.
1506 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
1507 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
1508 (ffi_call): Handle FFI_LINUX.
1509 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
1510 gpr3 return pointer as for struct return. Handle FFI_LINUX
1511 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
1512 unnecessarily.
1513 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
1514 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
1515 Don't use r6 as pointer to results, instead use sp offset. Don't
1516 make a special call to load lr with case table address, instead
1517 use offset from previous call.
1518 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
1519 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
1520 return.
1521
697701ad
KK
15222006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
1523
1524 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
1525 passed with FP registers correctly.
1526 (ffi_closure_helper_SYSV): Likewise.
1527 * src/sh64/sysv.S: Likewise.
1528
b295c471
AT
15292006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
1530
1531 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
1532 args and userdata unused.
1533 (closure_test_fn1): Mark cif and userdata unused.
1534 (main): Remove unused res.
1535
9fdeb13b
AT
15362006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
1537
1538 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
1539 -O2, -O3, -Os and the warning flags -W -Wall.
1540 * testsuite/libffi.special/special.exp: Likewise.
1541 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
1542 unused parameter unused for gcc or else do nothing.
1543 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1544 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
1545 and userdata unused.
1546 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
1547 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
1548 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
1549 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
1550 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
1551 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
1552 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
1553 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
1554 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
1555 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
1556 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
1557 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
1558 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
1559 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
1560 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
1561 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
1562 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
1563 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
1564 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
1565 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
1566 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
1567 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
1568 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
1569 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
1570 Likewise.
1571 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
1572 Likewise.
1573 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
1574 Likewise.
1575 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
1576 void* to avoid compiler warning.
1577 (main): Likewise.
1578 (cls_struct_align_gn): Mark cif and userdata unused.
1579 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
1580 Likewise.
1581 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
1582 Likewise.
1583 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
1584 Likewise.
1585 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
1586 Likewise.
1587 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
1588 Likewise.
1589 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
1590 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
1591 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
1592 data unused.
1593 (main): Cast res_call to silence gcc.
1594 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
1595 data unused.
1596 (main): Cast res_call to silence gcc.
1597 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
1598 and data unused.
1599 (main): Cast res_call to silence gcc.
1600 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
1601 data unused.
1602 (main): Cast res_call to silence gcc.
1603 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
1604 data unused.
1605 (main): Cast res_call to silence gcc.
1606 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
1607 and data unused.
1608 (main): Cast res_call to silence gcc.
1609 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
1610 userdata unused.
1611 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
1612 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
1613 userdata unused.
1614 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
1615 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
1616 userdata unused.
1617 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
1618 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
1619 userdata unused.
1620 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
1621 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
1622 userdata unused.
1623 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
1624 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
1625 and userdata unused.
1626 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
1627 userdata unused.
1628 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
1629 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
1630 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
1631 Cleanup white spaces.
1632 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
1633 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
1634 cif and userdata unused.
1635 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
1636 Likewise.
1637 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
1638 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
1639 formatters to silence gcc.
1640 (B_gn): Mark cif and userdata unused.
1641 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
1642 unused.
1643 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
1644 (B_gn): Mark cif and userdata unused.
1645 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
1646 unused.
1647 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
1648 (B_gn): Mark cif and userdata unused.
1649 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
1650 unused.
1651 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
1652 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
1653 * testsuite/libffi.call/problem1.c (stub): Likewise.
1654 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
1655 gcc.
1656 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
1657 in the last commit for this test case in the test case itself.
1658 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
1659 unused.
1660 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
1661 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
1662 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
1663 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
1664 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
1665 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
1666
0a4e2bb5
KK
16672006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
1668
1669 * src/sh/sysv.S: Fix register numbers in the FDE for
1670 ffi_closure_SYSV.
1671
723e5d5a
AT
16722006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
1673
1674 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
1675 declaration to avoid a false negative on ix86. See PR323.
1676
e097f887
KK
16772006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
1678
1679 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
1680 and cast integer to void * if needed. Update the pointer to
1681 the FP register saved area correctly.
1682
1a4878f7
AT
16832006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
1684
1685 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
1686 is fixed.
1687 * testsuite/libffi.call/nested_struct4.c: Likewise.
1688
b47b5e08
AT
16892006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
1690
6429d58f
AT
1691 * testsuite/libffi.call/return_dbl.c: New test case.
1692 * testsuite/libffi.call/return_dbl1.c: Likewise.
1693 * testsuite/libffi.call/return_dbl2.c: Likewise.
1694 * testsuite/libffi.call/return_fl.c: Likewise.
1695 * testsuite/libffi.call/return_fl1.c: Likewise.
1696 * testsuite/libffi.call/return_fl2.c: Likewise.
1697 * testsuite/libffi.call/return_fl3.c: Likewise.
1698 * testsuite/libffi.call/closure_fn6.c: Likewise.
1699
b47b5e08
AT
1700 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
1701 definition.
1702 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
1703 here to be used by other test cases too.
1704
1705 * testsuite/libffi.call/nested_struct10.c: New test case.
1706 * testsuite/libffi.call/nested_struct9.c: Likewise.
1707 * testsuite/libffi.call/nested_struct8.c: Likewise.
1708 * testsuite/libffi.call/nested_struct7.c: Likewise.
1709 * testsuite/libffi.call/nested_struct6.c: Likewise.
1710 * testsuite/libffi.call/nested_struct5.c: Likewise.
1711 * testsuite/libffi.call/nested_struct4.c: Likewise.
1712
9abe31d4
AT
17132006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
1714
1715 * configure.ac: Enable libffi for sparc64-*-freebsd*.
1716 * configure: Rebuilt.
1717
71aa1a70
JJ
17182006-01-18 Jakub Jelinek <jakub@redhat.com>
1719
1720 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
1721 instead do the shifting inline.
1722 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
1723 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
1724 and 8 byte structs, for the remaining struct sizes don't call
1725 __lshrdi3, instead do the shifting inline.
1726
8a39029d
TS
17272005-12-07 Thiemo Seufer <ths@networkno.de>
1728
1729 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
1730 missing parentheses.
1731 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
1732 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
1733 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
1734 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
1735 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
1736 FA_0_0_OFF2.
1737 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
1738 endianness bugs.
1739 (ffi_prep_closure): Improve trampoline instruction scheduling.
1740 (ffi_closure_mips_inner_O32): Fix endianness bugs.
1741
cd4241aa
AM
17422005-12-03 Alan Modra <amodra@bigpond.net.au>
1743
1744 * src/powerpc/ffi.c: Formatting.
1745 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
1746 (ffi_prep_args64): Likewise.
1747
0363db46
GK
17482005-09-30 Geoffrey Keating <geoffk@apple.com>
1749
1750 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
1751 darwin, use -shared-libgcc not -lgcc_s, and explain why.
1752
d674eb2f
TT
17532005-09-26 Tom Tromey <tromey@redhat.com>
1754
1755 * testsuite/libffi.call/float1.c (value_type): New typedef.
1756 (CANARY): New define.
1757 (main): Check for result buffer overflow.
1758 * src/powerpc/linux64.S: Handle linux64 long double returns.
1759 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
1760 (ffi_prep_cif_machdep): Handle linux64 long double returns.
1761
2d9c5743
AM
17622005-08-25 Alan Modra <amodra@bigpond.net.au>
1763
1764 PR target/23404
1765 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
1766 homed fp args.
1767 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
1768
8a42356f
JJ
17692005-08-11 Jakub Jelinek <jakub@redhat.com>
1770
1771 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
1772 (AH_BOTTOM): Add FFI_HIDDEN definition.
1773 * configure: Rebuilt.
1774 * fficonfig.h.in: Rebuilt.
1775 * src/powerpc/ffi.c (hidden): Remove.
1776 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
1777 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
1778 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
1779 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
1780 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
1781 add FFI_HIDDEN to its prototype.
1782 (ffi_closure_SYSV_inner): New.
1783 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1784 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1785
863c5508
AS
17862005-08-10 Alfred M. Szmidt <ams@gnu.org>
1787
1788 PR libffi/21819:
1789 * configure: Rebuilt.
1790 * configure.ac: Handle i*86-*-gnu*.
1791
6a26ea58
JJ
17922005-08-09 Jakub Jelinek <jakub@redhat.com>
1793
1794 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
1795 DW_CFA_offset_extended_sf rather than
1796 DW_CFA_GNU_negative_offset_extended.
1797 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
1798
583a92e8
ST
17992005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1800
1801 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
1802 on sh3.
1803 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
1804 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
1805 partially on register.
1806 (ffi_closure_helper_SYSV): Likewise.
1807 (ffi_prep_cif_machdep): Don't set too many cif->flags.
1808
5d0317fc
KK
18092005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
1810
1811 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
1812 Remove empty line.
1813 * src/sh64/ffi.c (simple_type): Remove.
1814 (return_type): Handle small structures correctly.
1815 (ffi_prep_args): Likewise.
1816 (ffi_call): Likewise.
1817 (ffi_closure_helper_SYSV): Likewise.
1818 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
1819 Emit position independent code if PIC and remove wrong datalabel
1820 prefixes from EH data.
1821
8d9fd5f5
AT
18222005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
1823
1824 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
1825 * Makefile.in: Regenerate.
1826 * include/Makefile.in: Likewise.
1827 * testsuite/Makefile.in: Likewise.
1828 * configure.ac: Add POWERPC_FREEBSD rules.
1829 * configure: Regenerate.
1830 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
1831 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
1832 * src/powerpc/ffi.c: Add flags to handle small structure returns
1833 in ffi_call_SYSV.
1834 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
1835 Aka FFI_SYSV.
1836 (ffi_closure_helper_SYSV): Likewise.
1837 * src/powerpc/ppc_closure.S: Add return types for small structures.
1838 * src/powerpc/sysv.S: Add bits to handle small structures for
1839 final SYSV 4 ABI.
1840
93c76f81
AT
18412005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
1842
1843 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
1844 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1845 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1846
b65da304
RC
18472005-07-05 Randolph Chung <tausq@debian.org>
1848
1849 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
1850 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
1851 structures. Kill compilation warnings.
1852 (ffi_closure_inner_LINUX): Print return values as hex in debug
1853 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
1854 Properly handle 5-7 byte structure returns.
1855 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
1856 (FFI_TYPE_SMALL_STRUCT2): Remove.
1857 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
1858 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
1859 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
1860 (checksmst1, checksmst2): Remove.
1861 (checksmst3): Optimize handling of 3-byte struct returns.
1862 (checksmst567): Properly handle 5-7 byte struct returns.
1863
2572f1c6
RO
18642005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1865
1866 PR libgcj/21943
1867 * src/mips/n32.S: Enforce PIC code.
1868 * src/mips/o32.S: Likewise.
1869
cc786582
RO
18702005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1871
1872 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1873 * configure: Regenerate.
1874
6d0d376c
AM
18752005-06-01 Alan Modra <amodra@bigpond.net.au>
1876
1877 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1878 to call ffi_closure_helper_SYSV. Append @local instead.
1879 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1880
a21946f5 18812005-05-17 Kelley Cook <kcook@gcc.gnu.org>
a097ef55
KC
1882
1883 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1884 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1885 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1886 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1887 include/Makefile.in, testsuite/Makefile.in: Regenerate.
1888
f4c767fd
MS
18892005-05-09 Mike Stump <mrs@apple.com>
1890
1891 * configure: Regenerate.
1892
7e15b5fe
RH
18932005-05-08 Richard Henderson <rth@redhat.com>
1894
1895 PR libffi/21285
1896 * src/alpha/osf.S: Update unwind into to match code.
1897
d56ea8d9
RH
18982005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
1899 Richard Henderson <rth@redhat.com>
1900
1901 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1902 bit 11 of flags.
1903 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
1904 (ffi_prep_closure): Set carry bit if sse-used flag set.
1905 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1906 Only load sse registers if ssecount non-zero.
1907 (ffi_closure_unix64): Only save sse registers if carry set on entry.
1908
19092005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
d948c201
RC
1910
1911 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1912 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1913 * configure: Regenerate.
1914
fc0ad8d9
HPN
19152005-04-20 Hans-Peter Nilsson <hp@axis.com>
1916
1917 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1918 have Tcl8.3-compatible intermediate variable.
1919
614348bb
SP
19202005-04-18 Simon Posnjak <simon.posnjak@siol.net>
1921 Hans-Peter Nilsson <hp@axis.com>
1922
1923 * Makefile.am: Add CRIS support.
1924 * configure.ac: Likewise.
29ede6db
HPN
1925 * Makefile.in, configure, testsuite/Makefile.in,
1926 include/Makefile.in: Regenerate.
614348bb
SP
1927 * src/cris: New directory.
1928 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1929 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
727e729b
HPN
1930
1931 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1932 \r?\n in output tests.
1933
6dab073b
MS
19342005-04-12 Mike Stump <mrs@apple.com>
1935
1936 * configure: Regenerate.
1937
51f55d7c
HB
19382005-03-30 Hans Boehm <Hans.Boehm@hp.com>
1939
1940 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
1941
7efa52a3
SE
19422005-03-30 Steve Ellcey <sje@cup.hp.com>
1943
1944 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
1945 (ffi_sarg) Ditto.
1946 * src/ia64/unix.S (ffi_closure_unix): Extend gp
1947 to 64 bits in ILP32 mode.
1948 Load 64 bits even for short data.
1949
1488177a
MS
19502005-03-23 Mike Stump <mrs@apple.com>
1951
1952 * src/powerpc/darwin.S: Update for -m64 multilib.
1953 * src/powerpc/darwin_closure.S: Likewise.
1954
c6900272
ZW
19552005-03-21 Zack Weinberg <zack@codesourcery.com>
1956
1957 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1958 Do not set tool_include_dir.
1959 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
1960 Regenerate.
1961 * include/Makefile.am: Set gcc_version and toollibffidir.
1962 * include/Makefile.in: Regenerate.
1963
962eea0a
AH
19642005-02-22 Andrew Haley <aph@redhat.com>
1965
1966 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
1967 odd-numbered register pairs for 64-bit integer types.
1968
1b05e8bf
AT
19692005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
1970
1971 PR libffi/20104
1972 * testsuite/libffi.call/return_ll1.c: New test case.
1973
6027770b
JJ
19742005-02-11 Janis Johnson <janis187@us.ibm.com>
1975
1976 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
1977 * testsuite/libffi.call/float.c: Ditto.
1978 * testsuite/libffi.call/float2.c: Ditto.
1979 * testsuite/libffi.call/float3.c: Ditto.
1980
ee31ea68
AT
19812005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
1982
1983 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
1984
c16be7d5
EB
19852005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1986
1987 * testsuite/libffi.special/special.exp (cxx_options): Add
1988 -shared-libgcc.
1989
5df07255
RH
19902004-12-31 Richard Henderson <rth@redhat.com>
1991
1992 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
1993 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
1994 offset parameters with a type parameter; deduce size and structure
1995 alignment. Update all users.
1996
81a69b13
RH
19972004-12-31 Richard Henderson <rth@redhat.com>
1998
1999 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2000 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
c6900272 2001 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
81a69b13
RH
2002 into ffi_prep_closure.
2003 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2004 from scratch.
2005
d833cfb0
RH
20062004-12-27 Richard Henderson <rth@redhat.com>
2007
2008 * src/x86/unix64.S: Fix typo in unwind info.
2009
1a0f488c
RH
20102004-12-25 Richard Henderson <rth@redhat.com>
2011
2012 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2013 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2014 (merge_classes): Check for it.
2015 (SSE_CLASS_P): New.
2016 (classify_argument): Pass byte_offset by value; perform all updates
2017 inside struct case.
2018 (examine_argument): Add classes argument; handle
2019 X86_64_COMPLEX_X87_CLASS.
2020 (ffi_prep_args): Merge into ...
2021 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
2022 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2023 (ffi_fill_return_value): Remove.
2024 (ffi_prep_closure): Remove dead assert.
2025 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2026 Rewrite to use struct register_args instead of va_list. Create
2027 flags for handling structure returns.
2028 * src/x86/unix64.S: Remove dead strings.
2029 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
2030 stack frame with ffi_call. Handle structure returns properly.
2031 (float2sse, floatfloat2sse, double2sse): Remove.
2032 (sse2float, sse2double, sse2floatfloat): Remove.
2033 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
2034 to handle structure returns properly.
2035
7994d50c
DE
20362004-12-08 David Edelsohn <edelsohn@gnu.org>
2037
2038 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2039 PICFLAG.
2040 * Makefile.in: Regenerated.
2041
afabd8e6
RS
20422004-12-02 Richard Sandiford <rsandifo@redhat.com>
2043
2044 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2045 * configure, aclocal.m4, Makefile.in: Regenerate.
2046 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2047
2539bffe
KC
20482004-11-29 Kelley Cook <kcook@gcc.gnu.org>
2049
2050 * configure: Regenerate for libtool change.
2051
767f726e
KC
20522004-11-25 Kelley Cook <kcook@gcc.gnu.org>
2053
2054 * configure: Regenerate for libtool reversion.
2055
2c92e90f
KC
20562004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2057
2058 * configure: Regenerate for libtool change.
2059
1df8e834
JDA
20602004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2061
2062 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2063
20642004-11-23 Richard Sandiford <rsandifo@redhat.com>
2065
2066 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2067 of jal. Use an absolute encoding for the frame information.
2068
20692004-11-23 Kelley Cook <kcook@gcc.gnu.org>
2070
2071 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
2072 * acinclude.m4: Delete logic for sincludes.
2073 * aclocal.m4, Makefile.in, configure: Regenerate.
2074 * include/Makefile: Likewise.
2075 * testsuite/Makefile: Likewise.
2076
bf02e7fa
EB
20772004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2078
2079 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2080 on a 8-byte boundary.
2081 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2082
f20459f1
RE
20832004-10-27 Richard Earnshaw <rearnsha@arm.com>
2084
2085 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2086 long long values. Round stack allocation to a multiple of 8 bytes
2087 for ATPCS compatibility.
2088 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2089 names. Handle returning long long types. Add Thumb and interworking
2090 support. Improve soft-float code.
2091
fdc69597
RE
20922004-10-27 Richard Earnshaw <rearnsha@arm.com>
2093
2094 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2095 (libffi_exit): New function.
2096 (libffi_init): Build the testglue wrapper if needed.
2097
1e02510f
EB
20982004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2099
2100 PR other/18138
2101 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2102
d9a193b2
KI
21032004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2104
2105 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2106
1fddb058
KK
21072004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
2108
2109 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2110 * testsuite/libffi.call/float3.c: New test case.
2111
e0d3b452
KK
21122004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
2113
2114 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2115 the function returning a structure pointed with R2.
2116 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2117 the structure return value if T bit set. Emit position
2118 independent code and EH data if PIC.
2119
a472e9d4
KI
21202004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2121
2122 * Makefile.am: Add m32r support.
2123 * configure.ac: Likewise.
2124 * Makefile.in: Regenerate.
2125 * confiugre: Regenerate.
2126 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2127 (uint64, sint64, double, longdouble)
2128 * src/m32r: New directory.
2129 * src/m32r/ffi.c: New file.
2130 * src/m32r/sysv.S: Likewise.
2131 * src/m32r/ffitarget.h: Likewise.
2132
3d47e9ca
KK
21332004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
2134
2135 * testsuite/libffi.call/negint.c: New test case.
2136
fc9051dd
L
21372004-09-14 H.J. Lu <hongjiu.lu@intel.com>
2138
2139 PR libgcj/17465
2140 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2141 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2142 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2143 DYLD_LIBRARY_PATH.
2144
2010caea
AT
21452004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2146
2147 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2148 * testsuite/libffi.call/promotion.c: Likewise.
2149 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2150 whitespaces.
2151 * testsuite/libffi.call/return_sc.c: Likewise.
2152 * testsuite/libffi.call/return_uc.c: Likewise.
2153
894be816
AT
21542004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2155
2156 * src/powerpc/darwin.S: Fix comments and identation.
2157 * src/powerpc/darwin_closure.S: Likewise.
2158
2fe7404a
AT
21592004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2160
2161 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2162 (ffi_prep_args): Handle longdouble arguments.
2163 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2164 longdouble.
2165 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2166 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2167 values.
2168 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2169 * src/types.c: Defined longdouble size and alignment for darwin.
2170
16070e45
AT
21712004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2172
2173 * src/powerpc/aix.S: Remove whitespaces.
2174 * src/powerpc/aix_closure.S: Likewise.
2175 * src/powerpc/asm.h: Likewise.
2176 * src/powerpc/ffi.c: Likewise.
2177 * src/powerpc/ffitarget.h: Likewise.
2178 * src/powerpc/linux64.S: Likewise.
2179 * src/powerpc/linux64_closure.S: Likewise.
2180 * src/powerpc/ppc_closure.S: Likewise.
2181 * src/powerpc/sysv.S: Likewise.
2182
88d8c771
AG
21832004-08-30 Anthony Green <green@redhat.com>
2184
2185 * Makefile.am: Add frv support.
2186 * Makefile.in, testsuite/Makefile.in: Rebuilt.
2187 * configure.ac: Read configure.host.
2188 * configure.in: Read configure.host.
2189 * configure.host: New file. frv-elf needs libgloss.
2190 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
a23adb4d 2191 alignment. This is needed to frv and shouldn't harm the others.
88d8c771
AG
2192 * include/ffi_common.h (ALIGN_DOWN): New macro.
2193 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2194
4c5f37d5
DD
21952004-08-24 David Daney <daney@avtrex.com>
2196
2197 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2198 * testsuite/libffi.call/closure_fn1.c: Likewise.
2199 * testsuite/libffi.call/closure_fn2.c Likewise.
2200 * testsuite/libffi.call/closure_fn3.c: Likewise.
2201 * testsuite/libffi.call/closure_fn4.c: Likewise.
2202 * testsuite/libffi.call/closure_fn5.c: Likewise.
2203 * testsuite/libffi.call/cls_18byte.c: Likewise.
2204 * testsuite/libffi.call/cls_19byte.c: Likewise.
2205 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2206 * testsuite/libffi.call/cls_20byte.c: Likewise.
2207 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2208 * testsuite/libffi.call/cls_24byte.c: Likewise.
2209 * testsuite/libffi.call/cls_2byte.c: Likewise.
2210 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2211 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2212 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2213 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2214 * testsuite/libffi.call/cls_4byte.c: Likewise.
2215 * testsuite/libffi.call/cls_64byte.c: Likewise.
2216 * testsuite/libffi.call/cls_6byte.c: Likewise.
2217 * testsuite/libffi.call/cls_7byte.c: Likewise.
2218 * testsuite/libffi.call/cls_8byte.c: Likewise.
2219 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2220 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2221 * testsuite/libffi.call/cls_align_double.c: Likewise.
2222 * testsuite/libffi.call/cls_align_float.c: Likewise.
2223 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2224 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2225 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2226 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2227 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2228 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2229 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2230 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2231 * testsuite/libffi.call/cls_double.c: Likewise.
2232 * testsuite/libffi.call/cls_float.c: Likewise.
2233 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2234 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2235 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2236 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2237 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2238 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2239 * testsuite/libffi.call/cls_schar.c: Likewise.
2240 * testsuite/libffi.call/cls_sint.c: Likewise.
2241 * testsuite/libffi.call/cls_sshort.c: Likewise.
2242 * testsuite/libffi.call/cls_uchar.c: Likewise.
2243 * testsuite/libffi.call/cls_uint.c: Likewise.
2244 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2245 * testsuite/libffi.call/cls_ushort.c: Likewise.
2246 * testsuite/libffi.call/nested_struct.c: Likewise.
2247 * testsuite/libffi.call/nested_struct1.c: Likewise.
2248 * testsuite/libffi.call/nested_struct2.c: Likewise.
2249 * testsuite/libffi.call/nested_struct3.c: Likewise.
2250 * testsuite/libffi.call/problem1.c: Likewise.
2251 * testsuite/libffi.special/unwindtest.cc: Likewise.
2252 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2253 to zero.
2254 * testsuite/libffi.call/cls_16byte.c: Likewise.
2255 * testsuite/libffi.call/cls_5byte.c: Likewise.
2256
39dca114
DD
22572004-08-23 David Daney <daney@avtrex.com>
2258
2259 PR libgcj/13141
2260 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2261 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2262 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2263 parameters and return types.
2264 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2265 (ffi_prep_closure): Ditto.
2266 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2267 alignment calculations.
2268 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2269 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2270
b790003a
CM
22712004-08-14 Casey Marshall <csm@gnu.org>
2272
2273 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2274 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2275 integer (O32 ABI only).
2276 (ffi_prep_closure): new function.
2277 (ffi_closure_mips_inner_O32): new function.
c6900272 2278 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
b790003a
CM
2279 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2280 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2281 64 bit integers correctly.
2282 (ffi_closure_O32): new function.
2283 Added DWARF-2 unwind info for both functions.
2284
547d71a1
AH
22852004-08-10 Andrew Haley <aph@redhat.com>
2286
2287 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2288
98a5bb3b
RM
22892004-08-01 Robert Millan <robertmh@gnu.org>
2290
2291 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2292 * configure: Regenerate.
2293
4d447364
MR
22942004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2295
2296 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2297 and mmap() explicitly instead of relying on preset autoconf cache
2298 variables.
2299 * aclocal.m4: Regenerate.
2300 * configure: Regenerate.
2301
e5dce82f
UW
23022004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2303
2304 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2305 (ffi_check_float_struct): Remove unused prototype.
2306
e6a0022b
GK
23072004-06-30 Geoffrey Keating <geoffk@apple.com>
2308
2309 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2310 character on Darwin, use '\n\t' instead.
2311
5a2d52ca
MK
23122004-06-26 Matthias Klose <doko@debian.org>
2313
2314 * libtool-version: Fix typo in revision/age.
2315
401844ef
MK
23162004-06-17 Matthias Klose <doko@debian.org>
2317
2318 * libtool-version: New.
2319 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2320 * Makefile.in: Regenerate.
2321
94632047 23222004-06-15 Paolo Bonzini <bonzini@gnu.org>
076e5443
PB
2323
2324 * Makefile.am: Remove useless multilib rules.
2325 * Makefile.in: Regenerate.
2326 * aclocal.m4: Regenerate with automake 1.8.5.
2327 * configure.ac: Remove useless multilib configury.
2328 * configure: Regenerate.
2329
94632047 23302004-06-15 Paolo Bonzini <bonzini@gnu.org>
9ac926b1
PB
2331
2332 * .cvsignore: New file.
2333
37c849e4
JJ
23342004-06-10 Jakub Jelinek <jakub@redhat.com>
2335
2336 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2337 fp_done.
2338 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2339 changed from 8.
2340
cb623172
SM
23412004-06-06 Sean McNeil <sean@mcneil.com>
2342
2343 * configure.ac: Add x86_64-*-freebsd* support.
2344 * configure: Regenerate.
2345
c9b93377
JB
23462004-04-26 Joe Buck <jbuck@welsh-buck.org>
2347
2348 Bug 15093
2349 * configure.ac: Test for existence of mmap and sys/mman.h before
2350 checking blacklist. Fix suggested by Jim Wilson.
2351 * configure: Regenerate.
2352
cf90fd1b
MA
23532004-04-26 Matt Austern <austern@apple.com>
2354
2355 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2356 FDE location.
2357 * src/powerpc/darwin_closure.S: Likewise.
c6900272 2358
67781b44
AT
23592004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
2360
2361 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2362 error. Reported by Thomas Heller <theller@python.net>.
2363 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2364 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2365
14b078a8
MK
23662004-03-20 Matthias Klose <doko@debian.org>
2367
2368 * src/pa/linux.S: Fix typo.
2369
d65a810f
MK
23702004-03-19 Matthias Klose <doko@debian.org>
2371
67781b44 2372 * Makefile.am: Update.
d65a810f
MK
2373 * Makefile.in: Regenerate.
2374 * src/pa/ffi.h.in: Remove.
2375 * src/pa/ffitarget.h: New file.
2376
23772004-02-10 Randolph Chung <tausq@debian.org>
2378
2379 * Makefile.am: Add PA support.
2380 * Makefile.in: Regenerate.
2381 * include/Makefile.in: Regenerate.
2382 * configure.ac: Add PA target.
2383 * configure: Regenerate.
2384 * src/pa/ffi.c: New file.
2385 * src/pa/ffi.h.in: Add PA support.
2386 * src/pa/linux.S: New file.
2387 * prep_cif.c: Add PA support.
2388
09cababc
HY
23892004-03-16 Hosaka Yuji <hos@tamanegi.org>
2390
2391 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2392 double.
2393 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2394 with ecif->cif->flags.
2395 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2396 with cif->flags.
2397 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2398 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2399 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2400 sc_retstruct2b): Add for 1 or 2-bytes struct case.
2401
0e8d0c5f
KC
24022004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2403
2404 * configure.in: Rename file to ...
2405 * configure.ac: ... this.
2406 * fficonfig.h.in: Regenerate.
2407 * Makefile.in: Regenerate.
2408 * include/Makefile.in: Regenerate.
2409 * testsuite/Makefile.in: Regenerate.
2410
b8d50739
MA
24112004-03-12 Matt Austern <austern@apple.com>
2412
2413 * src/powerpc/darwin.S: Fix EH information so it corresponds to
2414 changes in EH format resulting from addition of linkonce support.
2415 * src/powerpc/darwin_closure.S: Likewise.
09cababc 2416
3ed8e5b6
AT
24172004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
2418 Paolo Bonzini <bonzini@gnu.org>
2419
2420 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2421 Remove VPATH. Remove rules for object files. Remove multilib support.
2422 (AM_CCASFLAGS): Add.
2423 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2424 (AC_PREREQ): Bump version to 2.59.
2425 (AC_INIT): Fill with version info and bug address.
2426 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2427 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2428 De-precious CC so that the right flags are passed down to multilibs.
2429 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2430 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2431 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2432 * configure: Rebuilt.
2433 * aclocal.m4: Likewise.
2434 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2435 * fficonfig.h.in: Likewise.
2436
254ea477
AS
24372004-03-11 Andreas Schwab <schwab@suse.de>
2438
2439 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
2440 arguments from fp registers only for the first 8 parameter slots.
2441 Don't convert a float parameter when passed in memory.
2442
3beb1315
HPN
24432004-03-09 Hans-Peter Nilsson <hp@axis.com>
2444
2445 * configure: Regenerate for config/accross.m4 correction.
2446
fecf735c
MK
24472004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
2448
2449 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
2450 ecif->cif->bytes to bytes.
2451 (ffi_prep_cif_machdep): Add braces around nested if statement.
2452
4243752c
AM
24532004-02-09 Alan Modra <amodra@bigpond.net.au>
2454
12001e0f
AM
2455 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
2456
4243752c
AM
2457 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
2458 (ffi_closure_helper_LINUX64): Fix typo.
2459 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
2460 for powerpc64-*-*.
2461 * testsuite/libffi.call/float.c: Likewise.
2462 * testsuite/libffi.call/float2.c: Likewise.
2463
bf310028
AM
24642004-02-08 Alan Modra <amodra@bigpond.net.au>
2465
2466 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
2467 long double function return and long double arg handling.
2468 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
2469 Use "end_pfr" instead of "nf". Correct long double handling.
2470 Localise "temp".
2471 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
2472 return value.
2473 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
2474 space for long double return value. Adjust stack frame and offsets.
2475 Load f2 long double return.
2476
dd5f9ea2
AM
24772004-02-07 Alan Modra <amodra@bigpond.net.au>
2478
2479 * src/types.c: Use 16 byte long double for POWERPC64.
2480
0ce78f01
EB
24812004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2482
2483 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
2484 when the structure return address is passed in %o0.
2485 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
2486 (ffi_v9_layout_struct): Align the field following a nested structure
2487 on a word boundary. Use memmove instead of memcpy.
2488 (ffi_call): Update call to ffi_V9_return_struct.
2489 (ffi_prep_closure): Define 'ctx' only for V8.
2490 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
2491 and ffi_closure_sparc_inner_v9.
2492 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
2493 Always skip the structure return address. For structures and long
2494 doubles, copy the argument directly.
2495 (ffi_closure_sparc_inner_v9): Skip the structure return address only
2496 if required. Shift the maximum floating-point slot accordingly. For
2497 big structures, copy the argument directly; otherwise, left-justify the
2498 argument and call ffi_v9_layout_struct to lay out the structure on
2499 the stack.
2500 * src/sparc/v8.S: Undef STACKFRAME before defining it.
2501 (ffi_closure_v8): Pass the structure return address. Update call to
2502 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
2503 Skip the 'unimp' insn when returning long doubles and structures.
2504 * src/sparc/v9.S: Undef STACKFRAME before defining it.
2505 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
2506 FFI_TYPE_INT handling. Load structures both in integers and
2507 floating-point registers on return.
2508 * README: Update status of the SPARC port.
2509
7fcc1d9b
AT
25102004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
2511
2512 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
2513 as of type ffi_arg.
2514 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
2515
6ed0ecaf
UW
25162004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
2517
2518 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
2519 value as of type ffi_arg, not unsigned int.
2520
c930d8a5
MR
25212004-01-21 Michael Ritzert <ritzert@t-online.de>
2522
2523 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
2524 of the LHS.
2525
7b2e3e60
AT
25262004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
2527
2528 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
2529 Solaris.
2530
2e89756b
RO
25312004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2532
2533 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
2534 to void *.
2535
628b26f8
RH
25362003-12-10 Richard Henderson <rth@redhat.com>
2537
2538 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
2539 size_t instead of int.
2540
0ee646d6
HY
25412003-12-04 Hosaka Yuji <hos@tamanegi.org>
2542
2543 * testsuite/libffi.call/many_win32.c: Include <float.h>.
2544 * testsuite/libffi.call/many_win32.c (main): Replace variable
2545 int i with unsigned long ul.
2546
2547 * testsuite/libffi.call/cls_align_uint64.c: New test case.
2548 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2549 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2550 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2551 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2552 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2553 * testsuite/libffi.call/cls_align_float.c: Likewise.
2554 * testsuite/libffi.call/cls_align_double.c: Likewise.
2555 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2556 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2557
2c4ed456
HY
25582003-12-02 Hosaka Yuji <hos@tamanegi.org>
2559
2560 PR other/13221
2561 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
2562 Align arguments to 32 bits.
2563
d18c3386
AT
25642003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
2565
2566 PR other/13221
2567 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
2568 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2569 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2570 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2571 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2572 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2573
2574 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
2575
88096b2a
KG
25762003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2577
2578 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
2579 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2580
3eee102e
AT
25812003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
2582
2583 * Makefile.in: Rebuilt.
2584 * configure: Likewise.
2585 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
2586 the right type.
2587
5196736e
AJ
25882003-11-21 Andreas Jaeger <aj@suse.de>
2589 Andreas Tobler <a.tobler@schweiz.ch>
2590
2591 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
2592 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
2593 * Makefile.in: Rebuilt.
2594 * aclocal.m4: Likewise.
2595 * configure: Likewise.
2596 * fficonfig.h.in: Likewise.
2597 * testsuite/lib/libffi-dg.exp: Add include dir.
2598 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
2599 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2600 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
2601 for ffi_closure if available.
2602 * testsuite/libffi.call/closure_fn1.c: Likewise.
2603 * testsuite/libffi.call/closure_fn2.c: Likewise.
2604 * testsuite/libffi.call/closure_fn3.c: Likewise.
2605 * testsuite/libffi.call/closure_fn4.c: Likewise.
2606 * testsuite/libffi.call/closure_fn5.c: Likewise.
2607 * testsuite/libffi.call/cls_12byte.c: Likewise.
2608 * testsuite/libffi.call/cls_16byte.c: Likewise.
2609 * testsuite/libffi.call/cls_18byte.c: Likewise.
2610 * testsuite/libffi.call/cls_19byte.c: Likewise.
2611 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2612 * testsuite/libffi.call/cls_20byte.c: Likewise.
2613 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2614 * testsuite/libffi.call/cls_24byte.c: Likewise.
2615 * testsuite/libffi.call/cls_2byte.c: Likewise.
2616 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2617 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2618 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2619 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2620 * testsuite/libffi.call/cls_4byte.c: Likewise.
2621 * testsuite/libffi.call/cls_5byte.c: Likewise.
2622 * testsuite/libffi.call/cls_64byte.c: Likewise.
2623 * testsuite/libffi.call/cls_6byte.c: Likewise.
2624 * testsuite/libffi.call/cls_7byte.c: Likewise.
2625 * testsuite/libffi.call/cls_8byte.c: Likewise.
2626 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2627 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2628 * testsuite/libffi.call/cls_double.c: Likewise.
2629 * testsuite/libffi.call/cls_float.c: Likewise.
2630 * testsuite/libffi.call/cls_schar.c: Likewise.
2631 * testsuite/libffi.call/cls_sint.c: Likewise.
2632 * testsuite/libffi.call/cls_sshort.c: Likewise.
2633 * testsuite/libffi.call/cls_uchar.c: Likewise.
2634 * testsuite/libffi.call/cls_uint.c: Likewise.
2635 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2636 * testsuite/libffi.call/cls_ushort.c: Likewise.
2637 * testsuite/libffi.call/nested_struct.c: Likewise.
2638 * testsuite/libffi.call/nested_struct1.c: Likewise.
2639 * testsuite/libffi.call/nested_struct2.c: Likewise.
2640 * testsuite/libffi.call/nested_struct3.c: Likewise.
2641 * testsuite/libffi.call/problem1.c: Likewise.
2642 * testsuite/libffi.special/unwindtest.cc: Likewise.
2643
9e6c3ecb
AT
26442003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
2645
2646 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
2647
70d8f2a1
AT
26482003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
2649
2650 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2651 Add -lgcc_s to additional flags.
2652
ea81d2a3
AT
26532003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
2654
2655 * configure.in, include/Makefile.am: PR libgcj/11147, install
2656 the ffitarget.h header file in a gcc versioned and target
2657 dependent place.
2658 * configure: Regenerated.
2659 * Makefile.in, include/Makefile.in: Likewise.
2660 * testsuite/Makefile.in: Likewise.
2661
647af4a9
AT
26622003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
2663
2664 * testsuite/libffi.call/closure_fn0.c: Print result and check
2665 with dg-output to make debugging easier.
2666 * testsuite/libffi.call/closure_fn1.c: Likewise.
2667 * testsuite/libffi.call/closure_fn2.c: Likewise.
2668 * testsuite/libffi.call/closure_fn3.c: Likewise.
2669 * testsuite/libffi.call/closure_fn4.c: Likewise.
2670 * testsuite/libffi.call/closure_fn5.c: Likewise.
2671 * testsuite/libffi.call/cls_12byte.c: Likewise.
2672 * testsuite/libffi.call/cls_16byte.c: Likewise.
2673 * testsuite/libffi.call/cls_18byte.c: Likewise.
2674 * testsuite/libffi.call/cls_19byte.c: Likewise.
2675 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2676 * testsuite/libffi.call/cls_20byte.c: Likewise.
2677 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2678 * testsuite/libffi.call/cls_24byte.c: Likewise.
2679 * testsuite/libffi.call/cls_2byte.c: Likewise.
2680 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2681 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2682 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2683 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2684 * testsuite/libffi.call/cls_4byte.c: Likewise.
2685 * testsuite/libffi.call/cls_5byte.c: Likewise.
2686 * testsuite/libffi.call/cls_64byte.c: Likewise.
2687 * testsuite/libffi.call/cls_6byte.c: Likewise.
2688 * testsuite/libffi.call/cls_7byte.c: Likewise.
2689 * testsuite/libffi.call/cls_8byte.c: Likewise.
2690 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2691 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2692 * testsuite/libffi.call/cls_double.c: Likewise.
2693 * testsuite/libffi.call/cls_float.c: Likewise.
2694 * testsuite/libffi.call/cls_schar.c: Likewise.
2695 * testsuite/libffi.call/cls_sint.c: Likewise.
2696 * testsuite/libffi.call/cls_sshort.c: Likewise.
2697 * testsuite/libffi.call/cls_uchar.c: Likewise.
2698 * testsuite/libffi.call/cls_uint.c: Likewise.
2699 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2700 * testsuite/libffi.call/cls_ushort.c: Likewise.
2701 * testsuite/libffi.call/problem1.c: Likewise.
2702
2703 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
2704 static.
2705
ac47cc13
AT
27062003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
2707
2708 * testsuite/libffi.call/cls_9byte2.c: New test case.
2709 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2710 * testsuite/libffi.call/cls_64byte.c: Likewise.
2711 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2712 * testsuite/libffi.call/cls_19byte.c: Likewise.
2713 * testsuite/libffi.call/cls_18byte.c: Likewise.
2714 * testsuite/libffi.call/closure_fn4.c: Likewise.
2715 * testsuite/libffi.call/closure_fn5.c: Likewise.
2716 * testsuite/libffi.call/cls_schar.c: Likewise.
2717 * testsuite/libffi.call/cls_sint.c: Likewise.
2718 * testsuite/libffi.call/cls_sshort.c: Likewise.
2719 * testsuite/libffi.call/nested_struct2.c: Likewise.
2720 * testsuite/libffi.call/nested_struct3.c: Likewise.
2721
f145ed6b
AT
27222003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
2723
2724 * testsuite/libffi.call/cls_double.c: Do a check on the result.
2725 * testsuite/libffi.call/cls_uchar.c: Likewise.
2726 * testsuite/libffi.call/cls_uint.c: Likewise.
2727 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2728 * testsuite/libffi.call/cls_ushort.c: Likewise.
2729 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2730
2b04d015
AT
27312003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
2732
2733 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
2734 the initialization.
2735
57f542b3
AT
27362003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
2737
2b04d015 2738 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
57f542b3
AT
2739 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2740
e61acf72
DD
27412003-10-22 David Daney <ddaney@avtrex.com>
2742
2743 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2744 __attribute__((__mode__(__SI__))) and friends.
2745
2461c08b
AS
27462003-10-22 Andreas Schwab <schwab@suse.de>
2747
2748 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2749
1450eb7a
AT
27502003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
2751
2752 * configure.in: AC_LINK_FILES(ffitarget.h).
2753 * configure: Regenerate.
2754 * Makefile.in: Likewise.
2755 * include/Makefile.in: Likewise.
2756 * testsuite/Makefile.in: Likewise.
2757 * fficonfig.h.in: Likewise.
2758
27592003-10-21 Paolo Bonzini <bonzini@gnu.org>
2760 Richard Henderson <rth@redhat.com>
2761
2762 Avoid that ffi.h includes fficonfig.h.
2763
2764 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
2765 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2766 (TARGET_SRC_MIPS_SGI): Removed.
2767 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2768 (MIPS_SGI): Removed.
2769 (CLEANFILES): Removed.
2770 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2771 targets.
2772 * acconfig.h: Removed.
2773 * configure.in: Compute sizeofs only for double and long double.
2774 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
2775 into AC_DEFINE instead of using acconfig.h. Create
2776 include/ffitarget.h instead of include/fficonfig.h. Rename
2777 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2778 AC_DEFINE EH_FRAME_FLAGS.
2779 * include/Makefile.am (DISTCLEANFILES): New automake macro.
2780 (hack_DATA): Add ffitarget.h.
2781 * include/ffi.h.in: Remove all system specific definitions.
2782 Declare raw API even if it is not installed, why bother?
2783 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
2784 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
2785 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
2786 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2787 * include/ffi_common.h (bool): Do not define.
2788 (ffi_assert): Accept failed assertion.
2789 (ffi_type_test): Return void and accept file/line.
2790 (FFI_ASSERT): Pass stringized failed assertion.
2791 (FFI_ASSERT_AT): New macro.
2792 (FFI_ASSERT_VALID_TYPE): New macro.
2793 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2794 UINT64, SINT64): Define here with gcc's __attribute__ macro
2795 instead of in ffi.h
2796 (FLOAT32, ALIGN): Define here instead of in ffi.h
2797 * include/ffi-mips.h: Removed. Its content moved to
2798 src/mips/ffitarget.h after separating assembly and C sections.
2799 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2800 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2801 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2802 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2803 SIZEOF_ARG -> FFI_SIZEOF_ARG.
2804 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2805 * src/debug.c (ffi_assert): Accept stringized failed assertion.
2806 (ffi_type_test): Rewritten.
2807 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2808 FFI_ASSERT_VALID_TYPE.
2809 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
2810 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2811 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2812 src/s390/ffitarget.h, src/sh/ffitarget.h,
2813 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2814 src/x86/ffitarget.h: New files.
2815 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2816 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2817 src/powerpc/aix.S, src/powerpc/darwin.S,
2818 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2819 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2820 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2821 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2822 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2823 include fficonfig.h
2824
27d54b2a
RO
28252003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2826
2827 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2828 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2829
0df6970d
AT
28302003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
2831
2832 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2833 Used when FFI_DEBUG = 1.
2834
2612ffce
AM
28352003-10-14 Alan Modra <amodra@bigpond.net.au>
2836
2837 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2838 and align.
2839
d54f7354
RO
28402003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2841
2842 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2843 FFI_MIPS_O32 for O32 ABI.
2844
7a54c850
AT
28452003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
2846
2847 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2848 SPARC64. Cleanup whitespaces.
2849
9e3bfa9b
AT
28502003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
2851
2852 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2853 strongarm, xscale. Cleanup whitespaces.
2854 * testsuite/libffi.call/closure_fn1.c: Likewise.
2855 * testsuite/libffi.call/closure_fn2.c: Likewise.
2856 * testsuite/libffi.call/closure_fn3.c: Likewise.
2857 * testsuite/libffi.call/cls_12byte.c: Likewise.
2858 * testsuite/libffi.call/cls_16byte.c: Likewise.
2859 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2860 * testsuite/libffi.call/cls_20byte.c: Likewise.
2861 * testsuite/libffi.call/cls_24byte.c: Likewise.
2862 * testsuite/libffi.call/cls_2byte.c: Likewise.
2863 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2864 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2865 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2866 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2867 * testsuite/libffi.call/cls_4byte.c: Likewise.
2868 * testsuite/libffi.call/cls_5byte.c: Likewise.
2869 * testsuite/libffi.call/cls_6byte.c: Likewise.
2870 * testsuite/libffi.call/cls_7byte.c: Likewise.
2871 * testsuite/libffi.call/cls_8byte.c: Likewise.
2872 * testsuite/libffi.call/cls_double.c: Likewise.
2873 * testsuite/libffi.call/cls_float.c: Likewise.
2874 * testsuite/libffi.call/cls_uchar.c: Likewise.
2875 * testsuite/libffi.call/cls_uint.c: Likewise.
2876 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2877 * testsuite/libffi.call/cls_ushort.c: Likewise.
2878 * testsuite/libffi.call/nested_struct.c: Likewise.
2879 * testsuite/libffi.call/nested_struct1.c: Likewise.
2880 * testsuite/libffi.call/problem1.c: Likewise.
2881 * testsuite/libffi.special/unwindtest.cc: Likewise.
2882 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2883
3e86b595
DE
28842003-09-18 David Edelsohn <edelsohn@gnu.org>
2885
2886 * src/powerpc/aix.S: Cleanup whitespaces.
2887 * src/powerpc/aix_closure.S: Likewise.
2888
8d8369f8
AT
28892003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2890
2891 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2892 * src/powerpc/darwin_closure.S: Likewise.
2893 * src/powerpc/ffi_darwin.c: Likewise.
2894
69b182fd
AT
28952003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2896 David Edelsohn <edelsohn@gnu.org>
2897
2898 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2899 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2900 parameter stack.
2901 * src/powerpc/darwin_closure.S: Likewise.
2902 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2903 according to the Darwin/AIX ABI.
2904 (ffi_prep_cif_machdep): Likewise.
2905 (ffi_closure_helper_DARWIN): Likewise.
2906 Remove the outgoing parameter stack logic. Simplify the evaluation
2907 of the different CASE types.
2908 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2909 statement in the trampoline code.
2910
df805cdc
KK
29112003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
2912
2913 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2914 for the register size.
2915 (ffi_closure_helper_SYSV): Handle the structure return value
2916 address correctly.
2917 (ffi_closure_helper_SYSV): Return the appropriate type when
2918 the registers are used for the structure return value.
2919 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2920 the 64-bit return value. Update copyright years.
2921
eb26c76c
RO
29222003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2923
2924 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2925 srcdir for ffi_mips.h.
2926
6350c02c
AM
29272003-09-12 Alan Modra <amodra@bigpond.net.au>
2928
2929 * src/prep_cif.c (initialize_aggregate): Include tail padding in
2930 structure size.
2931 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2932 placement of float result.
2933 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2934 cast of "resp" for big-endian 64 bit machines.
2935
5af1c806
AM
29362003-09-11 Alan Modra <amodra@bigpond.net.au>
2937
2938 * src/types.c (double, longdouble): Merge identical SH and ARM
2939 typedefs, and add POWERPC64.
2940 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2941 struct split over gpr and rest.
2942 (ffi_prep_cif_machdep): Correct intarg_count for structures.
2943 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2944
086a4bd7
AT
29452003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
2946
2947 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2948 passing correctly.
c930d8a5 2949
e517f636
AM
29502003-09-09 Alan Modra <amodra@bigpond.net.au>
2951
2952 * configure: Regenerate.
2953
6f20d627
AT
29542003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2955
2956 * Makefile.am: Remove build rules for ffitest.
2957 * Makefile.in: Rebuilt.
c930d8a5 2958
6f20d627 29592003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
226660af
AT
2960
2961 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2962 about implicit declaration of abort().
2963
bbf3057b
AT
29642003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2965
2966 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2967 * Makefile.in: Rebuilt.
2968 * configure.in: Add dejagnu test framework.
2969 * configure: Rebuilt.
2970
2971 * testsuite/Makefile.am: New file.
2972 * testsuite/Makefile.in: Built
c930d8a5 2973 * testsuite/lib/libffi-dg.exp: New file.
bbf3057b
AT
2974 * testsuite/config/default.exp: Likewise.
2975 * testsuite/libffi.call/call.exp: Likewise.
2976 * testsuite/libffi.call/ffitest.h: Likewise.
2977 * testsuite/libffi.call/closure_fn0.c: Likewise.
2978 * testsuite/libffi.call/closure_fn1.c: Likewise.
2979 * testsuite/libffi.call/closure_fn2.c: Likewise.
2980 * testsuite/libffi.call/closure_fn3.c: Likewise.
2981 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2982 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2983 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2984 * testsuite/libffi.call/cls_2byte.c: Likewise.
2985 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2986 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2987 * testsuite/libffi.call/cls_4byte.c: Likewise.
2988 * testsuite/libffi.call/cls_5byte.c: Likewise.
2989 * testsuite/libffi.call/cls_6byte.c: Likewise.
2990 * testsuite/libffi.call/cls_7byte.c: Likewise.
2991 * testsuite/libffi.call/cls_8byte.c: Likewise.
2992 * testsuite/libffi.call/cls_12byte.c: Likewise.
2993 * testsuite/libffi.call/cls_16byte.c: Likewise.
2994 * testsuite/libffi.call/cls_20byte.c: Likewise.
2995 * testsuite/libffi.call/cls_24byte.c: Likewise.
2996 * testsuite/libffi.call/cls_double.c: Likewise.
2997 * testsuite/libffi.call/cls_float.c: Likewise.
2998 * testsuite/libffi.call/cls_uchar.c: Likewise.
2999 * testsuite/libffi.call/cls_uint.c: Likewise.
3000 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3001 * testsuite/libffi.call/cls_ushort.c: Likewise.
3002 * testsuite/libffi.call/float.c: Likewise.
3003 * testsuite/libffi.call/float1.c: Likewise.
3004 * testsuite/libffi.call/float2.c: Likewise.
3005 * testsuite/libffi.call/many.c: Likewise.
3006 * testsuite/libffi.call/many_win32.c: Likewise.
3007 * testsuite/libffi.call/nested_struct.c: Likewise.
3008 * testsuite/libffi.call/nested_struct1.c: Likewise.
3009 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3010 * testsuite/libffi.call/problem1.c: Likewise.
3011 * testsuite/libffi.call/promotion.c: Likewise.
3012 * testsuite/libffi.call/return_ll.c: Likewise.
3013 * testsuite/libffi.call/return_sc.c: Likewise.
3014 * testsuite/libffi.call/return_uc.c: Likewise.
3015 * testsuite/libffi.call/strlen.c: Likewise.
3016 * testsuite/libffi.call/strlen_win32.c: Likewise.
3017 * testsuite/libffi.call/struct1.c: Likewise.
3018 * testsuite/libffi.call/struct2.c: Likewise.
3019 * testsuite/libffi.call/struct3.c: Likewise.
3020 * testsuite/libffi.call/struct4.c: Likewise.
3021 * testsuite/libffi.call/struct5.c: Likewise.
3022 * testsuite/libffi.call/struct6.c: Likewise.
3023 * testsuite/libffi.call/struct7.c: Likewise.
3024 * testsuite/libffi.call/struct8.c: Likewise.
c930d8a5 3025 * testsuite/libffi.call/struct9.c: Likewise.
bbf3057b
AT
3026 * testsuite/libffi.special/special.exp: New file.
3027 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3028 * testsuite/libffi.special/unwindtest.cc: Likewise.
3029
c930d8a5 3030
996b4f8f
KK
30312003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3032
3033 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
3034 copyright years.
3035
b00badcd
AM
30362003-08-02 Alan Modra <amodra@bigpond.net.au>
3037
3038 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3039 structure passing.
3040 (ffi_closure_helper_LINUX64): Likewise.
3041 * src/powerpc/linux64.S: Remove code writing to parm save area.
3042 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3043 address in lr from ffi_closure_helper_LINUX64 call to calculate
3044 table address. Optimize function tail.
3045
c1516eae
AT
30462003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
3047
3048 * src/sparc/ffi.c: Handle all floating point registers.
3049 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3050
fc0e6222
GP
30512003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3052
3053 * README: Note that libffi is not part of GCC. Update the project
3054 URL and status.
3055
a1569df8
FS
30562003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3057
3058 * src/powerpc/ppc_closure.S: Include ffi.h.
3059
12e816bf
RO
30602003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3061
3062 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3063 Use C style comments.
3064
e860ed6d
KK
30652003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3066
3067 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
3068 * Makefile.in: Regenerate.
3069 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3070 * configure: Regenerate.
3071 * include/ffi.h.in: Add SHmedia support.
3072 * src/sh64/ffi.c: New file.
3073 * src/sh64/sysv.S: New file.
3074
a733b15e
JJ
30752003-05-16 Jakub Jelinek <jakub@redhat.com>
3076
3077 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3078 should be read-only.
3079 * configure: Rebuilt.
3080 * fficonfig.h.in: Rebuilt.
3081 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3082 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3083 * src/powerpc/linux64.S: Likewise.
3084 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
3085 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
3086 if -fpic/-fPIC/-mrelocatable.
3087 * src/powerpc/powerpc_closure.S: Likewise.
3088 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3089 #write in .eh_frame flags.
3090 * src/sparc/v9.S: Likewise.
3091 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3092 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
3093 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
3094
bd19c9f4
JS
30952003-05-07 Jeff Sturm <jsturm@one-point.com>
3096
3097 Fixes PR bootstrap/10656
3098 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3099 support for .register pseudo-op.
3100 * src/sparc/v8.S: Use it.
3101 * fficonfig.h.in: Rebuilt.
3102 * configure: Rebuilt.
3103
e9b84181
JJ
31042003-04-18 Jakub Jelinek <jakub@redhat.com>
3105
3106 * include/ffi.h.in (POWERPC64): Define if 64-bit.
3107 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3108 Make it the default on POWERPC64.
3109 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3110 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3111 * configure: Rebuilt.
3112 * src/powerpc/ffi.c (hidden): Define.
3113 (ffi_prep_args_SYSV): Renamed from
3114 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
3115 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3116 ASM_NEEDS_REGISTERS64): New.
3117 (ffi_prep_args64): New function.
3118 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3119 (ffi_call): Likewise.
3120 (ffi_prep_closure): Likewise.
3121 (flush_icache): Surround by #ifndef POWERPC64.
3122 (ffi_dblfl): New union type.
3123 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3124 (ffi_closure_helper_LINUX64): New function.
3125 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3126 __powerpc64__.
3127 * src/powerpc/sysv.S: Likewise.
3128 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3129 * src/powerpc/linux64.S: New file.
3130 * src/powerpc/linux64_closure.S: New file.
3131 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3132 src/powerpc/linux64_closure.S.
3133 (TARGET_SRC_POWERPC): Likewise.
3134
3135 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3136 closure_test_fn3): Fix result printing on big-endian 64-bit
3137 machines.
3138 (main): Print tst2_arg instead of uninitialized tst2_result.
3139
3140 * src/ffitest.c (main): Hide what closure pointer really points to
3141 from the compiler.
3142
908a31e1
RE
31432003-04-16 Richard Earnshaw <rearnsha@arm.com>
3144
3145 * configure.in (arm-*-netbsdelf*): Add configuration.
3146 (configure): Regenerated.
3147
41a73c4c
LR
31482003-04-04 Loren J. Rittle <ljrittle@acm.org>
3149
3150 * include/Makefile.in: Regenerate.
3151
cd41c847
ZD
31522003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3153
3154 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3155 bit mode.
3156 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3157 Receive closure pointer through parameter, read args using
3158 __builtin_dwarf_cfa.
3159 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3160
6db450f9
AS
31612003-03-12 Andreas Schwab <schwab@suse.de>
3162
3163 * configure.in: Avoid trailing /. in toolexeclibdir.
3164 * configure: Rebuilt.
3165
70144e9c
AT
31662003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
3167
c6900272 3168 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
70144e9c 3169
79e43f89
AT
31702003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
3171
3172 * libffi/src/powerpc/darwin_closure.S:
3173 Fix alignement bug, allocate 8 bytes for the result.
c930d8a5 3174 * libffi/src/powerpc/aix_closure.S:
79e43f89
AT
3175 Likewise.
3176 * libffi/src/powerpc/ffi_darwin.c:
3177 Update stackframe description for aix/darwin_closure.S.
c930d8a5 3178
0fcc9e55
JJ
31792003-02-06 Jakub Jelinek <jakub@redhat.com>
3180
3181 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3182 attribute.
3183
63b87c2e
CC
31842003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
3185 Andreas Schwab <schwab@suse.de>
3186
c6900272 3187 * configure.in: Adjust command to source config-ml.in to account
63b87c2e
CC
3188 for changes to the libffi_basedir definition.
3189 (libffi_basedir): Remove ${srcdir} from value and include trailing
3190 slash if nonempty.
c930d8a5 3191
c6900272 3192 * configure: Regenerate.
63b87c2e 3193
c33402e2
FS
31942003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3195
3196 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3197
fd2e49b2
AH
31982003-01-28 Andrew Haley <aph@redhat.com>
3199
3200 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3201 * src/x86/ffi64.c (ffi_prep_closure): New.
3202 (ffi_closure_UNIX64_inner): New.
3203 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3204
0e292c01
AO
32052003-01-27 Alexandre Oliva <aoliva@redhat.com>
3206
3207 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3208 Remove USE_LIBDIR conditional.
3209 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3210 * Makefile.in, configure: Rebuilt.
3211
acabc220
DE
32122003-01027 David Edelsohn <edelsohn@gnu.org>
3213
3214 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3215 * Makefile.in: Regenerate.
3216
be0acd42
AH
32172003-01-22 Andrew Haley <aph@redhat.com>
3218
3219 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3220 unwind info.
3221
ed695c8e
AT
32222003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3223
3224 * src/powerpc/darwin.S: Add unwind info.
3225 * src/powerpc/darwin_closure.S: Likewise.
3226
45ba15f4
AH
32272003-01-14 Andrew Haley <aph@redhat.com>
3228
3229 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3230 (ffi_prep_cif_machdep): Likewise.
3231 * src/x86/unix64.S: Add unwind info.
3232
4b5f402e
AJ
32332003-01-14 Andreas Jaeger <aj@suse.de>
3234
3235 * src/ffitest.c (main): Only use ffi_closures if those are
3236 supported.
3237
7b5102af
TT
32382003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3239
3240 * libffi/src/ffitest.c
c6900272 3241 add closure testcases
7b5102af
TT
3242
32432003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3244
3245 * libffi/src/powerpc/ffi.c
c6900272 3246 fix alignment bug for float (4 byte aligned iso 8 byte)
7b5102af 3247
5f7c78d8
GK
32482003-01-09 Geoffrey Keating <geoffk@apple.com>
3249
3250 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3251 * src/powerpc/darwin.S: Remove RCS version string.
3252
c75c7793
JS
32532003-01-03 Jeff Sturm <jsturm@one-point.com>
3254
3255 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3256 * src/ffitest.c (main): Use static storage for closure.
3257 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3258 * src/sparc/v8.S (ffi_closure_v8): New.
3259 * src/sparc/v9.S (ffi_closure_v9): New.
3260
eb3c46a1
RM
32612002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3262
3263 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3264 enumeration for X86_WIN32.
3265 * src/x86/win32.S: Added ffi_call_STDCALL function
3266 definition.
3267 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3268 switch cases for recognising FFI_STDCALL and
3269 calling ffi_call_STDCALL if target is X86_WIN32.
3270 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3271 stdcall versions of the "my_strlen" and "many"
3272 test functions (for X86_WIN32).
3273 Added test cases to test stdcall invocation using
3274 these functions.
3275
4977bab6
ZW
32762002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3277
3278 * src/sh/sysv.S: Add DWARF2 unwind info.
3279
67333e84
UW
32802002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3281
3282 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3283
bc3cf760
JW
32842002-11-26 Jim Wilson <wilson@redhat.com>
3285
3286 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3287
4977bab6
ZW
32882002-11-23 H.J. Lu <hjl@gnu.org>
3289
3290 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3291 Include ../config/accross.m4.
3292 * aclocal.m4; Rebuild.
3293 * configure: Likewise.
3294
18789f4e
UW
32952002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3296
3297 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3298
6bee5372
DD
32992002-11-11 DJ Delorie <dj@redhat.com>
3300
3301 * configure.in: Look for common files in the right place.
3302
8177895b
UW
33032002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3304
3305 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3306 raw data as _Jv_word values, not ffi_raw.
3307 (ffi_java_ptrarray_to_raw): Likewise.
3308 (ffi_java_rvalue_to_raw): New function.
3309 (ffi_java_raw_call): Call it.
3310 (ffi_java_raw_to_rvalue): New function.
3311 (ffi_java_translate_args): Call it.
3312 * src/ffitest.c (closure_test_fn): Interpret return value
3313 as ffi_arg, not int.
3314 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3315 FFI_TYPE_POINTER case.
3316 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3317 values extended to word size.
3318
af50f4c8
AJ
33192002-10-02 Andreas Jaeger <aj@suse.de>
3320
3321 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3322
5d297584
BT
33232002-10-01 Bo Thorsen <bo@smetana.suse.de>
3324
3325 * include/ffi.h.in: Fix i386 win32 compilation.
3326
c4f17c6f
UW
33272002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3328
3329 * configure.in: Add s390x-*-linux-* target.
3330 * configure: Regenerate.
3331 * include/ffi.h.in: Define S390X for s390x targets.
3332 (FFI_CLOSURES): Define for s390/s390x.
3333 (FFI_TRAMPOLINE_SIZE): Likewise.
3334 (FFI_NATIVE_RAW_API): Likewise.
3335 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3336 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4977bab6 3337 * src/s390/ffi.c: Major rework of existing code. Add support for
c4f17c6f
UW
3338 s390x targets. Add closure support.
3339 * src/s390/sysv.S: Likewise.
3340
d7b52625
RE
33412002-09-29 Richard Earnshaw <rearnsha@arm.com>
3342
3343 * src/arm/sysv.S: Fix typo.
3344
28165e22
RE
33452002-09-28 Richard Earnshaw <rearnsha@arm.com>
3346
3347 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3348 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3349 (ffi_call_SYSV): Handle soft-float.
3350
0b0f4163
BT
33512002-09-27 Bo Thorsen <bo@suse.de>
3352
3353 * include/ffi.h.in: Fix multilib x86-64 support.
3354
6c5d742e
KG
33552002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3356
3357 * Makefile.am (all-multi): Fix multilib parallel build.
3358
f4b2b0d6
KK
33592002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
3360
3361 * configure.in (sh[34]*-*-linux*): Add brackets.
3362 * configure: Regenerate.
3363
ddebdfeb
KK
33642002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
3365
3366 * Makefile.am: Add SH support.
3367 * Makefile.in: Regenerate.
3368 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3369 * configure: Regenerate.
3370 * include/ffi.h.in: Add SH support.
3371 * src/sh/ffi.c: New file.
3372 * src/sh/sysv.S: New file.
3373 * src/types.c: Add SH support.
3374
c94974ca
BT
33752002-07-16 Bo Thorsen <bo@suse.de>
3376
3377 * src/x86/ffi64.c: New file that adds x86-64 support.
3378 * src/x86/unix64.S: New file that handles argument setup for
3379 x86-64.
3380 * src/x86/sysv.S: Don't use this on x86-64.
3381 * src/x86/ffi.c: Don't use this on x86-64.
3382 Remove unused vars.
3383 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3384 for x86-64.
3385 * src/ffitest.c (struct6): New test that tests a special case in
3386 the x86-64 ABI.
3387 (struct7): Likewise.
3388 (struct8): Likewise.
3389 (struct9): Likewise.
3390 (closure_test_fn): Silence warning about this when it's not used.
3391 (main): Add the new tests.
3392 (main): Fix a couple of wrong casts and silence some compiler warnings.
3393 * include/ffi.h.in: Add x86-64 ABI definition.
3394 * fficonfig.h.in: Regenerate.
3395 * Makefile.am: Add x86-64 support.
3396 * configure.in: Likewise.
3397 * Makefile.in: Regenerate.
3398 * configure: Likewise.
3399
34002002-06-24 Bo Thorsen <bo@suse.de>
3401
3402 * src/types.c: Merge settings for similar architectures.
3403 Add x86-64 sizes and alignments.
3404
34052002-06-23 Bo Thorsen <bo@suse.de>
3406
3407 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3408 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3409 * src/mips/ffi.c (ffi_prep_args): Likewise.
3410 * src/m68k/ffi.c (ffi_prep_args): Likewise.
3411
5be36a8f
L
34122002-07-18 H.J. Lu (hjl@gnu.org)
3413
3414 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3415 (libffi_la_SOURCES): Support MIPS_LINUX.
3416 (libffi_convenience_la_SOURCES): Likewise.
3417 * Makefile.in: Regenerated.
3418
3419 * configure.in (mips64*-*): Skip.
3420 (mips*-*-linux*): New.
3421 * configure: Regenerated.
3422
3423 * src/mips/ffi.c: Include <sgidefs.h>.
3424
ad5e163c
UW
34252002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
3426
3427 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
3428
ee4586c5
RS
34292002-05-27 Roger Sayle <roger@eyesopen.com>
3430
3431 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3432
b86aa7b0
BT
34332002-05-27 Bo Thorsen <bo@suse.de>
3434
3435 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3436 fix formatting.
3437
859f7aaf
AT
34382002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
3439
3440 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
3441 beginning of function (for older apple cc).
3442
6706f116
AO
34432002-05-08 Alexandre Oliva <aoliva@redhat.com>
3444
3445 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
3446 script entry, and set LD to it when configuring multilibs.
3447 * configure: Rebuilt.
3448
fad655c8
JT
34492002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
3450
3451 * configure.in (sparc64-*-netbsd*): Add target.
3452 (sparc-*-netbsdelf*): Likewise.
3453 * configure: Regenerate.
3454
189ab118
DM
34552002-04-28 David S. Miller <davem@redhat.com>
3456
3457 * configure.in, configure: Fix SPARC test in previous change.
3458
22bcf65c
GT
34592002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
3460
3461 * Makefile.am: Add Linux for S/390 support.
3462 * Makefile.in: Regenerate.
3463 * configure.in: Add Linux for S/390 support.
3464 * configure: Regenerate.
3465 * include/ffi.h.in: Add Linux for S/390 support.
3466 * src/s390/ffi.c: New file from libffi CVS tree.
3467 * src/s390/sysv.S: New file from libffi CVS tree.
3468
5d84cf0b
JJ
34692002-04-28 Jakub Jelinek <jakub@redhat.com>
3470
3471 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
3472 %r_disp32().
3473 * src/sparc/v8.S: Use it.
3474 * src/sparc/v9.S: Likewise.
3475 * fficonfig.h.in: Rebuilt.
3476 * configure: Rebuilt.
3477
cc382e5c
HB
34782002-04-08 Hans Boehm <Hans_Boehm@hp.com>
3479
3480 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
3481 correctly.
3482 * src/ia64/unix.S: Add unwind information. Fix comments.
3483 Save sp in a way that's compatible with unwind info.
3484 (ffi_call_unix): Correctly restore sp in all cases.
3485 * src/ia64/ffi.c: Add, fix comments.
3486
dc798645
JJ
34872002-04-08 Jakub Jelinek <jakub@redhat.com>
3488
3489 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
3490
da00eaab
JT
34912002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
3492
3493 * configure.in (alpha*-*-netbsd*): Add target.
3494 * configure: Regenerate.
3495
0c0b87ad
JS
34962002-04-04 Jeff Sturm <jsturm@one-point.com>
3497
3498 * src/sparc/v8.S: Add unwind info.
3499 * src/sparc/v9.S: Likewise.
3500
320d7e7a
KW
35012002-03-30 Krister Walfridsson <cato@df.lth.se>
3502
3503 * configure.in: Enable i*86-*-netbsdelf*.
3504 * configure: Rebuilt.
4977bab6 3505
c75e51ed
DB
35062002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
3507
3508 PR other/2620
3509 * src/mips/n32.s: Delete
3510 * src/mips/o32.s: Delete
3511
5bb366e0
LR
35122002-03-21 Loren J. Rittle <ljrittle@acm.org>
3513
3514 * configure.in: Enable alpha*-*-freebsd*.
3515 * configure: Rebuilt.
3516
ce3b24a7
BM
35172002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3518
3519 * Makefile.am: libfficonvenience -> libffi_convenience.
3520 * Makefile.in: Rebuilt.
4977bab6 3521
1eb7ba30
BM
3522 * Makefile.am: Define ffitest_OBJECTS.
3523 * Makefile.in: Rebuilt.
ce3b24a7 3524
073ae293
AT
35252002-03-07 Andreas Tobler <toa@pop.agri.ch>
3526 David Edelsohn <edelsohn@gnu.org>
3527
3528 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
3529 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
3530 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
3531 * Makefile.in: Regenerate.
3532 * include/ffi.h.in: Add AIX and Darwin closure definitions.
3533 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
3534 (flush_icache, flush_range): New functions.
3535 (ffi_closure_helper_DARWIN): New function.
3536 * src/powerpc/aix_closure.S: New file.
3537 * src/powerpc/darwin_closure.S: New file.
4977bab6 3538
02c521f4
JS
35392002-02-24 Jeff Sturm <jsturm@one-point.com>
3540
3541 * include/ffi.h.in: Add typedef for ffi_arg.
3542 * src/ffitest.c (main): Declare rint with ffi_arg.
4977bab6 3543
287dd527
AT
35442002-02-21 Andreas Tobler <toa@pop.agri.ch>
3545
3546 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
3547 number of GPRs for floating-point arguments.
3548
e2f2e70a
AG
35492002-01-31 Anthony Green <green@redhat.com>
3550
3551 * configure: Rebuilt.
3552 * configure.in: Replace CHECK_SIZEOF and endian tests with
3553 cross-compiler friendly macros.
3554 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
3555 macros.
3556
15b9b32f
DE
35572002-01-18 David Edelsohn <edelsohn@gnu.org>
3558
3559 * src/powerpc/darwin.S (_ffi_call_AIX): New.
1f7d5413 3560 * src/powerpc/aix.S (ffi_call_DARWIN): New.
15b9b32f 3561
2f4006f8
DE
35622002-01-17 David Edelsohn <edelsohn@gnu.org>
3563
3564 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
3565 (TARGET_SRC_POWERPC_AIX): New.
3566 (POWERPC_AIX): New stanza.
3567 * Makefile.in: Regenerate.
3568 * configure.in: Add AIX case.
3569 * configure: Regenerate.
3570 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
3571 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
3572 size. Fix "long double" support.
3573 (ffi_call): Add FFI_AIX case.
3574 * src/powerpc/aix.S: New.
3575
3c017635
JH
35762001-10-09 John Hornkvist <john@toastedmarshmallow.com>
3577
3578 Implement Darwin PowerPC ABI.
3579 * configure.in: Handle powerpc-*-darwin*.
3580 * Makefile.am: Set source files for POWERPC_DARWIN.
3581 * configure: Rebuilt.
3582 * Makefile.in: Rebuilt.
3583 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
3584 POWERPC_DARWIN.
3585 * src/powerpc/darwin.S: New file.
3586 * src/powerpc/ffi_darwin.c: New file.
3587
cc712abf
JM
35882001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
3589
3590 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
3591
03a8de49
RO
35922001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3593
3594 * src/x86/sysv.S: Avoid gas-only .balign directive.
3595 Use C style comments.
3596
92a0e6c6
RO
35972001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3598
3599 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
3600 Fixes PR bootstrap/3563.
3601
57482f58
RO
36022001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3603
3604 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
3605
d7e2dd2f
RO
36062001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3607
3608 * configure.in: Recognize sparc*-sun-* host.
3609 * configure: Regenerate.
4977bab6 3610
be72207c
AH
36112001-06-06 Andrew Haley <aph@redhat.com>
3612
4075db8f 3613 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
be72207c 3614
552cb45a
AH
36152001-06-03 Andrew Haley <aph@redhat.com>
3616
4075db8f
BT
3617 * src/alpha/osf.S: Add unwind info.
3618 * src/powerpc/sysv.S: Add unwind info.
3619 * src/powerpc/ppc_closure.S: Likewise.
552cb45a 3620
7d45b968
JS
36212000-05-31 Jeff Sturm <jsturm@one-point.com>
3622
3623 * configure.in: Fix AC_ARG_ENABLE usage.
3624 * configure: Rebuilt.
3625
2a7f63c4
BM
36262001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3627
3628 * configure.in: Remove warning about beta code.
3629 * configure: Rebuilt.
3630
36312001-04-25 Hans Boehm <Hans_Boehm@hp.com>
3632
03a55252
HB
3633 * src/ia64/unix.S: Restore stack pointer when returning from
3634 ffi_closure_UNIX.
3635 * src/ia64/ffi.c: Fix typo in comment.
3636
df5da1c4
JW
36372001-04-18 Jim Wilson <wilson@redhat.com>
3638
3639 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
3640 to eliminate RAW DV.
3641
52c28977
BM
36422001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
3643
3644 * Makefile.am: Make a libtool convenience library.
3645 * Makefile.in: Rebuilt.
3646
3b905056
BM
36472001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
3648
3649 * configure.in: Use different syntax for subdirectory creation.
3650 * configure: Rebuilt.
3651
d6c4152a
JB
36522001-03-27 Jon Beniston <jon@beniston.com>
3653
3654 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
3655 * configure: Rebuilt.
3656 * Makefile.am: Added X86_WIN32 target support.
3657 * Makefile.in: Rebuilt.
3658
3659 * include/ffi.h.in: Added X86_WIN32 target support.
3660
3661 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
3662 * src/types.c: Added X86_WIN32 target support.
3663
3664 * src/x86/win32.S: New file. Based on sysv.S, but with EH
3665 stuff removed and made to work with CygWin's gas.
3666
675cdab3
BM
36672001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
3668
3669 * configure.in: Make target subdirectory in build dir.
3670 * Makefile.am: Override suffix based rules to specify correct output
3671 subdirectory.
3672 * Makefile.in: Rebuilt.
3673 * configure: Rebuilt.
3674
e5f8858a 36752001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
cc4c8975
KH
3676
3677 * src/powerpc/ppc_closure.S: New file.
3678 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
3679 involving long long and register pairs.
3680 (ffi_prep_closure): New function.
3681 (flush_icache): Likewise.
3682 (ffi_closure_helper_SYSV): Likewise.
3683 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
3684 (FFI_TRAMPOLINE_SIZE): Likewise.
3685 (FFI_NATIVE_RAW_API): Likewise.
3686 * Makefile.in: Rebuilt.
3687 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
3688 (TARGET_SRC_POWERPC): Likewise.
3689
9450a929
TT
36902001-03-19 Tom Tromey <tromey@redhat.com>
3691
3692 * Makefile.in: Rebuilt.
3693 * Makefile.am (ffitest_LDFLAGS): New macro.
3694
4d2cf715
NC
36952001-03-02 Nick Clifton <nickc@redhat.com>
3696
3697 * include/ffi.h.in: Remove RCS ident string.
3698 * include/ffi_mips.h: Remove RCS ident string.
3699 * src/debug.c: Remove RCS ident string.
3700 * src/ffitest.c: Remove RCS ident string.
3701 * src/prep_cif.c: Remove RCS ident string.
3702 * src/types.c: Remove RCS ident string.
3703 * src/alpha/ffi.c: Remove RCS ident string.
3704 * src/alpha/osf.S: Remove RCS ident string.
3705 * src/arm/ffi.c: Remove RCS ident string.
3706 * src/arm/sysv.S: Remove RCS ident string.
3707 * src/mips/ffi.c: Remove RCS ident string.
3708 * src/mips/n32.S: Remove RCS ident string.
3709 * src/mips/o32.S: Remove RCS ident string.
3710 * src/sparc/ffi.c: Remove RCS ident string.
3711 * src/sparc/v8.S: Remove RCS ident string.
3712 * src/sparc/v9.S: Remove RCS ident string.
3713 * src/x86/ffi.c: Remove RCS ident string.
3714 * src/x86/sysv.S: Remove RCS ident string.
3715
7e5fd99f
JM
37162001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
3717
3718 * include/ffi.h.in: Change sourceware.cygnus.com references to
3719 gcc.gnu.org.
3720
3f67ba6e
RH
37212000-12-09 Richard Henderson <rth@redhat.com>
3722
3723 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
3724 (ffi_closure_osf_inner): Index rather than increment avalue
3725 and arg_types. Give ffi_closure_osf the raw return value type.
3726 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
3727 promotion.
3728
37292000-12-07 Richard Henderson <rth@redhat.com>
29fe0479
RH
3730
3731 * src/raw_api.c (ffi_translate_args): Fix typo.
3732 (ffi_prep_closure): Likewise.
3733
3734 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3735 FFI_TRAMPOLINE_SIZE.
3736 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3737 cif->bytes for new ffi_call_osf implementation.
3738 (ffi_prep_args): Absorb into ...
3739 (ffi_call): ... here. Do all stack allocation here and
3740 avoid a callback function.
3741 (ffi_prep_closure, ffi_closure_osf_inner): New.
3742 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3743 (ffi_closure_osf): New.
3744
2f7bf5b7
AO
37452000-09-10 Alexandre Oliva <aoliva@redhat.com>
3746
ed1c1a1a
AO
3747 * config.guess, config.sub, install-sh: Removed.
3748 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3749 * Makefile.in: Rebuilt.
3750
2f7bf5b7
AO
3751 * acinclude.m4: Include libtool macros from the top level.
3752 * aclocal.m4, configure: Rebuilt.
3753
e15a68e7
AO
37542000-08-22 Alexandre Oliva <aoliva@redhat.com>
3755
3756 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3757 * configure: Rebuilt.
3758
7f8c11d5
SB
37592000-05-11 Scott Bambrough <scottb@netwinder.org>
3760
4977bab6
ZW
3761 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3762 memory correctly. Use conditional instructions, not branches where
7f8c11d5
SB
3763 possible.
3764
c5acf51f
TT
37652000-05-04 Tom Tromey <tromey@cygnus.com>
3766
3767 * configure: Rebuilt.
3768 * configure.in: Match `arm*-*-linux-*'.
3769 From Chris Dornan <cdornan@arm.com>.
3770
91bffbe9
JJ
37712000-04-28 Jakub Jelinek <jakub@redhat.com>
3772
3773 * Makefile.am (SUBDIRS): Define.
3774 (AM_MAKEFLAGS): Likewise.
3775 (Multilib support.): Add section.
3776 * Makefile.in: Rebuilt.
3777 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4075db8f
BT
3778 New variables. Set for gcc using -print-multi-lib. Export them
3779 to libtool.
3780 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3781 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3782 for -shared links.
3783 (extra_compiler_flags_value, extra_compiler_flags): Check these
3784 for extra compiler options which need to be passed down in
3785 compiler_flags.
91bffbe9 3786
bd66587e
AG
37872000-04-16 Anthony Green <green@redhat.com>
3788
3789 * configure: Rebuilt.
3790 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3791
3791773c
JJ
37922000-04-14 Jakub Jelinek <jakub@redhat.com>
3793
4075db8f 3794 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3791773c
JJ
3795 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3796 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3797 Replace all void * sizeofs with sizeof(int).
3798 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3799 different than DOUBLE.
3800 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3801 (ffi_prep_args_v9): New function.
3802 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3803 (ffi_V9_return_struct): New function.
3804 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3805 32bit code (not yet cross-arch calls).
3806 * src/sparc/v8.S: Add struct return delay nop.
3807 Handle long long.
3808 * src/sparc/v9.S: New file.
3809 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
3810 is used on sparc64 only for structures larger than 32 bytes.
3811 Pass by reference for structures is done for structure arguments
3812 larger than 16 bytes.
3813 * src/ffitest.c (main): Use 64bit rint on sparc64.
3814 Run long long tests on sparc.
3815 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3816 sparc64.
3817 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3818 on sparc64.
3819 * configure.in (sparc-*-linux*): New supported target.
3820 (sparc64-*-linux*): Likewise.
3821 * configure: Rebuilt.
3822 * Makefile.am: Add v9.S to SPARC files.
3823 * Makefile.in: Likewise.
3824 (LINK): Surround $(CCLD) into double quotes, so that multilib
3825 compiles work correctly.
3826
db459595
APB
38272000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
3828
3829 * configure: Rebuilt.
3830 * configure.in: (i*86-*-solaris*): New libffi target. Patch
3831 proposed by Bryce McKinlay.
3832
c1f63902
TT
38332000-03-20 Tom Tromey <tromey@cygnus.com>
3834
3835 * Makefile.in: Hand edit for java_raw_api.lo.
3836
0f72dc9e
BM
38372000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
3838
3839 * config.guess, config.sub: Update from the gcc tree.
3840 Fix for PR libgcj/168.
3841
3c18f2d1
TT
38422000-03-03 Tom Tromey <tromey@cygnus.com>
3843
323eee8a
TT
3844 * Makefile.in: Fixed ia64 by hand.
3845
3c18f2d1
TT
3846 * configure: Rebuilt.
3847 * configure.in (--enable-multilib): New option.
3848 (libffi_basedir): New subst.
3849 (AC_OUTPUT): Added multilib code.
3850
a2b10a92
TT
38512000-03-02 Tom Tromey <tromey@cygnus.com>
3852
3853 * Makefile.in: Rebuilt.
3854 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3855 directory name.
3856
dc5de370
HB
38572000-02-25 Hans Boehm <boehm@acm.org>
3858
3859 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3860 files.
3861 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
3862 list.
3863 (ffi_prep_raw_closure): Use ffi_translate_args, not
3864 ffi_closure_translate.
3865 * src/java_raw_api.c: New file.
3866 * src/ffitest.c (closure_test_fn): New function.
3867 (main): Define `rint' as long long on IA64. Added new test when
3868 FFI_CLOSURES is defined.
3869 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3870 (ffi_abi): Recognize IA64.
3871 (ffi_raw): Added `flt' field.
3872 Added "Java raw API" code.
3873 * configure.in: Recognize ia64.
3874 * Makefile.am (TARGET_SRC_IA64): New macro.
3875 (libffi_la_common_SOURCES): Added java_raw_api.c.
3876 (libffi_la_SOURCES): Define in IA64 case.
3877
d79229bd
TT
38782000-01-04 Tom Tromey <tromey@cygnus.com>
3879
3880 * Makefile.in: Rebuilt with newer automake.
3881
2c33b220
TT
38821999-12-31 Tom Tromey <tromey@cygnus.com>
3883
3884 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3885
6ba9e3b0
TT
38861999-09-01 Tom Tromey <tromey@cygnus.com>
3887
3888 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3889 undefs.
3890 * fficonfig.h.in: Rebuilt.
3891 * configure: Rebuilt.
3892 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3893 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3894 * acconfig.h: Don't #undef PACKAGE or VERSION.
3895
63e5e3e0
AG
38961999-08-09 Anthony Green <green@cygnus.com>
3897
3898 * include/ffi.h.in: Try to work around messy header problem
3899 with PACKAGE and VERSION.
3900
3901 * configure: Rebuilt.
3902 * configure.in: Change version to 2.00-beta.
3903
4075db8f 3904 * fficonfig.h.in: Rebuilt.
63e5e3e0
AG
3905 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3906
3907 * src/x86/ffi.c (ffi_raw_call): Rename.
3908
39091999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
3910
3911 * src/x86/ffi.c (ffi_closure_SYSV): New function.
3912 (ffi_prep_incoming_args_SYSV): Ditto.
3913 (ffi_prep_closure): Ditto.
3914 (ffi_closure_raw_SYSV): Ditto.
3915 (ffi_prep_raw_closure): More ditto.
3916 (ffi_call_raw): Final ditto.
3917
3918 * include/ffi.h.in: Add definitions for closure and raw API.
3919
3920 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4977bab6 3921 FFI_TYPE_UINT64.
63e5e3e0
AG
3922
3923 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3924
3925 * src/raw_api.c: New file.
3926
3927 * include/ffi.h.in (ffi_raw): New type.
3928 (UINT_ARG, SINT_ARG): New defines.
3929 (ffi_closure, ffi_raw_closure): New types.
3930 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4977bab6 3931
63e5e3e0
AG
3932 * configure.in: Add check for endianness and sizeof void*.
3933
3934 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3935 instead of directly.
3936
3937 * configure: Rebuilt.
3938
3939Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
3940
3941 * configure.in: Add x86 and powerpc BeOS configurations.
3942 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3943
39441999-05-09 Anthony Green <green@cygnus.com>
3945
3946 * configure.in: Add warning about this being beta code.
3947 Remove src/Makefile.am from the picture.
3948 * configure: Rebuilt.
3949
3950 * Makefile.am: Move logic from src/Makefile.am. Add changes
3951 to support libffi as a target library.
3952 * Makefile.in: Rebuilt.
3953
3954 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3955 Upgraded to new autoconf, automake, libtool.
3956
3957 * README: Tweaks.
3958
3959 * LICENSE: Update copyright date.
3960
3961 * src/Makefile.am, src/Makefile.in: Removed.
3962
39631998-11-29 Anthony Green <green@cygnus.com>
3964
3965 * include/ChangeLog: Removed.
3966 * src/ChangeLog: Removed.
3967 * src/mips/ChangeLog: Removed.
3968 * src/sparc/ChangeLog: Remboved.
3969 * src/x86/ChangeLog: Removed.
3970
3971 * ChangeLog.v1: Created.