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