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