cls_multi_ushort.c, [...]: Remove xfail for mips64*-*-*.
[gcc.git] / libffi / ChangeLog
1 2007-08-10 David Daney <ddaney@avtrex.com>
2
3 * testsuite/libffi.call/cls_multi_ushort.c,
4 testsuite/libffi.call/cls_align_uint16.c,
5 testsuite/libffi.call/nested_struct1.c,
6 testsuite/libffi.call/nested_struct3.c,
7 testsuite/libffi.call/cls_7_1_byte.c,
8 testsuite/libffi.call/nested_struct5.c,
9 testsuite/libffi.call/cls_double.c,
10 testsuite/libffi.call/nested_struct7.c,
11 testsuite/libffi.call/cls_sint.c,
12 testsuite/libffi.call/nested_struct9.c,
13 testsuite/libffi.call/cls_20byte1.c,
14 testsuite/libffi.call/cls_multi_sshortchar.c,
15 testsuite/libffi.call/cls_align_sint64.c,
16 testsuite/libffi.call/cls_3byte2.c,
17 testsuite/libffi.call/cls_multi_schar.c,
18 testsuite/libffi.call/cls_multi_uchar.c,
19 testsuite/libffi.call/cls_19byte.c,
20 testsuite/libffi.call/cls_9byte1.c,
21 testsuite/libffi.call/cls_align_float.c,
22 testsuite/libffi.call/closure_fn1.c,
23 testsuite/libffi.call/problem1.c,
24 testsuite/libffi.call/closure_fn3.c,
25 testsuite/libffi.call/cls_sshort.c,
26 testsuite/libffi.call/closure_fn5.c,
27 testsuite/libffi.call/cls_align_double.c,
28 testsuite/libffi.call/nested_struct.c,
29 testsuite/libffi.call/cls_2byte.c,
30 testsuite/libffi.call/nested_struct10.c,
31 testsuite/libffi.call/cls_4byte.c,
32 testsuite/libffi.call/cls_6byte.c,
33 testsuite/libffi.call/cls_8byte.c,
34 testsuite/libffi.call/cls_multi_sshort.c,
35 testsuite/libffi.call/cls_align_sint16.c,
36 testsuite/libffi.call/cls_align_uint32.c,
37 testsuite/libffi.call/cls_20byte.c,
38 testsuite/libffi.call/cls_float.c,
39 testsuite/libffi.call/nested_struct2.c,
40 testsuite/libffi.call/cls_5_1_byte.c,
41 testsuite/libffi.call/nested_struct4.c,
42 testsuite/libffi.call/cls_24byte.c,
43 testsuite/libffi.call/nested_struct6.c,
44 testsuite/libffi.call/cls_64byte.c,
45 testsuite/libffi.call/nested_struct8.c,
46 testsuite/libffi.call/cls_uint.c,
47 testsuite/libffi.call/cls_multi_ushortchar.c,
48 testsuite/libffi.call/cls_schar.c,
49 testsuite/libffi.call/cls_uchar.c,
50 testsuite/libffi.call/cls_align_uint64.c,
51 testsuite/libffi.call/cls_ulonglong.c,
52 testsuite/libffi.call/cls_align_longdouble.c,
53 testsuite/libffi.call/cls_1_1byte.c,
54 testsuite/libffi.call/cls_12byte.c,
55 testsuite/libffi.call/cls_3_1byte.c,
56 testsuite/libffi.call/cls_3byte1.c,
57 testsuite/libffi.call/cls_4_1byte.c,
58 testsuite/libffi.call/cls_6_1_byte.c,
59 testsuite/libffi.call/cls_16byte.c,
60 testsuite/libffi.call/cls_18byte.c,
61 testsuite/libffi.call/closure_fn0.c,
62 testsuite/libffi.call/cls_9byte2.c,
63 testsuite/libffi.call/closure_fn2.c,
64 testsuite/libffi.call/closure_fn4.c,
65 testsuite/libffi.call/cls_ushort.c,
66 testsuite/libffi.call/closure_fn6.c,
67 testsuite/libffi.call/cls_5byte.c,
68 testsuite/libffi.call/cls_align_pointer.c,
69 testsuite/libffi.call/cls_7byte.c,
70 testsuite/libffi.call/cls_align_sint32.c,
71 testsuite/libffi.special/unwindtest_ffi_call.cc,
72 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
73
74 2007-08-10 David Daney <ddaney@avtrex.com>
75
76 PR libffi/28313
77 * configure.ac: Don't treat mips64 as a special case.
78 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
79 * configure: Regenerate
80 * Makefile.in: Ditto.
81 * fficonfig.h.in: Ditto.
82 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
83 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
84 (FFI_DEFAULT_ABI): Set for n64 case.
85 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
86 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
87 (ffi_closure_N32): New function.
88 (.eh_frame): New section
89 * src/mips/o32.S: Clean up comments.
90 (ffi_closure_O32): Pass ffi_closure parameter in $12.
91 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
92 _MIPS_SIM == _ABIN32 throughout.
93 (FFI_MIPS_STOP_HERE): New, use in place of
94 ffi_stop_here.
95 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
96 to support n32/n64 ABIs.
97 (calc_n32_struct_flags): Rewrite.
98 (calc_n32_return_struct_flags): Remove unused variable. Reverse
99 position of flag bits.
100 (ffi_prep_cif_machdep): Rewrite n32 portion.
101 (ffi_call): Enable for n64. Add special handling for small structure
102 return values.
103 (ffi_prep_closure_loc): Add n32 and n64 support.
104 (ffi_closure_mips_inner_O32): Add cast to silence warning.
105 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
106
107 2007-08-08 David Daney <ddaney@avtrex.com>
108
109 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
110 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
111 specifiers.
112 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
113 * testsuite/libffi.call/cls_sint.c (main): Ditto.
114 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
115 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
116 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
117 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
118 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
119 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
120 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
121 * testsuite/libffi.call/return_fl3.c (main): Ditto.
122 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
123 * testsuite/libffi.call/nested_struct.c (main): Ditto.
124 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
125 * testsuite/libffi.call/return_ll1.c (main): Ditto.
126 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
127 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
128 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
129 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
130 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
131 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
132 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
133 * testsuite/libffi.call/cls_uint.c (main): Ditto.
134 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
135 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
136 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
137 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
138 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
139 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
140 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
141 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
142 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
143
144 2007-08-07 Andrew Haley <aph@redhat.com>
145
146 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
147 checkin.
148
149 2007-08-06 Andrew Haley <aph@redhat.com>
150
151 PR testsuite/32843
152 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
153 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
154 FFI_TYPE_SINT32.
155
156 2007-08-02 David Daney <ddaney@avtrex.com>
157
158 * testsuite/libffi.call/return_ul.c (main): Define return type as
159 ffi_arg. Use proper printf conversion specifier.
160
161 2007-07-30 Andrew Haley <aph@redhat.com>
162
163 PR testsuite/32843
164 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
165 signed/unsigned int8/16.
166 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
167 Use a jump table.
168 Remove code to pop args from the stack after call.
169 Special-case signed/unsigned int8/16.
170 * testsuite/libffi.call/return_sc.c (main): Revert.
171
172 2007-07-26 Richard Guenther <rguenther@suse.de>
173
174 PR testsuite/32843
175 * testsuite/libffi.call/return_sc.c (main): Verify call
176 result as signed char, not ffi_arg.
177
178 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
179
180 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
181 * configure: Regenerate.
182
183 2007-07-11 David Daney <ddaney@avtrex.com>
184
185 * src/mips/ffi.c: Don't include sys/cachectl.h.
186 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
187 cacheflush().
188
189 2007-05-18 Aurelien Jarno <aurelien@aurel32.net>
190
191 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
192 from (ffi_prep_closure): ... this.
193 (FFI_INIT_TRAMPOLINE): Adjust.
194
195 2005-12-31 Phil Blundell <pb@reciva.com>
196
197 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
198 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
199 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
200 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
201 (FFI_CLOSURES): Enable closure support.
202
203 2007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
204
205 * testsuite/libffi.call/cls_multi_ushort.c,
206 testsuite/libffi.call/cls_align_uint16.c,
207 testsuite/libffi.call/nested_struct1.c,
208 testsuite/libffi.call/nested_struct3.c,
209 testsuite/libffi.call/cls_7_1_byte.c,
210 testsuite/libffi.call/cls_double.c,
211 testsuite/libffi.call/nested_struct5.c,
212 testsuite/libffi.call/nested_struct7.c,
213 testsuite/libffi.call/cls_sint.c,
214 testsuite/libffi.call/nested_struct9.c,
215 testsuite/libffi.call/cls_20byte1.c,
216 testsuite/libffi.call/cls_multi_sshortchar.c,
217 testsuite/libffi.call/cls_align_sint64.c,
218 testsuite/libffi.call/cls_3byte2.c,
219 testsuite/libffi.call/cls_multi_schar.c,
220 testsuite/libffi.call/cls_multi_uchar.c,
221 testsuite/libffi.call/cls_19byte.c,
222 testsuite/libffi.call/cls_9byte1.c,
223 testsuite/libffi.call/cls_align_float.c,
224 testsuite/libffi.call/closure_fn1.c,
225 testsuite/libffi.call/problem1.c,
226 testsuite/libffi.call/closure_fn3.c,
227 testsuite/libffi.call/cls_sshort.c,
228 testsuite/libffi.call/closure_fn5.c,
229 testsuite/libffi.call/cls_align_double.c,
230 testsuite/libffi.call/cls_2byte.c,
231 testsuite/libffi.call/nested_struct.c,
232 testsuite/libffi.call/nested_struct10.c,
233 testsuite/libffi.call/cls_4byte.c,
234 testsuite/libffi.call/cls_6byte.c,
235 testsuite/libffi.call/cls_8byte.c,
236 testsuite/libffi.call/cls_multi_sshort.c,
237 testsuite/libffi.call/cls_align_uint32.c,
238 testsuite/libffi.call/cls_align_sint16.c,
239 testsuite/libffi.call/cls_float.c,
240 testsuite/libffi.call/cls_20byte.c,
241 testsuite/libffi.call/cls_5_1_byte.c,
242 testsuite/libffi.call/nested_struct2.c,
243 testsuite/libffi.call/cls_24byte.c,
244 testsuite/libffi.call/nested_struct4.c,
245 testsuite/libffi.call/nested_struct6.c,
246 testsuite/libffi.call/cls_64byte.c,
247 testsuite/libffi.call/nested_struct8.c,
248 testsuite/libffi.call/cls_uint.c,
249 testsuite/libffi.call/cls_multi_ushortchar.c,
250 testsuite/libffi.call/cls_schar.c,
251 testsuite/libffi.call/cls_uchar.c,
252 testsuite/libffi.call/cls_align_uint64.c,
253 testsuite/libffi.call/cls_ulonglong.c,
254 testsuite/libffi.call/cls_align_longdouble.c,
255 testsuite/libffi.call/cls_1_1byte.c,
256 testsuite/libffi.call/cls_12byte.c,
257 testsuite/libffi.call/cls_3_1byte.c,
258 testsuite/libffi.call/cls_3byte1.c,
259 testsuite/libffi.call/cls_4_1byte.c,
260 testsuite/libffi.call/cls_6_1_byte.c,
261 testsuite/libffi.call/cls_16byte.c,
262 testsuite/libffi.call/cls_18byte.c,
263 testsuite/libffi.call/closure_fn0.c,
264 testsuite/libffi.call/cls_9byte2.c,
265 testsuite/libffi.call/closure_fn2.c,
266 testsuite/libffi.call/closure_fn4.c,
267 testsuite/libffi.call/cls_ushort.c,
268 testsuite/libffi.call/closure_fn6.c,
269 testsuite/libffi.call/cls_5byte.c,
270 testsuite/libffi.call/cls_align_pointer.c,
271 testsuite/libffi.call/cls_7byte.c,
272 testsuite/libffi.call/cls_align_sint32.c,
273 testsuite/libffi.special/unwindtest_ffi_call.cc,
274 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
275
276 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
277
278 * aclocal.m4: Regenerated.
279
280 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
281
282 * configure: Regenerate.
283
284 2007-05-23 Steve Ellcey <sje@cup.hp.com>
285
286 * Makefile.in: Regenerate.
287 * configure: Regenerate.
288 * aclocal.m4: Regenerate.
289 * include/Makefile.in: Regenerate.
290 * testsuite/Makefile.in: Regenerate.
291
292 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
293
294 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
295 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
296 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
297 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
298 (FFI_CLOSURES): Enable closure support.
299
300 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
301
302 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
303 * configure: Regenerate.
304 * fficonfig.h.in: Regenerate.
305 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
306 CFI_OFFSET,CFI_DEF_CFA): New macros.
307 (ffi_call_SYSV): Add callframe annotation.
308
309 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
310
311 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
312 numerous test suite failures.
313 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
314
315 2007-04-11 Paolo Bonzini <bonzini@gnu.org>
316
317 * Makefile.am (EXTRA_DIST): Bring up to date.
318 * Makefile.in: Regenerate.
319 * src/frv/eabi.S: Remove RCS keyword.
320
321 2007-04-06 Richard Henderson <rth@redhat.com>
322
323 * configure.ac: Tidy target case.
324 (HAVE_LONG_DOUBLE): Allow the target to override.
325 * configure: Regenerate.
326 * include/ffi.h.in: Don't define ffi_type_foo if
327 LIBFFI_HIDE_BASIC_TYPES is defined.
328 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
329 to ffi_type_double.
330 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
331 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
332 (ffi_type_longdouble): Special case for Alpha. Don't define
333 if long double == double.
334
335 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
336 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
337 (ffi_call, ffi_closure_osf_inner): Likewise.
338 (ffi_closure_osf_inner): Likewise. Mark hidden.
339 (ffi_call_osf, ffi_closure_osf): Mark hidden.
340 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
341 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
342 (load_table): Handle 128-bit long double.
343
344 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
345
346 2007-04-06 Tom Tromey <tromey@redhat.com>
347
348 PR libffi/31491:
349 * README: Fixed bug in example.
350
351 2007-04-03 Jakub Jelinek <jakub@redhat.com>
352
353 * src/closures.c: Include sys/statfs.h.
354 (_GNU_SOURCE): Define on Linux.
355 (FFI_MMAP_EXEC_SELINUX): Define.
356 (selinux_enabled): New variable.
357 (selinux_enabled_check): New function.
358 (is_selinux_enabled): Define.
359 (dlmmap): Use it.
360
361 2007-03-24 Uros Bizjak <ubizjak@gmail.com>
362
363 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
364 Use 'volatile float sum' to create sum of floats to avoid false
365 negative due to excess precision on ix86 targets.
366 (main): Ditto.
367
368 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
369
370 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
371 patch.
372 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
373
374 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
375
376 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
377 (ffi_prep_closure_loc): New.
378 (ffi_prep_raw_closure_loc): New.
379 (ffi_prep_java_raw_closure_loc): New.
380 * src/closures.c: New file.
381 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
382 Replace sflags with exec_offset.
383 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
384 sub_segment_exec_offset): New macros.
385 (get_segment_flags, set_segment_flags, check_segment_merge): New
386 macros.
387 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
388 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
389 destroy_mspace): Use new macros.
390 (sys_alloc): Silence warning.
391 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
392 * Makefile.in: Rebuilt.
393 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
394 terms of ffi_prep_closure_loc.
395 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
396 from...
397 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
398 renamed version.
399 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
400 adjusted from...
401 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
402 the renamed version.
403 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
404 (ffi_prep_closure): ... this.
405 * src/pa/ffi.c: Likewise.
406 * src/cris/ffi.c: Likewise. Adjust.
407 * src/frv/ffi.c: Likewise.
408 * src/ia64/ffi.c: Likewise.
409 * src/mips/ffi.c: Likewise.
410 * src/powerpc/ffi_darwin.c: Likewise.
411 * src/s390/ffi.c: Likewise.
412 * src/sh/ffi.c: Likewise.
413 * src/sh64/ffi.c: Likewise.
414 * src/sparc/ffi.c: Likewise.
415 * src/x86/ffi64.c: Likewise.
416 * src/x86/ffi.c: Likewise.
417 (FFI_INIT_TRAMPOLINE): Adjust.
418 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
419 (ffi_prep_raw_closure): ... this.
420 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
421 (ffi_prep_closure): ... this.
422 (flush_icache): Adjust.
423
424 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
425
426 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
427 Lea's malloc.
428
429 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
430
431 * Makefile.am: Add dummy install-pdf target.
432 * Makefile.in: Regenerate
433
434 2007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
435
436 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
437 ffi_closure_helper_SYSV): Add long double handling.
438
439 2007-02-02 Jakub Jelinek <jakub@redhat.com>
440
441 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
442 immediately after bctrl instruction.
443
444 2007-01-18 Alexandre Oliva <aoliva@redhat.com>
445
446 * Makefile.am (all-recursive, install-recursive,
447 mostlyclean-recursive, clean-recursive, distclean-recursive,
448 maintainer-clean-recursive): Add missing targets.
449 * Makefile.in: Rebuilt.
450
451 2006-12-14 Andreas Tobler <a.tobler@schweiz.org>
452
453 * configure.ac: Add TARGET for x86_64-*-darwin*.
454 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
455 for X86_DARWIN.
456 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
457 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
458 * configure: Regenerate.
459 * Makefile.in: Regenerate.
460 * include/Makefile.in: Regenerate.
461 * testsuite/Makefile.in: Regenerate.
462 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
463 ffi_call only.
464
465 2006-12-13 Andreas Tobler <a.tobler@schweiz.org>
466
467 * aclocal.m4: Regenerate with aclocal -I .. as written in the
468 Makefile.am.
469
470 2006-10-31 Geoffrey Keating <geoffk@apple.com>
471
472 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
473 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
474 Darwin.
475 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
476 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
477
478 2006-10-10 Paolo Bonzini <bonzini@gnu.org>
479 Sandro Tolaini <tolaini@libero.it>
480
481 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
482 conditional.
483 * configure: Regenerated.
484 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
485 (EXTRA_DIST): Add src/x86/darwin.S.
486 * Makefile.in: Regenerated.
487 * include/Makefile.in: Regenerated.
488 * testsuite/Makefile.in: Regenerated.
489
490 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
491 X86_WIN32, and additionally align stack to 16 bytes.
492 * src/x86/darwin.S: New, based on sysv.S.
493 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
494
495 2006-09-12 David Daney <ddaney@avtrex.com>
496
497 PR libffi/23935
498 * include/Makefile.am: Install both ffi.h and ffitarget.h in
499 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
500 * aclocal.m4: Regenerated for automake 1.9.6.
501 * Makefile.in: Regenerated.
502 * include/Makefile.in: Regenerated.
503 * testsuite/Makefile.in: Regenerated.
504
505 2006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
506
507 * include/ffi_common.h (struct): Revert accidental commit.
508
509 2006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
510
511 * include/ffi_common.h: Remove lint directives.
512 * include/ffi.h.in: Likewise.
513
514 2006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
515
516 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
517 for 32-bit architectures.
518 * testsuite/libffi.call/return_ul.c: New test case.
519
520 2006-07-19 David Daney <ddaney@avtrex.com>
521
522 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
523 xfail remains for mips64.
524
525 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
526
527 * Makefile.am: Add install-html target. Add install-html to .PHONY
528 * Makefile.in: Regenerate.
529 * aclocal.m4: Regenerate.
530 * include/Makefile.in: Regenerate.
531 * testsuite/Makefile.in: Regenerate.
532
533 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
534
535 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
536 stack slot.
537
538 2006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
539
540 * README: Remove notice about 'Crazy Comments'.
541 * src/debug.c: Remove lint directives. Cleanup white spaces.
542 * src/java_raw_api.c: Likewise.
543 * src/prep_cif.c: Likewise.
544 * src/raw_api.c: Likewise.
545 * src/ffitest.c: Delete. No longer needed, all test cases migrated
546 to the testsuite.
547 * src/arm/ffi.c: Remove lint directives.
548 * src/m32r/ffi.c: Likewise.
549 * src/pa/ffi.c: Likewise.
550 * src/powerpc/ffi.c: Likewise.
551 * src/powerpc/ffi_darwin.c: Likewise.
552 * src/sh/ffi.c: Likewise.
553 * src/sh64/ffi.c: Likewise.
554 * src/x86/ffi.c: Likewise.
555 * testsuite/libffi.call/float2.c: Likewise.
556 * testsuite/libffi.call/promotion.c: Likewise.
557 * testsuite/libffi.call/struct1.c: Likewise.
558
559 2006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
560
561 * src/pa/hpux32.S: Correct unwind offset calculation for
562 ffi_closure_pa32.
563 * src/pa/linux.S: Likewise.
564
565 2006-04-12 James E Wilson <wilson@specifix.com>
566
567 PR libgcj/26483
568 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
569 (hfa_type_load): Call stf_spill.
570 (hfa_type_store): Call ldf_fill.
571 (ffi_call): Adjust calls to above routines. Add local temps for
572 macro result.
573
574 2006-04-10 Matthias Klose <doko@debian.org>
575
576 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
577 directory names containing underscores.
578
579 2006-04-07 James E Wilson <wilson@specifix.com>
580
581 * testsuite/libffi.call/float4.c: New testcase.
582
583 2006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
584 Andreas Tobler <a.tobler@schweiz.ch>
585
586 * Makefile.am: Add PA_HPUX port.
587 * Makefile.in: Regenerate.
588 * include/Makefile.in: Likewise.
589 * testsuite/Makefile.in: Likewise.
590 * configure.ac: Add PA_HPUX rules.
591 * configure: Regenerate.
592 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
593 Add PA_HPUX and PA64_HPUX.
594 Rename FFI_LINUX ABI to FFI_PA32 ABI.
595 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
596 (FFI_TYPE_SMALL_STRUCT2): Define.
597 (FFI_TYPE_SMALL_STRUCT4): Likewise.
598 (FFI_TYPE_SMALL_STRUCT8): Likewise.
599 (FFI_TYPE_SMALL_STRUCT3): Redefine.
600 (FFI_TYPE_SMALL_STRUCT5): Likewise.
601 (FFI_TYPE_SMALL_STRUCT6): Likewise.
602 (FFI_TYPE_SMALL_STRUCT7): Likewise.
603 * src/pa/ffi.c (ROUND_DOWN): Delete.
604 (fldw, fstw, fldd, fstd): Use '__asm__'.
605 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
606 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
607 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
608 Simplify incrementing of stack slot variable. Change type of local
609 'n' to unsigned int.
610 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
611 double on PA_HPUX.
612 (ffi_prep_cif_machdep): Likewise.
613 (ffi_call): Likewise.
614 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
615 return type to ffi_status. Simplify incrementing of stack slot
616 variable. Only copy floating point argument registers when PA_LINUX
617 is true. Reformat debug statement.
618 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
619 FFI_TYPE_SMALL_STRUCT8.
620 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
621 declaration.
622 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
623 Add nops to cache flush. Add trampoline for PA_HPUX.
624 * src/pa/hpux32.S: New file.
625 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
626 ffi_prep_args_LINUX to ffi_prep_args_pa32.
627 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
628 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
629 argument type checks so that common argument types appear first.
630 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
631 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
632
633 2006-03-24 Alan Modra <amodra@bigpond.net.au>
634
635 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
636 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
637 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
638 FFI_TYPE_LONGDOUBLE.
639 (ffi_prep_args64): Assert using IBM extended double.
640 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
641 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
642 (ffi_call): Handle FFI_LINUX.
643 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
644 gpr3 return pointer as for struct return. Handle FFI_LINUX
645 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
646 unnecessarily.
647 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
648 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
649 Don't use r6 as pointer to results, instead use sp offset. Don't
650 make a special call to load lr with case table address, instead
651 use offset from previous call.
652 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
653 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
654 return.
655
656 2006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
657
658 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
659 passed with FP registers correctly.
660 (ffi_closure_helper_SYSV): Likewise.
661 * src/sh64/sysv.S: Likewise.
662
663 2006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
664
665 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
666 args and userdata unused.
667 (closure_test_fn1): Mark cif and userdata unused.
668 (main): Remove unused res.
669
670 2006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
671
672 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
673 -O2, -O3, -Os and the warning flags -W -Wall.
674 * testsuite/libffi.special/special.exp: Likewise.
675 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
676 unused parameter unused for gcc or else do nothing.
677 * testsuite/libffi.special/ffitestcxx.h: Likewise.
678 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
679 and userdata unused.
680 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
681 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
682 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
683 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
684 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
685 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
686 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
687 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
688 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
689 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
690 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
691 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
692 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
693 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
694 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
695 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
696 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
697 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
698 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
699 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
700 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
701 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
702 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
703 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
704 Likewise.
705 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
706 Likewise.
707 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
708 Likewise.
709 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
710 void* to avoid compiler warning.
711 (main): Likewise.
712 (cls_struct_align_gn): Mark cif and userdata unused.
713 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
714 Likewise.
715 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
716 Likewise.
717 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
718 Likewise.
719 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
720 Likewise.
721 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
722 Likewise.
723 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
724 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
725 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
726 data unused.
727 (main): Cast res_call to silence gcc.
728 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
729 data unused.
730 (main): Cast res_call to silence gcc.
731 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
732 and data unused.
733 (main): Cast res_call to silence gcc.
734 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
735 data unused.
736 (main): Cast res_call to silence gcc.
737 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
738 data unused.
739 (main): Cast res_call to silence gcc.
740 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
741 and data unused.
742 (main): Cast res_call to silence gcc.
743 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
744 userdata unused.
745 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
746 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
747 userdata unused.
748 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
749 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
750 userdata unused.
751 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
752 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
753 userdata unused.
754 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
755 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
756 userdata unused.
757 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
758 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
759 and userdata unused.
760 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
761 userdata unused.
762 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
763 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
764 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
765 Cleanup white spaces.
766 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
767 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
768 cif and userdata unused.
769 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
770 Likewise.
771 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
772 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
773 formatters to silence gcc.
774 (B_gn): Mark cif and userdata unused.
775 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
776 unused.
777 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
778 (B_gn): Mark cif and userdata unused.
779 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
780 unused.
781 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
782 (B_gn): Mark cif and userdata unused.
783 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
784 unused.
785 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
786 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
787 * testsuite/libffi.call/problem1.c (stub): Likewise.
788 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
789 gcc.
790 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
791 in the last commit for this test case in the test case itself.
792 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
793 unused.
794 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
795 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
796 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
797 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
798 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
799 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
800
801 2006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
802
803 * src/sh/sysv.S: Fix register numbers in the FDE for
804 ffi_closure_SYSV.
805
806 2006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
807
808 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
809 declaration to avoid a false negative on ix86. See PR323.
810
811 2006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
812
813 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
814 and cast integer to void * if needed. Update the pointer to
815 the FP register saved area correctly.
816
817 2006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
818
819 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
820 is fixed.
821 * testsuite/libffi.call/nested_struct4.c: Likewise.
822
823 2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
824
825 * testsuite/libffi.call/return_dbl.c: New test case.
826 * testsuite/libffi.call/return_dbl1.c: Likewise.
827 * testsuite/libffi.call/return_dbl2.c: Likewise.
828 * testsuite/libffi.call/return_fl.c: Likewise.
829 * testsuite/libffi.call/return_fl1.c: Likewise.
830 * testsuite/libffi.call/return_fl2.c: Likewise.
831 * testsuite/libffi.call/return_fl3.c: Likewise.
832 * testsuite/libffi.call/closure_fn6.c: Likewise.
833
834 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
835 definition.
836 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
837 here to be used by other test cases too.
838
839 * testsuite/libffi.call/nested_struct10.c: New test case.
840 * testsuite/libffi.call/nested_struct9.c: Likewise.
841 * testsuite/libffi.call/nested_struct8.c: Likewise.
842 * testsuite/libffi.call/nested_struct7.c: Likewise.
843 * testsuite/libffi.call/nested_struct6.c: Likewise.
844 * testsuite/libffi.call/nested_struct5.c: Likewise.
845 * testsuite/libffi.call/nested_struct4.c: Likewise.
846
847 2006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
848
849 * configure.ac: Enable libffi for sparc64-*-freebsd*.
850 * configure: Rebuilt.
851
852 2006-01-18 Jakub Jelinek <jakub@redhat.com>
853
854 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
855 instead do the shifting inline.
856 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
857 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
858 and 8 byte structs, for the remaining struct sizes don't call
859 __lshrdi3, instead do the shifting inline.
860
861 2005-12-07 Thiemo Seufer <ths@networkno.de>
862
863 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
864 missing parentheses.
865 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
866 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
867 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
868 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
869 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
870 FA_0_0_OFF2.
871 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
872 endianness bugs.
873 (ffi_prep_closure): Improve trampoline instruction scheduling.
874 (ffi_closure_mips_inner_O32): Fix endianness bugs.
875
876 2005-12-03 Alan Modra <amodra@bigpond.net.au>
877
878 * src/powerpc/ffi.c: Formatting.
879 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
880 (ffi_prep_args64): Likewise.
881
882 2005-09-30 Geoffrey Keating <geoffk@apple.com>
883
884 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
885 darwin, use -shared-libgcc not -lgcc_s, and explain why.
886
887 2005-09-26 Tom Tromey <tromey@redhat.com>
888
889 * testsuite/libffi.call/float1.c (value_type): New typedef.
890 (CANARY): New define.
891 (main): Check for result buffer overflow.
892 * src/powerpc/linux64.S: Handle linux64 long double returns.
893 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
894 (ffi_prep_cif_machdep): Handle linux64 long double returns.
895
896 2005-08-25 Alan Modra <amodra@bigpond.net.au>
897
898 PR target/23404
899 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
900 homed fp args.
901 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
902
903 2005-08-11 Jakub Jelinek <jakub@redhat.com>
904
905 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
906 (AH_BOTTOM): Add FFI_HIDDEN definition.
907 * configure: Rebuilt.
908 * fficonfig.h.in: Rebuilt.
909 * src/powerpc/ffi.c (hidden): Remove.
910 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
911 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
912 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
913 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
914 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
915 add FFI_HIDDEN to its prototype.
916 (ffi_closure_SYSV_inner): New.
917 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
918 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
919
920 2005-08-10 Alfred M. Szmidt <ams@gnu.org>
921
922 PR libffi/21819:
923 * configure: Rebuilt.
924 * configure.ac: Handle i*86-*-gnu*.
925
926 2005-08-09 Jakub Jelinek <jakub@redhat.com>
927
928 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
929 DW_CFA_offset_extended_sf rather than
930 DW_CFA_GNU_negative_offset_extended.
931 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
932
933 2005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
934
935 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
936 on sh3.
937 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
938 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
939 partially on register.
940 (ffi_closure_helper_SYSV): Likewise.
941 (ffi_prep_cif_machdep): Don't set too many cif->flags.
942
943 2005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
944
945 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
946 Remove empty line.
947 * src/sh64/ffi.c (simple_type): Remove.
948 (return_type): Handle small structures correctly.
949 (ffi_prep_args): Likewise.
950 (ffi_call): Likewise.
951 (ffi_closure_helper_SYSV): Likewise.
952 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
953 Emit position independent code if PIC and remove wrong datalabel
954 prefixes from EH data.
955
956 2005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
957
958 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
959 * Makefile.in: Regenerate.
960 * include/Makefile.in: Likewise.
961 * testsuite/Makefile.in: Likewise.
962 * configure.ac: Add POWERPC_FREEBSD rules.
963 * configure: Regenerate.
964 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
965 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
966 * src/powerpc/ffi.c: Add flags to handle small structure returns
967 in ffi_call_SYSV.
968 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
969 Aka FFI_SYSV.
970 (ffi_closure_helper_SYSV): Likewise.
971 * src/powerpc/ppc_closure.S: Add return types for small structures.
972 * src/powerpc/sysv.S: Add bits to handle small structures for
973 final SYSV 4 ABI.
974
975 2005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
976
977 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
978 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
979 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
980
981 2005-07-05 Randolph Chung <tausq@debian.org>
982
983 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
984 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
985 structures. Kill compilation warnings.
986 (ffi_closure_inner_LINUX): Print return values as hex in debug
987 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
988 Properly handle 5-7 byte structure returns.
989 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
990 (FFI_TYPE_SMALL_STRUCT2): Remove.
991 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
992 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
993 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
994 (checksmst1, checksmst2): Remove.
995 (checksmst3): Optimize handling of 3-byte struct returns.
996 (checksmst567): Properly handle 5-7 byte struct returns.
997
998 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
999
1000 PR libgcj/21943
1001 * src/mips/n32.S: Enforce PIC code.
1002 * src/mips/o32.S: Likewise.
1003
1004 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1005
1006 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1007 * configure: Regenerate.
1008
1009 2005-06-01 Alan Modra <amodra@bigpond.net.au>
1010
1011 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1012 to call ffi_closure_helper_SYSV. Append @local instead.
1013 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1014
1015 2005-05-17 Kelley Cook <kcook@gcc.gnu.org>
1016
1017 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1018 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1019 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1020 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1021 include/Makefile.in, testsuite/Makefile.in: Regenerate.
1022
1023 2005-05-09 Mike Stump <mrs@apple.com>
1024
1025 * configure: Regenerate.
1026
1027 2005-05-08 Richard Henderson <rth@redhat.com>
1028
1029 PR libffi/21285
1030 * src/alpha/osf.S: Update unwind into to match code.
1031
1032 2005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
1033 Richard Henderson <rth@redhat.com>
1034
1035 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1036 bit 11 of flags.
1037 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
1038 (ffi_prep_closure): Set carry bit if sse-used flag set.
1039 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1040 Only load sse registers if ssecount non-zero.
1041 (ffi_closure_unix64): Only save sse registers if carry set on entry.
1042
1043 2005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
1044
1045 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1046 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1047 * configure: Regenerate.
1048
1049 2005-04-20 Hans-Peter Nilsson <hp@axis.com>
1050
1051 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1052 have Tcl8.3-compatible intermediate variable.
1053
1054 2005-04-18 Simon Posnjak <simon.posnjak@siol.net>
1055 Hans-Peter Nilsson <hp@axis.com>
1056
1057 * Makefile.am: Add CRIS support.
1058 * configure.ac: Likewise.
1059 * Makefile.in, configure, testsuite/Makefile.in,
1060 include/Makefile.in: Regenerate.
1061 * src/cris: New directory.
1062 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1063 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
1064
1065 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1066 \r?\n in output tests.
1067
1068 2005-04-12 Mike Stump <mrs@apple.com>
1069
1070 * configure: Regenerate.
1071
1072 2005-03-30 Hans Boehm <Hans.Boehm@hp.com>
1073
1074 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
1075
1076 2005-03-30 Steve Ellcey <sje@cup.hp.com>
1077
1078 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
1079 (ffi_sarg) Ditto.
1080 * src/ia64/unix.S (ffi_closure_unix): Extend gp
1081 to 64 bits in ILP32 mode.
1082 Load 64 bits even for short data.
1083
1084 2005-03-23 Mike Stump <mrs@apple.com>
1085
1086 * src/powerpc/darwin.S: Update for -m64 multilib.
1087 * src/powerpc/darwin_closure.S: Likewise.
1088
1089 2005-03-21 Zack Weinberg <zack@codesourcery.com>
1090
1091 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1092 Do not set tool_include_dir.
1093 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
1094 Regenerate.
1095 * include/Makefile.am: Set gcc_version and toollibffidir.
1096 * include/Makefile.in: Regenerate.
1097
1098 2005-02-22 Andrew Haley <aph@redhat.com>
1099
1100 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
1101 odd-numbered register pairs for 64-bit integer types.
1102
1103 2005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
1104
1105 PR libffi/20104
1106 * testsuite/libffi.call/return_ll1.c: New test case.
1107
1108 2005-02-11 Janis Johnson <janis187@us.ibm.com>
1109
1110 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
1111 * testsuite/libffi.call/float.c: Ditto.
1112 * testsuite/libffi.call/float2.c: Ditto.
1113 * testsuite/libffi.call/float3.c: Ditto.
1114
1115 2005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
1116
1117 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
1118
1119 2005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1120
1121 * testsuite/libffi.special/special.exp (cxx_options): Add
1122 -shared-libgcc.
1123
1124 2004-12-31 Richard Henderson <rth@redhat.com>
1125
1126 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
1127 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
1128 offset parameters with a type parameter; deduce size and structure
1129 alignment. Update all users.
1130
1131 2004-12-31 Richard Henderson <rth@redhat.com>
1132
1133 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
1134 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
1135 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
1136 into ffi_prep_closure.
1137 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
1138 from scratch.
1139
1140 2004-12-27 Richard Henderson <rth@redhat.com>
1141
1142 * src/x86/unix64.S: Fix typo in unwind info.
1143
1144 2004-12-25 Richard Henderson <rth@redhat.com>
1145
1146 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
1147 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
1148 (merge_classes): Check for it.
1149 (SSE_CLASS_P): New.
1150 (classify_argument): Pass byte_offset by value; perform all updates
1151 inside struct case.
1152 (examine_argument): Add classes argument; handle
1153 X86_64_COMPLEX_X87_CLASS.
1154 (ffi_prep_args): Merge into ...
1155 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
1156 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
1157 (ffi_fill_return_value): Remove.
1158 (ffi_prep_closure): Remove dead assert.
1159 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
1160 Rewrite to use struct register_args instead of va_list. Create
1161 flags for handling structure returns.
1162 * src/x86/unix64.S: Remove dead strings.
1163 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
1164 stack frame with ffi_call. Handle structure returns properly.
1165 (float2sse, floatfloat2sse, double2sse): Remove.
1166 (sse2float, sse2double, sse2floatfloat): Remove.
1167 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
1168 to handle structure returns properly.
1169
1170 2004-12-08 David Edelsohn <edelsohn@gnu.org>
1171
1172 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
1173 PICFLAG.
1174 * Makefile.in: Regenerated.
1175
1176 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
1177
1178 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1179 * configure, aclocal.m4, Makefile.in: Regenerate.
1180 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
1181
1182 2004-11-29 Kelley Cook <kcook@gcc.gnu.org>
1183
1184 * configure: Regenerate for libtool change.
1185
1186 2004-11-25 Kelley Cook <kcook@gcc.gnu.org>
1187
1188 * configure: Regenerate for libtool reversion.
1189
1190 2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
1191
1192 * configure: Regenerate for libtool change.
1193
1194 2004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1195
1196 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
1197
1198 2004-11-23 Richard Sandiford <rsandifo@redhat.com>
1199
1200 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1201 of jal. Use an absolute encoding for the frame information.
1202
1203 2004-11-23 Kelley Cook <kcook@gcc.gnu.org>
1204
1205 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
1206 * acinclude.m4: Delete logic for sincludes.
1207 * aclocal.m4, Makefile.in, configure: Regenerate.
1208 * include/Makefile: Likewise.
1209 * testsuite/Makefile: Likewise.
1210
1211 2004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1212
1213 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1214 on a 8-byte boundary.
1215 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1216
1217 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
1218
1219 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1220 long long values. Round stack allocation to a multiple of 8 bytes
1221 for ATPCS compatibility.
1222 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1223 names. Handle returning long long types. Add Thumb and interworking
1224 support. Improve soft-float code.
1225
1226 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
1227
1228 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1229 (libffi_exit): New function.
1230 (libffi_init): Build the testglue wrapper if needed.
1231
1232 2004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1233
1234 PR other/18138
1235 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1236
1237 2004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1238
1239 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1240
1241 2004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
1242
1243 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1244 * testsuite/libffi.call/float3.c: New test case.
1245
1246 2004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
1247
1248 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1249 the function returning a structure pointed with R2.
1250 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1251 the structure return value if T bit set. Emit position
1252 independent code and EH data if PIC.
1253
1254 2004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1255
1256 * Makefile.am: Add m32r support.
1257 * configure.ac: Likewise.
1258 * Makefile.in: Regenerate.
1259 * confiugre: Regenerate.
1260 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1261 (uint64, sint64, double, longdouble)
1262 * src/m32r: New directory.
1263 * src/m32r/ffi.c: New file.
1264 * src/m32r/sysv.S: Likewise.
1265 * src/m32r/ffitarget.h: Likewise.
1266
1267 2004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
1268
1269 * testsuite/libffi.call/negint.c: New test case.
1270
1271 2004-09-14 H.J. Lu <hongjiu.lu@intel.com>
1272
1273 PR libgcj/17465
1274 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1275 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1276 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1277 DYLD_LIBRARY_PATH.
1278
1279 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1280
1281 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
1282 * testsuite/libffi.call/promotion.c: Likewise.
1283 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
1284 whitespaces.
1285 * testsuite/libffi.call/return_sc.c: Likewise.
1286 * testsuite/libffi.call/return_uc.c: Likewise.
1287
1288 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1289
1290 * src/powerpc/darwin.S: Fix comments and identation.
1291 * src/powerpc/darwin_closure.S: Likewise.
1292
1293 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1294
1295 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
1296 (ffi_prep_args): Handle longdouble arguments.
1297 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
1298 longdouble.
1299 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
1300 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
1301 values.
1302 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
1303 * src/types.c: Defined longdouble size and alignment for darwin.
1304
1305 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1306
1307 * src/powerpc/aix.S: Remove whitespaces.
1308 * src/powerpc/aix_closure.S: Likewise.
1309 * src/powerpc/asm.h: Likewise.
1310 * src/powerpc/ffi.c: Likewise.
1311 * src/powerpc/ffitarget.h: Likewise.
1312 * src/powerpc/linux64.S: Likewise.
1313 * src/powerpc/linux64_closure.S: Likewise.
1314 * src/powerpc/ppc_closure.S: Likewise.
1315 * src/powerpc/sysv.S: Likewise.
1316
1317 2004-08-30 Anthony Green <green@redhat.com>
1318
1319 * Makefile.am: Add frv support.
1320 * Makefile.in, testsuite/Makefile.in: Rebuilt.
1321 * configure.ac: Read configure.host.
1322 * configure.in: Read configure.host.
1323 * configure.host: New file. frv-elf needs libgloss.
1324 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
1325 alignment. This is needed to frv and shouldn't harm the others.
1326 * include/ffi_common.h (ALIGN_DOWN): New macro.
1327 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
1328
1329 2004-08-24 David Daney <daney@avtrex.com>
1330
1331 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
1332 * testsuite/libffi.call/closure_fn1.c: Likewise.
1333 * testsuite/libffi.call/closure_fn2.c Likewise.
1334 * testsuite/libffi.call/closure_fn3.c: Likewise.
1335 * testsuite/libffi.call/closure_fn4.c: Likewise.
1336 * testsuite/libffi.call/closure_fn5.c: Likewise.
1337 * testsuite/libffi.call/cls_18byte.c: Likewise.
1338 * testsuite/libffi.call/cls_19byte.c: Likewise.
1339 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1340 * testsuite/libffi.call/cls_20byte.c: Likewise.
1341 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1342 * testsuite/libffi.call/cls_24byte.c: Likewise.
1343 * testsuite/libffi.call/cls_2byte.c: Likewise.
1344 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1345 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1346 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1347 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1348 * testsuite/libffi.call/cls_4byte.c: Likewise.
1349 * testsuite/libffi.call/cls_64byte.c: Likewise.
1350 * testsuite/libffi.call/cls_6byte.c: Likewise.
1351 * testsuite/libffi.call/cls_7byte.c: Likewise.
1352 * testsuite/libffi.call/cls_8byte.c: Likewise.
1353 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1354 * testsuite/libffi.call/cls_9byte2.c: Likewise.
1355 * testsuite/libffi.call/cls_align_double.c: Likewise.
1356 * testsuite/libffi.call/cls_align_float.c: Likewise.
1357 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1358 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1359 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1360 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1361 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1362 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1363 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1364 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1365 * testsuite/libffi.call/cls_double.c: Likewise.
1366 * testsuite/libffi.call/cls_float.c: Likewise.
1367 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1368 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
1369 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1370 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1371 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1372 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1373 * testsuite/libffi.call/cls_schar.c: Likewise.
1374 * testsuite/libffi.call/cls_sint.c: Likewise.
1375 * testsuite/libffi.call/cls_sshort.c: Likewise.
1376 * testsuite/libffi.call/cls_uchar.c: Likewise.
1377 * testsuite/libffi.call/cls_uint.c: Likewise.
1378 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1379 * testsuite/libffi.call/cls_ushort.c: Likewise.
1380 * testsuite/libffi.call/nested_struct.c: Likewise.
1381 * testsuite/libffi.call/nested_struct1.c: Likewise.
1382 * testsuite/libffi.call/nested_struct2.c: Likewise.
1383 * testsuite/libffi.call/nested_struct3.c: Likewise.
1384 * testsuite/libffi.call/problem1.c: Likewise.
1385 * testsuite/libffi.special/unwindtest.cc: Likewise.
1386 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
1387 to zero.
1388 * testsuite/libffi.call/cls_16byte.c: Likewise.
1389 * testsuite/libffi.call/cls_5byte.c: Likewise.
1390
1391 2004-08-23 David Daney <daney@avtrex.com>
1392
1393 PR libgcj/13141
1394 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
1395 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
1396 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
1397 parameters and return types.
1398 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
1399 (ffi_prep_closure): Ditto.
1400 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
1401 alignment calculations.
1402 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
1403 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
1404
1405 2004-08-14 Casey Marshall <csm@gnu.org>
1406
1407 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
1408 contain `FFI_TYPE_UINT64' as return type for any 64-bit
1409 integer (O32 ABI only).
1410 (ffi_prep_closure): new function.
1411 (ffi_closure_mips_inner_O32): new function.
1412 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
1413 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
1414 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
1415 64 bit integers correctly.
1416 (ffi_closure_O32): new function.
1417 Added DWARF-2 unwind info for both functions.
1418
1419 2004-08-10 Andrew Haley <aph@redhat.com>
1420
1421 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
1422
1423 2004-08-01 Robert Millan <robertmh@gnu.org>
1424
1425 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
1426 * configure: Regenerate.
1427
1428 2004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
1429
1430 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1431 and mmap() explicitly instead of relying on preset autoconf cache
1432 variables.
1433 * aclocal.m4: Regenerate.
1434 * configure: Regenerate.
1435
1436 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
1437
1438 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
1439 (ffi_check_float_struct): Remove unused prototype.
1440
1441 2004-06-30 Geoffrey Keating <geoffk@apple.com>
1442
1443 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
1444 character on Darwin, use '\n\t' instead.
1445
1446 2004-06-26 Matthias Klose <doko@debian.org>
1447
1448 * libtool-version: Fix typo in revision/age.
1449
1450 2004-06-17 Matthias Klose <doko@debian.org>
1451
1452 * libtool-version: New.
1453 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
1454 * Makefile.in: Regenerate.
1455
1456 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1457
1458 * Makefile.am: Remove useless multilib rules.
1459 * Makefile.in: Regenerate.
1460 * aclocal.m4: Regenerate with automake 1.8.5.
1461 * configure.ac: Remove useless multilib configury.
1462 * configure: Regenerate.
1463
1464 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1465
1466 * .cvsignore: New file.
1467
1468 2004-06-10 Jakub Jelinek <jakub@redhat.com>
1469
1470 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
1471 fp_done.
1472 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
1473 changed from 8.
1474
1475 2004-06-06 Sean McNeil <sean@mcneil.com>
1476
1477 * configure.ac: Add x86_64-*-freebsd* support.
1478 * configure: Regenerate.
1479
1480 2004-04-26 Joe Buck <jbuck@welsh-buck.org>
1481
1482 Bug 15093
1483 * configure.ac: Test for existence of mmap and sys/mman.h before
1484 checking blacklist. Fix suggested by Jim Wilson.
1485 * configure: Regenerate.
1486
1487 2004-04-26 Matt Austern <austern@apple.com>
1488
1489 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
1490 FDE location.
1491 * src/powerpc/darwin_closure.S: Likewise.
1492
1493 2004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
1494
1495 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
1496 error. Reported by Thomas Heller <theller@python.net>.
1497 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
1498 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
1499
1500 2004-03-20 Matthias Klose <doko@debian.org>
1501
1502 * src/pa/linux.S: Fix typo.
1503
1504 2004-03-19 Matthias Klose <doko@debian.org>
1505
1506 * Makefile.am: Update.
1507 * Makefile.in: Regenerate.
1508 * src/pa/ffi.h.in: Remove.
1509 * src/pa/ffitarget.h: New file.
1510
1511 2004-02-10 Randolph Chung <tausq@debian.org>
1512
1513 * Makefile.am: Add PA support.
1514 * Makefile.in: Regenerate.
1515 * include/Makefile.in: Regenerate.
1516 * configure.ac: Add PA target.
1517 * configure: Regenerate.
1518 * src/pa/ffi.c: New file.
1519 * src/pa/ffi.h.in: Add PA support.
1520 * src/pa/linux.S: New file.
1521 * prep_cif.c: Add PA support.
1522
1523 2004-03-16 Hosaka Yuji <hos@tamanegi.org>
1524
1525 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
1526 double.
1527 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
1528 with ecif->cif->flags.
1529 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
1530 with cif->flags.
1531 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
1532 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
1533 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
1534 sc_retstruct2b): Add for 1 or 2-bytes struct case.
1535
1536 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
1537
1538 * configure.in: Rename file to ...
1539 * configure.ac: ... this.
1540 * fficonfig.h.in: Regenerate.
1541 * Makefile.in: Regenerate.
1542 * include/Makefile.in: Regenerate.
1543 * testsuite/Makefile.in: Regenerate.
1544
1545 2004-03-12 Matt Austern <austern@apple.com>
1546
1547 * src/powerpc/darwin.S: Fix EH information so it corresponds to
1548 changes in EH format resulting from addition of linkonce support.
1549 * src/powerpc/darwin_closure.S: Likewise.
1550
1551 2004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
1552 Paolo Bonzini <bonzini@gnu.org>
1553
1554 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
1555 Remove VPATH. Remove rules for object files. Remove multilib support.
1556 (AM_CCASFLAGS): Add.
1557 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
1558 (AC_PREREQ): Bump version to 2.59.
1559 (AC_INIT): Fill with version info and bug address.
1560 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
1561 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
1562 De-precious CC so that the right flags are passed down to multilibs.
1563 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
1564 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
1565 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
1566 * configure: Rebuilt.
1567 * aclocal.m4: Likewise.
1568 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
1569 * fficonfig.h.in: Likewise.
1570
1571 2004-03-11 Andreas Schwab <schwab@suse.de>
1572
1573 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
1574 arguments from fp registers only for the first 8 parameter slots.
1575 Don't convert a float parameter when passed in memory.
1576
1577 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
1578
1579 * configure: Regenerate for config/accross.m4 correction.
1580
1581 2004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
1582
1583 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
1584 ecif->cif->bytes to bytes.
1585 (ffi_prep_cif_machdep): Add braces around nested if statement.
1586
1587 2004-02-09 Alan Modra <amodra@bigpond.net.au>
1588
1589 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
1590
1591 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
1592 (ffi_closure_helper_LINUX64): Fix typo.
1593 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
1594 for powerpc64-*-*.
1595 * testsuite/libffi.call/float.c: Likewise.
1596 * testsuite/libffi.call/float2.c: Likewise.
1597
1598 2004-02-08 Alan Modra <amodra@bigpond.net.au>
1599
1600 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
1601 long double function return and long double arg handling.
1602 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
1603 Use "end_pfr" instead of "nf". Correct long double handling.
1604 Localise "temp".
1605 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
1606 return value.
1607 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
1608 space for long double return value. Adjust stack frame and offsets.
1609 Load f2 long double return.
1610
1611 2004-02-07 Alan Modra <amodra@bigpond.net.au>
1612
1613 * src/types.c: Use 16 byte long double for POWERPC64.
1614
1615 2004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1616
1617 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
1618 when the structure return address is passed in %o0.
1619 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
1620 (ffi_v9_layout_struct): Align the field following a nested structure
1621 on a word boundary. Use memmove instead of memcpy.
1622 (ffi_call): Update call to ffi_V9_return_struct.
1623 (ffi_prep_closure): Define 'ctx' only for V8.
1624 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
1625 and ffi_closure_sparc_inner_v9.
1626 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
1627 Always skip the structure return address. For structures and long
1628 doubles, copy the argument directly.
1629 (ffi_closure_sparc_inner_v9): Skip the structure return address only
1630 if required. Shift the maximum floating-point slot accordingly. For
1631 big structures, copy the argument directly; otherwise, left-justify the
1632 argument and call ffi_v9_layout_struct to lay out the structure on
1633 the stack.
1634 * src/sparc/v8.S: Undef STACKFRAME before defining it.
1635 (ffi_closure_v8): Pass the structure return address. Update call to
1636 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
1637 Skip the 'unimp' insn when returning long doubles and structures.
1638 * src/sparc/v9.S: Undef STACKFRAME before defining it.
1639 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
1640 FFI_TYPE_INT handling. Load structures both in integers and
1641 floating-point registers on return.
1642 * README: Update status of the SPARC port.
1643
1644 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
1645
1646 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
1647 as of type ffi_arg.
1648 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
1649
1650 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
1651
1652 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
1653 value as of type ffi_arg, not unsigned int.
1654
1655 2004-01-21 Michael Ritzert <ritzert@t-online.de>
1656
1657 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
1658 of the LHS.
1659
1660 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
1661
1662 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
1663 Solaris.
1664
1665 2004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1666
1667 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
1668 to void *.
1669
1670 2003-12-10 Richard Henderson <rth@redhat.com>
1671
1672 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
1673 size_t instead of int.
1674
1675 2003-12-04 Hosaka Yuji <hos@tamanegi.org>
1676
1677 * testsuite/libffi.call/many_win32.c: Include <float.h>.
1678 * testsuite/libffi.call/many_win32.c (main): Replace variable
1679 int i with unsigned long ul.
1680
1681 * testsuite/libffi.call/cls_align_uint64.c: New test case.
1682 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1683 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1684 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1685 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1686 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1687 * testsuite/libffi.call/cls_align_float.c: Likewise.
1688 * testsuite/libffi.call/cls_align_double.c: Likewise.
1689 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1690 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1691
1692 2003-12-02 Hosaka Yuji <hos@tamanegi.org>
1693
1694 PR other/13221
1695 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
1696 Align arguments to 32 bits.
1697
1698 2003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
1699
1700 PR other/13221
1701 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
1702 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1703 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1704 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1705 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1706 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1707
1708 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
1709
1710 2003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1711
1712 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
1713 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1714
1715 2003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
1716
1717 * Makefile.in: Rebuilt.
1718 * configure: Likewise.
1719 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
1720 the right type.
1721
1722 2003-11-21 Andreas Jaeger <aj@suse.de>
1723 Andreas Tobler <a.tobler@schweiz.ch>
1724
1725 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
1726 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
1727 * Makefile.in: Rebuilt.
1728 * aclocal.m4: Likewise.
1729 * configure: Likewise.
1730 * fficonfig.h.in: Likewise.
1731 * testsuite/lib/libffi-dg.exp: Add include dir.
1732 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
1733 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1734 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
1735 for ffi_closure if available.
1736 * testsuite/libffi.call/closure_fn1.c: Likewise.
1737 * testsuite/libffi.call/closure_fn2.c: Likewise.
1738 * testsuite/libffi.call/closure_fn3.c: Likewise.
1739 * testsuite/libffi.call/closure_fn4.c: Likewise.
1740 * testsuite/libffi.call/closure_fn5.c: Likewise.
1741 * testsuite/libffi.call/cls_12byte.c: Likewise.
1742 * testsuite/libffi.call/cls_16byte.c: Likewise.
1743 * testsuite/libffi.call/cls_18byte.c: Likewise.
1744 * testsuite/libffi.call/cls_19byte.c: Likewise.
1745 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1746 * testsuite/libffi.call/cls_20byte.c: Likewise.
1747 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1748 * testsuite/libffi.call/cls_24byte.c: Likewise.
1749 * testsuite/libffi.call/cls_2byte.c: Likewise.
1750 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1751 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1752 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1753 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1754 * testsuite/libffi.call/cls_4byte.c: Likewise.
1755 * testsuite/libffi.call/cls_5byte.c: Likewise.
1756 * testsuite/libffi.call/cls_64byte.c: Likewise.
1757 * testsuite/libffi.call/cls_6byte.c: Likewise.
1758 * testsuite/libffi.call/cls_7byte.c: Likewise.
1759 * testsuite/libffi.call/cls_8byte.c: Likewise.
1760 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1761 * testsuite/libffi.call/cls_9byte2.c: Likewise.
1762 * testsuite/libffi.call/cls_double.c: Likewise.
1763 * testsuite/libffi.call/cls_float.c: Likewise.
1764 * testsuite/libffi.call/cls_schar.c: Likewise.
1765 * testsuite/libffi.call/cls_sint.c: Likewise.
1766 * testsuite/libffi.call/cls_sshort.c: Likewise.
1767 * testsuite/libffi.call/cls_uchar.c: Likewise.
1768 * testsuite/libffi.call/cls_uint.c: Likewise.
1769 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1770 * testsuite/libffi.call/cls_ushort.c: Likewise.
1771 * testsuite/libffi.call/nested_struct.c: Likewise.
1772 * testsuite/libffi.call/nested_struct1.c: Likewise.
1773 * testsuite/libffi.call/nested_struct2.c: Likewise.
1774 * testsuite/libffi.call/nested_struct3.c: Likewise.
1775 * testsuite/libffi.call/problem1.c: Likewise.
1776 * testsuite/libffi.special/unwindtest.cc: Likewise.
1777
1778 2003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
1779
1780 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
1781
1782 2003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
1783
1784 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
1785 Add -lgcc_s to additional flags.
1786
1787 2003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
1788
1789 * configure.in, include/Makefile.am: PR libgcj/11147, install
1790 the ffitarget.h header file in a gcc versioned and target
1791 dependent place.
1792 * configure: Regenerated.
1793 * Makefile.in, include/Makefile.in: Likewise.
1794 * testsuite/Makefile.in: Likewise.
1795
1796 2003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
1797
1798 * testsuite/libffi.call/closure_fn0.c: Print result and check
1799 with dg-output to make debugging easier.
1800 * testsuite/libffi.call/closure_fn1.c: Likewise.
1801 * testsuite/libffi.call/closure_fn2.c: Likewise.
1802 * testsuite/libffi.call/closure_fn3.c: Likewise.
1803 * testsuite/libffi.call/closure_fn4.c: Likewise.
1804 * testsuite/libffi.call/closure_fn5.c: Likewise.
1805 * testsuite/libffi.call/cls_12byte.c: Likewise.
1806 * testsuite/libffi.call/cls_16byte.c: Likewise.
1807 * testsuite/libffi.call/cls_18byte.c: Likewise.
1808 * testsuite/libffi.call/cls_19byte.c: Likewise.
1809 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1810 * testsuite/libffi.call/cls_20byte.c: Likewise.
1811 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1812 * testsuite/libffi.call/cls_24byte.c: Likewise.
1813 * testsuite/libffi.call/cls_2byte.c: Likewise.
1814 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1815 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1816 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1817 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1818 * testsuite/libffi.call/cls_4byte.c: Likewise.
1819 * testsuite/libffi.call/cls_5byte.c: Likewise.
1820 * testsuite/libffi.call/cls_64byte.c: Likewise.
1821 * testsuite/libffi.call/cls_6byte.c: Likewise.
1822 * testsuite/libffi.call/cls_7byte.c: Likewise.
1823 * testsuite/libffi.call/cls_8byte.c: Likewise.
1824 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1825 * testsuite/libffi.call/cls_9byte2.c: Likewise.
1826 * testsuite/libffi.call/cls_double.c: Likewise.
1827 * testsuite/libffi.call/cls_float.c: Likewise.
1828 * testsuite/libffi.call/cls_schar.c: Likewise.
1829 * testsuite/libffi.call/cls_sint.c: Likewise.
1830 * testsuite/libffi.call/cls_sshort.c: Likewise.
1831 * testsuite/libffi.call/cls_uchar.c: Likewise.
1832 * testsuite/libffi.call/cls_uint.c: Likewise.
1833 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1834 * testsuite/libffi.call/cls_ushort.c: Likewise.
1835 * testsuite/libffi.call/problem1.c: Likewise.
1836
1837 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
1838 static.
1839
1840 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
1841
1842 * testsuite/libffi.call/cls_9byte2.c: New test case.
1843 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1844 * testsuite/libffi.call/cls_64byte.c: Likewise.
1845 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1846 * testsuite/libffi.call/cls_19byte.c: Likewise.
1847 * testsuite/libffi.call/cls_18byte.c: Likewise.
1848 * testsuite/libffi.call/closure_fn4.c: Likewise.
1849 * testsuite/libffi.call/closure_fn5.c: Likewise.
1850 * testsuite/libffi.call/cls_schar.c: Likewise.
1851 * testsuite/libffi.call/cls_sint.c: Likewise.
1852 * testsuite/libffi.call/cls_sshort.c: Likewise.
1853 * testsuite/libffi.call/nested_struct2.c: Likewise.
1854 * testsuite/libffi.call/nested_struct3.c: Likewise.
1855
1856 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
1857
1858 * testsuite/libffi.call/cls_double.c: Do a check on the result.
1859 * testsuite/libffi.call/cls_uchar.c: Likewise.
1860 * testsuite/libffi.call/cls_uint.c: Likewise.
1861 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1862 * testsuite/libffi.call/cls_ushort.c: Likewise.
1863 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
1864
1865 2003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
1866
1867 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
1868 the initialization.
1869
1870 2003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
1871
1872 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
1873 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
1874
1875 2003-10-22 David Daney <ddaney@avtrex.com>
1876
1877 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
1878 __attribute__((__mode__(__SI__))) and friends.
1879
1880 2003-10-22 Andreas Schwab <schwab@suse.de>
1881
1882 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
1883
1884 2003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
1885
1886 * configure.in: AC_LINK_FILES(ffitarget.h).
1887 * configure: Regenerate.
1888 * Makefile.in: Likewise.
1889 * include/Makefile.in: Likewise.
1890 * testsuite/Makefile.in: Likewise.
1891 * fficonfig.h.in: Likewise.
1892
1893 2003-10-21 Paolo Bonzini <bonzini@gnu.org>
1894 Richard Henderson <rth@redhat.com>
1895
1896 Avoid that ffi.h includes fficonfig.h.
1897
1898 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
1899 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
1900 (TARGET_SRC_MIPS_SGI): Removed.
1901 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
1902 (MIPS_SGI): Removed.
1903 (CLEANFILES): Removed.
1904 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
1905 targets.
1906 * acconfig.h: Removed.
1907 * configure.in: Compute sizeofs only for double and long double.
1908 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
1909 into AC_DEFINE instead of using acconfig.h. Create
1910 include/ffitarget.h instead of include/fficonfig.h. Rename
1911 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
1912 AC_DEFINE EH_FRAME_FLAGS.
1913 * include/Makefile.am (DISTCLEANFILES): New automake macro.
1914 (hack_DATA): Add ffitarget.h.
1915 * include/ffi.h.in: Remove all system specific definitions.
1916 Declare raw API even if it is not installed, why bother?
1917 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
1918 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
1919 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
1920 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
1921 * include/ffi_common.h (bool): Do not define.
1922 (ffi_assert): Accept failed assertion.
1923 (ffi_type_test): Return void and accept file/line.
1924 (FFI_ASSERT): Pass stringized failed assertion.
1925 (FFI_ASSERT_AT): New macro.
1926 (FFI_ASSERT_VALID_TYPE): New macro.
1927 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
1928 UINT64, SINT64): Define here with gcc's __attribute__ macro
1929 instead of in ffi.h
1930 (FLOAT32, ALIGN): Define here instead of in ffi.h
1931 * include/ffi-mips.h: Removed. Its content moved to
1932 src/mips/ffitarget.h after separating assembly and C sections.
1933 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
1934 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
1935 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
1936 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
1937 SIZEOF_ARG -> FFI_SIZEOF_ARG.
1938 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
1939 * src/debug.c (ffi_assert): Accept stringized failed assertion.
1940 (ffi_type_test): Rewritten.
1941 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
1942 FFI_ASSERT_VALID_TYPE.
1943 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
1944 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
1945 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
1946 src/s390/ffitarget.h, src/sh/ffitarget.h,
1947 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
1948 src/x86/ffitarget.h: New files.
1949 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
1950 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
1951 src/powerpc/aix.S, src/powerpc/darwin.S,
1952 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
1953 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
1954 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
1955 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
1956 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
1957 include fficonfig.h
1958
1959 2003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1960
1961 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
1962 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
1963
1964 2003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
1965
1966 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
1967 Used when FFI_DEBUG = 1.
1968
1969 2003-10-14 Alan Modra <amodra@bigpond.net.au>
1970
1971 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
1972 and align.
1973
1974 2003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1975
1976 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
1977 FFI_MIPS_O32 for O32 ABI.
1978
1979 2003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
1980
1981 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
1982 SPARC64. Cleanup whitespaces.
1983
1984 2003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
1985
1986 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
1987 strongarm, xscale. Cleanup whitespaces.
1988 * testsuite/libffi.call/closure_fn1.c: Likewise.
1989 * testsuite/libffi.call/closure_fn2.c: Likewise.
1990 * testsuite/libffi.call/closure_fn3.c: Likewise.
1991 * testsuite/libffi.call/cls_12byte.c: Likewise.
1992 * testsuite/libffi.call/cls_16byte.c: Likewise.
1993 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1994 * testsuite/libffi.call/cls_20byte.c: Likewise.
1995 * testsuite/libffi.call/cls_24byte.c: Likewise.
1996 * testsuite/libffi.call/cls_2byte.c: Likewise.
1997 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1998 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1999 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2000 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2001 * testsuite/libffi.call/cls_4byte.c: Likewise.
2002 * testsuite/libffi.call/cls_5byte.c: Likewise.
2003 * testsuite/libffi.call/cls_6byte.c: Likewise.
2004 * testsuite/libffi.call/cls_7byte.c: Likewise.
2005 * testsuite/libffi.call/cls_8byte.c: Likewise.
2006 * testsuite/libffi.call/cls_double.c: Likewise.
2007 * testsuite/libffi.call/cls_float.c: Likewise.
2008 * testsuite/libffi.call/cls_uchar.c: Likewise.
2009 * testsuite/libffi.call/cls_uint.c: Likewise.
2010 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2011 * testsuite/libffi.call/cls_ushort.c: Likewise.
2012 * testsuite/libffi.call/nested_struct.c: Likewise.
2013 * testsuite/libffi.call/nested_struct1.c: Likewise.
2014 * testsuite/libffi.call/problem1.c: Likewise.
2015 * testsuite/libffi.special/unwindtest.cc: Likewise.
2016 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2017
2018 2003-09-18 David Edelsohn <edelsohn@gnu.org>
2019
2020 * src/powerpc/aix.S: Cleanup whitespaces.
2021 * src/powerpc/aix_closure.S: Likewise.
2022
2023 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2024
2025 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2026 * src/powerpc/darwin_closure.S: Likewise.
2027 * src/powerpc/ffi_darwin.c: Likewise.
2028
2029 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2030 David Edelsohn <edelsohn@gnu.org>
2031
2032 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2033 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2034 parameter stack.
2035 * src/powerpc/darwin_closure.S: Likewise.
2036 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2037 according to the Darwin/AIX ABI.
2038 (ffi_prep_cif_machdep): Likewise.
2039 (ffi_closure_helper_DARWIN): Likewise.
2040 Remove the outgoing parameter stack logic. Simplify the evaluation
2041 of the different CASE types.
2042 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2043 statement in the trampoline code.
2044
2045 2003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
2046
2047 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2048 for the register size.
2049 (ffi_closure_helper_SYSV): Handle the structure return value
2050 address correctly.
2051 (ffi_closure_helper_SYSV): Return the appropriate type when
2052 the registers are used for the structure return value.
2053 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2054 the 64-bit return value. Update copyright years.
2055
2056 2003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2057
2058 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2059 srcdir for ffi_mips.h.
2060
2061 2003-09-12 Alan Modra <amodra@bigpond.net.au>
2062
2063 * src/prep_cif.c (initialize_aggregate): Include tail padding in
2064 structure size.
2065 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2066 placement of float result.
2067 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2068 cast of "resp" for big-endian 64 bit machines.
2069
2070 2003-09-11 Alan Modra <amodra@bigpond.net.au>
2071
2072 * src/types.c (double, longdouble): Merge identical SH and ARM
2073 typedefs, and add POWERPC64.
2074 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2075 struct split over gpr and rest.
2076 (ffi_prep_cif_machdep): Correct intarg_count for structures.
2077 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2078
2079 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
2080
2081 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2082 passing correctly.
2083
2084 2003-09-09 Alan Modra <amodra@bigpond.net.au>
2085
2086 * configure: Regenerate.
2087
2088 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2089
2090 * Makefile.am: Remove build rules for ffitest.
2091 * Makefile.in: Rebuilt.
2092
2093 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2094
2095 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2096 about implicit declaration of abort().
2097
2098 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2099
2100 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2101 * Makefile.in: Rebuilt.
2102 * configure.in: Add dejagnu test framework.
2103 * configure: Rebuilt.
2104
2105 * testsuite/Makefile.am: New file.
2106 * testsuite/Makefile.in: Built
2107 * testsuite/lib/libffi-dg.exp: New file.
2108 * testsuite/config/default.exp: Likewise.
2109 * testsuite/libffi.call/call.exp: Likewise.
2110 * testsuite/libffi.call/ffitest.h: Likewise.
2111 * testsuite/libffi.call/closure_fn0.c: Likewise.
2112 * testsuite/libffi.call/closure_fn1.c: Likewise.
2113 * testsuite/libffi.call/closure_fn2.c: Likewise.
2114 * testsuite/libffi.call/closure_fn3.c: Likewise.
2115 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2116 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2117 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2118 * testsuite/libffi.call/cls_2byte.c: Likewise.
2119 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2120 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2121 * testsuite/libffi.call/cls_4byte.c: Likewise.
2122 * testsuite/libffi.call/cls_5byte.c: Likewise.
2123 * testsuite/libffi.call/cls_6byte.c: Likewise.
2124 * testsuite/libffi.call/cls_7byte.c: Likewise.
2125 * testsuite/libffi.call/cls_8byte.c: Likewise.
2126 * testsuite/libffi.call/cls_12byte.c: Likewise.
2127 * testsuite/libffi.call/cls_16byte.c: Likewise.
2128 * testsuite/libffi.call/cls_20byte.c: Likewise.
2129 * testsuite/libffi.call/cls_24byte.c: Likewise.
2130 * testsuite/libffi.call/cls_double.c: Likewise.
2131 * testsuite/libffi.call/cls_float.c: Likewise.
2132 * testsuite/libffi.call/cls_uchar.c: Likewise.
2133 * testsuite/libffi.call/cls_uint.c: Likewise.
2134 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2135 * testsuite/libffi.call/cls_ushort.c: Likewise.
2136 * testsuite/libffi.call/float.c: Likewise.
2137 * testsuite/libffi.call/float1.c: Likewise.
2138 * testsuite/libffi.call/float2.c: Likewise.
2139 * testsuite/libffi.call/many.c: Likewise.
2140 * testsuite/libffi.call/many_win32.c: Likewise.
2141 * testsuite/libffi.call/nested_struct.c: Likewise.
2142 * testsuite/libffi.call/nested_struct1.c: Likewise.
2143 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
2144 * testsuite/libffi.call/problem1.c: Likewise.
2145 * testsuite/libffi.call/promotion.c: Likewise.
2146 * testsuite/libffi.call/return_ll.c: Likewise.
2147 * testsuite/libffi.call/return_sc.c: Likewise.
2148 * testsuite/libffi.call/return_uc.c: Likewise.
2149 * testsuite/libffi.call/strlen.c: Likewise.
2150 * testsuite/libffi.call/strlen_win32.c: Likewise.
2151 * testsuite/libffi.call/struct1.c: Likewise.
2152 * testsuite/libffi.call/struct2.c: Likewise.
2153 * testsuite/libffi.call/struct3.c: Likewise.
2154 * testsuite/libffi.call/struct4.c: Likewise.
2155 * testsuite/libffi.call/struct5.c: Likewise.
2156 * testsuite/libffi.call/struct6.c: Likewise.
2157 * testsuite/libffi.call/struct7.c: Likewise.
2158 * testsuite/libffi.call/struct8.c: Likewise.
2159 * testsuite/libffi.call/struct9.c: Likewise.
2160 * testsuite/libffi.special/special.exp: New file.
2161 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2162 * testsuite/libffi.special/unwindtest.cc: Likewise.
2163
2164
2165 2003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
2166
2167 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
2168 copyright years.
2169
2170 2003-08-02 Alan Modra <amodra@bigpond.net.au>
2171
2172 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2173 structure passing.
2174 (ffi_closure_helper_LINUX64): Likewise.
2175 * src/powerpc/linux64.S: Remove code writing to parm save area.
2176 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2177 address in lr from ffi_closure_helper_LINUX64 call to calculate
2178 table address. Optimize function tail.
2179
2180 2003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
2181
2182 * src/sparc/ffi.c: Handle all floating point registers.
2183 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2184
2185 2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2186
2187 * README: Note that libffi is not part of GCC. Update the project
2188 URL and status.
2189
2190 2003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2191
2192 * src/powerpc/ppc_closure.S: Include ffi.h.
2193
2194 2003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2195
2196 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2197 Use C style comments.
2198
2199 2003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2200
2201 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
2202 * Makefile.in: Regenerate.
2203 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2204 * configure: Regenerate.
2205 * include/ffi.h.in: Add SHmedia support.
2206 * src/sh64/ffi.c: New file.
2207 * src/sh64/sysv.S: New file.
2208
2209 2003-05-16 Jakub Jelinek <jakub@redhat.com>
2210
2211 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2212 should be read-only.
2213 * configure: Rebuilt.
2214 * fficonfig.h.in: Rebuilt.
2215 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
2216 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
2217 * src/powerpc/linux64.S: Likewise.
2218 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
2219 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
2220 if -fpic/-fPIC/-mrelocatable.
2221 * src/powerpc/powerpc_closure.S: Likewise.
2222 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2223 #write in .eh_frame flags.
2224 * src/sparc/v9.S: Likewise.
2225 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
2226 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
2227 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
2228
2229 2003-05-07 Jeff Sturm <jsturm@one-point.com>
2230
2231 Fixes PR bootstrap/10656
2232 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2233 support for .register pseudo-op.
2234 * src/sparc/v8.S: Use it.
2235 * fficonfig.h.in: Rebuilt.
2236 * configure: Rebuilt.
2237
2238 2003-04-18 Jakub Jelinek <jakub@redhat.com>
2239
2240 * include/ffi.h.in (POWERPC64): Define if 64-bit.
2241 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2242 Make it the default on POWERPC64.
2243 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2244 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2245 * configure: Rebuilt.
2246 * src/powerpc/ffi.c (hidden): Define.
2247 (ffi_prep_args_SYSV): Renamed from
2248 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
2249 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2250 ASM_NEEDS_REGISTERS64): New.
2251 (ffi_prep_args64): New function.
2252 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2253 (ffi_call): Likewise.
2254 (ffi_prep_closure): Likewise.
2255 (flush_icache): Surround by #ifndef POWERPC64.
2256 (ffi_dblfl): New union type.
2257 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2258 (ffi_closure_helper_LINUX64): New function.
2259 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2260 __powerpc64__.
2261 * src/powerpc/sysv.S: Likewise.
2262 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2263 * src/powerpc/linux64.S: New file.
2264 * src/powerpc/linux64_closure.S: New file.
2265 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2266 src/powerpc/linux64_closure.S.
2267 (TARGET_SRC_POWERPC): Likewise.
2268
2269 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2270 closure_test_fn3): Fix result printing on big-endian 64-bit
2271 machines.
2272 (main): Print tst2_arg instead of uninitialized tst2_result.
2273
2274 * src/ffitest.c (main): Hide what closure pointer really points to
2275 from the compiler.
2276
2277 2003-04-16 Richard Earnshaw <rearnsha@arm.com>
2278
2279 * configure.in (arm-*-netbsdelf*): Add configuration.
2280 (configure): Regenerated.
2281
2282 2003-04-04 Loren J. Rittle <ljrittle@acm.org>
2283
2284 * include/Makefile.in: Regenerate.
2285
2286 2003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2287
2288 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
2289 bit mode.
2290 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
2291 Receive closure pointer through parameter, read args using
2292 __builtin_dwarf_cfa.
2293 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
2294
2295 2003-03-12 Andreas Schwab <schwab@suse.de>
2296
2297 * configure.in: Avoid trailing /. in toolexeclibdir.
2298 * configure: Rebuilt.
2299
2300 2003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
2301
2302 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
2303
2304 2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
2305
2306 * libffi/src/powerpc/darwin_closure.S:
2307 Fix alignement bug, allocate 8 bytes for the result.
2308 * libffi/src/powerpc/aix_closure.S:
2309 Likewise.
2310 * libffi/src/powerpc/ffi_darwin.c:
2311 Update stackframe description for aix/darwin_closure.S.
2312
2313 2003-02-06 Jakub Jelinek <jakub@redhat.com>
2314
2315 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
2316 attribute.
2317
2318 2003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
2319 Andreas Schwab <schwab@suse.de>
2320
2321 * configure.in: Adjust command to source config-ml.in to account
2322 for changes to the libffi_basedir definition.
2323 (libffi_basedir): Remove ${srcdir} from value and include trailing
2324 slash if nonempty.
2325
2326 * configure: Regenerate.
2327
2328 2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2329
2330 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
2331
2332 2003-01-28 Andrew Haley <aph@redhat.com>
2333
2334 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
2335 * src/x86/ffi64.c (ffi_prep_closure): New.
2336 (ffi_closure_UNIX64_inner): New.
2337 * src/x86/unix64.S (ffi_closure_UNIX64): New.
2338
2339 2003-01-27 Alexandre Oliva <aoliva@redhat.com>
2340
2341 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
2342 Remove USE_LIBDIR conditional.
2343 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
2344 * Makefile.in, configure: Rebuilt.
2345
2346 2003-01027 David Edelsohn <edelsohn@gnu.org>
2347
2348 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
2349 * Makefile.in: Regenerate.
2350
2351 2003-01-22 Andrew Haley <aph@redhat.com>
2352
2353 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
2354 unwind info.
2355
2356 2003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2357
2358 * src/powerpc/darwin.S: Add unwind info.
2359 * src/powerpc/darwin_closure.S: Likewise.
2360
2361 2003-01-14 Andrew Haley <aph@redhat.com>
2362
2363 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
2364 (ffi_prep_cif_machdep): Likewise.
2365 * src/x86/unix64.S: Add unwind info.
2366
2367 2003-01-14 Andreas Jaeger <aj@suse.de>
2368
2369 * src/ffitest.c (main): Only use ffi_closures if those are
2370 supported.
2371
2372 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
2373
2374 * libffi/src/ffitest.c
2375 add closure testcases
2376
2377 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
2378
2379 * libffi/src/powerpc/ffi.c
2380 fix alignment bug for float (4 byte aligned iso 8 byte)
2381
2382 2003-01-09 Geoffrey Keating <geoffk@apple.com>
2383
2384 * src/powerpc/ffi_darwin.c: Remove RCS version string.
2385 * src/powerpc/darwin.S: Remove RCS version string.
2386
2387 2003-01-03 Jeff Sturm <jsturm@one-point.com>
2388
2389 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
2390 * src/ffitest.c (main): Use static storage for closure.
2391 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
2392 * src/sparc/v8.S (ffi_closure_v8): New.
2393 * src/sparc/v9.S (ffi_closure_v9): New.
2394
2395 2002-11-10 Ranjit Mathew <rmathew@hotmail.com>
2396
2397 * include/ffi.h.in: Added FFI_STDCALL ffi_type
2398 enumeration for X86_WIN32.
2399 * src/x86/win32.S: Added ffi_call_STDCALL function
2400 definition.
2401 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
2402 switch cases for recognising FFI_STDCALL and
2403 calling ffi_call_STDCALL if target is X86_WIN32.
2404 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
2405 stdcall versions of the "my_strlen" and "many"
2406 test functions (for X86_WIN32).
2407 Added test cases to test stdcall invocation using
2408 these functions.
2409
2410 2002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
2411
2412 * src/sh/sysv.S: Add DWARF2 unwind info.
2413
2414 2002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
2415
2416 * src/s390/sysv.S (.eh_frame section): Make section read-only.
2417
2418 2002-11-26 Jim Wilson <wilson@redhat.com>
2419
2420 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
2421
2422 2002-11-23 H.J. Lu <hjl@gnu.org>
2423
2424 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
2425 Include ../config/accross.m4.
2426 * aclocal.m4; Rebuild.
2427 * configure: Likewise.
2428
2429 2002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
2430
2431 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
2432
2433 2002-11-11 DJ Delorie <dj@redhat.com>
2434
2435 * configure.in: Look for common files in the right place.
2436
2437 2002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
2438
2439 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
2440 raw data as _Jv_word values, not ffi_raw.
2441 (ffi_java_ptrarray_to_raw): Likewise.
2442 (ffi_java_rvalue_to_raw): New function.
2443 (ffi_java_raw_call): Call it.
2444 (ffi_java_raw_to_rvalue): New function.
2445 (ffi_java_translate_args): Call it.
2446 * src/ffitest.c (closure_test_fn): Interpret return value
2447 as ffi_arg, not int.
2448 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
2449 FFI_TYPE_POINTER case.
2450 (ffi_closure_helper_SYSV): Likewise. Also, assume return
2451 values extended to word size.
2452
2453 2002-10-02 Andreas Jaeger <aj@suse.de>
2454
2455 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
2456
2457 2002-10-01 Bo Thorsen <bo@smetana.suse.de>
2458
2459 * include/ffi.h.in: Fix i386 win32 compilation.
2460
2461 2002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2462
2463 * configure.in: Add s390x-*-linux-* target.
2464 * configure: Regenerate.
2465 * include/ffi.h.in: Define S390X for s390x targets.
2466 (FFI_CLOSURES): Define for s390/s390x.
2467 (FFI_TRAMPOLINE_SIZE): Likewise.
2468 (FFI_NATIVE_RAW_API): Likewise.
2469 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
2470 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
2471 * src/s390/ffi.c: Major rework of existing code. Add support for
2472 s390x targets. Add closure support.
2473 * src/s390/sysv.S: Likewise.
2474
2475 2002-09-29 Richard Earnshaw <rearnsha@arm.com>
2476
2477 * src/arm/sysv.S: Fix typo.
2478
2479 2002-09-28 Richard Earnshaw <rearnsha@arm.com>
2480
2481 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
2482 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
2483 (ffi_call_SYSV): Handle soft-float.
2484
2485 2002-09-27 Bo Thorsen <bo@suse.de>
2486
2487 * include/ffi.h.in: Fix multilib x86-64 support.
2488
2489 2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2490
2491 * Makefile.am (all-multi): Fix multilib parallel build.
2492
2493 2002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
2494
2495 * configure.in (sh[34]*-*-linux*): Add brackets.
2496 * configure: Regenerate.
2497
2498 2002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
2499
2500 * Makefile.am: Add SH support.
2501 * Makefile.in: Regenerate.
2502 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
2503 * configure: Regenerate.
2504 * include/ffi.h.in: Add SH support.
2505 * src/sh/ffi.c: New file.
2506 * src/sh/sysv.S: New file.
2507 * src/types.c: Add SH support.
2508
2509 2002-07-16 Bo Thorsen <bo@suse.de>
2510
2511 * src/x86/ffi64.c: New file that adds x86-64 support.
2512 * src/x86/unix64.S: New file that handles argument setup for
2513 x86-64.
2514 * src/x86/sysv.S: Don't use this on x86-64.
2515 * src/x86/ffi.c: Don't use this on x86-64.
2516 Remove unused vars.
2517 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
2518 for x86-64.
2519 * src/ffitest.c (struct6): New test that tests a special case in
2520 the x86-64 ABI.
2521 (struct7): Likewise.
2522 (struct8): Likewise.
2523 (struct9): Likewise.
2524 (closure_test_fn): Silence warning about this when it's not used.
2525 (main): Add the new tests.
2526 (main): Fix a couple of wrong casts and silence some compiler warnings.
2527 * include/ffi.h.in: Add x86-64 ABI definition.
2528 * fficonfig.h.in: Regenerate.
2529 * Makefile.am: Add x86-64 support.
2530 * configure.in: Likewise.
2531 * Makefile.in: Regenerate.
2532 * configure: Likewise.
2533
2534 2002-06-24 Bo Thorsen <bo@suse.de>
2535
2536 * src/types.c: Merge settings for similar architectures.
2537 Add x86-64 sizes and alignments.
2538
2539 2002-06-23 Bo Thorsen <bo@suse.de>
2540
2541 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
2542 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
2543 * src/mips/ffi.c (ffi_prep_args): Likewise.
2544 * src/m68k/ffi.c (ffi_prep_args): Likewise.
2545
2546 2002-07-18 H.J. Lu (hjl@gnu.org)
2547
2548 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
2549 (libffi_la_SOURCES): Support MIPS_LINUX.
2550 (libffi_convenience_la_SOURCES): Likewise.
2551 * Makefile.in: Regenerated.
2552
2553 * configure.in (mips64*-*): Skip.
2554 (mips*-*-linux*): New.
2555 * configure: Regenerated.
2556
2557 * src/mips/ffi.c: Include <sgidefs.h>.
2558
2559 2002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2560
2561 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
2562
2563 2002-05-27 Roger Sayle <roger@eyesopen.com>
2564
2565 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
2566
2567 2002-05-27 Bo Thorsen <bo@suse.de>
2568
2569 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
2570 fix formatting.
2571
2572 2002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
2573
2574 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
2575 beginning of function (for older apple cc).
2576
2577 2002-05-08 Alexandre Oliva <aoliva@redhat.com>
2578
2579 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
2580 script entry, and set LD to it when configuring multilibs.
2581 * configure: Rebuilt.
2582
2583 2002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
2584
2585 * configure.in (sparc64-*-netbsd*): Add target.
2586 (sparc-*-netbsdelf*): Likewise.
2587 * configure: Regenerate.
2588
2589 2002-04-28 David S. Miller <davem@redhat.com>
2590
2591 * configure.in, configure: Fix SPARC test in previous change.
2592
2593 2002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
2594
2595 * Makefile.am: Add Linux for S/390 support.
2596 * Makefile.in: Regenerate.
2597 * configure.in: Add Linux for S/390 support.
2598 * configure: Regenerate.
2599 * include/ffi.h.in: Add Linux for S/390 support.
2600 * src/s390/ffi.c: New file from libffi CVS tree.
2601 * src/s390/sysv.S: New file from libffi CVS tree.
2602
2603 2002-04-28 Jakub Jelinek <jakub@redhat.com>
2604
2605 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
2606 %r_disp32().
2607 * src/sparc/v8.S: Use it.
2608 * src/sparc/v9.S: Likewise.
2609 * fficonfig.h.in: Rebuilt.
2610 * configure: Rebuilt.
2611
2612 2002-04-08 Hans Boehm <Hans_Boehm@hp.com>
2613
2614 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
2615 correctly.
2616 * src/ia64/unix.S: Add unwind information. Fix comments.
2617 Save sp in a way that's compatible with unwind info.
2618 (ffi_call_unix): Correctly restore sp in all cases.
2619 * src/ia64/ffi.c: Add, fix comments.
2620
2621 2002-04-08 Jakub Jelinek <jakub@redhat.com>
2622
2623 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
2624
2625 2002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
2626
2627 * configure.in (alpha*-*-netbsd*): Add target.
2628 * configure: Regenerate.
2629
2630 2002-04-04 Jeff Sturm <jsturm@one-point.com>
2631
2632 * src/sparc/v8.S: Add unwind info.
2633 * src/sparc/v9.S: Likewise.
2634
2635 2002-03-30 Krister Walfridsson <cato@df.lth.se>
2636
2637 * configure.in: Enable i*86-*-netbsdelf*.
2638 * configure: Rebuilt.
2639
2640 2002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
2641
2642 PR other/2620
2643 * src/mips/n32.s: Delete
2644 * src/mips/o32.s: Delete
2645
2646 2002-03-21 Loren J. Rittle <ljrittle@acm.org>
2647
2648 * configure.in: Enable alpha*-*-freebsd*.
2649 * configure: Rebuilt.
2650
2651 2002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2652
2653 * Makefile.am: libfficonvenience -> libffi_convenience.
2654 * Makefile.in: Rebuilt.
2655
2656 * Makefile.am: Define ffitest_OBJECTS.
2657 * Makefile.in: Rebuilt.
2658
2659 2002-03-07 Andreas Tobler <toa@pop.agri.ch>
2660 David Edelsohn <edelsohn@gnu.org>
2661
2662 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2663 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
2664 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
2665 * Makefile.in: Regenerate.
2666 * include/ffi.h.in: Add AIX and Darwin closure definitions.
2667 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
2668 (flush_icache, flush_range): New functions.
2669 (ffi_closure_helper_DARWIN): New function.
2670 * src/powerpc/aix_closure.S: New file.
2671 * src/powerpc/darwin_closure.S: New file.
2672
2673 2002-02-24 Jeff Sturm <jsturm@one-point.com>
2674
2675 * include/ffi.h.in: Add typedef for ffi_arg.
2676 * src/ffitest.c (main): Declare rint with ffi_arg.
2677
2678 2002-02-21 Andreas Tobler <toa@pop.agri.ch>
2679
2680 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
2681 number of GPRs for floating-point arguments.
2682
2683 2002-01-31 Anthony Green <green@redhat.com>
2684
2685 * configure: Rebuilt.
2686 * configure.in: Replace CHECK_SIZEOF and endian tests with
2687 cross-compiler friendly macros.
2688 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
2689 macros.
2690
2691 2002-01-18 David Edelsohn <edelsohn@gnu.org>
2692
2693 * src/powerpc/darwin.S (_ffi_call_AIX): New.
2694 * src/powerpc/aix.S (ffi_call_DARWIN): New.
2695
2696 2002-01-17 David Edelsohn <edelsohn@gnu.org>
2697
2698 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
2699 (TARGET_SRC_POWERPC_AIX): New.
2700 (POWERPC_AIX): New stanza.
2701 * Makefile.in: Regenerate.
2702 * configure.in: Add AIX case.
2703 * configure: Regenerate.
2704 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
2705 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
2706 size. Fix "long double" support.
2707 (ffi_call): Add FFI_AIX case.
2708 * src/powerpc/aix.S: New.
2709
2710 2001-10-09 John Hornkvist <john@toastedmarshmallow.com>
2711
2712 Implement Darwin PowerPC ABI.
2713 * configure.in: Handle powerpc-*-darwin*.
2714 * Makefile.am: Set source files for POWERPC_DARWIN.
2715 * configure: Rebuilt.
2716 * Makefile.in: Rebuilt.
2717 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
2718 POWERPC_DARWIN.
2719 * src/powerpc/darwin.S: New file.
2720 * src/powerpc/ffi_darwin.c: New file.
2721
2722 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
2723
2724 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
2725
2726 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2727
2728 * src/x86/sysv.S: Avoid gas-only .balign directive.
2729 Use C style comments.
2730
2731 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2732
2733 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
2734 Fixes PR bootstrap/3563.
2735
2736 2001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2737
2738 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
2739
2740 2001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2741
2742 * configure.in: Recognize sparc*-sun-* host.
2743 * configure: Regenerate.
2744
2745 2001-06-06 Andrew Haley <aph@redhat.com>
2746
2747 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
2748
2749 2001-06-03 Andrew Haley <aph@redhat.com>
2750
2751 * src/alpha/osf.S: Add unwind info.
2752 * src/powerpc/sysv.S: Add unwind info.
2753 * src/powerpc/ppc_closure.S: Likewise.
2754
2755 2000-05-31 Jeff Sturm <jsturm@one-point.com>
2756
2757 * configure.in: Fix AC_ARG_ENABLE usage.
2758 * configure: Rebuilt.
2759
2760 2001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2761
2762 * configure.in: Remove warning about beta code.
2763 * configure: Rebuilt.
2764
2765 2001-04-25 Hans Boehm <Hans_Boehm@hp.com>
2766
2767 * src/ia64/unix.S: Restore stack pointer when returning from
2768 ffi_closure_UNIX.
2769 * src/ia64/ffi.c: Fix typo in comment.
2770
2771 2001-04-18 Jim Wilson <wilson@redhat.com>
2772
2773 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
2774 to eliminate RAW DV.
2775
2776 2001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
2777
2778 * Makefile.am: Make a libtool convenience library.
2779 * Makefile.in: Rebuilt.
2780
2781 2001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
2782
2783 * configure.in: Use different syntax for subdirectory creation.
2784 * configure: Rebuilt.
2785
2786 2001-03-27 Jon Beniston <jon@beniston.com>
2787
2788 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
2789 * configure: Rebuilt.
2790 * Makefile.am: Added X86_WIN32 target support.
2791 * Makefile.in: Rebuilt.
2792
2793 * include/ffi.h.in: Added X86_WIN32 target support.
2794
2795 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
2796 * src/types.c: Added X86_WIN32 target support.
2797
2798 * src/x86/win32.S: New file. Based on sysv.S, but with EH
2799 stuff removed and made to work with CygWin's gas.
2800
2801 2001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
2802
2803 * configure.in: Make target subdirectory in build dir.
2804 * Makefile.am: Override suffix based rules to specify correct output
2805 subdirectory.
2806 * Makefile.in: Rebuilt.
2807 * configure: Rebuilt.
2808
2809 2001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
2810
2811 * src/powerpc/ppc_closure.S: New file.
2812 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
2813 involving long long and register pairs.
2814 (ffi_prep_closure): New function.
2815 (flush_icache): Likewise.
2816 (ffi_closure_helper_SYSV): Likewise.
2817 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
2818 (FFI_TRAMPOLINE_SIZE): Likewise.
2819 (FFI_NATIVE_RAW_API): Likewise.
2820 * Makefile.in: Rebuilt.
2821 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
2822 (TARGET_SRC_POWERPC): Likewise.
2823
2824 2001-03-19 Tom Tromey <tromey@redhat.com>
2825
2826 * Makefile.in: Rebuilt.
2827 * Makefile.am (ffitest_LDFLAGS): New macro.
2828
2829 2001-03-02 Nick Clifton <nickc@redhat.com>
2830
2831 * include/ffi.h.in: Remove RCS ident string.
2832 * include/ffi_mips.h: Remove RCS ident string.
2833 * src/debug.c: Remove RCS ident string.
2834 * src/ffitest.c: Remove RCS ident string.
2835 * src/prep_cif.c: Remove RCS ident string.
2836 * src/types.c: Remove RCS ident string.
2837 * src/alpha/ffi.c: Remove RCS ident string.
2838 * src/alpha/osf.S: Remove RCS ident string.
2839 * src/arm/ffi.c: Remove RCS ident string.
2840 * src/arm/sysv.S: Remove RCS ident string.
2841 * src/mips/ffi.c: Remove RCS ident string.
2842 * src/mips/n32.S: Remove RCS ident string.
2843 * src/mips/o32.S: Remove RCS ident string.
2844 * src/sparc/ffi.c: Remove RCS ident string.
2845 * src/sparc/v8.S: Remove RCS ident string.
2846 * src/sparc/v9.S: Remove RCS ident string.
2847 * src/x86/ffi.c: Remove RCS ident string.
2848 * src/x86/sysv.S: Remove RCS ident string.
2849
2850 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
2851
2852 * include/ffi.h.in: Change sourceware.cygnus.com references to
2853 gcc.gnu.org.
2854
2855 2000-12-09 Richard Henderson <rth@redhat.com>
2856
2857 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
2858 (ffi_closure_osf_inner): Index rather than increment avalue
2859 and arg_types. Give ffi_closure_osf the raw return value type.
2860 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
2861 promotion.
2862
2863 2000-12-07 Richard Henderson <rth@redhat.com>
2864
2865 * src/raw_api.c (ffi_translate_args): Fix typo.
2866 (ffi_prep_closure): Likewise.
2867
2868 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
2869 FFI_TRAMPOLINE_SIZE.
2870 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
2871 cif->bytes for new ffi_call_osf implementation.
2872 (ffi_prep_args): Absorb into ...
2873 (ffi_call): ... here. Do all stack allocation here and
2874 avoid a callback function.
2875 (ffi_prep_closure, ffi_closure_osf_inner): New.
2876 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
2877 (ffi_closure_osf): New.
2878
2879 2000-09-10 Alexandre Oliva <aoliva@redhat.com>
2880
2881 * config.guess, config.sub, install-sh: Removed.
2882 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
2883 * Makefile.in: Rebuilt.
2884
2885 * acinclude.m4: Include libtool macros from the top level.
2886 * aclocal.m4, configure: Rebuilt.
2887
2888 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
2889
2890 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
2891 * configure: Rebuilt.
2892
2893 2000-05-11 Scott Bambrough <scottb@netwinder.org>
2894
2895 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
2896 memory correctly. Use conditional instructions, not branches where
2897 possible.
2898
2899 2000-05-04 Tom Tromey <tromey@cygnus.com>
2900
2901 * configure: Rebuilt.
2902 * configure.in: Match `arm*-*-linux-*'.
2903 From Chris Dornan <cdornan@arm.com>.
2904
2905 2000-04-28 Jakub Jelinek <jakub@redhat.com>
2906
2907 * Makefile.am (SUBDIRS): Define.
2908 (AM_MAKEFLAGS): Likewise.
2909 (Multilib support.): Add section.
2910 * Makefile.in: Rebuilt.
2911 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
2912 New variables. Set for gcc using -print-multi-lib. Export them
2913 to libtool.
2914 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
2915 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
2916 for -shared links.
2917 (extra_compiler_flags_value, extra_compiler_flags): Check these
2918 for extra compiler options which need to be passed down in
2919 compiler_flags.
2920
2921 2000-04-16 Anthony Green <green@redhat.com>
2922
2923 * configure: Rebuilt.
2924 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
2925
2926 2000-04-14 Jakub Jelinek <jakub@redhat.com>
2927
2928 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
2929 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
2930 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
2931 Replace all void * sizeofs with sizeof(int).
2932 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
2933 different than DOUBLE.
2934 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
2935 (ffi_prep_args_v9): New function.
2936 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
2937 (ffi_V9_return_struct): New function.
2938 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
2939 32bit code (not yet cross-arch calls).
2940 * src/sparc/v8.S: Add struct return delay nop.
2941 Handle long long.
2942 * src/sparc/v9.S: New file.
2943 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
2944 is used on sparc64 only for structures larger than 32 bytes.
2945 Pass by reference for structures is done for structure arguments
2946 larger than 16 bytes.
2947 * src/ffitest.c (main): Use 64bit rint on sparc64.
2948 Run long long tests on sparc.
2949 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
2950 sparc64.
2951 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
2952 on sparc64.
2953 * configure.in (sparc-*-linux*): New supported target.
2954 (sparc64-*-linux*): Likewise.
2955 * configure: Rebuilt.
2956 * Makefile.am: Add v9.S to SPARC files.
2957 * Makefile.in: Likewise.
2958 (LINK): Surround $(CCLD) into double quotes, so that multilib
2959 compiles work correctly.
2960
2961 2000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
2962
2963 * configure: Rebuilt.
2964 * configure.in: (i*86-*-solaris*): New libffi target. Patch
2965 proposed by Bryce McKinlay.
2966
2967 2000-03-20 Tom Tromey <tromey@cygnus.com>
2968
2969 * Makefile.in: Hand edit for java_raw_api.lo.
2970
2971 2000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
2972
2973 * config.guess, config.sub: Update from the gcc tree.
2974 Fix for PR libgcj/168.
2975
2976 2000-03-03 Tom Tromey <tromey@cygnus.com>
2977
2978 * Makefile.in: Fixed ia64 by hand.
2979
2980 * configure: Rebuilt.
2981 * configure.in (--enable-multilib): New option.
2982 (libffi_basedir): New subst.
2983 (AC_OUTPUT): Added multilib code.
2984
2985 2000-03-02 Tom Tromey <tromey@cygnus.com>
2986
2987 * Makefile.in: Rebuilt.
2988 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
2989 directory name.
2990
2991 2000-02-25 Hans Boehm <boehm@acm.org>
2992
2993 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
2994 files.
2995 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
2996 list.
2997 (ffi_prep_raw_closure): Use ffi_translate_args, not
2998 ffi_closure_translate.
2999 * src/java_raw_api.c: New file.
3000 * src/ffitest.c (closure_test_fn): New function.
3001 (main): Define `rint' as long long on IA64. Added new test when
3002 FFI_CLOSURES is defined.
3003 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3004 (ffi_abi): Recognize IA64.
3005 (ffi_raw): Added `flt' field.
3006 Added "Java raw API" code.
3007 * configure.in: Recognize ia64.
3008 * Makefile.am (TARGET_SRC_IA64): New macro.
3009 (libffi_la_common_SOURCES): Added java_raw_api.c.
3010 (libffi_la_SOURCES): Define in IA64 case.
3011
3012 2000-01-04 Tom Tromey <tromey@cygnus.com>
3013
3014 * Makefile.in: Rebuilt with newer automake.
3015
3016 1999-12-31 Tom Tromey <tromey@cygnus.com>
3017
3018 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3019
3020 1999-09-01 Tom Tromey <tromey@cygnus.com>
3021
3022 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3023 undefs.
3024 * fficonfig.h.in: Rebuilt.
3025 * configure: Rebuilt.
3026 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3027 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3028 * acconfig.h: Don't #undef PACKAGE or VERSION.
3029
3030 1999-08-09 Anthony Green <green@cygnus.com>
3031
3032 * include/ffi.h.in: Try to work around messy header problem
3033 with PACKAGE and VERSION.
3034
3035 * configure: Rebuilt.
3036 * configure.in: Change version to 2.00-beta.
3037
3038 * fficonfig.h.in: Rebuilt.
3039 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3040
3041 * src/x86/ffi.c (ffi_raw_call): Rename.
3042
3043 1999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
3044
3045 * src/x86/ffi.c (ffi_closure_SYSV): New function.
3046 (ffi_prep_incoming_args_SYSV): Ditto.
3047 (ffi_prep_closure): Ditto.
3048 (ffi_closure_raw_SYSV): Ditto.
3049 (ffi_prep_raw_closure): More ditto.
3050 (ffi_call_raw): Final ditto.
3051
3052 * include/ffi.h.in: Add definitions for closure and raw API.
3053
3054 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
3055 FFI_TYPE_UINT64.
3056
3057 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3058
3059 * src/raw_api.c: New file.
3060
3061 * include/ffi.h.in (ffi_raw): New type.
3062 (UINT_ARG, SINT_ARG): New defines.
3063 (ffi_closure, ffi_raw_closure): New types.
3064 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
3065
3066 * configure.in: Add check for endianness and sizeof void*.
3067
3068 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3069 instead of directly.
3070
3071 * configure: Rebuilt.
3072
3073 Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
3074
3075 * configure.in: Add x86 and powerpc BeOS configurations.
3076 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3077
3078 1999-05-09 Anthony Green <green@cygnus.com>
3079
3080 * configure.in: Add warning about this being beta code.
3081 Remove src/Makefile.am from the picture.
3082 * configure: Rebuilt.
3083
3084 * Makefile.am: Move logic from src/Makefile.am. Add changes
3085 to support libffi as a target library.
3086 * Makefile.in: Rebuilt.
3087
3088 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3089 Upgraded to new autoconf, automake, libtool.
3090
3091 * README: Tweaks.
3092
3093 * LICENSE: Update copyright date.
3094
3095 * src/Makefile.am, src/Makefile.in: Removed.
3096
3097 1998-11-29 Anthony Green <green@cygnus.com>
3098
3099 * include/ChangeLog: Removed.
3100 * src/ChangeLog: Removed.
3101 * src/mips/ChangeLog: Removed.
3102 * src/sparc/ChangeLog: Remboved.
3103 * src/x86/ChangeLog: Removed.
3104
3105 * ChangeLog.v1: Created.