]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
tree.c (handle_dll_attribute): Mark dllexport'd inlines as non-external.
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
748086b7
JJ
12009-04-09 Jakub Jelinek <jakub@redhat.com>
2
3 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
4 version 3 of the GNU General Public License and to point readers
5 at the COPYING3 file and the FSF's license web page.
6 * testsuite/libffi.call/call.exp: Likewise.
7 * testsuite/libffi.special/special.exp: Likewise.
8
7a9d3fe8
RW
92009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10
11 * configure: Regenerate.
12
4d3d4078
RO
132008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14
15 PR libffi/26048
16 * configure.ac (HAVE_AS_X86_PCREL): New test.
17 * configure: Regenerate.
18 * fficonfig.h.in: Regenerate.
19 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
20 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
21 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
22 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
23 * src/x86/unix64.S (.Lstore_table): Move to .text section.
24 (.Lload_table): Likewise.
25 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
26
baafc534
RW
272008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28
29 * configure: Regenerate.
30
da17a98b
EB
312008-11-21 Eric Botcazou <ebotcazou@adacore.com>
32
33 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
34 signed/unsigned int8/16 return values.
35 * src/sparc/v8.S (ffi_call_v8): Likewise.
36 (ffi_closure_v8): Likewise.
37
80c6c2cb
PG
382008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
39 Steve Ellcey <sje@cup.hp.com>
40
41 * configure: Regenerate for new libtool.
42 * Makefile.in: Ditto.
43 * include/Makefile.in: Ditto.
44 * aclocal.m4: Ditto.
45
d7f68a67
AT
462008-08-25 Andreas Tobler <a.tobler@schweiz.org>
47
48 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
49 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
50 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
51 Adjust copyright notice.
52 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
53 register or two register to use for FFI_SYSV structs.
54 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
55 (ffi_closure_helper_SYSV): Fix the return type for
56 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
57 Adjust copyright notice.
58
130f4c50
KK
592008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
60
61 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
62 int.
63
18c04407
RW
642008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
65
66 * configure: Regenerate.
67 * include/Makefile.in: Regenerate.
68 * testsuite/Makefile.in: Regenerate.
69
cd985f66
JM
702008-06-07 Joseph Myers <joseph@codesourcery.com>
71
72 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
73 powerpc-*-beos*): Remove.
74 * configure: Regenerate.
75
7afa92c5
JB
762008-05-09 Julian Brown <julian@codesourcery.com>
77
78 * Makefile.am (LTLDFLAGS): New.
79 (libffi_la_LDFLAGS): Use above.
80 * Makefile.in: Regenerate.
81
deb984e6
PB
822008-04-18 Paolo Bonzini <bonzini@gnu.org>
83
84 PR bootstrap/35457
85 * aclocal.m4: Regenerate.
86 * configure: Regenerate.
87
3e9608a5
KK
882008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
89
90 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
91 * src/sh64/sysv.S: Likewise.
92
feb51530
MK
932008-03-26 Daniel Jacobowitz <dan@debian.org>
94
95 * src/arm/sysv.S: Fix ARM comment marker.
96
972008-03-26 Jakub Jelinek <jakub@redhat.com>
98
99 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
100 * src/s390/sysv.S: Likewise.
101 * src/powerpc/ppc_closure.S: Likewise.
102 * src/powerpc/sysv.S: Likewise.
103 * src/x86/unix64.S: Likewise.
104 * src/x86/sysv.S: Likewise.
105 * src/sparc/v8.S: Likewise.
106 * src/sparc/v9.S: Likewise.
107 * src/m68k/sysv.S: Likewise.
108 * src/arm/sysv.S: Likewise.
109
38d24731
RW
1102008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
111
112 * aclocal.m4: Regenerate.
113 * configure: Likewise.
114 * Makefile.in: Likewise.
115 * include/Makefile.in: Likewise.
116 * testsuite/Makefile.in: Likewise.
117
2e250fa2
BK
1182008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
119 Andreas Tobler <a.tobler@schweiz.org>
120
121 * configure.ac: Add amd64-*-freebsd* target.
122 * configure: Regenerate.
123
7f92e242
L
1242008-01-30 H.J. Lu <hongjiu.lu@intel.com>
125
126 PR libffi/34612
127 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
128 returning struct.
129
130 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
131 tests.
132
95d4f544
DE
1332008-01-24 David Edelsohn <edelsohn@gnu.org>
134
135 * configure: Regenerate.
136
79ca8fc0
AT
1372008-01-06 Andreas Tobler <a.tobler@schweiz.org>
138
139 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
140
d7b07cc7
AT
1412008-01-05 Andreas Tobler <a.tobler@schweiz.org>
142
143 PR testsuite/32843
144 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
145 signed/unsigned int8/16 for X86_DARWIN.
146 Updated copyright info.
147 Handle one and two byte structs with special cif->flags.
148 * src/x86/ffitarget.h: Add special types for one and two byte structs.
149 Updated copyright info.
150 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
151 sysv.S
152 Remove code to pop args from the stack after call.
153 Special-case signed/unsigned for int8/16, one and two byte structs.
154 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
155 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
156 FFI_TYPE_SINT32.
157 Updated copyright info.
158
c94ae2e4
DD
1592007-12-08 David Daney <ddaney@avtrex.com>
160
161 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
162 SUBU, add with ADDU and use smaller code sequences.
163
3875b6d7 1642007-12-07 David Daney <ddaney@avtrex.com>
44be66a1 165
3875b6d7
DD
166 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
167 type.
168
4c42b3d8
DD
1692007-12-06 David Daney <ddaney@avtrex.com>
170
171 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
172 defined.
173 (ffi_java_raw): New typedef.
174 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
175 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
176 ffi_java_raw.
177 (ffi_java_raw_closure) : Same.
178 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
179 parameter types.
180 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
181 FFI_SIZEOF_JAVA_RAW.
182 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
183 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
184 sizeof(ffi_java_raw) for alignment calculations.
185 (ffi_java_ptrarray_to_raw): Same.
186 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
187 if FFI_SIZEOF_JAVA_RAW == 4.
188 (ffi_java_raw_to_rvalue): Same.
189 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
190 (ffi_java_translate_args): Same.
191 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
192 parameter types.
193 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
194
3ef50b62
DD
1952007-12-06 David Daney <ddaney@avtrex.com>
196
197 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
198 pointer values.
199
16287148
AT
2002007-12-01 Andreas Tobler <a.tobler@schweiz.org>
201
202 PR libffi/31937
203 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
204 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
205 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
206 set the NUM_FPR_ARG_REGISTERS according to.
207 Add support for potential soft-float support under hard-float
208 architecture.
209 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
210 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
211 to the FFI_LINUX_SOFT_FLOAT ABI.
212 (ffi_prep_cif_machdep): Likewise.
213 (ffi_closure_helper_SYSV): Likewise.
214 * src/powerpc/ppc_closure.S: Make sure not to store float/double
215 on archs where __NO_FPRS__ is true.
216 Add FFI_TYPE_UINT128 support.
217 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
218 Adjust copyright notice.
219
a4b7c9cd
AT
2202007-11-25 Andreas Tobler <a.tobler@schweiz.org>
221
222 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
223 * include/ffi_common.h: ... here.
224 Update copyright.
225
e84296c6
AT
2262007-11-17 Andreas Tobler <a.tobler@schweiz.org>
227
228 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
229 * src/powerpc/linux64.S: Likewise.
230 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
231 * testsuite/libffi.call/return_ldl.c: New test.
232
cb642590
AH
2332007-09-04 <aph@redhat.com>
234
235 * src/arm/sysv.S (UNWIND): New.
236 (Whole file): Conditionally compile unwinder directives.
237 * src/arm/sysv.S: Add unwinder directives.
238
239 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
240 Only treat r0 as a struct address if we're actually returning a
241 struct by address.
242 Only copy the bytes that are actually within a struct.
243 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
244 is returned in r0, not passed by address.
245 (ffi_call): Allocate a word-sized temporary for the case where
246 a composite is returned in r0.
247 (ffi_prep_incoming_args_SYSV): Align as necessary.
248
2492007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
250
251 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
252 directly using the sys_cacheflush syscall.
253
2542007-07-27 Andrew Haley <aph@redhat.com>
255
256 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
257
8d5c5e35
MR
2582007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
259
260 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
261 * configure.ac: Likewise.
262 * Makefile.in: Regenerate.
263 * include/Makefile.in: Likewise.
264 * testsuite/Makefile.in: Likewise.
265 * configure: Likewise.
266
787b0d19
DD
2672007-08-24 David Daney <ddaney@avtrex.com>
268
269 * testsuite/libffi.call/return_sl.c: New test.
270
dfbb3e36
DD
2712007-08-10 David Daney <ddaney@avtrex.com>
272
273 * testsuite/libffi.call/cls_multi_ushort.c,
274 testsuite/libffi.call/cls_align_uint16.c,
275 testsuite/libffi.call/nested_struct1.c,
276 testsuite/libffi.call/nested_struct3.c,
277 testsuite/libffi.call/cls_7_1_byte.c,
278 testsuite/libffi.call/nested_struct5.c,
279 testsuite/libffi.call/cls_double.c,
280 testsuite/libffi.call/nested_struct7.c,
281 testsuite/libffi.call/cls_sint.c,
282 testsuite/libffi.call/nested_struct9.c,
283 testsuite/libffi.call/cls_20byte1.c,
284 testsuite/libffi.call/cls_multi_sshortchar.c,
285 testsuite/libffi.call/cls_align_sint64.c,
286 testsuite/libffi.call/cls_3byte2.c,
287 testsuite/libffi.call/cls_multi_schar.c,
288 testsuite/libffi.call/cls_multi_uchar.c,
289 testsuite/libffi.call/cls_19byte.c,
290 testsuite/libffi.call/cls_9byte1.c,
291 testsuite/libffi.call/cls_align_float.c,
292 testsuite/libffi.call/closure_fn1.c,
293 testsuite/libffi.call/problem1.c,
294 testsuite/libffi.call/closure_fn3.c,
295 testsuite/libffi.call/cls_sshort.c,
296 testsuite/libffi.call/closure_fn5.c,
297 testsuite/libffi.call/cls_align_double.c,
298 testsuite/libffi.call/nested_struct.c,
299 testsuite/libffi.call/cls_2byte.c,
300 testsuite/libffi.call/nested_struct10.c,
301 testsuite/libffi.call/cls_4byte.c,
302 testsuite/libffi.call/cls_6byte.c,
303 testsuite/libffi.call/cls_8byte.c,
304 testsuite/libffi.call/cls_multi_sshort.c,
305 testsuite/libffi.call/cls_align_sint16.c,
306 testsuite/libffi.call/cls_align_uint32.c,
307 testsuite/libffi.call/cls_20byte.c,
308 testsuite/libffi.call/cls_float.c,
309 testsuite/libffi.call/nested_struct2.c,
310 testsuite/libffi.call/cls_5_1_byte.c,
311 testsuite/libffi.call/nested_struct4.c,
312 testsuite/libffi.call/cls_24byte.c,
313 testsuite/libffi.call/nested_struct6.c,
314 testsuite/libffi.call/cls_64byte.c,
315 testsuite/libffi.call/nested_struct8.c,
316 testsuite/libffi.call/cls_uint.c,
317 testsuite/libffi.call/cls_multi_ushortchar.c,
318 testsuite/libffi.call/cls_schar.c,
319 testsuite/libffi.call/cls_uchar.c,
320 testsuite/libffi.call/cls_align_uint64.c,
321 testsuite/libffi.call/cls_ulonglong.c,
322 testsuite/libffi.call/cls_align_longdouble.c,
323 testsuite/libffi.call/cls_1_1byte.c,
324 testsuite/libffi.call/cls_12byte.c,
325 testsuite/libffi.call/cls_3_1byte.c,
326 testsuite/libffi.call/cls_3byte1.c,
327 testsuite/libffi.call/cls_4_1byte.c,
328 testsuite/libffi.call/cls_6_1_byte.c,
329 testsuite/libffi.call/cls_16byte.c,
330 testsuite/libffi.call/cls_18byte.c,
331 testsuite/libffi.call/closure_fn0.c,
332 testsuite/libffi.call/cls_9byte2.c,
333 testsuite/libffi.call/closure_fn2.c,
334 testsuite/libffi.call/closure_fn4.c,
335 testsuite/libffi.call/cls_ushort.c,
336 testsuite/libffi.call/closure_fn6.c,
337 testsuite/libffi.call/cls_5byte.c,
338 testsuite/libffi.call/cls_align_pointer.c,
339 testsuite/libffi.call/cls_7byte.c,
340 testsuite/libffi.call/cls_align_sint32.c,
341 testsuite/libffi.special/unwindtest_ffi_call.cc,
342 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
343
89d9d98a
DD
3442007-08-10 David Daney <ddaney@avtrex.com>
345
346 PR libffi/28313
347 * configure.ac: Don't treat mips64 as a special case.
348 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
349 * configure: Regenerate
350 * Makefile.in: Ditto.
351 * fficonfig.h.in: Ditto.
352 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
353 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
354 (FFI_DEFAULT_ABI): Set for n64 case.
355 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
356 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
357 (ffi_closure_N32): New function.
358 (.eh_frame): New section
359 * src/mips/o32.S: Clean up comments.
360 (ffi_closure_O32): Pass ffi_closure parameter in $12.
361 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
362 _MIPS_SIM == _ABIN32 throughout.
363 (FFI_MIPS_STOP_HERE): New, use in place of
364 ffi_stop_here.
365 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
366 to support n32/n64 ABIs.
367 (calc_n32_struct_flags): Rewrite.
368 (calc_n32_return_struct_flags): Remove unused variable. Reverse
369 position of flag bits.
370 (ffi_prep_cif_machdep): Rewrite n32 portion.
371 (ffi_call): Enable for n64. Add special handling for small structure
372 return values.
373 (ffi_prep_closure_loc): Add n32 and n64 support.
374 (ffi_closure_mips_inner_O32): Add cast to silence warning.
375 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
376
d23869d4
DD
3772007-08-08 David Daney <ddaney@avtrex.com>
378
379 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
380 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
381 specifiers.
382 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
383 * testsuite/libffi.call/cls_sint.c (main): Ditto.
384 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
385 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
386 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
387 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
388 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
389 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
390 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
391 * testsuite/libffi.call/return_fl3.c (main): Ditto.
392 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
393 * testsuite/libffi.call/nested_struct.c (main): Ditto.
394 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
395 * testsuite/libffi.call/return_ll1.c (main): Ditto.
396 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
397 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
398 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
399 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
400 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
401 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
402 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
403 * testsuite/libffi.call/cls_uint.c (main): Ditto.
404 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
405 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
406 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
407 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
408 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
409 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
410 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
411 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
412 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
413
536e0a8f
AH
4142007-08-07 Andrew Haley <aph@redhat.com>
415
416 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
417 checkin.
418
7665c9be
AH
4192007-08-06 Andrew Haley <aph@redhat.com>
420
421 PR testsuite/32843
422 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
423 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
424 FFI_TYPE_SINT32.
425
58e11497
DD
4262007-08-02 David Daney <ddaney@avtrex.com>
427
428 * testsuite/libffi.call/return_ul.c (main): Define return type as
429 ffi_arg. Use proper printf conversion specifier.
430
387cfbba
AH
4312007-07-30 Andrew Haley <aph@redhat.com>
432
433 PR testsuite/32843
434 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
435 signed/unsigned int8/16.
436 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
437 Use a jump table.
438 Remove code to pop args from the stack after call.
439 Special-case signed/unsigned int8/16.
440 * testsuite/libffi.call/return_sc.c (main): Revert.
441
0ee0208e
RG
4422007-07-26 Richard Guenther <rguenther@suse.de>
443
444 PR testsuite/32843
445 * testsuite/libffi.call/return_sc.c (main): Verify call
446 result as signed char, not ffi_arg.
447
04a49983
RO
4482007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
449
450 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
451 * configure: Regenerate.
452
433e6a8c
DD
4532007-07-11 David Daney <ddaney@avtrex.com>
454
455 * src/mips/ffi.c: Don't include sys/cachectl.h.
456 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
457 cacheflush().
458
0959e2b8
AH
4592007-05-18 Aurelien Jarno <aurelien@aurel32.net>
460
461 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
462 from (ffi_prep_closure): ... this.
463 (FFI_INIT_TRAMPOLINE): Adjust.
464
4652005-12-31 Phil Blundell <pb@reciva.com>
466
467 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
468 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
469 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
470 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
471 (FFI_CLOSURES): Enable closure support.
472
4732007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
474
475 * testsuite/libffi.call/cls_multi_ushort.c,
476 testsuite/libffi.call/cls_align_uint16.c,
477 testsuite/libffi.call/nested_struct1.c,
478 testsuite/libffi.call/nested_struct3.c,
479 testsuite/libffi.call/cls_7_1_byte.c,
480 testsuite/libffi.call/cls_double.c,
481 testsuite/libffi.call/nested_struct5.c,
482 testsuite/libffi.call/nested_struct7.c,
483 testsuite/libffi.call/cls_sint.c,
484 testsuite/libffi.call/nested_struct9.c,
485 testsuite/libffi.call/cls_20byte1.c,
486 testsuite/libffi.call/cls_multi_sshortchar.c,
487 testsuite/libffi.call/cls_align_sint64.c,
488 testsuite/libffi.call/cls_3byte2.c,
489 testsuite/libffi.call/cls_multi_schar.c,
490 testsuite/libffi.call/cls_multi_uchar.c,
491 testsuite/libffi.call/cls_19byte.c,
492 testsuite/libffi.call/cls_9byte1.c,
493 testsuite/libffi.call/cls_align_float.c,
494 testsuite/libffi.call/closure_fn1.c,
495 testsuite/libffi.call/problem1.c,
496 testsuite/libffi.call/closure_fn3.c,
497 testsuite/libffi.call/cls_sshort.c,
498 testsuite/libffi.call/closure_fn5.c,
499 testsuite/libffi.call/cls_align_double.c,
500 testsuite/libffi.call/cls_2byte.c,
501 testsuite/libffi.call/nested_struct.c,
502 testsuite/libffi.call/nested_struct10.c,
503 testsuite/libffi.call/cls_4byte.c,
504 testsuite/libffi.call/cls_6byte.c,
505 testsuite/libffi.call/cls_8byte.c,
506 testsuite/libffi.call/cls_multi_sshort.c,
507 testsuite/libffi.call/cls_align_uint32.c,
508 testsuite/libffi.call/cls_align_sint16.c,
509 testsuite/libffi.call/cls_float.c,
510 testsuite/libffi.call/cls_20byte.c,
511 testsuite/libffi.call/cls_5_1_byte.c,
512 testsuite/libffi.call/nested_struct2.c,
513 testsuite/libffi.call/cls_24byte.c,
514 testsuite/libffi.call/nested_struct4.c,
515 testsuite/libffi.call/nested_struct6.c,
516 testsuite/libffi.call/cls_64byte.c,
517 testsuite/libffi.call/nested_struct8.c,
518 testsuite/libffi.call/cls_uint.c,
519 testsuite/libffi.call/cls_multi_ushortchar.c,
520 testsuite/libffi.call/cls_schar.c,
521 testsuite/libffi.call/cls_uchar.c,
522 testsuite/libffi.call/cls_align_uint64.c,
523 testsuite/libffi.call/cls_ulonglong.c,
524 testsuite/libffi.call/cls_align_longdouble.c,
525 testsuite/libffi.call/cls_1_1byte.c,
526 testsuite/libffi.call/cls_12byte.c,
527 testsuite/libffi.call/cls_3_1byte.c,
528 testsuite/libffi.call/cls_3byte1.c,
529 testsuite/libffi.call/cls_4_1byte.c,
530 testsuite/libffi.call/cls_6_1_byte.c,
531 testsuite/libffi.call/cls_16byte.c,
532 testsuite/libffi.call/cls_18byte.c,
533 testsuite/libffi.call/closure_fn0.c,
534 testsuite/libffi.call/cls_9byte2.c,
535 testsuite/libffi.call/closure_fn2.c,
536 testsuite/libffi.call/closure_fn4.c,
537 testsuite/libffi.call/cls_ushort.c,
538 testsuite/libffi.call/closure_fn6.c,
539 testsuite/libffi.call/cls_5byte.c,
540 testsuite/libffi.call/cls_align_pointer.c,
541 testsuite/libffi.call/cls_7byte.c,
542 testsuite/libffi.call/cls_align_sint32.c,
543 testsuite/libffi.special/unwindtest_ffi_call.cc,
544 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
545
12a27363
L
5462007-07-05 H.J. Lu <hongjiu.lu@intel.com>
547
548 * aclocal.m4: Regenerated.
549
82a6cadf
PB
5502007-06-02 Paolo Bonzini <bonzini@gnu.org>
551
552 * configure: Regenerate.
553
1cf3d07d
SE
5542007-05-23 Steve Ellcey <sje@cup.hp.com>
555
556 * Makefile.in: Regenerate.
557 * configure: Regenerate.
558 * aclocal.m4: Regenerate.
559 * include/Makefile.in: Regenerate.
560 * testsuite/Makefile.in: Regenerate.
561
5635c26e
RZ
5622007-05-10 Roman Zippel <zippel@linux-m68k.org>
563
564 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
565 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
566 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
567 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
568 (FFI_CLOSURES): Enable closure support.
569
e6fbf387
RZ
5702007-05-10 Roman Zippel <zippel@linux-m68k.org>
571
572 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
573 * configure: Regenerate.
574 * fficonfig.h.in: Regenerate.
575 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
576 CFI_OFFSET,CFI_DEF_CFA): New macros.
577 (ffi_call_SYSV): Add callframe annotation.
578
b5296e52
RZ
5792007-05-10 Roman Zippel <zippel@linux-m68k.org>
580
581 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
582 numerous test suite failures.
583 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
584
bd61d708
PB
5852007-04-11 Paolo Bonzini <bonzini@gnu.org>
586
587 * Makefile.am (EXTRA_DIST): Bring up to date.
588 * Makefile.in: Regenerate.
589 * src/frv/eabi.S: Remove RCS keyword.
590
bf8da5fc
RH
5912007-04-06 Richard Henderson <rth@redhat.com>
592
593 * configure.ac: Tidy target case.
594 (HAVE_LONG_DOUBLE): Allow the target to override.
595 * configure: Regenerate.
596 * include/ffi.h.in: Don't define ffi_type_foo if
597 LIBFFI_HIDE_BASIC_TYPES is defined.
598 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
599 to ffi_type_double.
600 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
601 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
602 (ffi_type_longdouble): Special case for Alpha. Don't define
603 if long double == double.
604
605 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
606 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
607 (ffi_call, ffi_closure_osf_inner): Likewise.
608 (ffi_closure_osf_inner): Likewise. Mark hidden.
609 (ffi_call_osf, ffi_closure_osf): Mark hidden.
610 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
611 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
612 (load_table): Handle 128-bit long double.
613
614 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
615
8669fed1
TT
6162007-04-06 Tom Tromey <tromey@redhat.com>
617
618 PR libffi/31491:
619 * README: Fixed bug in example.
620
f0920e6c
JJ
6212007-04-03 Jakub Jelinek <jakub@redhat.com>
622
623 * src/closures.c: Include sys/statfs.h.
624 (_GNU_SOURCE): Define on Linux.
625 (FFI_MMAP_EXEC_SELINUX): Define.
626 (selinux_enabled): New variable.
627 (selinux_enabled_check): New function.
628 (is_selinux_enabled): Define.
629 (dlmmap): Use it.
630
34a6ccda
UB
6312007-03-24 Uros Bizjak <ubizjak@gmail.com>
632
633 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
634 Use 'volatile float sum' to create sum of floats to avoid false
635 negative due to excess precision on ix86 targets.
636 (main): Ditto.
637
8b9cf39e
AO
6382007-03-08 Alexandre Oliva <aoliva@redhat.com>
639
640 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
641 patch.
642 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
643
18fa3240
AO
6442007-03-07 Alexandre Oliva <aoliva@redhat.com>
645
646 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
647 (ffi_prep_closure_loc): New.
648 (ffi_prep_raw_closure_loc): New.
649 (ffi_prep_java_raw_closure_loc): New.
650 * src/closures.c: New file.
651 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
652 Replace sflags with exec_offset.
653 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
654 sub_segment_exec_offset): New macros.
655 (get_segment_flags, set_segment_flags, check_segment_merge): New
656 macros.
657 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
658 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
659 destroy_mspace): Use new macros.
660 (sys_alloc): Silence warning.
661 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
662 * Makefile.in: Rebuilt.
663 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
664 terms of ffi_prep_closure_loc.
665 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
666 from...
667 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
668 renamed version.
669 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
670 adjusted from...
671 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
672 the renamed version.
673 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
674 (ffi_prep_closure): ... this.
675 * src/pa/ffi.c: Likewise.
676 * src/cris/ffi.c: Likewise. Adjust.
677 * src/frv/ffi.c: Likewise.
678 * src/ia64/ffi.c: Likewise.
679 * src/mips/ffi.c: Likewise.
680 * src/powerpc/ffi_darwin.c: Likewise.
681 * src/s390/ffi.c: Likewise.
682 * src/sh/ffi.c: Likewise.
683 * src/sh64/ffi.c: Likewise.
684 * src/sparc/ffi.c: Likewise.
685 * src/x86/ffi64.c: Likewise.
686 * src/x86/ffi.c: Likewise.
687 (FFI_INIT_TRAMPOLINE): Adjust.
688 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
689 (ffi_prep_raw_closure): ... this.
690 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
691 (ffi_prep_closure): ... this.
692 (flush_icache): Adjust.
693
dd778331
AO
6942007-03-07 Alexandre Oliva <aoliva@redhat.com>
695
696 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
697 Lea's malloc.
698
b5f8d49b
BM
6992007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
700
701 * Makefile.am: Add dummy install-pdf target.
702 * Makefile.in: Regenerate
703
7a23933b
AK
7042007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
705
706 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
707 ffi_closure_helper_SYSV): Add long double handling.
708
8aaf4681
JJ
7092007-02-02 Jakub Jelinek <jakub@redhat.com>
710
711 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
712 immediately after bctrl instruction.
713
0eb5e2b9
AO
7142007-01-18 Alexandre Oliva <aoliva@redhat.com>
715
716 * Makefile.am (all-recursive, install-recursive,
717 mostlyclean-recursive, clean-recursive, distclean-recursive,
718 maintainer-clean-recursive): Add missing targets.
719 * Makefile.in: Rebuilt.
720
f4f7486b
AT
7212006-12-14 Andreas Tobler <a.tobler@schweiz.org>
722
723 * configure.ac: Add TARGET for x86_64-*-darwin*.
724 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
725 for X86_DARWIN.
726 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
727 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
728 * configure: Regenerate.
729 * Makefile.in: Regenerate.
730 * include/Makefile.in: Regenerate.
731 * testsuite/Makefile.in: Regenerate.
732 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
733 ffi_call only.
734
3d5eafe2
AT
7352006-12-13 Andreas Tobler <a.tobler@schweiz.org>
736
737 * aclocal.m4: Regenerate with aclocal -I .. as written in the
738 Makefile.am.
739
d5523ce1 7402006-10-31 Geoffrey Keating <geoffk@apple.com>
58182de3
GK
741
742 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
743 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
744 Darwin.
745 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
746 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
747
a3bd50cc
PB
7482006-10-10 Paolo Bonzini <bonzini@gnu.org>
749 Sandro Tolaini <tolaini@libero.it>
750
751 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
752 conditional.
753 * configure: Regenerated.
754 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
755 (EXTRA_DIST): Add src/x86/darwin.S.
756 * Makefile.in: Regenerated.
757 * include/Makefile.in: Regenerated.
758 * testsuite/Makefile.in: Regenerated.
759
760 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
761 X86_WIN32, and additionally align stack to 16 bytes.
762 * src/x86/darwin.S: New, based on sysv.S.
763 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
764
b095810f
DD
7652006-09-12 David Daney <ddaney@avtrex.com>
766
767 PR libffi/23935
768 * include/Makefile.am: Install both ffi.h and ffitarget.h in
769 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
770 * aclocal.m4: Regenerated for automake 1.9.6.
771 * Makefile.in: Regenerated.
772 * include/Makefile.in: Regenerated.
773 * testsuite/Makefile.in: Regenerated.
774
110b2db4
AT
7752006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
776
777 * include/ffi_common.h (struct): Revert accidental commit.
778
8e5fde87
AT
7792006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
780
781 * include/ffi_common.h: Remove lint directives.
782 * include/ffi.h.in: Likewise.
783
cb4132fe
TS
7842006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
785
786 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
787 for 32-bit architectures.
788 * testsuite/libffi.call/return_ul.c: New test case.
789
0d24c3fa
DD
7902006-07-19 David Daney <ddaney@avtrex.com>
791
792 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
793 xfail remains for mips64.
794
8665824c
CD
7952006-05-23 Carlos O'Donell <carlos@codesourcery.com>
796
797 * Makefile.am: Add install-html target. Add install-html to .PHONY
798 * Makefile.in: Regenerate.
799 * aclocal.m4: Regenerate.
800 * include/Makefile.in: Regenerate.
801 * testsuite/Makefile.in: Regenerate.
802
84e2e370
JDA
8032006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
804
805 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
806 stack slot.
807
ac6ed182
AT
8082006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
809
810 * README: Remove notice about 'Crazy Comments'.
811 * src/debug.c: Remove lint directives. Cleanup white spaces.
812 * src/java_raw_api.c: Likewise.
813 * src/prep_cif.c: Likewise.
814 * src/raw_api.c: Likewise.
815 * src/ffitest.c: Delete. No longer needed, all test cases migrated
816 to the testsuite.
817 * src/arm/ffi.c: Remove lint directives.
818 * src/m32r/ffi.c: Likewise.
819 * src/pa/ffi.c: Likewise.
820 * src/powerpc/ffi.c: Likewise.
821 * src/powerpc/ffi_darwin.c: Likewise.
822 * src/sh/ffi.c: Likewise.
823 * src/sh64/ffi.c: Likewise.
824 * src/x86/ffi.c: Likewise.
825 * testsuite/libffi.call/float2.c: Likewise.
826 * testsuite/libffi.call/promotion.c: Likewise.
827 * testsuite/libffi.call/struct1.c: Likewise.
828
b7211585
AT
8292006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
830
831 * src/pa/hpux32.S: Correct unwind offset calculation for
832 ffi_closure_pa32.
833 * src/pa/linux.S: Likewise.
834
86066f9b
JW
8352006-04-12 James E Wilson <wilson@specifix.com>
836
837 PR libgcj/26483
838 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
839 (hfa_type_load): Call stf_spill.
840 (hfa_type_store): Call ldf_fill.
841 (ffi_call): Adjust calls to above routines. Add local temps for
842 macro result.
b7211585 843
615baed7
MK
8442006-04-10 Matthias Klose <doko@debian.org>
845
846 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
847 directory names containing underscores.
848
8e7a2b58
JW
8492006-04-07 James E Wilson <wilson@specifix.com>
850
851 * testsuite/libffi.call/float4.c: New testcase.
852
e6c300ef
JDA
8532006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
854 Andreas Tobler <a.tobler@schweiz.ch>
855
856 * Makefile.am: Add PA_HPUX port.
857 * Makefile.in: Regenerate.
858 * include/Makefile.in: Likewise.
859 * testsuite/Makefile.in: Likewise.
860 * configure.ac: Add PA_HPUX rules.
861 * configure: Regenerate.
862 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
863 Add PA_HPUX and PA64_HPUX.
864 Rename FFI_LINUX ABI to FFI_PA32 ABI.
865 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
866 (FFI_TYPE_SMALL_STRUCT2): Define.
867 (FFI_TYPE_SMALL_STRUCT4): Likewise.
868 (FFI_TYPE_SMALL_STRUCT8): Likewise.
869 (FFI_TYPE_SMALL_STRUCT3): Redefine.
870 (FFI_TYPE_SMALL_STRUCT5): Likewise.
871 (FFI_TYPE_SMALL_STRUCT6): Likewise.
872 (FFI_TYPE_SMALL_STRUCT7): Likewise.
873 * src/pa/ffi.c (ROUND_DOWN): Delete.
874 (fldw, fstw, fldd, fstd): Use '__asm__'.
875 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
876 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
877 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
878 Simplify incrementing of stack slot variable. Change type of local
879 'n' to unsigned int.
880 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
881 double on PA_HPUX.
882 (ffi_prep_cif_machdep): Likewise.
883 (ffi_call): Likewise.
884 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
885 return type to ffi_status. Simplify incrementing of stack slot
886 variable. Only copy floating point argument registers when PA_LINUX
887 is true. Reformat debug statement.
888 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
889 FFI_TYPE_SMALL_STRUCT8.
890 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
891 declaration.
892 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
893 Add nops to cache flush. Add trampoline for PA_HPUX.
894 * src/pa/hpux32.S: New file.
895 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
896 ffi_prep_args_LINUX to ffi_prep_args_pa32.
897 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
898 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
899 argument type checks so that common argument types appear first.
900 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
901 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
902
75b8b1be
AM
9032006-03-24 Alan Modra <amodra@bigpond.net.au>
904
905 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
906 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
907 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
908 FFI_TYPE_LONGDOUBLE.
909 (ffi_prep_args64): Assert using IBM extended double.
910 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
911 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
912 (ffi_call): Handle FFI_LINUX.
913 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
914 gpr3 return pointer as for struct return. Handle FFI_LINUX
915 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
916 unnecessarily.
917 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
918 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
919 Don't use r6 as pointer to results, instead use sp offset. Don't
920 make a special call to load lr with case table address, instead
921 use offset from previous call.
922 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
923 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
924 return.
925
697701ad
KK
9262006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
927
928 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
929 passed with FP registers correctly.
930 (ffi_closure_helper_SYSV): Likewise.
931 * src/sh64/sysv.S: Likewise.
932
b295c471
AT
9332006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
934
935 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
936 args and userdata unused.
937 (closure_test_fn1): Mark cif and userdata unused.
938 (main): Remove unused res.
939
9fdeb13b
AT
9402006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
941
942 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
943 -O2, -O3, -Os and the warning flags -W -Wall.
944 * testsuite/libffi.special/special.exp: Likewise.
945 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
946 unused parameter unused for gcc or else do nothing.
947 * testsuite/libffi.special/ffitestcxx.h: Likewise.
948 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
949 and userdata unused.
950 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
951 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
952 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
953 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
954 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
955 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
956 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
957 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
958 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
959 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
960 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
961 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
962 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
963 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
964 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
965 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
966 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
967 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
968 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
969 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
970 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
971 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
972 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
973 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
974 Likewise.
975 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
976 Likewise.
977 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
978 Likewise.
979 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
980 void* to avoid compiler warning.
981 (main): Likewise.
982 (cls_struct_align_gn): Mark cif and userdata unused.
983 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
984 Likewise.
985 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
986 Likewise.
987 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
988 Likewise.
989 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
990 Likewise.
991 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
992 Likewise.
993 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
994 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
995 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
996 data unused.
997 (main): Cast res_call to silence gcc.
998 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
999 data unused.
1000 (main): Cast res_call to silence gcc.
1001 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
1002 and data unused.
1003 (main): Cast res_call to silence gcc.
1004 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
1005 data unused.
1006 (main): Cast res_call to silence gcc.
1007 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
1008 data unused.
1009 (main): Cast res_call to silence gcc.
1010 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
1011 and data unused.
1012 (main): Cast res_call to silence gcc.
1013 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
1014 userdata unused.
1015 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
1016 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
1017 userdata unused.
1018 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
1019 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
1020 userdata unused.
1021 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
1022 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
1023 userdata unused.
1024 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
1025 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
1026 userdata unused.
1027 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
1028 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
1029 and userdata unused.
1030 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
1031 userdata unused.
1032 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
1033 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
1034 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
1035 Cleanup white spaces.
1036 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
1037 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
1038 cif and userdata unused.
1039 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
1040 Likewise.
1041 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
1042 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
1043 formatters to silence gcc.
1044 (B_gn): Mark cif and userdata unused.
1045 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
1046 unused.
1047 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
1048 (B_gn): Mark cif and userdata unused.
1049 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
1050 unused.
1051 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
1052 (B_gn): Mark cif and userdata unused.
1053 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
1054 unused.
1055 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
1056 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
1057 * testsuite/libffi.call/problem1.c (stub): Likewise.
1058 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
1059 gcc.
1060 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
1061 in the last commit for this test case in the test case itself.
1062 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
1063 unused.
1064 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
1065 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
1066 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
1067 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
1068 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
1069 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
1070
0a4e2bb5
KK
10712006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
1072
1073 * src/sh/sysv.S: Fix register numbers in the FDE for
1074 ffi_closure_SYSV.
1075
723e5d5a
AT
10762006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
1077
1078 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
1079 declaration to avoid a false negative on ix86. See PR323.
1080
e097f887
KK
10812006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
1082
1083 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
1084 and cast integer to void * if needed. Update the pointer to
1085 the FP register saved area correctly.
1086
1a4878f7
AT
10872006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
1088
1089 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
1090 is fixed.
1091 * testsuite/libffi.call/nested_struct4.c: Likewise.
1092
b47b5e08
AT
10932006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
1094
6429d58f
AT
1095 * testsuite/libffi.call/return_dbl.c: New test case.
1096 * testsuite/libffi.call/return_dbl1.c: Likewise.
1097 * testsuite/libffi.call/return_dbl2.c: Likewise.
1098 * testsuite/libffi.call/return_fl.c: Likewise.
1099 * testsuite/libffi.call/return_fl1.c: Likewise.
1100 * testsuite/libffi.call/return_fl2.c: Likewise.
1101 * testsuite/libffi.call/return_fl3.c: Likewise.
1102 * testsuite/libffi.call/closure_fn6.c: Likewise.
1103
b47b5e08
AT
1104 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
1105 definition.
1106 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
1107 here to be used by other test cases too.
1108
1109 * testsuite/libffi.call/nested_struct10.c: New test case.
1110 * testsuite/libffi.call/nested_struct9.c: Likewise.
1111 * testsuite/libffi.call/nested_struct8.c: Likewise.
1112 * testsuite/libffi.call/nested_struct7.c: Likewise.
1113 * testsuite/libffi.call/nested_struct6.c: Likewise.
1114 * testsuite/libffi.call/nested_struct5.c: Likewise.
1115 * testsuite/libffi.call/nested_struct4.c: Likewise.
1116
9abe31d4
AT
11172006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
1118
1119 * configure.ac: Enable libffi for sparc64-*-freebsd*.
1120 * configure: Rebuilt.
1121
71aa1a70
JJ
11222006-01-18 Jakub Jelinek <jakub@redhat.com>
1123
1124 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
1125 instead do the shifting inline.
1126 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
1127 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
1128 and 8 byte structs, for the remaining struct sizes don't call
1129 __lshrdi3, instead do the shifting inline.
1130
8a39029d
TS
11312005-12-07 Thiemo Seufer <ths@networkno.de>
1132
1133 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
1134 missing parentheses.
1135 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
1136 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
1137 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
1138 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
1139 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
1140 FA_0_0_OFF2.
1141 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
1142 endianness bugs.
1143 (ffi_prep_closure): Improve trampoline instruction scheduling.
1144 (ffi_closure_mips_inner_O32): Fix endianness bugs.
1145
cd4241aa
AM
11462005-12-03 Alan Modra <amodra@bigpond.net.au>
1147
1148 * src/powerpc/ffi.c: Formatting.
1149 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
1150 (ffi_prep_args64): Likewise.
1151
0363db46
GK
11522005-09-30 Geoffrey Keating <geoffk@apple.com>
1153
1154 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
1155 darwin, use -shared-libgcc not -lgcc_s, and explain why.
1156
d674eb2f
TT
11572005-09-26 Tom Tromey <tromey@redhat.com>
1158
1159 * testsuite/libffi.call/float1.c (value_type): New typedef.
1160 (CANARY): New define.
1161 (main): Check for result buffer overflow.
1162 * src/powerpc/linux64.S: Handle linux64 long double returns.
1163 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
1164 (ffi_prep_cif_machdep): Handle linux64 long double returns.
1165
2d9c5743
AM
11662005-08-25 Alan Modra <amodra@bigpond.net.au>
1167
1168 PR target/23404
1169 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
1170 homed fp args.
1171 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
1172
8a42356f
JJ
11732005-08-11 Jakub Jelinek <jakub@redhat.com>
1174
1175 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
1176 (AH_BOTTOM): Add FFI_HIDDEN definition.
1177 * configure: Rebuilt.
1178 * fficonfig.h.in: Rebuilt.
1179 * src/powerpc/ffi.c (hidden): Remove.
1180 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
1181 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
1182 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
1183 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
1184 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
1185 add FFI_HIDDEN to its prototype.
1186 (ffi_closure_SYSV_inner): New.
1187 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1188 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1189
863c5508
AS
11902005-08-10 Alfred M. Szmidt <ams@gnu.org>
1191
1192 PR libffi/21819:
1193 * configure: Rebuilt.
1194 * configure.ac: Handle i*86-*-gnu*.
1195
6a26ea58
JJ
11962005-08-09 Jakub Jelinek <jakub@redhat.com>
1197
1198 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
1199 DW_CFA_offset_extended_sf rather than
1200 DW_CFA_GNU_negative_offset_extended.
1201 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
1202
583a92e8
ST
12032005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1204
1205 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
1206 on sh3.
1207 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
1208 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
1209 partially on register.
1210 (ffi_closure_helper_SYSV): Likewise.
1211 (ffi_prep_cif_machdep): Don't set too many cif->flags.
1212
5d0317fc
KK
12132005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
1214
1215 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
1216 Remove empty line.
1217 * src/sh64/ffi.c (simple_type): Remove.
1218 (return_type): Handle small structures correctly.
1219 (ffi_prep_args): Likewise.
1220 (ffi_call): Likewise.
1221 (ffi_closure_helper_SYSV): Likewise.
1222 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
1223 Emit position independent code if PIC and remove wrong datalabel
1224 prefixes from EH data.
1225
8d9fd5f5
AT
12262005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
1227
1228 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
1229 * Makefile.in: Regenerate.
1230 * include/Makefile.in: Likewise.
1231 * testsuite/Makefile.in: Likewise.
1232 * configure.ac: Add POWERPC_FREEBSD rules.
1233 * configure: Regenerate.
1234 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
1235 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
1236 * src/powerpc/ffi.c: Add flags to handle small structure returns
1237 in ffi_call_SYSV.
1238 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
1239 Aka FFI_SYSV.
1240 (ffi_closure_helper_SYSV): Likewise.
1241 * src/powerpc/ppc_closure.S: Add return types for small structures.
1242 * src/powerpc/sysv.S: Add bits to handle small structures for
1243 final SYSV 4 ABI.
1244
93c76f81
AT
12452005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
1246
1247 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
1248 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1249 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1250
b65da304
RC
12512005-07-05 Randolph Chung <tausq@debian.org>
1252
1253 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
1254 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
1255 structures. Kill compilation warnings.
1256 (ffi_closure_inner_LINUX): Print return values as hex in debug
1257 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
1258 Properly handle 5-7 byte structure returns.
1259 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
1260 (FFI_TYPE_SMALL_STRUCT2): Remove.
1261 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
1262 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
1263 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
1264 (checksmst1, checksmst2): Remove.
1265 (checksmst3): Optimize handling of 3-byte struct returns.
1266 (checksmst567): Properly handle 5-7 byte struct returns.
1267
2572f1c6
RO
12682005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1269
1270 PR libgcj/21943
1271 * src/mips/n32.S: Enforce PIC code.
1272 * src/mips/o32.S: Likewise.
1273
cc786582
RO
12742005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1275
1276 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1277 * configure: Regenerate.
1278
6d0d376c
AM
12792005-06-01 Alan Modra <amodra@bigpond.net.au>
1280
1281 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1282 to call ffi_closure_helper_SYSV. Append @local instead.
1283 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1284
a21946f5 12852005-05-17 Kelley Cook <kcook@gcc.gnu.org>
a097ef55
KC
1286
1287 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1288 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1289 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1290 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1291 include/Makefile.in, testsuite/Makefile.in: Regenerate.
1292
f4c767fd
MS
12932005-05-09 Mike Stump <mrs@apple.com>
1294
1295 * configure: Regenerate.
1296
7e15b5fe
RH
12972005-05-08 Richard Henderson <rth@redhat.com>
1298
1299 PR libffi/21285
1300 * src/alpha/osf.S: Update unwind into to match code.
1301
d56ea8d9
RH
13022005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
1303 Richard Henderson <rth@redhat.com>
1304
1305 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1306 bit 11 of flags.
1307 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
1308 (ffi_prep_closure): Set carry bit if sse-used flag set.
1309 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1310 Only load sse registers if ssecount non-zero.
1311 (ffi_closure_unix64): Only save sse registers if carry set on entry.
1312
13132005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
d948c201
RC
1314
1315 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1316 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1317 * configure: Regenerate.
1318
fc0ad8d9
HPN
13192005-04-20 Hans-Peter Nilsson <hp@axis.com>
1320
1321 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1322 have Tcl8.3-compatible intermediate variable.
1323
614348bb
SP
13242005-04-18 Simon Posnjak <simon.posnjak@siol.net>
1325 Hans-Peter Nilsson <hp@axis.com>
1326
1327 * Makefile.am: Add CRIS support.
1328 * configure.ac: Likewise.
29ede6db
HPN
1329 * Makefile.in, configure, testsuite/Makefile.in,
1330 include/Makefile.in: Regenerate.
614348bb
SP
1331 * src/cris: New directory.
1332 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1333 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
727e729b
HPN
1334
1335 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1336 \r?\n in output tests.
1337
6dab073b
MS
13382005-04-12 Mike Stump <mrs@apple.com>
1339
1340 * configure: Regenerate.
1341
51f55d7c
HB
13422005-03-30 Hans Boehm <Hans.Boehm@hp.com>
1343
1344 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
1345
7efa52a3
SE
13462005-03-30 Steve Ellcey <sje@cup.hp.com>
1347
1348 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
1349 (ffi_sarg) Ditto.
1350 * src/ia64/unix.S (ffi_closure_unix): Extend gp
1351 to 64 bits in ILP32 mode.
1352 Load 64 bits even for short data.
1353
1488177a
MS
13542005-03-23 Mike Stump <mrs@apple.com>
1355
1356 * src/powerpc/darwin.S: Update for -m64 multilib.
1357 * src/powerpc/darwin_closure.S: Likewise.
1358
c6900272
ZW
13592005-03-21 Zack Weinberg <zack@codesourcery.com>
1360
1361 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1362 Do not set tool_include_dir.
1363 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
1364 Regenerate.
1365 * include/Makefile.am: Set gcc_version and toollibffidir.
1366 * include/Makefile.in: Regenerate.
1367
962eea0a
AH
13682005-02-22 Andrew Haley <aph@redhat.com>
1369
1370 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
1371 odd-numbered register pairs for 64-bit integer types.
1372
1b05e8bf
AT
13732005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
1374
1375 PR libffi/20104
1376 * testsuite/libffi.call/return_ll1.c: New test case.
1377
6027770b
JJ
13782005-02-11 Janis Johnson <janis187@us.ibm.com>
1379
1380 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
1381 * testsuite/libffi.call/float.c: Ditto.
1382 * testsuite/libffi.call/float2.c: Ditto.
1383 * testsuite/libffi.call/float3.c: Ditto.
1384
ee31ea68
AT
13852005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
1386
1387 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
1388
c16be7d5
EB
13892005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1390
1391 * testsuite/libffi.special/special.exp (cxx_options): Add
1392 -shared-libgcc.
1393
5df07255
RH
13942004-12-31 Richard Henderson <rth@redhat.com>
1395
1396 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
1397 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
1398 offset parameters with a type parameter; deduce size and structure
1399 alignment. Update all users.
1400
81a69b13
RH
14012004-12-31 Richard Henderson <rth@redhat.com>
1402
1403 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
1404 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
c6900272 1405 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
81a69b13
RH
1406 into ffi_prep_closure.
1407 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
1408 from scratch.
1409
d833cfb0
RH
14102004-12-27 Richard Henderson <rth@redhat.com>
1411
1412 * src/x86/unix64.S: Fix typo in unwind info.
1413
1a0f488c
RH
14142004-12-25 Richard Henderson <rth@redhat.com>
1415
1416 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
1417 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
1418 (merge_classes): Check for it.
1419 (SSE_CLASS_P): New.
1420 (classify_argument): Pass byte_offset by value; perform all updates
1421 inside struct case.
1422 (examine_argument): Add classes argument; handle
1423 X86_64_COMPLEX_X87_CLASS.
1424 (ffi_prep_args): Merge into ...
1425 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
1426 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
1427 (ffi_fill_return_value): Remove.
1428 (ffi_prep_closure): Remove dead assert.
1429 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
1430 Rewrite to use struct register_args instead of va_list. Create
1431 flags for handling structure returns.
1432 * src/x86/unix64.S: Remove dead strings.
1433 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
1434 stack frame with ffi_call. Handle structure returns properly.
1435 (float2sse, floatfloat2sse, double2sse): Remove.
1436 (sse2float, sse2double, sse2floatfloat): Remove.
1437 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
1438 to handle structure returns properly.
1439
7994d50c
DE
14402004-12-08 David Edelsohn <edelsohn@gnu.org>
1441
1442 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
1443 PICFLAG.
1444 * Makefile.in: Regenerated.
1445
afabd8e6
RS
14462004-12-02 Richard Sandiford <rsandifo@redhat.com>
1447
1448 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1449 * configure, aclocal.m4, Makefile.in: Regenerate.
1450 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
1451
2539bffe
KC
14522004-11-29 Kelley Cook <kcook@gcc.gnu.org>
1453
1454 * configure: Regenerate for libtool change.
1455
767f726e
KC
14562004-11-25 Kelley Cook <kcook@gcc.gnu.org>
1457
1458 * configure: Regenerate for libtool reversion.
1459
2c92e90f
KC
14602004-11-24 Kelley Cook <kcook@gcc.gnu.org>
1461
1462 * configure: Regenerate for libtool change.
1463
1df8e834
JDA
14642004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1465
1466 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
1467
14682004-11-23 Richard Sandiford <rsandifo@redhat.com>
1469
1470 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1471 of jal. Use an absolute encoding for the frame information.
1472
14732004-11-23 Kelley Cook <kcook@gcc.gnu.org>
1474
1475 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
1476 * acinclude.m4: Delete logic for sincludes.
1477 * aclocal.m4, Makefile.in, configure: Regenerate.
1478 * include/Makefile: Likewise.
1479 * testsuite/Makefile: Likewise.
1480
bf02e7fa
EB
14812004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1482
1483 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1484 on a 8-byte boundary.
1485 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1486
f20459f1
RE
14872004-10-27 Richard Earnshaw <rearnsha@arm.com>
1488
1489 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1490 long long values. Round stack allocation to a multiple of 8 bytes
1491 for ATPCS compatibility.
1492 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1493 names. Handle returning long long types. Add Thumb and interworking
1494 support. Improve soft-float code.
1495
fdc69597
RE
14962004-10-27 Richard Earnshaw <rearnsha@arm.com>
1497
1498 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1499 (libffi_exit): New function.
1500 (libffi_init): Build the testglue wrapper if needed.
1501
1e02510f
EB
15022004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1503
1504 PR other/18138
1505 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1506
d9a193b2
KI
15072004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1508
1509 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1510
1fddb058
KK
15112004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
1512
1513 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1514 * testsuite/libffi.call/float3.c: New test case.
1515
e0d3b452
KK
15162004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
1517
1518 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1519 the function returning a structure pointed with R2.
1520 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1521 the structure return value if T bit set. Emit position
1522 independent code and EH data if PIC.
1523
a472e9d4
KI
15242004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1525
1526 * Makefile.am: Add m32r support.
1527 * configure.ac: Likewise.
1528 * Makefile.in: Regenerate.
1529 * confiugre: Regenerate.
1530 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1531 (uint64, sint64, double, longdouble)
1532 * src/m32r: New directory.
1533 * src/m32r/ffi.c: New file.
1534 * src/m32r/sysv.S: Likewise.
1535 * src/m32r/ffitarget.h: Likewise.
1536
3d47e9ca
KK
15372004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
1538
1539 * testsuite/libffi.call/negint.c: New test case.
1540
fc9051dd
L
15412004-09-14 H.J. Lu <hongjiu.lu@intel.com>
1542
1543 PR libgcj/17465
1544 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1545 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1546 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1547 DYLD_LIBRARY_PATH.
1548
2010caea
AT
15492004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1550
1551 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
1552 * testsuite/libffi.call/promotion.c: Likewise.
1553 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
1554 whitespaces.
1555 * testsuite/libffi.call/return_sc.c: Likewise.
1556 * testsuite/libffi.call/return_uc.c: Likewise.
1557
894be816
AT
15582004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1559
1560 * src/powerpc/darwin.S: Fix comments and identation.
1561 * src/powerpc/darwin_closure.S: Likewise.
1562
2fe7404a
AT
15632004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1564
1565 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
1566 (ffi_prep_args): Handle longdouble arguments.
1567 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
1568 longdouble.
1569 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
1570 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
1571 values.
1572 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
1573 * src/types.c: Defined longdouble size and alignment for darwin.
1574
16070e45
AT
15752004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1576
1577 * src/powerpc/aix.S: Remove whitespaces.
1578 * src/powerpc/aix_closure.S: Likewise.
1579 * src/powerpc/asm.h: Likewise.
1580 * src/powerpc/ffi.c: Likewise.
1581 * src/powerpc/ffitarget.h: Likewise.
1582 * src/powerpc/linux64.S: Likewise.
1583 * src/powerpc/linux64_closure.S: Likewise.
1584 * src/powerpc/ppc_closure.S: Likewise.
1585 * src/powerpc/sysv.S: Likewise.
1586
88d8c771
AG
15872004-08-30 Anthony Green <green@redhat.com>
1588
1589 * Makefile.am: Add frv support.
1590 * Makefile.in, testsuite/Makefile.in: Rebuilt.
1591 * configure.ac: Read configure.host.
1592 * configure.in: Read configure.host.
1593 * configure.host: New file. frv-elf needs libgloss.
1594 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
a23adb4d 1595 alignment. This is needed to frv and shouldn't harm the others.
88d8c771
AG
1596 * include/ffi_common.h (ALIGN_DOWN): New macro.
1597 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
1598
4c5f37d5
DD
15992004-08-24 David Daney <daney@avtrex.com>
1600
1601 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
1602 * testsuite/libffi.call/closure_fn1.c: Likewise.
1603 * testsuite/libffi.call/closure_fn2.c Likewise.
1604 * testsuite/libffi.call/closure_fn3.c: Likewise.
1605 * testsuite/libffi.call/closure_fn4.c: Likewise.
1606 * testsuite/libffi.call/closure_fn5.c: Likewise.
1607 * testsuite/libffi.call/cls_18byte.c: Likewise.
1608 * testsuite/libffi.call/cls_19byte.c: Likewise.
1609 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1610 * testsuite/libffi.call/cls_20byte.c: Likewise.
1611 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1612 * testsuite/libffi.call/cls_24byte.c: Likewise.
1613 * testsuite/libffi.call/cls_2byte.c: Likewise.
1614 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1615 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1616 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1617 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1618 * testsuite/libffi.call/cls_4byte.c: Likewise.
1619 * testsuite/libffi.call/cls_64byte.c: Likewise.
1620 * testsuite/libffi.call/cls_6byte.c: Likewise.
1621 * testsuite/libffi.call/cls_7byte.c: Likewise.
1622 * testsuite/libffi.call/cls_8byte.c: Likewise.
1623 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1624 * testsuite/libffi.call/cls_9byte2.c: Likewise.
1625 * testsuite/libffi.call/cls_align_double.c: Likewise.
1626 * testsuite/libffi.call/cls_align_float.c: Likewise.
1627 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1628 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1629 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1630 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1631 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1632 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1633 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1634 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1635 * testsuite/libffi.call/cls_double.c: Likewise.
1636 * testsuite/libffi.call/cls_float.c: Likewise.
1637 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1638 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
1639 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1640 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1641 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1642 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1643 * testsuite/libffi.call/cls_schar.c: Likewise.
1644 * testsuite/libffi.call/cls_sint.c: Likewise.
1645 * testsuite/libffi.call/cls_sshort.c: Likewise.
1646 * testsuite/libffi.call/cls_uchar.c: Likewise.
1647 * testsuite/libffi.call/cls_uint.c: Likewise.
1648 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1649 * testsuite/libffi.call/cls_ushort.c: Likewise.
1650 * testsuite/libffi.call/nested_struct.c: Likewise.
1651 * testsuite/libffi.call/nested_struct1.c: Likewise.
1652 * testsuite/libffi.call/nested_struct2.c: Likewise.
1653 * testsuite/libffi.call/nested_struct3.c: Likewise.
1654 * testsuite/libffi.call/problem1.c: Likewise.
1655 * testsuite/libffi.special/unwindtest.cc: Likewise.
1656 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
1657 to zero.
1658 * testsuite/libffi.call/cls_16byte.c: Likewise.
1659 * testsuite/libffi.call/cls_5byte.c: Likewise.
1660
39dca114
DD
16612004-08-23 David Daney <daney@avtrex.com>
1662
1663 PR libgcj/13141
1664 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
1665 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
1666 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
1667 parameters and return types.
1668 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
1669 (ffi_prep_closure): Ditto.
1670 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
1671 alignment calculations.
1672 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
1673 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
1674
b790003a
CM
16752004-08-14 Casey Marshall <csm@gnu.org>
1676
1677 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
1678 contain `FFI_TYPE_UINT64' as return type for any 64-bit
1679 integer (O32 ABI only).
1680 (ffi_prep_closure): new function.
1681 (ffi_closure_mips_inner_O32): new function.
c6900272 1682 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
b790003a
CM
1683 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
1684 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
1685 64 bit integers correctly.
1686 (ffi_closure_O32): new function.
1687 Added DWARF-2 unwind info for both functions.
1688
547d71a1
AH
16892004-08-10 Andrew Haley <aph@redhat.com>
1690
1691 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
1692
98a5bb3b
RM
16932004-08-01 Robert Millan <robertmh@gnu.org>
1694
1695 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
1696 * configure: Regenerate.
1697
4d447364
MR
16982004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
1699
1700 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1701 and mmap() explicitly instead of relying on preset autoconf cache
1702 variables.
1703 * aclocal.m4: Regenerate.
1704 * configure: Regenerate.
1705
e5dce82f
UW
17062004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
1707
1708 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
1709 (ffi_check_float_struct): Remove unused prototype.
1710
e6a0022b
GK
17112004-06-30 Geoffrey Keating <geoffk@apple.com>
1712
1713 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
1714 character on Darwin, use '\n\t' instead.
1715
5a2d52ca
MK
17162004-06-26 Matthias Klose <doko@debian.org>
1717
1718 * libtool-version: Fix typo in revision/age.
1719
401844ef
MK
17202004-06-17 Matthias Klose <doko@debian.org>
1721
1722 * libtool-version: New.
1723 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
1724 * Makefile.in: Regenerate.
1725
94632047 17262004-06-15 Paolo Bonzini <bonzini@gnu.org>
076e5443
PB
1727
1728 * Makefile.am: Remove useless multilib rules.
1729 * Makefile.in: Regenerate.
1730 * aclocal.m4: Regenerate with automake 1.8.5.
1731 * configure.ac: Remove useless multilib configury.
1732 * configure: Regenerate.
1733
94632047 17342004-06-15 Paolo Bonzini <bonzini@gnu.org>
9ac926b1
PB
1735
1736 * .cvsignore: New file.
1737
37c849e4
JJ
17382004-06-10 Jakub Jelinek <jakub@redhat.com>
1739
1740 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
1741 fp_done.
1742 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
1743 changed from 8.
1744
cb623172
SM
17452004-06-06 Sean McNeil <sean@mcneil.com>
1746
1747 * configure.ac: Add x86_64-*-freebsd* support.
1748 * configure: Regenerate.
1749
c9b93377
JB
17502004-04-26 Joe Buck <jbuck@welsh-buck.org>
1751
1752 Bug 15093
1753 * configure.ac: Test for existence of mmap and sys/mman.h before
1754 checking blacklist. Fix suggested by Jim Wilson.
1755 * configure: Regenerate.
1756
cf90fd1b
MA
17572004-04-26 Matt Austern <austern@apple.com>
1758
1759 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
1760 FDE location.
1761 * src/powerpc/darwin_closure.S: Likewise.
c6900272 1762
67781b44
AT
17632004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
1764
1765 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
1766 error. Reported by Thomas Heller <theller@python.net>.
1767 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
1768 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
1769
14b078a8
MK
17702004-03-20 Matthias Klose <doko@debian.org>
1771
1772 * src/pa/linux.S: Fix typo.
1773
d65a810f
MK
17742004-03-19 Matthias Klose <doko@debian.org>
1775
67781b44 1776 * Makefile.am: Update.
d65a810f
MK
1777 * Makefile.in: Regenerate.
1778 * src/pa/ffi.h.in: Remove.
1779 * src/pa/ffitarget.h: New file.
1780
17812004-02-10 Randolph Chung <tausq@debian.org>
1782
1783 * Makefile.am: Add PA support.
1784 * Makefile.in: Regenerate.
1785 * include/Makefile.in: Regenerate.
1786 * configure.ac: Add PA target.
1787 * configure: Regenerate.
1788 * src/pa/ffi.c: New file.
1789 * src/pa/ffi.h.in: Add PA support.
1790 * src/pa/linux.S: New file.
1791 * prep_cif.c: Add PA support.
1792
09cababc
HY
17932004-03-16 Hosaka Yuji <hos@tamanegi.org>
1794
1795 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
1796 double.
1797 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
1798 with ecif->cif->flags.
1799 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
1800 with cif->flags.
1801 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
1802 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
1803 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
1804 sc_retstruct2b): Add for 1 or 2-bytes struct case.
1805
0e8d0c5f
KC
18062004-03-15 Kelley Cook <kcook@gcc.gnu.org>
1807
1808 * configure.in: Rename file to ...
1809 * configure.ac: ... this.
1810 * fficonfig.h.in: Regenerate.
1811 * Makefile.in: Regenerate.
1812 * include/Makefile.in: Regenerate.
1813 * testsuite/Makefile.in: Regenerate.
1814
b8d50739
MA
18152004-03-12 Matt Austern <austern@apple.com>
1816
1817 * src/powerpc/darwin.S: Fix EH information so it corresponds to
1818 changes in EH format resulting from addition of linkonce support.
1819 * src/powerpc/darwin_closure.S: Likewise.
09cababc 1820
3ed8e5b6
AT
18212004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
1822 Paolo Bonzini <bonzini@gnu.org>
1823
1824 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
1825 Remove VPATH. Remove rules for object files. Remove multilib support.
1826 (AM_CCASFLAGS): Add.
1827 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
1828 (AC_PREREQ): Bump version to 2.59.
1829 (AC_INIT): Fill with version info and bug address.
1830 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
1831 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
1832 De-precious CC so that the right flags are passed down to multilibs.
1833 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
1834 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
1835 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
1836 * configure: Rebuilt.
1837 * aclocal.m4: Likewise.
1838 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
1839 * fficonfig.h.in: Likewise.
1840
254ea477
AS
18412004-03-11 Andreas Schwab <schwab@suse.de>
1842
1843 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
1844 arguments from fp registers only for the first 8 parameter slots.
1845 Don't convert a float parameter when passed in memory.
1846
3beb1315
HPN
18472004-03-09 Hans-Peter Nilsson <hp@axis.com>
1848
1849 * configure: Regenerate for config/accross.m4 correction.
1850
fecf735c
MK
18512004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
1852
1853 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
1854 ecif->cif->bytes to bytes.
1855 (ffi_prep_cif_machdep): Add braces around nested if statement.
1856
4243752c
AM
18572004-02-09 Alan Modra <amodra@bigpond.net.au>
1858
12001e0f
AM
1859 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
1860
4243752c
AM
1861 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
1862 (ffi_closure_helper_LINUX64): Fix typo.
1863 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
1864 for powerpc64-*-*.
1865 * testsuite/libffi.call/float.c: Likewise.
1866 * testsuite/libffi.call/float2.c: Likewise.
1867
bf310028
AM
18682004-02-08 Alan Modra <amodra@bigpond.net.au>
1869
1870 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
1871 long double function return and long double arg handling.
1872 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
1873 Use "end_pfr" instead of "nf". Correct long double handling.
1874 Localise "temp".
1875 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
1876 return value.
1877 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
1878 space for long double return value. Adjust stack frame and offsets.
1879 Load f2 long double return.
1880
dd5f9ea2
AM
18812004-02-07 Alan Modra <amodra@bigpond.net.au>
1882
1883 * src/types.c: Use 16 byte long double for POWERPC64.
1884
0ce78f01
EB
18852004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1886
1887 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
1888 when the structure return address is passed in %o0.
1889 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
1890 (ffi_v9_layout_struct): Align the field following a nested structure
1891 on a word boundary. Use memmove instead of memcpy.
1892 (ffi_call): Update call to ffi_V9_return_struct.
1893 (ffi_prep_closure): Define 'ctx' only for V8.
1894 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
1895 and ffi_closure_sparc_inner_v9.
1896 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
1897 Always skip the structure return address. For structures and long
1898 doubles, copy the argument directly.
1899 (ffi_closure_sparc_inner_v9): Skip the structure return address only
1900 if required. Shift the maximum floating-point slot accordingly. For
1901 big structures, copy the argument directly; otherwise, left-justify the
1902 argument and call ffi_v9_layout_struct to lay out the structure on
1903 the stack.
1904 * src/sparc/v8.S: Undef STACKFRAME before defining it.
1905 (ffi_closure_v8): Pass the structure return address. Update call to
1906 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
1907 Skip the 'unimp' insn when returning long doubles and structures.
1908 * src/sparc/v9.S: Undef STACKFRAME before defining it.
1909 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
1910 FFI_TYPE_INT handling. Load structures both in integers and
1911 floating-point registers on return.
1912 * README: Update status of the SPARC port.
1913
7fcc1d9b
AT
19142004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
1915
1916 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
1917 as of type ffi_arg.
1918 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
1919
6ed0ecaf
UW
19202004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
1921
1922 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
1923 value as of type ffi_arg, not unsigned int.
1924
c930d8a5
MR
19252004-01-21 Michael Ritzert <ritzert@t-online.de>
1926
1927 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
1928 of the LHS.
1929
7b2e3e60
AT
19302004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
1931
1932 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
1933 Solaris.
1934
2e89756b
RO
19352004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1936
1937 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
1938 to void *.
1939
628b26f8
RH
19402003-12-10 Richard Henderson <rth@redhat.com>
1941
1942 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
1943 size_t instead of int.
1944
0ee646d6
HY
19452003-12-04 Hosaka Yuji <hos@tamanegi.org>
1946
1947 * testsuite/libffi.call/many_win32.c: Include <float.h>.
1948 * testsuite/libffi.call/many_win32.c (main): Replace variable
1949 int i with unsigned long ul.
1950
1951 * testsuite/libffi.call/cls_align_uint64.c: New test case.
1952 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1953 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1954 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1955 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1956 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1957 * testsuite/libffi.call/cls_align_float.c: Likewise.
1958 * testsuite/libffi.call/cls_align_double.c: Likewise.
1959 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1960 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1961
2c4ed456
HY
19622003-12-02 Hosaka Yuji <hos@tamanegi.org>
1963
1964 PR other/13221
1965 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
1966 Align arguments to 32 bits.
1967
d18c3386
AT
19682003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
1969
1970 PR other/13221
1971 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
1972 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1973 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1974 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1975 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1976 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1977
1978 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
1979
88096b2a
KG
19802003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1981
1982 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
1983 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1984
3eee102e
AT
19852003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
1986
1987 * Makefile.in: Rebuilt.
1988 * configure: Likewise.
1989 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
1990 the right type.
1991
5196736e
AJ
19922003-11-21 Andreas Jaeger <aj@suse.de>
1993 Andreas Tobler <a.tobler@schweiz.ch>
1994
1995 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
1996 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
1997 * Makefile.in: Rebuilt.
1998 * aclocal.m4: Likewise.
1999 * configure: Likewise.
2000 * fficonfig.h.in: Likewise.
2001 * testsuite/lib/libffi-dg.exp: Add include dir.
2002 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
2003 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2004 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
2005 for ffi_closure if available.
2006 * testsuite/libffi.call/closure_fn1.c: Likewise.
2007 * testsuite/libffi.call/closure_fn2.c: Likewise.
2008 * testsuite/libffi.call/closure_fn3.c: Likewise.
2009 * testsuite/libffi.call/closure_fn4.c: Likewise.
2010 * testsuite/libffi.call/closure_fn5.c: Likewise.
2011 * testsuite/libffi.call/cls_12byte.c: Likewise.
2012 * testsuite/libffi.call/cls_16byte.c: Likewise.
2013 * testsuite/libffi.call/cls_18byte.c: Likewise.
2014 * testsuite/libffi.call/cls_19byte.c: Likewise.
2015 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2016 * testsuite/libffi.call/cls_20byte.c: Likewise.
2017 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2018 * testsuite/libffi.call/cls_24byte.c: Likewise.
2019 * testsuite/libffi.call/cls_2byte.c: Likewise.
2020 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2021 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2022 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2023 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2024 * testsuite/libffi.call/cls_4byte.c: Likewise.
2025 * testsuite/libffi.call/cls_5byte.c: Likewise.
2026 * testsuite/libffi.call/cls_64byte.c: Likewise.
2027 * testsuite/libffi.call/cls_6byte.c: Likewise.
2028 * testsuite/libffi.call/cls_7byte.c: Likewise.
2029 * testsuite/libffi.call/cls_8byte.c: Likewise.
2030 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2031 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2032 * testsuite/libffi.call/cls_double.c: Likewise.
2033 * testsuite/libffi.call/cls_float.c: Likewise.
2034 * testsuite/libffi.call/cls_schar.c: Likewise.
2035 * testsuite/libffi.call/cls_sint.c: Likewise.
2036 * testsuite/libffi.call/cls_sshort.c: Likewise.
2037 * testsuite/libffi.call/cls_uchar.c: Likewise.
2038 * testsuite/libffi.call/cls_uint.c: Likewise.
2039 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2040 * testsuite/libffi.call/cls_ushort.c: Likewise.
2041 * testsuite/libffi.call/nested_struct.c: Likewise.
2042 * testsuite/libffi.call/nested_struct1.c: Likewise.
2043 * testsuite/libffi.call/nested_struct2.c: Likewise.
2044 * testsuite/libffi.call/nested_struct3.c: Likewise.
2045 * testsuite/libffi.call/problem1.c: Likewise.
2046 * testsuite/libffi.special/unwindtest.cc: Likewise.
2047
9e6c3ecb
AT
20482003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
2049
2050 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
2051
70d8f2a1
AT
20522003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
2053
2054 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2055 Add -lgcc_s to additional flags.
2056
ea81d2a3
AT
20572003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
2058
2059 * configure.in, include/Makefile.am: PR libgcj/11147, install
2060 the ffitarget.h header file in a gcc versioned and target
2061 dependent place.
2062 * configure: Regenerated.
2063 * Makefile.in, include/Makefile.in: Likewise.
2064 * testsuite/Makefile.in: Likewise.
2065
647af4a9
AT
20662003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
2067
2068 * testsuite/libffi.call/closure_fn0.c: Print result and check
2069 with dg-output to make debugging easier.
2070 * testsuite/libffi.call/closure_fn1.c: Likewise.
2071 * testsuite/libffi.call/closure_fn2.c: Likewise.
2072 * testsuite/libffi.call/closure_fn3.c: Likewise.
2073 * testsuite/libffi.call/closure_fn4.c: Likewise.
2074 * testsuite/libffi.call/closure_fn5.c: Likewise.
2075 * testsuite/libffi.call/cls_12byte.c: Likewise.
2076 * testsuite/libffi.call/cls_16byte.c: Likewise.
2077 * testsuite/libffi.call/cls_18byte.c: Likewise.
2078 * testsuite/libffi.call/cls_19byte.c: Likewise.
2079 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2080 * testsuite/libffi.call/cls_20byte.c: Likewise.
2081 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2082 * testsuite/libffi.call/cls_24byte.c: Likewise.
2083 * testsuite/libffi.call/cls_2byte.c: Likewise.
2084 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2085 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2086 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2087 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2088 * testsuite/libffi.call/cls_4byte.c: Likewise.
2089 * testsuite/libffi.call/cls_5byte.c: Likewise.
2090 * testsuite/libffi.call/cls_64byte.c: Likewise.
2091 * testsuite/libffi.call/cls_6byte.c: Likewise.
2092 * testsuite/libffi.call/cls_7byte.c: Likewise.
2093 * testsuite/libffi.call/cls_8byte.c: Likewise.
2094 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2095 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2096 * testsuite/libffi.call/cls_double.c: Likewise.
2097 * testsuite/libffi.call/cls_float.c: Likewise.
2098 * testsuite/libffi.call/cls_schar.c: Likewise.
2099 * testsuite/libffi.call/cls_sint.c: Likewise.
2100 * testsuite/libffi.call/cls_sshort.c: Likewise.
2101 * testsuite/libffi.call/cls_uchar.c: Likewise.
2102 * testsuite/libffi.call/cls_uint.c: Likewise.
2103 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2104 * testsuite/libffi.call/cls_ushort.c: Likewise.
2105 * testsuite/libffi.call/problem1.c: Likewise.
2106
2107 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
2108 static.
2109
ac47cc13
AT
21102003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
2111
2112 * testsuite/libffi.call/cls_9byte2.c: New test case.
2113 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2114 * testsuite/libffi.call/cls_64byte.c: Likewise.
2115 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2116 * testsuite/libffi.call/cls_19byte.c: Likewise.
2117 * testsuite/libffi.call/cls_18byte.c: Likewise.
2118 * testsuite/libffi.call/closure_fn4.c: Likewise.
2119 * testsuite/libffi.call/closure_fn5.c: Likewise.
2120 * testsuite/libffi.call/cls_schar.c: Likewise.
2121 * testsuite/libffi.call/cls_sint.c: Likewise.
2122 * testsuite/libffi.call/cls_sshort.c: Likewise.
2123 * testsuite/libffi.call/nested_struct2.c: Likewise.
2124 * testsuite/libffi.call/nested_struct3.c: Likewise.
2125
f145ed6b
AT
21262003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
2127
2128 * testsuite/libffi.call/cls_double.c: Do a check on the result.
2129 * testsuite/libffi.call/cls_uchar.c: Likewise.
2130 * testsuite/libffi.call/cls_uint.c: Likewise.
2131 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2132 * testsuite/libffi.call/cls_ushort.c: Likewise.
2133 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2134
2b04d015
AT
21352003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
2136
2137 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
2138 the initialization.
2139
57f542b3
AT
21402003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
2141
2b04d015 2142 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
57f542b3
AT
2143 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2144
e61acf72
DD
21452003-10-22 David Daney <ddaney@avtrex.com>
2146
2147 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2148 __attribute__((__mode__(__SI__))) and friends.
2149
2461c08b
AS
21502003-10-22 Andreas Schwab <schwab@suse.de>
2151
2152 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2153
1450eb7a
AT
21542003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
2155
2156 * configure.in: AC_LINK_FILES(ffitarget.h).
2157 * configure: Regenerate.
2158 * Makefile.in: Likewise.
2159 * include/Makefile.in: Likewise.
2160 * testsuite/Makefile.in: Likewise.
2161 * fficonfig.h.in: Likewise.
2162
21632003-10-21 Paolo Bonzini <bonzini@gnu.org>
2164 Richard Henderson <rth@redhat.com>
2165
2166 Avoid that ffi.h includes fficonfig.h.
2167
2168 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
2169 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2170 (TARGET_SRC_MIPS_SGI): Removed.
2171 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2172 (MIPS_SGI): Removed.
2173 (CLEANFILES): Removed.
2174 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2175 targets.
2176 * acconfig.h: Removed.
2177 * configure.in: Compute sizeofs only for double and long double.
2178 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
2179 into AC_DEFINE instead of using acconfig.h. Create
2180 include/ffitarget.h instead of include/fficonfig.h. Rename
2181 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2182 AC_DEFINE EH_FRAME_FLAGS.
2183 * include/Makefile.am (DISTCLEANFILES): New automake macro.
2184 (hack_DATA): Add ffitarget.h.
2185 * include/ffi.h.in: Remove all system specific definitions.
2186 Declare raw API even if it is not installed, why bother?
2187 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
2188 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
2189 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
2190 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2191 * include/ffi_common.h (bool): Do not define.
2192 (ffi_assert): Accept failed assertion.
2193 (ffi_type_test): Return void and accept file/line.
2194 (FFI_ASSERT): Pass stringized failed assertion.
2195 (FFI_ASSERT_AT): New macro.
2196 (FFI_ASSERT_VALID_TYPE): New macro.
2197 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2198 UINT64, SINT64): Define here with gcc's __attribute__ macro
2199 instead of in ffi.h
2200 (FLOAT32, ALIGN): Define here instead of in ffi.h
2201 * include/ffi-mips.h: Removed. Its content moved to
2202 src/mips/ffitarget.h after separating assembly and C sections.
2203 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2204 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2205 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2206 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2207 SIZEOF_ARG -> FFI_SIZEOF_ARG.
2208 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2209 * src/debug.c (ffi_assert): Accept stringized failed assertion.
2210 (ffi_type_test): Rewritten.
2211 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2212 FFI_ASSERT_VALID_TYPE.
2213 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
2214 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2215 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2216 src/s390/ffitarget.h, src/sh/ffitarget.h,
2217 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2218 src/x86/ffitarget.h: New files.
2219 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2220 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2221 src/powerpc/aix.S, src/powerpc/darwin.S,
2222 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2223 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2224 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2225 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2226 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2227 include fficonfig.h
2228
27d54b2a
RO
22292003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2230
2231 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2232 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2233
0df6970d
AT
22342003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
2235
2236 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2237 Used when FFI_DEBUG = 1.
2238
2612ffce
AM
22392003-10-14 Alan Modra <amodra@bigpond.net.au>
2240
2241 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2242 and align.
2243
d54f7354
RO
22442003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2245
2246 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2247 FFI_MIPS_O32 for O32 ABI.
2248
7a54c850
AT
22492003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
2250
2251 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2252 SPARC64. Cleanup whitespaces.
2253
9e3bfa9b
AT
22542003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
2255
2256 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2257 strongarm, xscale. Cleanup whitespaces.
2258 * testsuite/libffi.call/closure_fn1.c: Likewise.
2259 * testsuite/libffi.call/closure_fn2.c: Likewise.
2260 * testsuite/libffi.call/closure_fn3.c: Likewise.
2261 * testsuite/libffi.call/cls_12byte.c: Likewise.
2262 * testsuite/libffi.call/cls_16byte.c: Likewise.
2263 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2264 * testsuite/libffi.call/cls_20byte.c: Likewise.
2265 * testsuite/libffi.call/cls_24byte.c: Likewise.
2266 * testsuite/libffi.call/cls_2byte.c: Likewise.
2267 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2268 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2269 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2270 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2271 * testsuite/libffi.call/cls_4byte.c: Likewise.
2272 * testsuite/libffi.call/cls_5byte.c: Likewise.
2273 * testsuite/libffi.call/cls_6byte.c: Likewise.
2274 * testsuite/libffi.call/cls_7byte.c: Likewise.
2275 * testsuite/libffi.call/cls_8byte.c: Likewise.
2276 * testsuite/libffi.call/cls_double.c: Likewise.
2277 * testsuite/libffi.call/cls_float.c: Likewise.
2278 * testsuite/libffi.call/cls_uchar.c: Likewise.
2279 * testsuite/libffi.call/cls_uint.c: Likewise.
2280 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2281 * testsuite/libffi.call/cls_ushort.c: Likewise.
2282 * testsuite/libffi.call/nested_struct.c: Likewise.
2283 * testsuite/libffi.call/nested_struct1.c: Likewise.
2284 * testsuite/libffi.call/problem1.c: Likewise.
2285 * testsuite/libffi.special/unwindtest.cc: Likewise.
2286 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2287
3e86b595
DE
22882003-09-18 David Edelsohn <edelsohn@gnu.org>
2289
2290 * src/powerpc/aix.S: Cleanup whitespaces.
2291 * src/powerpc/aix_closure.S: Likewise.
2292
8d8369f8
AT
22932003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2294
2295 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2296 * src/powerpc/darwin_closure.S: Likewise.
2297 * src/powerpc/ffi_darwin.c: Likewise.
2298
69b182fd
AT
22992003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2300 David Edelsohn <edelsohn@gnu.org>
2301
2302 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2303 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2304 parameter stack.
2305 * src/powerpc/darwin_closure.S: Likewise.
2306 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2307 according to the Darwin/AIX ABI.
2308 (ffi_prep_cif_machdep): Likewise.
2309 (ffi_closure_helper_DARWIN): Likewise.
2310 Remove the outgoing parameter stack logic. Simplify the evaluation
2311 of the different CASE types.
2312 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2313 statement in the trampoline code.
2314
df805cdc
KK
23152003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
2316
2317 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2318 for the register size.
2319 (ffi_closure_helper_SYSV): Handle the structure return value
2320 address correctly.
2321 (ffi_closure_helper_SYSV): Return the appropriate type when
2322 the registers are used for the structure return value.
2323 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2324 the 64-bit return value. Update copyright years.
2325
eb26c76c
RO
23262003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2327
2328 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2329 srcdir for ffi_mips.h.
2330
6350c02c
AM
23312003-09-12 Alan Modra <amodra@bigpond.net.au>
2332
2333 * src/prep_cif.c (initialize_aggregate): Include tail padding in
2334 structure size.
2335 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2336 placement of float result.
2337 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2338 cast of "resp" for big-endian 64 bit machines.
2339
5af1c806
AM
23402003-09-11 Alan Modra <amodra@bigpond.net.au>
2341
2342 * src/types.c (double, longdouble): Merge identical SH and ARM
2343 typedefs, and add POWERPC64.
2344 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2345 struct split over gpr and rest.
2346 (ffi_prep_cif_machdep): Correct intarg_count for structures.
2347 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2348
086a4bd7
AT
23492003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
2350
2351 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2352 passing correctly.
c930d8a5 2353
e517f636
AM
23542003-09-09 Alan Modra <amodra@bigpond.net.au>
2355
2356 * configure: Regenerate.
2357
6f20d627
AT
23582003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2359
2360 * Makefile.am: Remove build rules for ffitest.
2361 * Makefile.in: Rebuilt.
c930d8a5 2362
6f20d627 23632003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
226660af
AT
2364
2365 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2366 about implicit declaration of abort().
2367
bbf3057b
AT
23682003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2369
2370 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2371 * Makefile.in: Rebuilt.
2372 * configure.in: Add dejagnu test framework.
2373 * configure: Rebuilt.
2374
2375 * testsuite/Makefile.am: New file.
2376 * testsuite/Makefile.in: Built
c930d8a5 2377 * testsuite/lib/libffi-dg.exp: New file.
bbf3057b
AT
2378 * testsuite/config/default.exp: Likewise.
2379 * testsuite/libffi.call/call.exp: Likewise.
2380 * testsuite/libffi.call/ffitest.h: Likewise.
2381 * testsuite/libffi.call/closure_fn0.c: Likewise.
2382 * testsuite/libffi.call/closure_fn1.c: Likewise.
2383 * testsuite/libffi.call/closure_fn2.c: Likewise.
2384 * testsuite/libffi.call/closure_fn3.c: Likewise.
2385 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2386 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2387 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2388 * testsuite/libffi.call/cls_2byte.c: Likewise.
2389 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2390 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2391 * testsuite/libffi.call/cls_4byte.c: Likewise.
2392 * testsuite/libffi.call/cls_5byte.c: Likewise.
2393 * testsuite/libffi.call/cls_6byte.c: Likewise.
2394 * testsuite/libffi.call/cls_7byte.c: Likewise.
2395 * testsuite/libffi.call/cls_8byte.c: Likewise.
2396 * testsuite/libffi.call/cls_12byte.c: Likewise.
2397 * testsuite/libffi.call/cls_16byte.c: Likewise.
2398 * testsuite/libffi.call/cls_20byte.c: Likewise.
2399 * testsuite/libffi.call/cls_24byte.c: Likewise.
2400 * testsuite/libffi.call/cls_double.c: Likewise.
2401 * testsuite/libffi.call/cls_float.c: Likewise.
2402 * testsuite/libffi.call/cls_uchar.c: Likewise.
2403 * testsuite/libffi.call/cls_uint.c: Likewise.
2404 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2405 * testsuite/libffi.call/cls_ushort.c: Likewise.
2406 * testsuite/libffi.call/float.c: Likewise.
2407 * testsuite/libffi.call/float1.c: Likewise.
2408 * testsuite/libffi.call/float2.c: Likewise.
2409 * testsuite/libffi.call/many.c: Likewise.
2410 * testsuite/libffi.call/many_win32.c: Likewise.
2411 * testsuite/libffi.call/nested_struct.c: Likewise.
2412 * testsuite/libffi.call/nested_struct1.c: Likewise.
2413 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
2414 * testsuite/libffi.call/problem1.c: Likewise.
2415 * testsuite/libffi.call/promotion.c: Likewise.
2416 * testsuite/libffi.call/return_ll.c: Likewise.
2417 * testsuite/libffi.call/return_sc.c: Likewise.
2418 * testsuite/libffi.call/return_uc.c: Likewise.
2419 * testsuite/libffi.call/strlen.c: Likewise.
2420 * testsuite/libffi.call/strlen_win32.c: Likewise.
2421 * testsuite/libffi.call/struct1.c: Likewise.
2422 * testsuite/libffi.call/struct2.c: Likewise.
2423 * testsuite/libffi.call/struct3.c: Likewise.
2424 * testsuite/libffi.call/struct4.c: Likewise.
2425 * testsuite/libffi.call/struct5.c: Likewise.
2426 * testsuite/libffi.call/struct6.c: Likewise.
2427 * testsuite/libffi.call/struct7.c: Likewise.
2428 * testsuite/libffi.call/struct8.c: Likewise.
c930d8a5 2429 * testsuite/libffi.call/struct9.c: Likewise.
bbf3057b
AT
2430 * testsuite/libffi.special/special.exp: New file.
2431 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2432 * testsuite/libffi.special/unwindtest.cc: Likewise.
2433
c930d8a5 2434
996b4f8f
KK
24352003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
2436
2437 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
2438 copyright years.
2439
b00badcd
AM
24402003-08-02 Alan Modra <amodra@bigpond.net.au>
2441
2442 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2443 structure passing.
2444 (ffi_closure_helper_LINUX64): Likewise.
2445 * src/powerpc/linux64.S: Remove code writing to parm save area.
2446 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2447 address in lr from ffi_closure_helper_LINUX64 call to calculate
2448 table address. Optimize function tail.
2449
c1516eae
AT
24502003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
2451
2452 * src/sparc/ffi.c: Handle all floating point registers.
2453 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2454
fc0e6222
GP
24552003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2456
2457 * README: Note that libffi is not part of GCC. Update the project
2458 URL and status.
2459
a1569df8
FS
24602003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2461
2462 * src/powerpc/ppc_closure.S: Include ffi.h.
2463
12e816bf
RO
24642003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2465
2466 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2467 Use C style comments.
2468
e860ed6d
KK
24692003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2470
2471 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
2472 * Makefile.in: Regenerate.
2473 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2474 * configure: Regenerate.
2475 * include/ffi.h.in: Add SHmedia support.
2476 * src/sh64/ffi.c: New file.
2477 * src/sh64/sysv.S: New file.
2478
a733b15e
JJ
24792003-05-16 Jakub Jelinek <jakub@redhat.com>
2480
2481 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2482 should be read-only.
2483 * configure: Rebuilt.
2484 * fficonfig.h.in: Rebuilt.
2485 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
2486 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
2487 * src/powerpc/linux64.S: Likewise.
2488 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
2489 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
2490 if -fpic/-fPIC/-mrelocatable.
2491 * src/powerpc/powerpc_closure.S: Likewise.
2492 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2493 #write in .eh_frame flags.
2494 * src/sparc/v9.S: Likewise.
2495 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
2496 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
2497 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
2498
bd19c9f4
JS
24992003-05-07 Jeff Sturm <jsturm@one-point.com>
2500
2501 Fixes PR bootstrap/10656
2502 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2503 support for .register pseudo-op.
2504 * src/sparc/v8.S: Use it.
2505 * fficonfig.h.in: Rebuilt.
2506 * configure: Rebuilt.
2507
e9b84181
JJ
25082003-04-18 Jakub Jelinek <jakub@redhat.com>
2509
2510 * include/ffi.h.in (POWERPC64): Define if 64-bit.
2511 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2512 Make it the default on POWERPC64.
2513 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2514 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2515 * configure: Rebuilt.
2516 * src/powerpc/ffi.c (hidden): Define.
2517 (ffi_prep_args_SYSV): Renamed from
2518 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
2519 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2520 ASM_NEEDS_REGISTERS64): New.
2521 (ffi_prep_args64): New function.
2522 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2523 (ffi_call): Likewise.
2524 (ffi_prep_closure): Likewise.
2525 (flush_icache): Surround by #ifndef POWERPC64.
2526 (ffi_dblfl): New union type.
2527 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2528 (ffi_closure_helper_LINUX64): New function.
2529 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2530 __powerpc64__.
2531 * src/powerpc/sysv.S: Likewise.
2532 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2533 * src/powerpc/linux64.S: New file.
2534 * src/powerpc/linux64_closure.S: New file.
2535 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2536 src/powerpc/linux64_closure.S.
2537 (TARGET_SRC_POWERPC): Likewise.
2538
2539 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2540 closure_test_fn3): Fix result printing on big-endian 64-bit
2541 machines.
2542 (main): Print tst2_arg instead of uninitialized tst2_result.
2543
2544 * src/ffitest.c (main): Hide what closure pointer really points to
2545 from the compiler.
2546
908a31e1
RE
25472003-04-16 Richard Earnshaw <rearnsha@arm.com>
2548
2549 * configure.in (arm-*-netbsdelf*): Add configuration.
2550 (configure): Regenerated.
2551
41a73c4c
LR
25522003-04-04 Loren J. Rittle <ljrittle@acm.org>
2553
2554 * include/Makefile.in: Regenerate.
2555
cd41c847
ZD
25562003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2557
2558 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
2559 bit mode.
2560 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
2561 Receive closure pointer through parameter, read args using
2562 __builtin_dwarf_cfa.
2563 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
2564
6db450f9
AS
25652003-03-12 Andreas Schwab <schwab@suse.de>
2566
2567 * configure.in: Avoid trailing /. in toolexeclibdir.
2568 * configure: Rebuilt.
2569
70144e9c
AT
25702003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
2571
c6900272 2572 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
70144e9c 2573
79e43f89
AT
25742003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
2575
2576 * libffi/src/powerpc/darwin_closure.S:
2577 Fix alignement bug, allocate 8 bytes for the result.
c930d8a5 2578 * libffi/src/powerpc/aix_closure.S:
79e43f89
AT
2579 Likewise.
2580 * libffi/src/powerpc/ffi_darwin.c:
2581 Update stackframe description for aix/darwin_closure.S.
c930d8a5 2582
0fcc9e55
JJ
25832003-02-06 Jakub Jelinek <jakub@redhat.com>
2584
2585 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
2586 attribute.
2587
63b87c2e
CC
25882003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
2589 Andreas Schwab <schwab@suse.de>
2590
c6900272 2591 * configure.in: Adjust command to source config-ml.in to account
63b87c2e
CC
2592 for changes to the libffi_basedir definition.
2593 (libffi_basedir): Remove ${srcdir} from value and include trailing
2594 slash if nonempty.
c930d8a5 2595
c6900272 2596 * configure: Regenerate.
63b87c2e 2597
c33402e2
FS
25982003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2599
2600 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
2601
fd2e49b2
AH
26022003-01-28 Andrew Haley <aph@redhat.com>
2603
2604 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
2605 * src/x86/ffi64.c (ffi_prep_closure): New.
2606 (ffi_closure_UNIX64_inner): New.
2607 * src/x86/unix64.S (ffi_closure_UNIX64): New.
2608
0e292c01
AO
26092003-01-27 Alexandre Oliva <aoliva@redhat.com>
2610
2611 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
2612 Remove USE_LIBDIR conditional.
2613 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
2614 * Makefile.in, configure: Rebuilt.
2615
acabc220
DE
26162003-01027 David Edelsohn <edelsohn@gnu.org>
2617
2618 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
2619 * Makefile.in: Regenerate.
2620
be0acd42
AH
26212003-01-22 Andrew Haley <aph@redhat.com>
2622
2623 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
2624 unwind info.
2625
ed695c8e
AT
26262003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2627
2628 * src/powerpc/darwin.S: Add unwind info.
2629 * src/powerpc/darwin_closure.S: Likewise.
2630
45ba15f4
AH
26312003-01-14 Andrew Haley <aph@redhat.com>
2632
2633 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
2634 (ffi_prep_cif_machdep): Likewise.
2635 * src/x86/unix64.S: Add unwind info.
2636
4b5f402e
AJ
26372003-01-14 Andreas Jaeger <aj@suse.de>
2638
2639 * src/ffitest.c (main): Only use ffi_closures if those are
2640 supported.
2641
7b5102af
TT
26422003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
2643
2644 * libffi/src/ffitest.c
c6900272 2645 add closure testcases
7b5102af
TT
2646
26472003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
2648
2649 * libffi/src/powerpc/ffi.c
c6900272 2650 fix alignment bug for float (4 byte aligned iso 8 byte)
7b5102af 2651
5f7c78d8
GK
26522003-01-09 Geoffrey Keating <geoffk@apple.com>
2653
2654 * src/powerpc/ffi_darwin.c: Remove RCS version string.
2655 * src/powerpc/darwin.S: Remove RCS version string.
2656
c75c7793
JS
26572003-01-03 Jeff Sturm <jsturm@one-point.com>
2658
2659 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
2660 * src/ffitest.c (main): Use static storage for closure.
2661 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
2662 * src/sparc/v8.S (ffi_closure_v8): New.
2663 * src/sparc/v9.S (ffi_closure_v9): New.
2664
eb3c46a1
RM
26652002-11-10 Ranjit Mathew <rmathew@hotmail.com>
2666
2667 * include/ffi.h.in: Added FFI_STDCALL ffi_type
2668 enumeration for X86_WIN32.
2669 * src/x86/win32.S: Added ffi_call_STDCALL function
2670 definition.
2671 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
2672 switch cases for recognising FFI_STDCALL and
2673 calling ffi_call_STDCALL if target is X86_WIN32.
2674 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
2675 stdcall versions of the "my_strlen" and "many"
2676 test functions (for X86_WIN32).
2677 Added test cases to test stdcall invocation using
2678 these functions.
2679
4977bab6
ZW
26802002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
2681
2682 * src/sh/sysv.S: Add DWARF2 unwind info.
2683
67333e84
UW
26842002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
2685
2686 * src/s390/sysv.S (.eh_frame section): Make section read-only.
2687
bc3cf760
JW
26882002-11-26 Jim Wilson <wilson@redhat.com>
2689
2690 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
2691
4977bab6
ZW
26922002-11-23 H.J. Lu <hjl@gnu.org>
2693
2694 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
2695 Include ../config/accross.m4.
2696 * aclocal.m4; Rebuild.
2697 * configure: Likewise.
2698
18789f4e
UW
26992002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
2700
2701 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
2702
6bee5372
DD
27032002-11-11 DJ Delorie <dj@redhat.com>
2704
2705 * configure.in: Look for common files in the right place.
2706
8177895b
UW
27072002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
2708
2709 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
2710 raw data as _Jv_word values, not ffi_raw.
2711 (ffi_java_ptrarray_to_raw): Likewise.
2712 (ffi_java_rvalue_to_raw): New function.
2713 (ffi_java_raw_call): Call it.
2714 (ffi_java_raw_to_rvalue): New function.
2715 (ffi_java_translate_args): Call it.
2716 * src/ffitest.c (closure_test_fn): Interpret return value
2717 as ffi_arg, not int.
2718 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
2719 FFI_TYPE_POINTER case.
2720 (ffi_closure_helper_SYSV): Likewise. Also, assume return
2721 values extended to word size.
2722
af50f4c8
AJ
27232002-10-02 Andreas Jaeger <aj@suse.de>
2724
2725 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
2726
5d297584
BT
27272002-10-01 Bo Thorsen <bo@smetana.suse.de>
2728
2729 * include/ffi.h.in: Fix i386 win32 compilation.
2730
c4f17c6f
UW
27312002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2732
2733 * configure.in: Add s390x-*-linux-* target.
2734 * configure: Regenerate.
2735 * include/ffi.h.in: Define S390X for s390x targets.
2736 (FFI_CLOSURES): Define for s390/s390x.
2737 (FFI_TRAMPOLINE_SIZE): Likewise.
2738 (FFI_NATIVE_RAW_API): Likewise.
2739 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
2740 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4977bab6 2741 * src/s390/ffi.c: Major rework of existing code. Add support for
c4f17c6f
UW
2742 s390x targets. Add closure support.
2743 * src/s390/sysv.S: Likewise.
2744
d7b52625
RE
27452002-09-29 Richard Earnshaw <rearnsha@arm.com>
2746
2747 * src/arm/sysv.S: Fix typo.
2748
28165e22
RE
27492002-09-28 Richard Earnshaw <rearnsha@arm.com>
2750
2751 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
2752 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
2753 (ffi_call_SYSV): Handle soft-float.
2754
0b0f4163
BT
27552002-09-27 Bo Thorsen <bo@suse.de>
2756
2757 * include/ffi.h.in: Fix multilib x86-64 support.
2758
6c5d742e
KG
27592002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2760
2761 * Makefile.am (all-multi): Fix multilib parallel build.
2762
f4b2b0d6
KK
27632002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
2764
2765 * configure.in (sh[34]*-*-linux*): Add brackets.
2766 * configure: Regenerate.
2767
ddebdfeb
KK
27682002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
2769
2770 * Makefile.am: Add SH support.
2771 * Makefile.in: Regenerate.
2772 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
2773 * configure: Regenerate.
2774 * include/ffi.h.in: Add SH support.
2775 * src/sh/ffi.c: New file.
2776 * src/sh/sysv.S: New file.
2777 * src/types.c: Add SH support.
2778
c94974ca
BT
27792002-07-16 Bo Thorsen <bo@suse.de>
2780
2781 * src/x86/ffi64.c: New file that adds x86-64 support.
2782 * src/x86/unix64.S: New file that handles argument setup for
2783 x86-64.
2784 * src/x86/sysv.S: Don't use this on x86-64.
2785 * src/x86/ffi.c: Don't use this on x86-64.
2786 Remove unused vars.
2787 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
2788 for x86-64.
2789 * src/ffitest.c (struct6): New test that tests a special case in
2790 the x86-64 ABI.
2791 (struct7): Likewise.
2792 (struct8): Likewise.
2793 (struct9): Likewise.
2794 (closure_test_fn): Silence warning about this when it's not used.
2795 (main): Add the new tests.
2796 (main): Fix a couple of wrong casts and silence some compiler warnings.
2797 * include/ffi.h.in: Add x86-64 ABI definition.
2798 * fficonfig.h.in: Regenerate.
2799 * Makefile.am: Add x86-64 support.
2800 * configure.in: Likewise.
2801 * Makefile.in: Regenerate.
2802 * configure: Likewise.
2803
28042002-06-24 Bo Thorsen <bo@suse.de>
2805
2806 * src/types.c: Merge settings for similar architectures.
2807 Add x86-64 sizes and alignments.
2808
28092002-06-23 Bo Thorsen <bo@suse.de>
2810
2811 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
2812 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
2813 * src/mips/ffi.c (ffi_prep_args): Likewise.
2814 * src/m68k/ffi.c (ffi_prep_args): Likewise.
2815
5be36a8f
L
28162002-07-18 H.J. Lu (hjl@gnu.org)
2817
2818 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
2819 (libffi_la_SOURCES): Support MIPS_LINUX.
2820 (libffi_convenience_la_SOURCES): Likewise.
2821 * Makefile.in: Regenerated.
2822
2823 * configure.in (mips64*-*): Skip.
2824 (mips*-*-linux*): New.
2825 * configure: Regenerated.
2826
2827 * src/mips/ffi.c: Include <sgidefs.h>.
2828
ad5e163c
UW
28292002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2830
2831 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
2832
ee4586c5
RS
28332002-05-27 Roger Sayle <roger@eyesopen.com>
2834
2835 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
2836
b86aa7b0
BT
28372002-05-27 Bo Thorsen <bo@suse.de>
2838
2839 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
2840 fix formatting.
2841
859f7aaf
AT
28422002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
2843
2844 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
2845 beginning of function (for older apple cc).
2846
6706f116
AO
28472002-05-08 Alexandre Oliva <aoliva@redhat.com>
2848
2849 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
2850 script entry, and set LD to it when configuring multilibs.
2851 * configure: Rebuilt.
2852
fad655c8
JT
28532002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
2854
2855 * configure.in (sparc64-*-netbsd*): Add target.
2856 (sparc-*-netbsdelf*): Likewise.
2857 * configure: Regenerate.
2858
189ab118
DM
28592002-04-28 David S. Miller <davem@redhat.com>
2860
2861 * configure.in, configure: Fix SPARC test in previous change.
2862
22bcf65c
GT
28632002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
2864
2865 * Makefile.am: Add Linux for S/390 support.
2866 * Makefile.in: Regenerate.
2867 * configure.in: Add Linux for S/390 support.
2868 * configure: Regenerate.
2869 * include/ffi.h.in: Add Linux for S/390 support.
2870 * src/s390/ffi.c: New file from libffi CVS tree.
2871 * src/s390/sysv.S: New file from libffi CVS tree.
2872
5d84cf0b
JJ
28732002-04-28 Jakub Jelinek <jakub@redhat.com>
2874
2875 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
2876 %r_disp32().
2877 * src/sparc/v8.S: Use it.
2878 * src/sparc/v9.S: Likewise.
2879 * fficonfig.h.in: Rebuilt.
2880 * configure: Rebuilt.
2881
cc382e5c
HB
28822002-04-08 Hans Boehm <Hans_Boehm@hp.com>
2883
2884 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
2885 correctly.
2886 * src/ia64/unix.S: Add unwind information. Fix comments.
2887 Save sp in a way that's compatible with unwind info.
2888 (ffi_call_unix): Correctly restore sp in all cases.
2889 * src/ia64/ffi.c: Add, fix comments.
2890
dc798645
JJ
28912002-04-08 Jakub Jelinek <jakub@redhat.com>
2892
2893 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
2894
da00eaab
JT
28952002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
2896
2897 * configure.in (alpha*-*-netbsd*): Add target.
2898 * configure: Regenerate.
2899
0c0b87ad
JS
29002002-04-04 Jeff Sturm <jsturm@one-point.com>
2901
2902 * src/sparc/v8.S: Add unwind info.
2903 * src/sparc/v9.S: Likewise.
2904
320d7e7a
KW
29052002-03-30 Krister Walfridsson <cato@df.lth.se>
2906
2907 * configure.in: Enable i*86-*-netbsdelf*.
2908 * configure: Rebuilt.
4977bab6 2909
c75e51ed
DB
29102002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
2911
2912 PR other/2620
2913 * src/mips/n32.s: Delete
2914 * src/mips/o32.s: Delete
2915
5bb366e0
LR
29162002-03-21 Loren J. Rittle <ljrittle@acm.org>
2917
2918 * configure.in: Enable alpha*-*-freebsd*.
2919 * configure: Rebuilt.
2920
ce3b24a7
BM
29212002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2922
2923 * Makefile.am: libfficonvenience -> libffi_convenience.
2924 * Makefile.in: Rebuilt.
4977bab6 2925
1eb7ba30
BM
2926 * Makefile.am: Define ffitest_OBJECTS.
2927 * Makefile.in: Rebuilt.
ce3b24a7 2928
073ae293
AT
29292002-03-07 Andreas Tobler <toa@pop.agri.ch>
2930 David Edelsohn <edelsohn@gnu.org>
2931
2932 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2933 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
2934 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
2935 * Makefile.in: Regenerate.
2936 * include/ffi.h.in: Add AIX and Darwin closure definitions.
2937 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
2938 (flush_icache, flush_range): New functions.
2939 (ffi_closure_helper_DARWIN): New function.
2940 * src/powerpc/aix_closure.S: New file.
2941 * src/powerpc/darwin_closure.S: New file.
4977bab6 2942
02c521f4
JS
29432002-02-24 Jeff Sturm <jsturm@one-point.com>
2944
2945 * include/ffi.h.in: Add typedef for ffi_arg.
2946 * src/ffitest.c (main): Declare rint with ffi_arg.
4977bab6 2947
287dd527
AT
29482002-02-21 Andreas Tobler <toa@pop.agri.ch>
2949
2950 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
2951 number of GPRs for floating-point arguments.
2952
e2f2e70a
AG
29532002-01-31 Anthony Green <green@redhat.com>
2954
2955 * configure: Rebuilt.
2956 * configure.in: Replace CHECK_SIZEOF and endian tests with
2957 cross-compiler friendly macros.
2958 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
2959 macros.
2960
15b9b32f
DE
29612002-01-18 David Edelsohn <edelsohn@gnu.org>
2962
2963 * src/powerpc/darwin.S (_ffi_call_AIX): New.
1f7d5413 2964 * src/powerpc/aix.S (ffi_call_DARWIN): New.
15b9b32f 2965
2f4006f8
DE
29662002-01-17 David Edelsohn <edelsohn@gnu.org>
2967
2968 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
2969 (TARGET_SRC_POWERPC_AIX): New.
2970 (POWERPC_AIX): New stanza.
2971 * Makefile.in: Regenerate.
2972 * configure.in: Add AIX case.
2973 * configure: Regenerate.
2974 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
2975 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
2976 size. Fix "long double" support.
2977 (ffi_call): Add FFI_AIX case.
2978 * src/powerpc/aix.S: New.
2979
3c017635
JH
29802001-10-09 John Hornkvist <john@toastedmarshmallow.com>
2981
2982 Implement Darwin PowerPC ABI.
2983 * configure.in: Handle powerpc-*-darwin*.
2984 * Makefile.am: Set source files for POWERPC_DARWIN.
2985 * configure: Rebuilt.
2986 * Makefile.in: Rebuilt.
2987 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
2988 POWERPC_DARWIN.
2989 * src/powerpc/darwin.S: New file.
2990 * src/powerpc/ffi_darwin.c: New file.
2991
cc712abf
JM
29922001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
2993
2994 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
2995
03a8de49
RO
29962001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2997
2998 * src/x86/sysv.S: Avoid gas-only .balign directive.
2999 Use C style comments.
3000
92a0e6c6
RO
30012001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3002
3003 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
3004 Fixes PR bootstrap/3563.
3005
57482f58
RO
30062001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3007
3008 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
3009
d7e2dd2f
RO
30102001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3011
3012 * configure.in: Recognize sparc*-sun-* host.
3013 * configure: Regenerate.
4977bab6 3014
be72207c
AH
30152001-06-06 Andrew Haley <aph@redhat.com>
3016
4075db8f 3017 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
be72207c 3018
552cb45a
AH
30192001-06-03 Andrew Haley <aph@redhat.com>
3020
4075db8f
BT
3021 * src/alpha/osf.S: Add unwind info.
3022 * src/powerpc/sysv.S: Add unwind info.
3023 * src/powerpc/ppc_closure.S: Likewise.
552cb45a 3024
7d45b968
JS
30252000-05-31 Jeff Sturm <jsturm@one-point.com>
3026
3027 * configure.in: Fix AC_ARG_ENABLE usage.
3028 * configure: Rebuilt.
3029
2a7f63c4
BM
30302001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3031
3032 * configure.in: Remove warning about beta code.
3033 * configure: Rebuilt.
3034
30352001-04-25 Hans Boehm <Hans_Boehm@hp.com>
3036
03a55252
HB
3037 * src/ia64/unix.S: Restore stack pointer when returning from
3038 ffi_closure_UNIX.
3039 * src/ia64/ffi.c: Fix typo in comment.
3040
df5da1c4
JW
30412001-04-18 Jim Wilson <wilson@redhat.com>
3042
3043 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
3044 to eliminate RAW DV.
3045
52c28977
BM
30462001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
3047
3048 * Makefile.am: Make a libtool convenience library.
3049 * Makefile.in: Rebuilt.
3050
3b905056
BM
30512001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
3052
3053 * configure.in: Use different syntax for subdirectory creation.
3054 * configure: Rebuilt.
3055
d6c4152a
JB
30562001-03-27 Jon Beniston <jon@beniston.com>
3057
3058 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
3059 * configure: Rebuilt.
3060 * Makefile.am: Added X86_WIN32 target support.
3061 * Makefile.in: Rebuilt.
3062
3063 * include/ffi.h.in: Added X86_WIN32 target support.
3064
3065 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
3066 * src/types.c: Added X86_WIN32 target support.
3067
3068 * src/x86/win32.S: New file. Based on sysv.S, but with EH
3069 stuff removed and made to work with CygWin's gas.
3070
675cdab3
BM
30712001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
3072
3073 * configure.in: Make target subdirectory in build dir.
3074 * Makefile.am: Override suffix based rules to specify correct output
3075 subdirectory.
3076 * Makefile.in: Rebuilt.
3077 * configure: Rebuilt.
3078
e5f8858a 30792001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
cc4c8975
KH
3080
3081 * src/powerpc/ppc_closure.S: New file.
3082 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
3083 involving long long and register pairs.
3084 (ffi_prep_closure): New function.
3085 (flush_icache): Likewise.
3086 (ffi_closure_helper_SYSV): Likewise.
3087 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
3088 (FFI_TRAMPOLINE_SIZE): Likewise.
3089 (FFI_NATIVE_RAW_API): Likewise.
3090 * Makefile.in: Rebuilt.
3091 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
3092 (TARGET_SRC_POWERPC): Likewise.
3093
9450a929
TT
30942001-03-19 Tom Tromey <tromey@redhat.com>
3095
3096 * Makefile.in: Rebuilt.
3097 * Makefile.am (ffitest_LDFLAGS): New macro.
3098
4d2cf715
NC
30992001-03-02 Nick Clifton <nickc@redhat.com>
3100
3101 * include/ffi.h.in: Remove RCS ident string.
3102 * include/ffi_mips.h: Remove RCS ident string.
3103 * src/debug.c: Remove RCS ident string.
3104 * src/ffitest.c: Remove RCS ident string.
3105 * src/prep_cif.c: Remove RCS ident string.
3106 * src/types.c: Remove RCS ident string.
3107 * src/alpha/ffi.c: Remove RCS ident string.
3108 * src/alpha/osf.S: Remove RCS ident string.
3109 * src/arm/ffi.c: Remove RCS ident string.
3110 * src/arm/sysv.S: Remove RCS ident string.
3111 * src/mips/ffi.c: Remove RCS ident string.
3112 * src/mips/n32.S: Remove RCS ident string.
3113 * src/mips/o32.S: Remove RCS ident string.
3114 * src/sparc/ffi.c: Remove RCS ident string.
3115 * src/sparc/v8.S: Remove RCS ident string.
3116 * src/sparc/v9.S: Remove RCS ident string.
3117 * src/x86/ffi.c: Remove RCS ident string.
3118 * src/x86/sysv.S: Remove RCS ident string.
3119
7e5fd99f
JM
31202001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
3121
3122 * include/ffi.h.in: Change sourceware.cygnus.com references to
3123 gcc.gnu.org.
3124
3f67ba6e
RH
31252000-12-09 Richard Henderson <rth@redhat.com>
3126
3127 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
3128 (ffi_closure_osf_inner): Index rather than increment avalue
3129 and arg_types. Give ffi_closure_osf the raw return value type.
3130 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
3131 promotion.
3132
31332000-12-07 Richard Henderson <rth@redhat.com>
29fe0479
RH
3134
3135 * src/raw_api.c (ffi_translate_args): Fix typo.
3136 (ffi_prep_closure): Likewise.
3137
3138 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3139 FFI_TRAMPOLINE_SIZE.
3140 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3141 cif->bytes for new ffi_call_osf implementation.
3142 (ffi_prep_args): Absorb into ...
3143 (ffi_call): ... here. Do all stack allocation here and
3144 avoid a callback function.
3145 (ffi_prep_closure, ffi_closure_osf_inner): New.
3146 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3147 (ffi_closure_osf): New.
3148
2f7bf5b7
AO
31492000-09-10 Alexandre Oliva <aoliva@redhat.com>
3150
ed1c1a1a
AO
3151 * config.guess, config.sub, install-sh: Removed.
3152 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3153 * Makefile.in: Rebuilt.
3154
2f7bf5b7
AO
3155 * acinclude.m4: Include libtool macros from the top level.
3156 * aclocal.m4, configure: Rebuilt.
3157
e15a68e7
AO
31582000-08-22 Alexandre Oliva <aoliva@redhat.com>
3159
3160 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3161 * configure: Rebuilt.
3162
7f8c11d5
SB
31632000-05-11 Scott Bambrough <scottb@netwinder.org>
3164
4977bab6
ZW
3165 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3166 memory correctly. Use conditional instructions, not branches where
7f8c11d5
SB
3167 possible.
3168
c5acf51f
TT
31692000-05-04 Tom Tromey <tromey@cygnus.com>
3170
3171 * configure: Rebuilt.
3172 * configure.in: Match `arm*-*-linux-*'.
3173 From Chris Dornan <cdornan@arm.com>.
3174
91bffbe9
JJ
31752000-04-28 Jakub Jelinek <jakub@redhat.com>
3176
3177 * Makefile.am (SUBDIRS): Define.
3178 (AM_MAKEFLAGS): Likewise.
3179 (Multilib support.): Add section.
3180 * Makefile.in: Rebuilt.
3181 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4075db8f
BT
3182 New variables. Set for gcc using -print-multi-lib. Export them
3183 to libtool.
3184 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3185 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3186 for -shared links.
3187 (extra_compiler_flags_value, extra_compiler_flags): Check these
3188 for extra compiler options which need to be passed down in
3189 compiler_flags.
91bffbe9 3190
bd66587e
AG
31912000-04-16 Anthony Green <green@redhat.com>
3192
3193 * configure: Rebuilt.
3194 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3195
3791773c
JJ
31962000-04-14 Jakub Jelinek <jakub@redhat.com>
3197
4075db8f 3198 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3791773c
JJ
3199 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3200 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3201 Replace all void * sizeofs with sizeof(int).
3202 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3203 different than DOUBLE.
3204 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3205 (ffi_prep_args_v9): New function.
3206 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3207 (ffi_V9_return_struct): New function.
3208 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3209 32bit code (not yet cross-arch calls).
3210 * src/sparc/v8.S: Add struct return delay nop.
3211 Handle long long.
3212 * src/sparc/v9.S: New file.
3213 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
3214 is used on sparc64 only for structures larger than 32 bytes.
3215 Pass by reference for structures is done for structure arguments
3216 larger than 16 bytes.
3217 * src/ffitest.c (main): Use 64bit rint on sparc64.
3218 Run long long tests on sparc.
3219 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3220 sparc64.
3221 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3222 on sparc64.
3223 * configure.in (sparc-*-linux*): New supported target.
3224 (sparc64-*-linux*): Likewise.
3225 * configure: Rebuilt.
3226 * Makefile.am: Add v9.S to SPARC files.
3227 * Makefile.in: Likewise.
3228 (LINK): Surround $(CCLD) into double quotes, so that multilib
3229 compiles work correctly.
3230
db459595
APB
32312000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
3232
3233 * configure: Rebuilt.
3234 * configure.in: (i*86-*-solaris*): New libffi target. Patch
3235 proposed by Bryce McKinlay.
3236
c1f63902
TT
32372000-03-20 Tom Tromey <tromey@cygnus.com>
3238
3239 * Makefile.in: Hand edit for java_raw_api.lo.
3240
0f72dc9e
BM
32412000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
3242
3243 * config.guess, config.sub: Update from the gcc tree.
3244 Fix for PR libgcj/168.
3245
3c18f2d1
TT
32462000-03-03 Tom Tromey <tromey@cygnus.com>
3247
323eee8a
TT
3248 * Makefile.in: Fixed ia64 by hand.
3249
3c18f2d1
TT
3250 * configure: Rebuilt.
3251 * configure.in (--enable-multilib): New option.
3252 (libffi_basedir): New subst.
3253 (AC_OUTPUT): Added multilib code.
3254
a2b10a92
TT
32552000-03-02 Tom Tromey <tromey@cygnus.com>
3256
3257 * Makefile.in: Rebuilt.
3258 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3259 directory name.
3260
dc5de370
HB
32612000-02-25 Hans Boehm <boehm@acm.org>
3262
3263 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3264 files.
3265 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
3266 list.
3267 (ffi_prep_raw_closure): Use ffi_translate_args, not
3268 ffi_closure_translate.
3269 * src/java_raw_api.c: New file.
3270 * src/ffitest.c (closure_test_fn): New function.
3271 (main): Define `rint' as long long on IA64. Added new test when
3272 FFI_CLOSURES is defined.
3273 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3274 (ffi_abi): Recognize IA64.
3275 (ffi_raw): Added `flt' field.
3276 Added "Java raw API" code.
3277 * configure.in: Recognize ia64.
3278 * Makefile.am (TARGET_SRC_IA64): New macro.
3279 (libffi_la_common_SOURCES): Added java_raw_api.c.
3280 (libffi_la_SOURCES): Define in IA64 case.
3281
d79229bd
TT
32822000-01-04 Tom Tromey <tromey@cygnus.com>
3283
3284 * Makefile.in: Rebuilt with newer automake.
3285
2c33b220
TT
32861999-12-31 Tom Tromey <tromey@cygnus.com>
3287
3288 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3289
6ba9e3b0
TT
32901999-09-01 Tom Tromey <tromey@cygnus.com>
3291
3292 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3293 undefs.
3294 * fficonfig.h.in: Rebuilt.
3295 * configure: Rebuilt.
3296 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3297 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3298 * acconfig.h: Don't #undef PACKAGE or VERSION.
3299
63e5e3e0
AG
33001999-08-09 Anthony Green <green@cygnus.com>
3301
3302 * include/ffi.h.in: Try to work around messy header problem
3303 with PACKAGE and VERSION.
3304
3305 * configure: Rebuilt.
3306 * configure.in: Change version to 2.00-beta.
3307
4075db8f 3308 * fficonfig.h.in: Rebuilt.
63e5e3e0
AG
3309 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3310
3311 * src/x86/ffi.c (ffi_raw_call): Rename.
3312
33131999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
3314
3315 * src/x86/ffi.c (ffi_closure_SYSV): New function.
3316 (ffi_prep_incoming_args_SYSV): Ditto.
3317 (ffi_prep_closure): Ditto.
3318 (ffi_closure_raw_SYSV): Ditto.
3319 (ffi_prep_raw_closure): More ditto.
3320 (ffi_call_raw): Final ditto.
3321
3322 * include/ffi.h.in: Add definitions for closure and raw API.
3323
3324 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4977bab6 3325 FFI_TYPE_UINT64.
63e5e3e0
AG
3326
3327 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3328
3329 * src/raw_api.c: New file.
3330
3331 * include/ffi.h.in (ffi_raw): New type.
3332 (UINT_ARG, SINT_ARG): New defines.
3333 (ffi_closure, ffi_raw_closure): New types.
3334 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4977bab6 3335
63e5e3e0
AG
3336 * configure.in: Add check for endianness and sizeof void*.
3337
3338 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3339 instead of directly.
3340
3341 * configure: Rebuilt.
3342
3343Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
3344
3345 * configure.in: Add x86 and powerpc BeOS configurations.
3346 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3347
33481999-05-09 Anthony Green <green@cygnus.com>
3349
3350 * configure.in: Add warning about this being beta code.
3351 Remove src/Makefile.am from the picture.
3352 * configure: Rebuilt.
3353
3354 * Makefile.am: Move logic from src/Makefile.am. Add changes
3355 to support libffi as a target library.
3356 * Makefile.in: Rebuilt.
3357
3358 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3359 Upgraded to new autoconf, automake, libtool.
3360
3361 * README: Tweaks.
3362
3363 * LICENSE: Update copyright date.
3364
3365 * src/Makefile.am, src/Makefile.in: Removed.
3366
33671998-11-29 Anthony Green <green@cygnus.com>
3368
3369 * include/ChangeLog: Removed.
3370 * src/ChangeLog: Removed.
3371 * src/mips/ChangeLog: Removed.
3372 * src/sparc/ChangeLog: Remboved.
3373 * src/x86/ChangeLog: Removed.
3374
3375 * ChangeLog.v1: Created.