]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
genautomata.c (write_automata): Include xstrerror output in the error message if...
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
f4f7486b
AT
12006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2
3 * configure.ac: Add TARGET for x86_64-*-darwin*.
4 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
5 for X86_DARWIN.
6 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
7 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
8 * configure: Regenerate.
9 * Makefile.in: Regenerate.
10 * include/Makefile.in: Regenerate.
11 * testsuite/Makefile.in: Regenerate.
12 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
13 ffi_call only.
14
3d5eafe2
AT
152006-12-13 Andreas Tobler <a.tobler@schweiz.org>
16
17 * aclocal.m4: Regenerate with aclocal -I .. as written in the
18 Makefile.am.
19
d5523ce1 202006-10-31 Geoffrey Keating <geoffk@apple.com>
58182de3
GK
21
22 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
23 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
24 Darwin.
25 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
26 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
27
a3bd50cc
PB
282006-10-10 Paolo Bonzini <bonzini@gnu.org>
29 Sandro Tolaini <tolaini@libero.it>
30
31 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
32 conditional.
33 * configure: Regenerated.
34 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
35 (EXTRA_DIST): Add src/x86/darwin.S.
36 * Makefile.in: Regenerated.
37 * include/Makefile.in: Regenerated.
38 * testsuite/Makefile.in: Regenerated.
39
40 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
41 X86_WIN32, and additionally align stack to 16 bytes.
42 * src/x86/darwin.S: New, based on sysv.S.
43 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
44
b095810f
DD
452006-09-12 David Daney <ddaney@avtrex.com>
46
47 PR libffi/23935
48 * include/Makefile.am: Install both ffi.h and ffitarget.h in
49 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
50 * aclocal.m4: Regenerated for automake 1.9.6.
51 * Makefile.in: Regenerated.
52 * include/Makefile.in: Regenerated.
53 * testsuite/Makefile.in: Regenerated.
54
110b2db4
AT
552006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
56
57 * include/ffi_common.h (struct): Revert accidental commit.
58
8e5fde87
AT
592006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
60
61 * include/ffi_common.h: Remove lint directives.
62 * include/ffi.h.in: Likewise.
63
cb4132fe
TS
642006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
65
66 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
67 for 32-bit architectures.
68 * testsuite/libffi.call/return_ul.c: New test case.
69
0d24c3fa
DD
702006-07-19 David Daney <ddaney@avtrex.com>
71
72 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
73 xfail remains for mips64.
74
8665824c
CD
752006-05-23 Carlos O'Donell <carlos@codesourcery.com>
76
77 * Makefile.am: Add install-html target. Add install-html to .PHONY
78 * Makefile.in: Regenerate.
79 * aclocal.m4: Regenerate.
80 * include/Makefile.in: Regenerate.
81 * testsuite/Makefile.in: Regenerate.
82
84e2e370
JDA
832006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
84
85 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
86 stack slot.
87
ac6ed182
AT
882006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
89
90 * README: Remove notice about 'Crazy Comments'.
91 * src/debug.c: Remove lint directives. Cleanup white spaces.
92 * src/java_raw_api.c: Likewise.
93 * src/prep_cif.c: Likewise.
94 * src/raw_api.c: Likewise.
95 * src/ffitest.c: Delete. No longer needed, all test cases migrated
96 to the testsuite.
97 * src/arm/ffi.c: Remove lint directives.
98 * src/m32r/ffi.c: Likewise.
99 * src/pa/ffi.c: Likewise.
100 * src/powerpc/ffi.c: Likewise.
101 * src/powerpc/ffi_darwin.c: Likewise.
102 * src/sh/ffi.c: Likewise.
103 * src/sh64/ffi.c: Likewise.
104 * src/x86/ffi.c: Likewise.
105 * testsuite/libffi.call/float2.c: Likewise.
106 * testsuite/libffi.call/promotion.c: Likewise.
107 * testsuite/libffi.call/struct1.c: Likewise.
108
b7211585
AT
1092006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
110
111 * src/pa/hpux32.S: Correct unwind offset calculation for
112 ffi_closure_pa32.
113 * src/pa/linux.S: Likewise.
114
86066f9b
JW
1152006-04-12 James E Wilson <wilson@specifix.com>
116
117 PR libgcj/26483
118 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
119 (hfa_type_load): Call stf_spill.
120 (hfa_type_store): Call ldf_fill.
121 (ffi_call): Adjust calls to above routines. Add local temps for
122 macro result.
b7211585 123
615baed7
MK
1242006-04-10 Matthias Klose <doko@debian.org>
125
126 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
127 directory names containing underscores.
128
8e7a2b58
JW
1292006-04-07 James E Wilson <wilson@specifix.com>
130
131 * testsuite/libffi.call/float4.c: New testcase.
132
e6c300ef
JDA
1332006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
134 Andreas Tobler <a.tobler@schweiz.ch>
135
136 * Makefile.am: Add PA_HPUX port.
137 * Makefile.in: Regenerate.
138 * include/Makefile.in: Likewise.
139 * testsuite/Makefile.in: Likewise.
140 * configure.ac: Add PA_HPUX rules.
141 * configure: Regenerate.
142 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
143 Add PA_HPUX and PA64_HPUX.
144 Rename FFI_LINUX ABI to FFI_PA32 ABI.
145 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
146 (FFI_TYPE_SMALL_STRUCT2): Define.
147 (FFI_TYPE_SMALL_STRUCT4): Likewise.
148 (FFI_TYPE_SMALL_STRUCT8): Likewise.
149 (FFI_TYPE_SMALL_STRUCT3): Redefine.
150 (FFI_TYPE_SMALL_STRUCT5): Likewise.
151 (FFI_TYPE_SMALL_STRUCT6): Likewise.
152 (FFI_TYPE_SMALL_STRUCT7): Likewise.
153 * src/pa/ffi.c (ROUND_DOWN): Delete.
154 (fldw, fstw, fldd, fstd): Use '__asm__'.
155 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
156 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
157 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
158 Simplify incrementing of stack slot variable. Change type of local
159 'n' to unsigned int.
160 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
161 double on PA_HPUX.
162 (ffi_prep_cif_machdep): Likewise.
163 (ffi_call): Likewise.
164 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
165 return type to ffi_status. Simplify incrementing of stack slot
166 variable. Only copy floating point argument registers when PA_LINUX
167 is true. Reformat debug statement.
168 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
169 FFI_TYPE_SMALL_STRUCT8.
170 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
171 declaration.
172 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
173 Add nops to cache flush. Add trampoline for PA_HPUX.
174 * src/pa/hpux32.S: New file.
175 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
176 ffi_prep_args_LINUX to ffi_prep_args_pa32.
177 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
178 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
179 argument type checks so that common argument types appear first.
180 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
181 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
182
75b8b1be
AM
1832006-03-24 Alan Modra <amodra@bigpond.net.au>
184
185 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
186 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
187 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
188 FFI_TYPE_LONGDOUBLE.
189 (ffi_prep_args64): Assert using IBM extended double.
190 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
191 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
192 (ffi_call): Handle FFI_LINUX.
193 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
194 gpr3 return pointer as for struct return. Handle FFI_LINUX
195 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
196 unnecessarily.
197 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
198 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
199 Don't use r6 as pointer to results, instead use sp offset. Don't
200 make a special call to load lr with case table address, instead
201 use offset from previous call.
202 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
203 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
204 return.
205
697701ad
KK
2062006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
207
208 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
209 passed with FP registers correctly.
210 (ffi_closure_helper_SYSV): Likewise.
211 * src/sh64/sysv.S: Likewise.
212
b295c471
AT
2132006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
214
215 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
216 args and userdata unused.
217 (closure_test_fn1): Mark cif and userdata unused.
218 (main): Remove unused res.
219
9fdeb13b
AT
2202006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
221
222 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
223 -O2, -O3, -Os and the warning flags -W -Wall.
224 * testsuite/libffi.special/special.exp: Likewise.
225 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
226 unused parameter unused for gcc or else do nothing.
227 * testsuite/libffi.special/ffitestcxx.h: Likewise.
228 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
229 and userdata unused.
230 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
231 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
232 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
233 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
234 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
235 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
236 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
237 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
238 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
239 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
240 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
241 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
242 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
243 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
244 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
245 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
246 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
247 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
248 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
249 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
250 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
251 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
252 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
253 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
254 Likewise.
255 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
256 Likewise.
257 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
258 Likewise.
259 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
260 void* to avoid compiler warning.
261 (main): Likewise.
262 (cls_struct_align_gn): Mark cif and userdata unused.
263 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
264 Likewise.
265 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
266 Likewise.
267 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
268 Likewise.
269 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
270 Likewise.
271 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
272 Likewise.
273 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
274 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
275 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
276 data unused.
277 (main): Cast res_call to silence gcc.
278 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
279 data unused.
280 (main): Cast res_call to silence gcc.
281 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
282 and data unused.
283 (main): Cast res_call to silence gcc.
284 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
285 data unused.
286 (main): Cast res_call to silence gcc.
287 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
288 data unused.
289 (main): Cast res_call to silence gcc.
290 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
291 and data unused.
292 (main): Cast res_call to silence gcc.
293 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
294 userdata unused.
295 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
296 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
297 userdata unused.
298 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
299 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
300 userdata unused.
301 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
302 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
303 userdata unused.
304 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
305 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
306 userdata unused.
307 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
308 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
309 and userdata unused.
310 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
311 userdata unused.
312 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
313 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
314 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
315 Cleanup white spaces.
316 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
317 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
318 cif and userdata unused.
319 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
320 Likewise.
321 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
322 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
323 formatters to silence gcc.
324 (B_gn): Mark cif and userdata unused.
325 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
326 unused.
327 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
328 (B_gn): Mark cif and userdata unused.
329 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
330 unused.
331 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
332 (B_gn): Mark cif and userdata unused.
333 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
334 unused.
335 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
336 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
337 * testsuite/libffi.call/problem1.c (stub): Likewise.
338 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
339 gcc.
340 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
341 in the last commit for this test case in the test case itself.
342 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
343 unused.
344 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
345 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
346 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
347 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
348 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
349 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
350
0a4e2bb5
KK
3512006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
352
353 * src/sh/sysv.S: Fix register numbers in the FDE for
354 ffi_closure_SYSV.
355
723e5d5a
AT
3562006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
357
358 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
359 declaration to avoid a false negative on ix86. See PR323.
360
e097f887
KK
3612006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
362
363 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
364 and cast integer to void * if needed. Update the pointer to
365 the FP register saved area correctly.
366
1a4878f7
AT
3672006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
368
369 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
370 is fixed.
371 * testsuite/libffi.call/nested_struct4.c: Likewise.
372
b47b5e08
AT
3732006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
374
6429d58f
AT
375 * testsuite/libffi.call/return_dbl.c: New test case.
376 * testsuite/libffi.call/return_dbl1.c: Likewise.
377 * testsuite/libffi.call/return_dbl2.c: Likewise.
378 * testsuite/libffi.call/return_fl.c: Likewise.
379 * testsuite/libffi.call/return_fl1.c: Likewise.
380 * testsuite/libffi.call/return_fl2.c: Likewise.
381 * testsuite/libffi.call/return_fl3.c: Likewise.
382 * testsuite/libffi.call/closure_fn6.c: Likewise.
383
b47b5e08
AT
384 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
385 definition.
386 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
387 here to be used by other test cases too.
388
389 * testsuite/libffi.call/nested_struct10.c: New test case.
390 * testsuite/libffi.call/nested_struct9.c: Likewise.
391 * testsuite/libffi.call/nested_struct8.c: Likewise.
392 * testsuite/libffi.call/nested_struct7.c: Likewise.
393 * testsuite/libffi.call/nested_struct6.c: Likewise.
394 * testsuite/libffi.call/nested_struct5.c: Likewise.
395 * testsuite/libffi.call/nested_struct4.c: Likewise.
396
9abe31d4
AT
3972006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
398
399 * configure.ac: Enable libffi for sparc64-*-freebsd*.
400 * configure: Rebuilt.
401
71aa1a70
JJ
4022006-01-18 Jakub Jelinek <jakub@redhat.com>
403
404 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
405 instead do the shifting inline.
406 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
407 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
408 and 8 byte structs, for the remaining struct sizes don't call
409 __lshrdi3, instead do the shifting inline.
410
8a39029d
TS
4112005-12-07 Thiemo Seufer <ths@networkno.de>
412
413 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
414 missing parentheses.
415 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
416 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
417 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
418 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
419 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
420 FA_0_0_OFF2.
421 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
422 endianness bugs.
423 (ffi_prep_closure): Improve trampoline instruction scheduling.
424 (ffi_closure_mips_inner_O32): Fix endianness bugs.
425
cd4241aa
AM
4262005-12-03 Alan Modra <amodra@bigpond.net.au>
427
428 * src/powerpc/ffi.c: Formatting.
429 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
430 (ffi_prep_args64): Likewise.
431
0363db46
GK
4322005-09-30 Geoffrey Keating <geoffk@apple.com>
433
434 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
435 darwin, use -shared-libgcc not -lgcc_s, and explain why.
436
d674eb2f
TT
4372005-09-26 Tom Tromey <tromey@redhat.com>
438
439 * testsuite/libffi.call/float1.c (value_type): New typedef.
440 (CANARY): New define.
441 (main): Check for result buffer overflow.
442 * src/powerpc/linux64.S: Handle linux64 long double returns.
443 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
444 (ffi_prep_cif_machdep): Handle linux64 long double returns.
445
2d9c5743
AM
4462005-08-25 Alan Modra <amodra@bigpond.net.au>
447
448 PR target/23404
449 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
450 homed fp args.
451 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
452
8a42356f
JJ
4532005-08-11 Jakub Jelinek <jakub@redhat.com>
454
455 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
456 (AH_BOTTOM): Add FFI_HIDDEN definition.
457 * configure: Rebuilt.
458 * fficonfig.h.in: Rebuilt.
459 * src/powerpc/ffi.c (hidden): Remove.
460 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
461 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
462 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
463 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
464 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
465 add FFI_HIDDEN to its prototype.
466 (ffi_closure_SYSV_inner): New.
467 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
468 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
469
863c5508
AS
4702005-08-10 Alfred M. Szmidt <ams@gnu.org>
471
472 PR libffi/21819:
473 * configure: Rebuilt.
474 * configure.ac: Handle i*86-*-gnu*.
475
6a26ea58
JJ
4762005-08-09 Jakub Jelinek <jakub@redhat.com>
477
478 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
479 DW_CFA_offset_extended_sf rather than
480 DW_CFA_GNU_negative_offset_extended.
481 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
482
583a92e8
ST
4832005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
484
485 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
486 on sh3.
487 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
488 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
489 partially on register.
490 (ffi_closure_helper_SYSV): Likewise.
491 (ffi_prep_cif_machdep): Don't set too many cif->flags.
492
5d0317fc
KK
4932005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
494
495 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
496 Remove empty line.
497 * src/sh64/ffi.c (simple_type): Remove.
498 (return_type): Handle small structures correctly.
499 (ffi_prep_args): Likewise.
500 (ffi_call): Likewise.
501 (ffi_closure_helper_SYSV): Likewise.
502 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
503 Emit position independent code if PIC and remove wrong datalabel
504 prefixes from EH data.
505
8d9fd5f5
AT
5062005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
507
508 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
509 * Makefile.in: Regenerate.
510 * include/Makefile.in: Likewise.
511 * testsuite/Makefile.in: Likewise.
512 * configure.ac: Add POWERPC_FREEBSD rules.
513 * configure: Regenerate.
514 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
515 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
516 * src/powerpc/ffi.c: Add flags to handle small structure returns
517 in ffi_call_SYSV.
518 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
519 Aka FFI_SYSV.
520 (ffi_closure_helper_SYSV): Likewise.
521 * src/powerpc/ppc_closure.S: Add return types for small structures.
522 * src/powerpc/sysv.S: Add bits to handle small structures for
523 final SYSV 4 ABI.
524
93c76f81
AT
5252005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
526
527 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
528 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
529 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
530
b65da304
RC
5312005-07-05 Randolph Chung <tausq@debian.org>
532
533 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
534 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
535 structures. Kill compilation warnings.
536 (ffi_closure_inner_LINUX): Print return values as hex in debug
537 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
538 Properly handle 5-7 byte structure returns.
539 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
540 (FFI_TYPE_SMALL_STRUCT2): Remove.
541 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
542 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
543 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
544 (checksmst1, checksmst2): Remove.
545 (checksmst3): Optimize handling of 3-byte struct returns.
546 (checksmst567): Properly handle 5-7 byte struct returns.
547
2572f1c6
RO
5482005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
549
550 PR libgcj/21943
551 * src/mips/n32.S: Enforce PIC code.
552 * src/mips/o32.S: Likewise.
553
cc786582
RO
5542005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
555
556 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
557 * configure: Regenerate.
558
6d0d376c
AM
5592005-06-01 Alan Modra <amodra@bigpond.net.au>
560
561 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
562 to call ffi_closure_helper_SYSV. Append @local instead.
563 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
564
a21946f5 5652005-05-17 Kelley Cook <kcook@gcc.gnu.org>
a097ef55
KC
566
567 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
568 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
569 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
570 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
571 include/Makefile.in, testsuite/Makefile.in: Regenerate.
572
f4c767fd
MS
5732005-05-09 Mike Stump <mrs@apple.com>
574
575 * configure: Regenerate.
576
7e15b5fe
RH
5772005-05-08 Richard Henderson <rth@redhat.com>
578
579 PR libffi/21285
580 * src/alpha/osf.S: Update unwind into to match code.
581
d56ea8d9
RH
5822005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
583 Richard Henderson <rth@redhat.com>
584
585 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
586 bit 11 of flags.
587 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
588 (ffi_prep_closure): Set carry bit if sse-used flag set.
589 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
590 Only load sse registers if ssecount non-zero.
591 (ffi_closure_unix64): Only save sse registers if carry set on entry.
592
5932005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
d948c201
RC
594
595 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
596 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
597 * configure: Regenerate.
598
fc0ad8d9
HPN
5992005-04-20 Hans-Peter Nilsson <hp@axis.com>
600
601 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
602 have Tcl8.3-compatible intermediate variable.
603
614348bb
SP
6042005-04-18 Simon Posnjak <simon.posnjak@siol.net>
605 Hans-Peter Nilsson <hp@axis.com>
606
607 * Makefile.am: Add CRIS support.
608 * configure.ac: Likewise.
29ede6db
HPN
609 * Makefile.in, configure, testsuite/Makefile.in,
610 include/Makefile.in: Regenerate.
614348bb
SP
611 * src/cris: New directory.
612 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
613 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
727e729b
HPN
614
615 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
616 \r?\n in output tests.
617
6dab073b
MS
6182005-04-12 Mike Stump <mrs@apple.com>
619
620 * configure: Regenerate.
621
51f55d7c
HB
6222005-03-30 Hans Boehm <Hans.Boehm@hp.com>
623
624 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
625
7efa52a3
SE
6262005-03-30 Steve Ellcey <sje@cup.hp.com>
627
628 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
629 (ffi_sarg) Ditto.
630 * src/ia64/unix.S (ffi_closure_unix): Extend gp
631 to 64 bits in ILP32 mode.
632 Load 64 bits even for short data.
633
1488177a
MS
6342005-03-23 Mike Stump <mrs@apple.com>
635
636 * src/powerpc/darwin.S: Update for -m64 multilib.
637 * src/powerpc/darwin_closure.S: Likewise.
638
c6900272
ZW
6392005-03-21 Zack Weinberg <zack@codesourcery.com>
640
641 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
642 Do not set tool_include_dir.
643 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
644 Regenerate.
645 * include/Makefile.am: Set gcc_version and toollibffidir.
646 * include/Makefile.in: Regenerate.
647
962eea0a
AH
6482005-02-22 Andrew Haley <aph@redhat.com>
649
650 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
651 odd-numbered register pairs for 64-bit integer types.
652
1b05e8bf
AT
6532005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
654
655 PR libffi/20104
656 * testsuite/libffi.call/return_ll1.c: New test case.
657
6027770b
JJ
6582005-02-11 Janis Johnson <janis187@us.ibm.com>
659
660 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
661 * testsuite/libffi.call/float.c: Ditto.
662 * testsuite/libffi.call/float2.c: Ditto.
663 * testsuite/libffi.call/float3.c: Ditto.
664
ee31ea68
AT
6652005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
666
667 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
668
c16be7d5
EB
6692005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
670
671 * testsuite/libffi.special/special.exp (cxx_options): Add
672 -shared-libgcc.
673
5df07255
RH
6742004-12-31 Richard Henderson <rth@redhat.com>
675
676 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
677 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
678 offset parameters with a type parameter; deduce size and structure
679 alignment. Update all users.
680
81a69b13
RH
6812004-12-31 Richard Henderson <rth@redhat.com>
682
683 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
684 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
c6900272 685 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
81a69b13
RH
686 into ffi_prep_closure.
687 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
688 from scratch.
689
d833cfb0
RH
6902004-12-27 Richard Henderson <rth@redhat.com>
691
692 * src/x86/unix64.S: Fix typo in unwind info.
693
1a0f488c
RH
6942004-12-25 Richard Henderson <rth@redhat.com>
695
696 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
697 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
698 (merge_classes): Check for it.
699 (SSE_CLASS_P): New.
700 (classify_argument): Pass byte_offset by value; perform all updates
701 inside struct case.
702 (examine_argument): Add classes argument; handle
703 X86_64_COMPLEX_X87_CLASS.
704 (ffi_prep_args): Merge into ...
705 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
706 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
707 (ffi_fill_return_value): Remove.
708 (ffi_prep_closure): Remove dead assert.
709 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
710 Rewrite to use struct register_args instead of va_list. Create
711 flags for handling structure returns.
712 * src/x86/unix64.S: Remove dead strings.
713 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
714 stack frame with ffi_call. Handle structure returns properly.
715 (float2sse, floatfloat2sse, double2sse): Remove.
716 (sse2float, sse2double, sse2floatfloat): Remove.
717 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
718 to handle structure returns properly.
719
7994d50c
DE
7202004-12-08 David Edelsohn <edelsohn@gnu.org>
721
722 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
723 PICFLAG.
724 * Makefile.in: Regenerated.
725
afabd8e6
RS
7262004-12-02 Richard Sandiford <rsandifo@redhat.com>
727
728 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
729 * configure, aclocal.m4, Makefile.in: Regenerate.
730 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
731
2539bffe
KC
7322004-11-29 Kelley Cook <kcook@gcc.gnu.org>
733
734 * configure: Regenerate for libtool change.
735
767f726e
KC
7362004-11-25 Kelley Cook <kcook@gcc.gnu.org>
737
738 * configure: Regenerate for libtool reversion.
739
2c92e90f
KC
7402004-11-24 Kelley Cook <kcook@gcc.gnu.org>
741
742 * configure: Regenerate for libtool change.
743
1df8e834
JDA
7442004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
745
746 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
747
7482004-11-23 Richard Sandiford <rsandifo@redhat.com>
749
750 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
751 of jal. Use an absolute encoding for the frame information.
752
7532004-11-23 Kelley Cook <kcook@gcc.gnu.org>
754
755 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
756 * acinclude.m4: Delete logic for sincludes.
757 * aclocal.m4, Makefile.in, configure: Regenerate.
758 * include/Makefile: Likewise.
759 * testsuite/Makefile: Likewise.
760
bf02e7fa
EB
7612004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
762
763 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
764 on a 8-byte boundary.
765 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
766
f20459f1
RE
7672004-10-27 Richard Earnshaw <rearnsha@arm.com>
768
769 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
770 long long values. Round stack allocation to a multiple of 8 bytes
771 for ATPCS compatibility.
772 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
773 names. Handle returning long long types. Add Thumb and interworking
774 support. Improve soft-float code.
775
fdc69597
RE
7762004-10-27 Richard Earnshaw <rearnsha@arm.com>
777
778 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
779 (libffi_exit): New function.
780 (libffi_init): Build the testglue wrapper if needed.
781
1e02510f
EB
7822004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
783
784 PR other/18138
785 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
786
d9a193b2
KI
7872004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
788
789 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
790
1fddb058
KK
7912004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
792
793 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
794 * testsuite/libffi.call/float3.c: New test case.
795
e0d3b452
KK
7962004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
797
798 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
799 the function returning a structure pointed with R2.
800 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
801 the structure return value if T bit set. Emit position
802 independent code and EH data if PIC.
803
a472e9d4
KI
8042004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
805
806 * Makefile.am: Add m32r support.
807 * configure.ac: Likewise.
808 * Makefile.in: Regenerate.
809 * confiugre: Regenerate.
810 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
811 (uint64, sint64, double, longdouble)
812 * src/m32r: New directory.
813 * src/m32r/ffi.c: New file.
814 * src/m32r/sysv.S: Likewise.
815 * src/m32r/ffitarget.h: Likewise.
816
3d47e9ca
KK
8172004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
818
819 * testsuite/libffi.call/negint.c: New test case.
820
fc9051dd
L
8212004-09-14 H.J. Lu <hongjiu.lu@intel.com>
822
823 PR libgcj/17465
824 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
825 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
826 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
827 DYLD_LIBRARY_PATH.
828
2010caea
AT
8292004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
830
831 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
832 * testsuite/libffi.call/promotion.c: Likewise.
833 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
834 whitespaces.
835 * testsuite/libffi.call/return_sc.c: Likewise.
836 * testsuite/libffi.call/return_uc.c: Likewise.
837
894be816
AT
8382004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
839
840 * src/powerpc/darwin.S: Fix comments and identation.
841 * src/powerpc/darwin_closure.S: Likewise.
842
2fe7404a
AT
8432004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
844
845 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
846 (ffi_prep_args): Handle longdouble arguments.
847 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
848 longdouble.
849 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
850 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
851 values.
852 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
853 * src/types.c: Defined longdouble size and alignment for darwin.
854
16070e45
AT
8552004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
856
857 * src/powerpc/aix.S: Remove whitespaces.
858 * src/powerpc/aix_closure.S: Likewise.
859 * src/powerpc/asm.h: Likewise.
860 * src/powerpc/ffi.c: Likewise.
861 * src/powerpc/ffitarget.h: Likewise.
862 * src/powerpc/linux64.S: Likewise.
863 * src/powerpc/linux64_closure.S: Likewise.
864 * src/powerpc/ppc_closure.S: Likewise.
865 * src/powerpc/sysv.S: Likewise.
866
88d8c771
AG
8672004-08-30 Anthony Green <green@redhat.com>
868
869 * Makefile.am: Add frv support.
870 * Makefile.in, testsuite/Makefile.in: Rebuilt.
871 * configure.ac: Read configure.host.
872 * configure.in: Read configure.host.
873 * configure.host: New file. frv-elf needs libgloss.
874 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
a23adb4d 875 alignment. This is needed to frv and shouldn't harm the others.
88d8c771
AG
876 * include/ffi_common.h (ALIGN_DOWN): New macro.
877 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
878
4c5f37d5
DD
8792004-08-24 David Daney <daney@avtrex.com>
880
881 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
882 * testsuite/libffi.call/closure_fn1.c: Likewise.
883 * testsuite/libffi.call/closure_fn2.c Likewise.
884 * testsuite/libffi.call/closure_fn3.c: Likewise.
885 * testsuite/libffi.call/closure_fn4.c: Likewise.
886 * testsuite/libffi.call/closure_fn5.c: Likewise.
887 * testsuite/libffi.call/cls_18byte.c: Likewise.
888 * testsuite/libffi.call/cls_19byte.c: Likewise.
889 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
890 * testsuite/libffi.call/cls_20byte.c: Likewise.
891 * testsuite/libffi.call/cls_20byte1.c: Likewise.
892 * testsuite/libffi.call/cls_24byte.c: Likewise.
893 * testsuite/libffi.call/cls_2byte.c: Likewise.
894 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
895 * testsuite/libffi.call/cls_3byte1.c: Likewise.
896 * testsuite/libffi.call/cls_3byte2.c: Likewise.
897 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
898 * testsuite/libffi.call/cls_4byte.c: Likewise.
899 * testsuite/libffi.call/cls_64byte.c: Likewise.
900 * testsuite/libffi.call/cls_6byte.c: Likewise.
901 * testsuite/libffi.call/cls_7byte.c: Likewise.
902 * testsuite/libffi.call/cls_8byte.c: Likewise.
903 * testsuite/libffi.call/cls_9byte1.c: Likewise.
904 * testsuite/libffi.call/cls_9byte2.c: Likewise.
905 * testsuite/libffi.call/cls_align_double.c: Likewise.
906 * testsuite/libffi.call/cls_align_float.c: Likewise.
907 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
908 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
909 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
910 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
911 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
912 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
913 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
914 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
915 * testsuite/libffi.call/cls_double.c: Likewise.
916 * testsuite/libffi.call/cls_float.c: Likewise.
917 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
918 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
919 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
920 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
921 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
922 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
923 * testsuite/libffi.call/cls_schar.c: Likewise.
924 * testsuite/libffi.call/cls_sint.c: Likewise.
925 * testsuite/libffi.call/cls_sshort.c: Likewise.
926 * testsuite/libffi.call/cls_uchar.c: Likewise.
927 * testsuite/libffi.call/cls_uint.c: Likewise.
928 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
929 * testsuite/libffi.call/cls_ushort.c: Likewise.
930 * testsuite/libffi.call/nested_struct.c: Likewise.
931 * testsuite/libffi.call/nested_struct1.c: Likewise.
932 * testsuite/libffi.call/nested_struct2.c: Likewise.
933 * testsuite/libffi.call/nested_struct3.c: Likewise.
934 * testsuite/libffi.call/problem1.c: Likewise.
935 * testsuite/libffi.special/unwindtest.cc: Likewise.
936 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
937 to zero.
938 * testsuite/libffi.call/cls_16byte.c: Likewise.
939 * testsuite/libffi.call/cls_5byte.c: Likewise.
940
39dca114
DD
9412004-08-23 David Daney <daney@avtrex.com>
942
943 PR libgcj/13141
944 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
945 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
946 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
947 parameters and return types.
948 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
949 (ffi_prep_closure): Ditto.
950 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
951 alignment calculations.
952 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
953 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
954
b790003a
CM
9552004-08-14 Casey Marshall <csm@gnu.org>
956
957 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
958 contain `FFI_TYPE_UINT64' as return type for any 64-bit
959 integer (O32 ABI only).
960 (ffi_prep_closure): new function.
961 (ffi_closure_mips_inner_O32): new function.
c6900272 962 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
b790003a
CM
963 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
964 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
965 64 bit integers correctly.
966 (ffi_closure_O32): new function.
967 Added DWARF-2 unwind info for both functions.
968
547d71a1
AH
9692004-08-10 Andrew Haley <aph@redhat.com>
970
971 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
972
98a5bb3b
RM
9732004-08-01 Robert Millan <robertmh@gnu.org>
974
975 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
976 * configure: Regenerate.
977
4d447364
MR
9782004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
979
980 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
981 and mmap() explicitly instead of relying on preset autoconf cache
982 variables.
983 * aclocal.m4: Regenerate.
984 * configure: Regenerate.
985
e5dce82f
UW
9862004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
987
988 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
989 (ffi_check_float_struct): Remove unused prototype.
990
e6a0022b
GK
9912004-06-30 Geoffrey Keating <geoffk@apple.com>
992
993 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
994 character on Darwin, use '\n\t' instead.
995
5a2d52ca
MK
9962004-06-26 Matthias Klose <doko@debian.org>
997
998 * libtool-version: Fix typo in revision/age.
999
401844ef
MK
10002004-06-17 Matthias Klose <doko@debian.org>
1001
1002 * libtool-version: New.
1003 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
1004 * Makefile.in: Regenerate.
1005
94632047 10062004-06-15 Paolo Bonzini <bonzini@gnu.org>
076e5443
PB
1007
1008 * Makefile.am: Remove useless multilib rules.
1009 * Makefile.in: Regenerate.
1010 * aclocal.m4: Regenerate with automake 1.8.5.
1011 * configure.ac: Remove useless multilib configury.
1012 * configure: Regenerate.
1013
94632047 10142004-06-15 Paolo Bonzini <bonzini@gnu.org>
9ac926b1
PB
1015
1016 * .cvsignore: New file.
1017
37c849e4
JJ
10182004-06-10 Jakub Jelinek <jakub@redhat.com>
1019
1020 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
1021 fp_done.
1022 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
1023 changed from 8.
1024
cb623172
SM
10252004-06-06 Sean McNeil <sean@mcneil.com>
1026
1027 * configure.ac: Add x86_64-*-freebsd* support.
1028 * configure: Regenerate.
1029
c9b93377
JB
10302004-04-26 Joe Buck <jbuck@welsh-buck.org>
1031
1032 Bug 15093
1033 * configure.ac: Test for existence of mmap and sys/mman.h before
1034 checking blacklist. Fix suggested by Jim Wilson.
1035 * configure: Regenerate.
1036
cf90fd1b
MA
10372004-04-26 Matt Austern <austern@apple.com>
1038
1039 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
1040 FDE location.
1041 * src/powerpc/darwin_closure.S: Likewise.
c6900272 1042
67781b44
AT
10432004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
1044
1045 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
1046 error. Reported by Thomas Heller <theller@python.net>.
1047 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
1048 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
1049
14b078a8
MK
10502004-03-20 Matthias Klose <doko@debian.org>
1051
1052 * src/pa/linux.S: Fix typo.
1053
d65a810f
MK
10542004-03-19 Matthias Klose <doko@debian.org>
1055
67781b44 1056 * Makefile.am: Update.
d65a810f
MK
1057 * Makefile.in: Regenerate.
1058 * src/pa/ffi.h.in: Remove.
1059 * src/pa/ffitarget.h: New file.
1060
10612004-02-10 Randolph Chung <tausq@debian.org>
1062
1063 * Makefile.am: Add PA support.
1064 * Makefile.in: Regenerate.
1065 * include/Makefile.in: Regenerate.
1066 * configure.ac: Add PA target.
1067 * configure: Regenerate.
1068 * src/pa/ffi.c: New file.
1069 * src/pa/ffi.h.in: Add PA support.
1070 * src/pa/linux.S: New file.
1071 * prep_cif.c: Add PA support.
1072
09cababc
HY
10732004-03-16 Hosaka Yuji <hos@tamanegi.org>
1074
1075 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
1076 double.
1077 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
1078 with ecif->cif->flags.
1079 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
1080 with cif->flags.
1081 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
1082 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
1083 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
1084 sc_retstruct2b): Add for 1 or 2-bytes struct case.
1085
0e8d0c5f
KC
10862004-03-15 Kelley Cook <kcook@gcc.gnu.org>
1087
1088 * configure.in: Rename file to ...
1089 * configure.ac: ... this.
1090 * fficonfig.h.in: Regenerate.
1091 * Makefile.in: Regenerate.
1092 * include/Makefile.in: Regenerate.
1093 * testsuite/Makefile.in: Regenerate.
1094
b8d50739
MA
10952004-03-12 Matt Austern <austern@apple.com>
1096
1097 * src/powerpc/darwin.S: Fix EH information so it corresponds to
1098 changes in EH format resulting from addition of linkonce support.
1099 * src/powerpc/darwin_closure.S: Likewise.
09cababc 1100
3ed8e5b6
AT
11012004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
1102 Paolo Bonzini <bonzini@gnu.org>
1103
1104 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
1105 Remove VPATH. Remove rules for object files. Remove multilib support.
1106 (AM_CCASFLAGS): Add.
1107 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
1108 (AC_PREREQ): Bump version to 2.59.
1109 (AC_INIT): Fill with version info and bug address.
1110 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
1111 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
1112 De-precious CC so that the right flags are passed down to multilibs.
1113 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
1114 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
1115 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
1116 * configure: Rebuilt.
1117 * aclocal.m4: Likewise.
1118 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
1119 * fficonfig.h.in: Likewise.
1120
254ea477
AS
11212004-03-11 Andreas Schwab <schwab@suse.de>
1122
1123 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
1124 arguments from fp registers only for the first 8 parameter slots.
1125 Don't convert a float parameter when passed in memory.
1126
3beb1315
HPN
11272004-03-09 Hans-Peter Nilsson <hp@axis.com>
1128
1129 * configure: Regenerate for config/accross.m4 correction.
1130
fecf735c
MK
11312004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
1132
1133 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
1134 ecif->cif->bytes to bytes.
1135 (ffi_prep_cif_machdep): Add braces around nested if statement.
1136
4243752c
AM
11372004-02-09 Alan Modra <amodra@bigpond.net.au>
1138
12001e0f
AM
1139 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
1140
4243752c
AM
1141 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
1142 (ffi_closure_helper_LINUX64): Fix typo.
1143 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
1144 for powerpc64-*-*.
1145 * testsuite/libffi.call/float.c: Likewise.
1146 * testsuite/libffi.call/float2.c: Likewise.
1147
bf310028
AM
11482004-02-08 Alan Modra <amodra@bigpond.net.au>
1149
1150 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
1151 long double function return and long double arg handling.
1152 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
1153 Use "end_pfr" instead of "nf". Correct long double handling.
1154 Localise "temp".
1155 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
1156 return value.
1157 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
1158 space for long double return value. Adjust stack frame and offsets.
1159 Load f2 long double return.
1160
dd5f9ea2
AM
11612004-02-07 Alan Modra <amodra@bigpond.net.au>
1162
1163 * src/types.c: Use 16 byte long double for POWERPC64.
1164
0ce78f01
EB
11652004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1166
1167 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
1168 when the structure return address is passed in %o0.
1169 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
1170 (ffi_v9_layout_struct): Align the field following a nested structure
1171 on a word boundary. Use memmove instead of memcpy.
1172 (ffi_call): Update call to ffi_V9_return_struct.
1173 (ffi_prep_closure): Define 'ctx' only for V8.
1174 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
1175 and ffi_closure_sparc_inner_v9.
1176 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
1177 Always skip the structure return address. For structures and long
1178 doubles, copy the argument directly.
1179 (ffi_closure_sparc_inner_v9): Skip the structure return address only
1180 if required. Shift the maximum floating-point slot accordingly. For
1181 big structures, copy the argument directly; otherwise, left-justify the
1182 argument and call ffi_v9_layout_struct to lay out the structure on
1183 the stack.
1184 * src/sparc/v8.S: Undef STACKFRAME before defining it.
1185 (ffi_closure_v8): Pass the structure return address. Update call to
1186 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
1187 Skip the 'unimp' insn when returning long doubles and structures.
1188 * src/sparc/v9.S: Undef STACKFRAME before defining it.
1189 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
1190 FFI_TYPE_INT handling. Load structures both in integers and
1191 floating-point registers on return.
1192 * README: Update status of the SPARC port.
1193
7fcc1d9b
AT
11942004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
1195
1196 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
1197 as of type ffi_arg.
1198 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
1199
6ed0ecaf
UW
12002004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
1201
1202 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
1203 value as of type ffi_arg, not unsigned int.
1204
c930d8a5
MR
12052004-01-21 Michael Ritzert <ritzert@t-online.de>
1206
1207 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
1208 of the LHS.
1209
7b2e3e60
AT
12102004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
1211
1212 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
1213 Solaris.
1214
2e89756b
RO
12152004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1216
1217 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
1218 to void *.
1219
628b26f8
RH
12202003-12-10 Richard Henderson <rth@redhat.com>
1221
1222 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
1223 size_t instead of int.
1224
0ee646d6
HY
12252003-12-04 Hosaka Yuji <hos@tamanegi.org>
1226
1227 * testsuite/libffi.call/many_win32.c: Include <float.h>.
1228 * testsuite/libffi.call/many_win32.c (main): Replace variable
1229 int i with unsigned long ul.
1230
1231 * testsuite/libffi.call/cls_align_uint64.c: New test case.
1232 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1233 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1234 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1235 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1236 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1237 * testsuite/libffi.call/cls_align_float.c: Likewise.
1238 * testsuite/libffi.call/cls_align_double.c: Likewise.
1239 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1240 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1241
2c4ed456
HY
12422003-12-02 Hosaka Yuji <hos@tamanegi.org>
1243
1244 PR other/13221
1245 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
1246 Align arguments to 32 bits.
1247
d18c3386
AT
12482003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
1249
1250 PR other/13221
1251 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
1252 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1253 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1254 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1255 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1256 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1257
1258 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
1259
88096b2a
KG
12602003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1261
1262 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
1263 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1264
3eee102e
AT
12652003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
1266
1267 * Makefile.in: Rebuilt.
1268 * configure: Likewise.
1269 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
1270 the right type.
1271
5196736e
AJ
12722003-11-21 Andreas Jaeger <aj@suse.de>
1273 Andreas Tobler <a.tobler@schweiz.ch>
1274
1275 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
1276 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
1277 * Makefile.in: Rebuilt.
1278 * aclocal.m4: Likewise.
1279 * configure: Likewise.
1280 * fficonfig.h.in: Likewise.
1281 * testsuite/lib/libffi-dg.exp: Add include dir.
1282 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
1283 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1284 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
1285 for ffi_closure if available.
1286 * testsuite/libffi.call/closure_fn1.c: Likewise.
1287 * testsuite/libffi.call/closure_fn2.c: Likewise.
1288 * testsuite/libffi.call/closure_fn3.c: Likewise.
1289 * testsuite/libffi.call/closure_fn4.c: Likewise.
1290 * testsuite/libffi.call/closure_fn5.c: Likewise.
1291 * testsuite/libffi.call/cls_12byte.c: Likewise.
1292 * testsuite/libffi.call/cls_16byte.c: Likewise.
1293 * testsuite/libffi.call/cls_18byte.c: Likewise.
1294 * testsuite/libffi.call/cls_19byte.c: Likewise.
1295 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1296 * testsuite/libffi.call/cls_20byte.c: Likewise.
1297 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1298 * testsuite/libffi.call/cls_24byte.c: Likewise.
1299 * testsuite/libffi.call/cls_2byte.c: Likewise.
1300 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1301 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1302 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1303 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1304 * testsuite/libffi.call/cls_4byte.c: Likewise.
1305 * testsuite/libffi.call/cls_5byte.c: Likewise.
1306 * testsuite/libffi.call/cls_64byte.c: Likewise.
1307 * testsuite/libffi.call/cls_6byte.c: Likewise.
1308 * testsuite/libffi.call/cls_7byte.c: Likewise.
1309 * testsuite/libffi.call/cls_8byte.c: Likewise.
1310 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1311 * testsuite/libffi.call/cls_9byte2.c: Likewise.
1312 * testsuite/libffi.call/cls_double.c: Likewise.
1313 * testsuite/libffi.call/cls_float.c: Likewise.
1314 * testsuite/libffi.call/cls_schar.c: Likewise.
1315 * testsuite/libffi.call/cls_sint.c: Likewise.
1316 * testsuite/libffi.call/cls_sshort.c: Likewise.
1317 * testsuite/libffi.call/cls_uchar.c: Likewise.
1318 * testsuite/libffi.call/cls_uint.c: Likewise.
1319 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1320 * testsuite/libffi.call/cls_ushort.c: Likewise.
1321 * testsuite/libffi.call/nested_struct.c: Likewise.
1322 * testsuite/libffi.call/nested_struct1.c: Likewise.
1323 * testsuite/libffi.call/nested_struct2.c: Likewise.
1324 * testsuite/libffi.call/nested_struct3.c: Likewise.
1325 * testsuite/libffi.call/problem1.c: Likewise.
1326 * testsuite/libffi.special/unwindtest.cc: Likewise.
1327
9e6c3ecb
AT
13282003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
1329
1330 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
1331
70d8f2a1
AT
13322003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
1333
1334 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
1335 Add -lgcc_s to additional flags.
1336
ea81d2a3
AT
13372003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
1338
1339 * configure.in, include/Makefile.am: PR libgcj/11147, install
1340 the ffitarget.h header file in a gcc versioned and target
1341 dependent place.
1342 * configure: Regenerated.
1343 * Makefile.in, include/Makefile.in: Likewise.
1344 * testsuite/Makefile.in: Likewise.
1345
647af4a9
AT
13462003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
1347
1348 * testsuite/libffi.call/closure_fn0.c: Print result and check
1349 with dg-output to make debugging easier.
1350 * testsuite/libffi.call/closure_fn1.c: Likewise.
1351 * testsuite/libffi.call/closure_fn2.c: Likewise.
1352 * testsuite/libffi.call/closure_fn3.c: Likewise.
1353 * testsuite/libffi.call/closure_fn4.c: Likewise.
1354 * testsuite/libffi.call/closure_fn5.c: Likewise.
1355 * testsuite/libffi.call/cls_12byte.c: Likewise.
1356 * testsuite/libffi.call/cls_16byte.c: Likewise.
1357 * testsuite/libffi.call/cls_18byte.c: Likewise.
1358 * testsuite/libffi.call/cls_19byte.c: Likewise.
1359 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1360 * testsuite/libffi.call/cls_20byte.c: Likewise.
1361 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1362 * testsuite/libffi.call/cls_24byte.c: Likewise.
1363 * testsuite/libffi.call/cls_2byte.c: Likewise.
1364 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1365 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1366 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1367 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1368 * testsuite/libffi.call/cls_4byte.c: Likewise.
1369 * testsuite/libffi.call/cls_5byte.c: Likewise.
1370 * testsuite/libffi.call/cls_64byte.c: Likewise.
1371 * testsuite/libffi.call/cls_6byte.c: Likewise.
1372 * testsuite/libffi.call/cls_7byte.c: Likewise.
1373 * testsuite/libffi.call/cls_8byte.c: Likewise.
1374 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1375 * testsuite/libffi.call/cls_9byte2.c: Likewise.
1376 * testsuite/libffi.call/cls_double.c: Likewise.
1377 * testsuite/libffi.call/cls_float.c: Likewise.
1378 * testsuite/libffi.call/cls_schar.c: Likewise.
1379 * testsuite/libffi.call/cls_sint.c: Likewise.
1380 * testsuite/libffi.call/cls_sshort.c: Likewise.
1381 * testsuite/libffi.call/cls_uchar.c: Likewise.
1382 * testsuite/libffi.call/cls_uint.c: Likewise.
1383 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1384 * testsuite/libffi.call/cls_ushort.c: Likewise.
1385 * testsuite/libffi.call/problem1.c: Likewise.
1386
1387 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
1388 static.
1389
ac47cc13
AT
13902003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
1391
1392 * testsuite/libffi.call/cls_9byte2.c: New test case.
1393 * testsuite/libffi.call/cls_9byte1.c: Likewise.
1394 * testsuite/libffi.call/cls_64byte.c: Likewise.
1395 * testsuite/libffi.call/cls_20byte1.c: Likewise.
1396 * testsuite/libffi.call/cls_19byte.c: Likewise.
1397 * testsuite/libffi.call/cls_18byte.c: Likewise.
1398 * testsuite/libffi.call/closure_fn4.c: Likewise.
1399 * testsuite/libffi.call/closure_fn5.c: Likewise.
1400 * testsuite/libffi.call/cls_schar.c: Likewise.
1401 * testsuite/libffi.call/cls_sint.c: Likewise.
1402 * testsuite/libffi.call/cls_sshort.c: Likewise.
1403 * testsuite/libffi.call/nested_struct2.c: Likewise.
1404 * testsuite/libffi.call/nested_struct3.c: Likewise.
1405
f145ed6b
AT
14062003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
1407
1408 * testsuite/libffi.call/cls_double.c: Do a check on the result.
1409 * testsuite/libffi.call/cls_uchar.c: Likewise.
1410 * testsuite/libffi.call/cls_uint.c: Likewise.
1411 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1412 * testsuite/libffi.call/cls_ushort.c: Likewise.
1413 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
1414
2b04d015
AT
14152003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
1416
1417 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
1418 the initialization.
1419
57f542b3
AT
14202003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
1421
2b04d015 1422 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
57f542b3
AT
1423 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
1424
e61acf72
DD
14252003-10-22 David Daney <ddaney@avtrex.com>
1426
1427 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
1428 __attribute__((__mode__(__SI__))) and friends.
1429
2461c08b
AS
14302003-10-22 Andreas Schwab <schwab@suse.de>
1431
1432 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
1433
1450eb7a
AT
14342003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
1435
1436 * configure.in: AC_LINK_FILES(ffitarget.h).
1437 * configure: Regenerate.
1438 * Makefile.in: Likewise.
1439 * include/Makefile.in: Likewise.
1440 * testsuite/Makefile.in: Likewise.
1441 * fficonfig.h.in: Likewise.
1442
14432003-10-21 Paolo Bonzini <bonzini@gnu.org>
1444 Richard Henderson <rth@redhat.com>
1445
1446 Avoid that ffi.h includes fficonfig.h.
1447
1448 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
1449 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
1450 (TARGET_SRC_MIPS_SGI): Removed.
1451 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
1452 (MIPS_SGI): Removed.
1453 (CLEANFILES): Removed.
1454 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
1455 targets.
1456 * acconfig.h: Removed.
1457 * configure.in: Compute sizeofs only for double and long double.
1458 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
1459 into AC_DEFINE instead of using acconfig.h. Create
1460 include/ffitarget.h instead of include/fficonfig.h. Rename
1461 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
1462 AC_DEFINE EH_FRAME_FLAGS.
1463 * include/Makefile.am (DISTCLEANFILES): New automake macro.
1464 (hack_DATA): Add ffitarget.h.
1465 * include/ffi.h.in: Remove all system specific definitions.
1466 Declare raw API even if it is not installed, why bother?
1467 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
1468 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
1469 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
1470 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
1471 * include/ffi_common.h (bool): Do not define.
1472 (ffi_assert): Accept failed assertion.
1473 (ffi_type_test): Return void and accept file/line.
1474 (FFI_ASSERT): Pass stringized failed assertion.
1475 (FFI_ASSERT_AT): New macro.
1476 (FFI_ASSERT_VALID_TYPE): New macro.
1477 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
1478 UINT64, SINT64): Define here with gcc's __attribute__ macro
1479 instead of in ffi.h
1480 (FLOAT32, ALIGN): Define here instead of in ffi.h
1481 * include/ffi-mips.h: Removed. Its content moved to
1482 src/mips/ffitarget.h after separating assembly and C sections.
1483 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
1484 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
1485 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
1486 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
1487 SIZEOF_ARG -> FFI_SIZEOF_ARG.
1488 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
1489 * src/debug.c (ffi_assert): Accept stringized failed assertion.
1490 (ffi_type_test): Rewritten.
1491 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
1492 FFI_ASSERT_VALID_TYPE.
1493 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
1494 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
1495 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
1496 src/s390/ffitarget.h, src/sh/ffitarget.h,
1497 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
1498 src/x86/ffitarget.h: New files.
1499 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
1500 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
1501 src/powerpc/aix.S, src/powerpc/darwin.S,
1502 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
1503 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
1504 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
1505 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
1506 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
1507 include fficonfig.h
1508
27d54b2a
RO
15092003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1510
1511 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
1512 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
1513
0df6970d
AT
15142003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
1515
1516 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
1517 Used when FFI_DEBUG = 1.
1518
2612ffce
AM
15192003-10-14 Alan Modra <amodra@bigpond.net.au>
1520
1521 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
1522 and align.
1523
d54f7354
RO
15242003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1525
1526 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
1527 FFI_MIPS_O32 for O32 ABI.
1528
7a54c850
AT
15292003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
1530
1531 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
1532 SPARC64. Cleanup whitespaces.
1533
9e3bfa9b
AT
15342003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
1535
1536 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
1537 strongarm, xscale. Cleanup whitespaces.
1538 * testsuite/libffi.call/closure_fn1.c: Likewise.
1539 * testsuite/libffi.call/closure_fn2.c: Likewise.
1540 * testsuite/libffi.call/closure_fn3.c: Likewise.
1541 * testsuite/libffi.call/cls_12byte.c: Likewise.
1542 * testsuite/libffi.call/cls_16byte.c: Likewise.
1543 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1544 * testsuite/libffi.call/cls_20byte.c: Likewise.
1545 * testsuite/libffi.call/cls_24byte.c: Likewise.
1546 * testsuite/libffi.call/cls_2byte.c: Likewise.
1547 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1548 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1549 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1550 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1551 * testsuite/libffi.call/cls_4byte.c: Likewise.
1552 * testsuite/libffi.call/cls_5byte.c: Likewise.
1553 * testsuite/libffi.call/cls_6byte.c: Likewise.
1554 * testsuite/libffi.call/cls_7byte.c: Likewise.
1555 * testsuite/libffi.call/cls_8byte.c: Likewise.
1556 * testsuite/libffi.call/cls_double.c: Likewise.
1557 * testsuite/libffi.call/cls_float.c: Likewise.
1558 * testsuite/libffi.call/cls_uchar.c: Likewise.
1559 * testsuite/libffi.call/cls_uint.c: Likewise.
1560 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1561 * testsuite/libffi.call/cls_ushort.c: Likewise.
1562 * testsuite/libffi.call/nested_struct.c: Likewise.
1563 * testsuite/libffi.call/nested_struct1.c: Likewise.
1564 * testsuite/libffi.call/problem1.c: Likewise.
1565 * testsuite/libffi.special/unwindtest.cc: Likewise.
1566 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
1567
3e86b595
DE
15682003-09-18 David Edelsohn <edelsohn@gnu.org>
1569
1570 * src/powerpc/aix.S: Cleanup whitespaces.
1571 * src/powerpc/aix_closure.S: Likewise.
1572
8d8369f8
AT
15732003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
1574
1575 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
1576 * src/powerpc/darwin_closure.S: Likewise.
1577 * src/powerpc/ffi_darwin.c: Likewise.
1578
69b182fd
AT
15792003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
1580 David Edelsohn <edelsohn@gnu.org>
1581
1582 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
1583 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
1584 parameter stack.
1585 * src/powerpc/darwin_closure.S: Likewise.
1586 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
1587 according to the Darwin/AIX ABI.
1588 (ffi_prep_cif_machdep): Likewise.
1589 (ffi_closure_helper_DARWIN): Likewise.
1590 Remove the outgoing parameter stack logic. Simplify the evaluation
1591 of the different CASE types.
1592 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
1593 statement in the trampoline code.
1594
df805cdc
KK
15952003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
1596
1597 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
1598 for the register size.
1599 (ffi_closure_helper_SYSV): Handle the structure return value
1600 address correctly.
1601 (ffi_closure_helper_SYSV): Return the appropriate type when
1602 the registers are used for the structure return value.
1603 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
1604 the 64-bit return value. Update copyright years.
1605
eb26c76c
RO
16062003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1607
1608 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
1609 srcdir for ffi_mips.h.
1610
6350c02c
AM
16112003-09-12 Alan Modra <amodra@bigpond.net.au>
1612
1613 * src/prep_cif.c (initialize_aggregate): Include tail padding in
1614 structure size.
1615 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
1616 placement of float result.
1617 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
1618 cast of "resp" for big-endian 64 bit machines.
1619
5af1c806
AM
16202003-09-11 Alan Modra <amodra@bigpond.net.au>
1621
1622 * src/types.c (double, longdouble): Merge identical SH and ARM
1623 typedefs, and add POWERPC64.
1624 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
1625 struct split over gpr and rest.
1626 (ffi_prep_cif_machdep): Correct intarg_count for structures.
1627 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
1628
086a4bd7
AT
16292003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
1630
1631 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
1632 passing correctly.
c930d8a5 1633
e517f636
AM
16342003-09-09 Alan Modra <amodra@bigpond.net.au>
1635
1636 * configure: Regenerate.
1637
6f20d627
AT
16382003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
1639
1640 * Makefile.am: Remove build rules for ffitest.
1641 * Makefile.in: Rebuilt.
c930d8a5 1642
6f20d627 16432003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
226660af
AT
1644
1645 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
1646 about implicit declaration of abort().
1647
bbf3057b
AT
16482003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
1649
1650 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
1651 * Makefile.in: Rebuilt.
1652 * configure.in: Add dejagnu test framework.
1653 * configure: Rebuilt.
1654
1655 * testsuite/Makefile.am: New file.
1656 * testsuite/Makefile.in: Built
c930d8a5 1657 * testsuite/lib/libffi-dg.exp: New file.
bbf3057b
AT
1658 * testsuite/config/default.exp: Likewise.
1659 * testsuite/libffi.call/call.exp: Likewise.
1660 * testsuite/libffi.call/ffitest.h: Likewise.
1661 * testsuite/libffi.call/closure_fn0.c: Likewise.
1662 * testsuite/libffi.call/closure_fn1.c: Likewise.
1663 * testsuite/libffi.call/closure_fn2.c: Likewise.
1664 * testsuite/libffi.call/closure_fn3.c: Likewise.
1665 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1666 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1667 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1668 * testsuite/libffi.call/cls_2byte.c: Likewise.
1669 * testsuite/libffi.call/cls_3byte1.c: Likewise.
1670 * testsuite/libffi.call/cls_3byte2.c: Likewise.
1671 * testsuite/libffi.call/cls_4byte.c: Likewise.
1672 * testsuite/libffi.call/cls_5byte.c: Likewise.
1673 * testsuite/libffi.call/cls_6byte.c: Likewise.
1674 * testsuite/libffi.call/cls_7byte.c: Likewise.
1675 * testsuite/libffi.call/cls_8byte.c: Likewise.
1676 * testsuite/libffi.call/cls_12byte.c: Likewise.
1677 * testsuite/libffi.call/cls_16byte.c: Likewise.
1678 * testsuite/libffi.call/cls_20byte.c: Likewise.
1679 * testsuite/libffi.call/cls_24byte.c: Likewise.
1680 * testsuite/libffi.call/cls_double.c: Likewise.
1681 * testsuite/libffi.call/cls_float.c: Likewise.
1682 * testsuite/libffi.call/cls_uchar.c: Likewise.
1683 * testsuite/libffi.call/cls_uint.c: Likewise.
1684 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1685 * testsuite/libffi.call/cls_ushort.c: Likewise.
1686 * testsuite/libffi.call/float.c: Likewise.
1687 * testsuite/libffi.call/float1.c: Likewise.
1688 * testsuite/libffi.call/float2.c: Likewise.
1689 * testsuite/libffi.call/many.c: Likewise.
1690 * testsuite/libffi.call/many_win32.c: Likewise.
1691 * testsuite/libffi.call/nested_struct.c: Likewise.
1692 * testsuite/libffi.call/nested_struct1.c: Likewise.
1693 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
1694 * testsuite/libffi.call/problem1.c: Likewise.
1695 * testsuite/libffi.call/promotion.c: Likewise.
1696 * testsuite/libffi.call/return_ll.c: Likewise.
1697 * testsuite/libffi.call/return_sc.c: Likewise.
1698 * testsuite/libffi.call/return_uc.c: Likewise.
1699 * testsuite/libffi.call/strlen.c: Likewise.
1700 * testsuite/libffi.call/strlen_win32.c: Likewise.
1701 * testsuite/libffi.call/struct1.c: Likewise.
1702 * testsuite/libffi.call/struct2.c: Likewise.
1703 * testsuite/libffi.call/struct3.c: Likewise.
1704 * testsuite/libffi.call/struct4.c: Likewise.
1705 * testsuite/libffi.call/struct5.c: Likewise.
1706 * testsuite/libffi.call/struct6.c: Likewise.
1707 * testsuite/libffi.call/struct7.c: Likewise.
1708 * testsuite/libffi.call/struct8.c: Likewise.
c930d8a5 1709 * testsuite/libffi.call/struct9.c: Likewise.
bbf3057b
AT
1710 * testsuite/libffi.special/special.exp: New file.
1711 * testsuite/libffi.special/ffitestcxx.h: Likewise.
1712 * testsuite/libffi.special/unwindtest.cc: Likewise.
1713
c930d8a5 1714
996b4f8f
KK
17152003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
1716
1717 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
1718 copyright years.
1719
b00badcd
AM
17202003-08-02 Alan Modra <amodra@bigpond.net.au>
1721
1722 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
1723 structure passing.
1724 (ffi_closure_helper_LINUX64): Likewise.
1725 * src/powerpc/linux64.S: Remove code writing to parm save area.
1726 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
1727 address in lr from ffi_closure_helper_LINUX64 call to calculate
1728 table address. Optimize function tail.
1729
c1516eae
AT
17302003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
1731
1732 * src/sparc/ffi.c: Handle all floating point registers.
1733 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
1734
fc0e6222
GP
17352003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1736
1737 * README: Note that libffi is not part of GCC. Update the project
1738 URL and status.
1739
a1569df8
FS
17402003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1741
1742 * src/powerpc/ppc_closure.S: Include ffi.h.
1743
12e816bf
RO
17442003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1745
1746 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
1747 Use C style comments.
1748
e860ed6d
KK
17492003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1750
1751 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
1752 * Makefile.in: Regenerate.
1753 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
1754 * configure: Regenerate.
1755 * include/ffi.h.in: Add SHmedia support.
1756 * src/sh64/ffi.c: New file.
1757 * src/sh64/sysv.S: New file.
1758
a733b15e
JJ
17592003-05-16 Jakub Jelinek <jakub@redhat.com>
1760
1761 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
1762 should be read-only.
1763 * configure: Rebuilt.
1764 * fficonfig.h.in: Rebuilt.
1765 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
1766 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
1767 * src/powerpc/linux64.S: Likewise.
1768 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
1769 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
1770 if -fpic/-fPIC/-mrelocatable.
1771 * src/powerpc/powerpc_closure.S: Likewise.
1772 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
1773 #write in .eh_frame flags.
1774 * src/sparc/v9.S: Likewise.
1775 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
1776 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
1777 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
1778
bd19c9f4
JS
17792003-05-07 Jeff Sturm <jsturm@one-point.com>
1780
1781 Fixes PR bootstrap/10656
1782 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
1783 support for .register pseudo-op.
1784 * src/sparc/v8.S: Use it.
1785 * fficonfig.h.in: Rebuilt.
1786 * configure: Rebuilt.
1787
e9b84181
JJ
17882003-04-18 Jakub Jelinek <jakub@redhat.com>
1789
1790 * include/ffi.h.in (POWERPC64): Define if 64-bit.
1791 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
1792 Make it the default on POWERPC64.
1793 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
1794 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
1795 * configure: Rebuilt.
1796 * src/powerpc/ffi.c (hidden): Define.
1797 (ffi_prep_args_SYSV): Renamed from
1798 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
1799 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
1800 ASM_NEEDS_REGISTERS64): New.
1801 (ffi_prep_args64): New function.
1802 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
1803 (ffi_call): Likewise.
1804 (ffi_prep_closure): Likewise.
1805 (flush_icache): Surround by #ifndef POWERPC64.
1806 (ffi_dblfl): New union type.
1807 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
1808 (ffi_closure_helper_LINUX64): New function.
1809 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
1810 __powerpc64__.
1811 * src/powerpc/sysv.S: Likewise.
1812 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
1813 * src/powerpc/linux64.S: New file.
1814 * src/powerpc/linux64_closure.S: New file.
1815 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
1816 src/powerpc/linux64_closure.S.
1817 (TARGET_SRC_POWERPC): Likewise.
1818
1819 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
1820 closure_test_fn3): Fix result printing on big-endian 64-bit
1821 machines.
1822 (main): Print tst2_arg instead of uninitialized tst2_result.
1823
1824 * src/ffitest.c (main): Hide what closure pointer really points to
1825 from the compiler.
1826
908a31e1
RE
18272003-04-16 Richard Earnshaw <rearnsha@arm.com>
1828
1829 * configure.in (arm-*-netbsdelf*): Add configuration.
1830 (configure): Regenerated.
1831
41a73c4c
LR
18322003-04-04 Loren J. Rittle <ljrittle@acm.org>
1833
1834 * include/Makefile.in: Regenerate.
1835
cd41c847
ZD
18362003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1837
1838 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
1839 bit mode.
1840 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
1841 Receive closure pointer through parameter, read args using
1842 __builtin_dwarf_cfa.
1843 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
1844
6db450f9
AS
18452003-03-12 Andreas Schwab <schwab@suse.de>
1846
1847 * configure.in: Avoid trailing /. in toolexeclibdir.
1848 * configure: Rebuilt.
1849
70144e9c
AT
18502003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
1851
c6900272 1852 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
70144e9c 1853
79e43f89
AT
18542003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
1855
1856 * libffi/src/powerpc/darwin_closure.S:
1857 Fix alignement bug, allocate 8 bytes for the result.
c930d8a5 1858 * libffi/src/powerpc/aix_closure.S:
79e43f89
AT
1859 Likewise.
1860 * libffi/src/powerpc/ffi_darwin.c:
1861 Update stackframe description for aix/darwin_closure.S.
c930d8a5 1862
0fcc9e55
JJ
18632003-02-06 Jakub Jelinek <jakub@redhat.com>
1864
1865 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
1866 attribute.
1867
63b87c2e
CC
18682003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
1869 Andreas Schwab <schwab@suse.de>
1870
c6900272 1871 * configure.in: Adjust command to source config-ml.in to account
63b87c2e
CC
1872 for changes to the libffi_basedir definition.
1873 (libffi_basedir): Remove ${srcdir} from value and include trailing
1874 slash if nonempty.
c930d8a5 1875
c6900272 1876 * configure: Regenerate.
63b87c2e 1877
c33402e2
FS
18782003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1879
1880 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
1881
fd2e49b2
AH
18822003-01-28 Andrew Haley <aph@redhat.com>
1883
1884 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
1885 * src/x86/ffi64.c (ffi_prep_closure): New.
1886 (ffi_closure_UNIX64_inner): New.
1887 * src/x86/unix64.S (ffi_closure_UNIX64): New.
1888
0e292c01
AO
18892003-01-27 Alexandre Oliva <aoliva@redhat.com>
1890
1891 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
1892 Remove USE_LIBDIR conditional.
1893 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
1894 * Makefile.in, configure: Rebuilt.
1895
acabc220
DE
18962003-01027 David Edelsohn <edelsohn@gnu.org>
1897
1898 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
1899 * Makefile.in: Regenerate.
1900
be0acd42
AH
19012003-01-22 Andrew Haley <aph@redhat.com>
1902
1903 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
1904 unwind info.
1905
ed695c8e
AT
19062003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
1907
1908 * src/powerpc/darwin.S: Add unwind info.
1909 * src/powerpc/darwin_closure.S: Likewise.
1910
45ba15f4
AH
19112003-01-14 Andrew Haley <aph@redhat.com>
1912
1913 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
1914 (ffi_prep_cif_machdep): Likewise.
1915 * src/x86/unix64.S: Add unwind info.
1916
4b5f402e
AJ
19172003-01-14 Andreas Jaeger <aj@suse.de>
1918
1919 * src/ffitest.c (main): Only use ffi_closures if those are
1920 supported.
1921
7b5102af
TT
19222003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
1923
1924 * libffi/src/ffitest.c
c6900272 1925 add closure testcases
7b5102af
TT
1926
19272003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
1928
1929 * libffi/src/powerpc/ffi.c
c6900272 1930 fix alignment bug for float (4 byte aligned iso 8 byte)
7b5102af 1931
5f7c78d8
GK
19322003-01-09 Geoffrey Keating <geoffk@apple.com>
1933
1934 * src/powerpc/ffi_darwin.c: Remove RCS version string.
1935 * src/powerpc/darwin.S: Remove RCS version string.
1936
c75c7793
JS
19372003-01-03 Jeff Sturm <jsturm@one-point.com>
1938
1939 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
1940 * src/ffitest.c (main): Use static storage for closure.
1941 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
1942 * src/sparc/v8.S (ffi_closure_v8): New.
1943 * src/sparc/v9.S (ffi_closure_v9): New.
1944
eb3c46a1
RM
19452002-11-10 Ranjit Mathew <rmathew@hotmail.com>
1946
1947 * include/ffi.h.in: Added FFI_STDCALL ffi_type
1948 enumeration for X86_WIN32.
1949 * src/x86/win32.S: Added ffi_call_STDCALL function
1950 definition.
1951 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
1952 switch cases for recognising FFI_STDCALL and
1953 calling ffi_call_STDCALL if target is X86_WIN32.
1954 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
1955 stdcall versions of the "my_strlen" and "many"
1956 test functions (for X86_WIN32).
1957 Added test cases to test stdcall invocation using
1958 these functions.
1959
4977bab6
ZW
19602002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
1961
1962 * src/sh/sysv.S: Add DWARF2 unwind info.
1963
67333e84
UW
19642002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
1965
1966 * src/s390/sysv.S (.eh_frame section): Make section read-only.
1967
bc3cf760
JW
19682002-11-26 Jim Wilson <wilson@redhat.com>
1969
1970 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
1971
4977bab6
ZW
19722002-11-23 H.J. Lu <hjl@gnu.org>
1973
1974 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
1975 Include ../config/accross.m4.
1976 * aclocal.m4; Rebuild.
1977 * configure: Likewise.
1978
18789f4e
UW
19792002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
1980
1981 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
1982
6bee5372
DD
19832002-11-11 DJ Delorie <dj@redhat.com>
1984
1985 * configure.in: Look for common files in the right place.
1986
8177895b
UW
19872002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
1988
1989 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
1990 raw data as _Jv_word values, not ffi_raw.
1991 (ffi_java_ptrarray_to_raw): Likewise.
1992 (ffi_java_rvalue_to_raw): New function.
1993 (ffi_java_raw_call): Call it.
1994 (ffi_java_raw_to_rvalue): New function.
1995 (ffi_java_translate_args): Call it.
1996 * src/ffitest.c (closure_test_fn): Interpret return value
1997 as ffi_arg, not int.
1998 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
1999 FFI_TYPE_POINTER case.
2000 (ffi_closure_helper_SYSV): Likewise. Also, assume return
2001 values extended to word size.
2002
af50f4c8
AJ
20032002-10-02 Andreas Jaeger <aj@suse.de>
2004
2005 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
2006
5d297584
BT
20072002-10-01 Bo Thorsen <bo@smetana.suse.de>
2008
2009 * include/ffi.h.in: Fix i386 win32 compilation.
2010
c4f17c6f
UW
20112002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2012
2013 * configure.in: Add s390x-*-linux-* target.
2014 * configure: Regenerate.
2015 * include/ffi.h.in: Define S390X for s390x targets.
2016 (FFI_CLOSURES): Define for s390/s390x.
2017 (FFI_TRAMPOLINE_SIZE): Likewise.
2018 (FFI_NATIVE_RAW_API): Likewise.
2019 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
2020 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4977bab6 2021 * src/s390/ffi.c: Major rework of existing code. Add support for
c4f17c6f
UW
2022 s390x targets. Add closure support.
2023 * src/s390/sysv.S: Likewise.
2024
d7b52625
RE
20252002-09-29 Richard Earnshaw <rearnsha@arm.com>
2026
2027 * src/arm/sysv.S: Fix typo.
2028
28165e22
RE
20292002-09-28 Richard Earnshaw <rearnsha@arm.com>
2030
2031 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
2032 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
2033 (ffi_call_SYSV): Handle soft-float.
2034
0b0f4163
BT
20352002-09-27 Bo Thorsen <bo@suse.de>
2036
2037 * include/ffi.h.in: Fix multilib x86-64 support.
2038
6c5d742e
KG
20392002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2040
2041 * Makefile.am (all-multi): Fix multilib parallel build.
2042
f4b2b0d6
KK
20432002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
2044
2045 * configure.in (sh[34]*-*-linux*): Add brackets.
2046 * configure: Regenerate.
2047
ddebdfeb
KK
20482002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
2049
2050 * Makefile.am: Add SH support.
2051 * Makefile.in: Regenerate.
2052 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
2053 * configure: Regenerate.
2054 * include/ffi.h.in: Add SH support.
2055 * src/sh/ffi.c: New file.
2056 * src/sh/sysv.S: New file.
2057 * src/types.c: Add SH support.
2058
c94974ca
BT
20592002-07-16 Bo Thorsen <bo@suse.de>
2060
2061 * src/x86/ffi64.c: New file that adds x86-64 support.
2062 * src/x86/unix64.S: New file that handles argument setup for
2063 x86-64.
2064 * src/x86/sysv.S: Don't use this on x86-64.
2065 * src/x86/ffi.c: Don't use this on x86-64.
2066 Remove unused vars.
2067 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
2068 for x86-64.
2069 * src/ffitest.c (struct6): New test that tests a special case in
2070 the x86-64 ABI.
2071 (struct7): Likewise.
2072 (struct8): Likewise.
2073 (struct9): Likewise.
2074 (closure_test_fn): Silence warning about this when it's not used.
2075 (main): Add the new tests.
2076 (main): Fix a couple of wrong casts and silence some compiler warnings.
2077 * include/ffi.h.in: Add x86-64 ABI definition.
2078 * fficonfig.h.in: Regenerate.
2079 * Makefile.am: Add x86-64 support.
2080 * configure.in: Likewise.
2081 * Makefile.in: Regenerate.
2082 * configure: Likewise.
2083
20842002-06-24 Bo Thorsen <bo@suse.de>
2085
2086 * src/types.c: Merge settings for similar architectures.
2087 Add x86-64 sizes and alignments.
2088
20892002-06-23 Bo Thorsen <bo@suse.de>
2090
2091 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
2092 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
2093 * src/mips/ffi.c (ffi_prep_args): Likewise.
2094 * src/m68k/ffi.c (ffi_prep_args): Likewise.
2095
5be36a8f
L
20962002-07-18 H.J. Lu (hjl@gnu.org)
2097
2098 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
2099 (libffi_la_SOURCES): Support MIPS_LINUX.
2100 (libffi_convenience_la_SOURCES): Likewise.
2101 * Makefile.in: Regenerated.
2102
2103 * configure.in (mips64*-*): Skip.
2104 (mips*-*-linux*): New.
2105 * configure: Regenerated.
2106
2107 * src/mips/ffi.c: Include <sgidefs.h>.
2108
ad5e163c
UW
21092002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2110
2111 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
2112
ee4586c5
RS
21132002-05-27 Roger Sayle <roger@eyesopen.com>
2114
2115 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
2116
b86aa7b0
BT
21172002-05-27 Bo Thorsen <bo@suse.de>
2118
2119 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
2120 fix formatting.
2121
859f7aaf
AT
21222002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
2123
2124 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
2125 beginning of function (for older apple cc).
2126
6706f116
AO
21272002-05-08 Alexandre Oliva <aoliva@redhat.com>
2128
2129 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
2130 script entry, and set LD to it when configuring multilibs.
2131 * configure: Rebuilt.
2132
fad655c8
JT
21332002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
2134
2135 * configure.in (sparc64-*-netbsd*): Add target.
2136 (sparc-*-netbsdelf*): Likewise.
2137 * configure: Regenerate.
2138
189ab118
DM
21392002-04-28 David S. Miller <davem@redhat.com>
2140
2141 * configure.in, configure: Fix SPARC test in previous change.
2142
22bcf65c
GT
21432002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
2144
2145 * Makefile.am: Add Linux for S/390 support.
2146 * Makefile.in: Regenerate.
2147 * configure.in: Add Linux for S/390 support.
2148 * configure: Regenerate.
2149 * include/ffi.h.in: Add Linux for S/390 support.
2150 * src/s390/ffi.c: New file from libffi CVS tree.
2151 * src/s390/sysv.S: New file from libffi CVS tree.
2152
5d84cf0b
JJ
21532002-04-28 Jakub Jelinek <jakub@redhat.com>
2154
2155 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
2156 %r_disp32().
2157 * src/sparc/v8.S: Use it.
2158 * src/sparc/v9.S: Likewise.
2159 * fficonfig.h.in: Rebuilt.
2160 * configure: Rebuilt.
2161
cc382e5c
HB
21622002-04-08 Hans Boehm <Hans_Boehm@hp.com>
2163
2164 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
2165 correctly.
2166 * src/ia64/unix.S: Add unwind information. Fix comments.
2167 Save sp in a way that's compatible with unwind info.
2168 (ffi_call_unix): Correctly restore sp in all cases.
2169 * src/ia64/ffi.c: Add, fix comments.
2170
dc798645
JJ
21712002-04-08 Jakub Jelinek <jakub@redhat.com>
2172
2173 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
2174
da00eaab
JT
21752002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
2176
2177 * configure.in (alpha*-*-netbsd*): Add target.
2178 * configure: Regenerate.
2179
0c0b87ad
JS
21802002-04-04 Jeff Sturm <jsturm@one-point.com>
2181
2182 * src/sparc/v8.S: Add unwind info.
2183 * src/sparc/v9.S: Likewise.
2184
320d7e7a
KW
21852002-03-30 Krister Walfridsson <cato@df.lth.se>
2186
2187 * configure.in: Enable i*86-*-netbsdelf*.
2188 * configure: Rebuilt.
4977bab6 2189
c75e51ed
DB
21902002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
2191
2192 PR other/2620
2193 * src/mips/n32.s: Delete
2194 * src/mips/o32.s: Delete
2195
5bb366e0
LR
21962002-03-21 Loren J. Rittle <ljrittle@acm.org>
2197
2198 * configure.in: Enable alpha*-*-freebsd*.
2199 * configure: Rebuilt.
2200
ce3b24a7
BM
22012002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2202
2203 * Makefile.am: libfficonvenience -> libffi_convenience.
2204 * Makefile.in: Rebuilt.
4977bab6 2205
1eb7ba30
BM
2206 * Makefile.am: Define ffitest_OBJECTS.
2207 * Makefile.in: Rebuilt.
ce3b24a7 2208
073ae293
AT
22092002-03-07 Andreas Tobler <toa@pop.agri.ch>
2210 David Edelsohn <edelsohn@gnu.org>
2211
2212 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2213 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
2214 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
2215 * Makefile.in: Regenerate.
2216 * include/ffi.h.in: Add AIX and Darwin closure definitions.
2217 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
2218 (flush_icache, flush_range): New functions.
2219 (ffi_closure_helper_DARWIN): New function.
2220 * src/powerpc/aix_closure.S: New file.
2221 * src/powerpc/darwin_closure.S: New file.
4977bab6 2222
02c521f4
JS
22232002-02-24 Jeff Sturm <jsturm@one-point.com>
2224
2225 * include/ffi.h.in: Add typedef for ffi_arg.
2226 * src/ffitest.c (main): Declare rint with ffi_arg.
4977bab6 2227
287dd527
AT
22282002-02-21 Andreas Tobler <toa@pop.agri.ch>
2229
2230 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
2231 number of GPRs for floating-point arguments.
2232
e2f2e70a
AG
22332002-01-31 Anthony Green <green@redhat.com>
2234
2235 * configure: Rebuilt.
2236 * configure.in: Replace CHECK_SIZEOF and endian tests with
2237 cross-compiler friendly macros.
2238 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
2239 macros.
2240
15b9b32f
DE
22412002-01-18 David Edelsohn <edelsohn@gnu.org>
2242
2243 * src/powerpc/darwin.S (_ffi_call_AIX): New.
1f7d5413 2244 * src/powerpc/aix.S (ffi_call_DARWIN): New.
15b9b32f 2245
2f4006f8
DE
22462002-01-17 David Edelsohn <edelsohn@gnu.org>
2247
2248 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
2249 (TARGET_SRC_POWERPC_AIX): New.
2250 (POWERPC_AIX): New stanza.
2251 * Makefile.in: Regenerate.
2252 * configure.in: Add AIX case.
2253 * configure: Regenerate.
2254 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
2255 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
2256 size. Fix "long double" support.
2257 (ffi_call): Add FFI_AIX case.
2258 * src/powerpc/aix.S: New.
2259
3c017635
JH
22602001-10-09 John Hornkvist <john@toastedmarshmallow.com>
2261
2262 Implement Darwin PowerPC ABI.
2263 * configure.in: Handle powerpc-*-darwin*.
2264 * Makefile.am: Set source files for POWERPC_DARWIN.
2265 * configure: Rebuilt.
2266 * Makefile.in: Rebuilt.
2267 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
2268 POWERPC_DARWIN.
2269 * src/powerpc/darwin.S: New file.
2270 * src/powerpc/ffi_darwin.c: New file.
2271
cc712abf
JM
22722001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
2273
2274 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
2275
03a8de49
RO
22762001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2277
2278 * src/x86/sysv.S: Avoid gas-only .balign directive.
2279 Use C style comments.
2280
92a0e6c6
RO
22812001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2282
2283 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
2284 Fixes PR bootstrap/3563.
2285
57482f58
RO
22862001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2287
2288 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
2289
d7e2dd2f
RO
22902001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2291
2292 * configure.in: Recognize sparc*-sun-* host.
2293 * configure: Regenerate.
4977bab6 2294
be72207c
AH
22952001-06-06 Andrew Haley <aph@redhat.com>
2296
4075db8f 2297 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
be72207c 2298
552cb45a
AH
22992001-06-03 Andrew Haley <aph@redhat.com>
2300
4075db8f
BT
2301 * src/alpha/osf.S: Add unwind info.
2302 * src/powerpc/sysv.S: Add unwind info.
2303 * src/powerpc/ppc_closure.S: Likewise.
552cb45a 2304
7d45b968
JS
23052000-05-31 Jeff Sturm <jsturm@one-point.com>
2306
2307 * configure.in: Fix AC_ARG_ENABLE usage.
2308 * configure: Rebuilt.
2309
2a7f63c4
BM
23102001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2311
2312 * configure.in: Remove warning about beta code.
2313 * configure: Rebuilt.
2314
23152001-04-25 Hans Boehm <Hans_Boehm@hp.com>
2316
03a55252
HB
2317 * src/ia64/unix.S: Restore stack pointer when returning from
2318 ffi_closure_UNIX.
2319 * src/ia64/ffi.c: Fix typo in comment.
2320
df5da1c4
JW
23212001-04-18 Jim Wilson <wilson@redhat.com>
2322
2323 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
2324 to eliminate RAW DV.
2325
52c28977
BM
23262001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
2327
2328 * Makefile.am: Make a libtool convenience library.
2329 * Makefile.in: Rebuilt.
2330
3b905056
BM
23312001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
2332
2333 * configure.in: Use different syntax for subdirectory creation.
2334 * configure: Rebuilt.
2335
d6c4152a
JB
23362001-03-27 Jon Beniston <jon@beniston.com>
2337
2338 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
2339 * configure: Rebuilt.
2340 * Makefile.am: Added X86_WIN32 target support.
2341 * Makefile.in: Rebuilt.
2342
2343 * include/ffi.h.in: Added X86_WIN32 target support.
2344
2345 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
2346 * src/types.c: Added X86_WIN32 target support.
2347
2348 * src/x86/win32.S: New file. Based on sysv.S, but with EH
2349 stuff removed and made to work with CygWin's gas.
2350
675cdab3
BM
23512001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
2352
2353 * configure.in: Make target subdirectory in build dir.
2354 * Makefile.am: Override suffix based rules to specify correct output
2355 subdirectory.
2356 * Makefile.in: Rebuilt.
2357 * configure: Rebuilt.
2358
e5f8858a 23592001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
cc4c8975
KH
2360
2361 * src/powerpc/ppc_closure.S: New file.
2362 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
2363 involving long long and register pairs.
2364 (ffi_prep_closure): New function.
2365 (flush_icache): Likewise.
2366 (ffi_closure_helper_SYSV): Likewise.
2367 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
2368 (FFI_TRAMPOLINE_SIZE): Likewise.
2369 (FFI_NATIVE_RAW_API): Likewise.
2370 * Makefile.in: Rebuilt.
2371 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
2372 (TARGET_SRC_POWERPC): Likewise.
2373
9450a929
TT
23742001-03-19 Tom Tromey <tromey@redhat.com>
2375
2376 * Makefile.in: Rebuilt.
2377 * Makefile.am (ffitest_LDFLAGS): New macro.
2378
4d2cf715
NC
23792001-03-02 Nick Clifton <nickc@redhat.com>
2380
2381 * include/ffi.h.in: Remove RCS ident string.
2382 * include/ffi_mips.h: Remove RCS ident string.
2383 * src/debug.c: Remove RCS ident string.
2384 * src/ffitest.c: Remove RCS ident string.
2385 * src/prep_cif.c: Remove RCS ident string.
2386 * src/types.c: Remove RCS ident string.
2387 * src/alpha/ffi.c: Remove RCS ident string.
2388 * src/alpha/osf.S: Remove RCS ident string.
2389 * src/arm/ffi.c: Remove RCS ident string.
2390 * src/arm/sysv.S: Remove RCS ident string.
2391 * src/mips/ffi.c: Remove RCS ident string.
2392 * src/mips/n32.S: Remove RCS ident string.
2393 * src/mips/o32.S: Remove RCS ident string.
2394 * src/sparc/ffi.c: Remove RCS ident string.
2395 * src/sparc/v8.S: Remove RCS ident string.
2396 * src/sparc/v9.S: Remove RCS ident string.
2397 * src/x86/ffi.c: Remove RCS ident string.
2398 * src/x86/sysv.S: Remove RCS ident string.
2399
7e5fd99f
JM
24002001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
2401
2402 * include/ffi.h.in: Change sourceware.cygnus.com references to
2403 gcc.gnu.org.
2404
3f67ba6e
RH
24052000-12-09 Richard Henderson <rth@redhat.com>
2406
2407 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
2408 (ffi_closure_osf_inner): Index rather than increment avalue
2409 and arg_types. Give ffi_closure_osf the raw return value type.
2410 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
2411 promotion.
2412
24132000-12-07 Richard Henderson <rth@redhat.com>
29fe0479
RH
2414
2415 * src/raw_api.c (ffi_translate_args): Fix typo.
2416 (ffi_prep_closure): Likewise.
2417
2418 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
2419 FFI_TRAMPOLINE_SIZE.
2420 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
2421 cif->bytes for new ffi_call_osf implementation.
2422 (ffi_prep_args): Absorb into ...
2423 (ffi_call): ... here. Do all stack allocation here and
2424 avoid a callback function.
2425 (ffi_prep_closure, ffi_closure_osf_inner): New.
2426 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
2427 (ffi_closure_osf): New.
2428
2f7bf5b7
AO
24292000-09-10 Alexandre Oliva <aoliva@redhat.com>
2430
ed1c1a1a
AO
2431 * config.guess, config.sub, install-sh: Removed.
2432 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
2433 * Makefile.in: Rebuilt.
2434
2f7bf5b7
AO
2435 * acinclude.m4: Include libtool macros from the top level.
2436 * aclocal.m4, configure: Rebuilt.
2437
e15a68e7
AO
24382000-08-22 Alexandre Oliva <aoliva@redhat.com>
2439
2440 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
2441 * configure: Rebuilt.
2442
7f8c11d5
SB
24432000-05-11 Scott Bambrough <scottb@netwinder.org>
2444
4977bab6
ZW
2445 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
2446 memory correctly. Use conditional instructions, not branches where
7f8c11d5
SB
2447 possible.
2448
c5acf51f
TT
24492000-05-04 Tom Tromey <tromey@cygnus.com>
2450
2451 * configure: Rebuilt.
2452 * configure.in: Match `arm*-*-linux-*'.
2453 From Chris Dornan <cdornan@arm.com>.
2454
91bffbe9
JJ
24552000-04-28 Jakub Jelinek <jakub@redhat.com>
2456
2457 * Makefile.am (SUBDIRS): Define.
2458 (AM_MAKEFLAGS): Likewise.
2459 (Multilib support.): Add section.
2460 * Makefile.in: Rebuilt.
2461 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4075db8f
BT
2462 New variables. Set for gcc using -print-multi-lib. Export them
2463 to libtool.
2464 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
2465 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
2466 for -shared links.
2467 (extra_compiler_flags_value, extra_compiler_flags): Check these
2468 for extra compiler options which need to be passed down in
2469 compiler_flags.
91bffbe9 2470
bd66587e
AG
24712000-04-16 Anthony Green <green@redhat.com>
2472
2473 * configure: Rebuilt.
2474 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
2475
3791773c
JJ
24762000-04-14 Jakub Jelinek <jakub@redhat.com>
2477
4075db8f 2478 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3791773c
JJ
2479 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
2480 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
2481 Replace all void * sizeofs with sizeof(int).
2482 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
2483 different than DOUBLE.
2484 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
2485 (ffi_prep_args_v9): New function.
2486 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
2487 (ffi_V9_return_struct): New function.
2488 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
2489 32bit code (not yet cross-arch calls).
2490 * src/sparc/v8.S: Add struct return delay nop.
2491 Handle long long.
2492 * src/sparc/v9.S: New file.
2493 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
2494 is used on sparc64 only for structures larger than 32 bytes.
2495 Pass by reference for structures is done for structure arguments
2496 larger than 16 bytes.
2497 * src/ffitest.c (main): Use 64bit rint on sparc64.
2498 Run long long tests on sparc.
2499 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
2500 sparc64.
2501 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
2502 on sparc64.
2503 * configure.in (sparc-*-linux*): New supported target.
2504 (sparc64-*-linux*): Likewise.
2505 * configure: Rebuilt.
2506 * Makefile.am: Add v9.S to SPARC files.
2507 * Makefile.in: Likewise.
2508 (LINK): Surround $(CCLD) into double quotes, so that multilib
2509 compiles work correctly.
2510
db459595
APB
25112000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
2512
2513 * configure: Rebuilt.
2514 * configure.in: (i*86-*-solaris*): New libffi target. Patch
2515 proposed by Bryce McKinlay.
2516
c1f63902
TT
25172000-03-20 Tom Tromey <tromey@cygnus.com>
2518
2519 * Makefile.in: Hand edit for java_raw_api.lo.
2520
0f72dc9e
BM
25212000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
2522
2523 * config.guess, config.sub: Update from the gcc tree.
2524 Fix for PR libgcj/168.
2525
3c18f2d1
TT
25262000-03-03 Tom Tromey <tromey@cygnus.com>
2527
323eee8a
TT
2528 * Makefile.in: Fixed ia64 by hand.
2529
3c18f2d1
TT
2530 * configure: Rebuilt.
2531 * configure.in (--enable-multilib): New option.
2532 (libffi_basedir): New subst.
2533 (AC_OUTPUT): Added multilib code.
2534
a2b10a92
TT
25352000-03-02 Tom Tromey <tromey@cygnus.com>
2536
2537 * Makefile.in: Rebuilt.
2538 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
2539 directory name.
2540
dc5de370
HB
25412000-02-25 Hans Boehm <boehm@acm.org>
2542
2543 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
2544 files.
2545 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
2546 list.
2547 (ffi_prep_raw_closure): Use ffi_translate_args, not
2548 ffi_closure_translate.
2549 * src/java_raw_api.c: New file.
2550 * src/ffitest.c (closure_test_fn): New function.
2551 (main): Define `rint' as long long on IA64. Added new test when
2552 FFI_CLOSURES is defined.
2553 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
2554 (ffi_abi): Recognize IA64.
2555 (ffi_raw): Added `flt' field.
2556 Added "Java raw API" code.
2557 * configure.in: Recognize ia64.
2558 * Makefile.am (TARGET_SRC_IA64): New macro.
2559 (libffi_la_common_SOURCES): Added java_raw_api.c.
2560 (libffi_la_SOURCES): Define in IA64 case.
2561
d79229bd
TT
25622000-01-04 Tom Tromey <tromey@cygnus.com>
2563
2564 * Makefile.in: Rebuilt with newer automake.
2565
2c33b220
TT
25661999-12-31 Tom Tromey <tromey@cygnus.com>
2567
2568 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
2569
6ba9e3b0
TT
25701999-09-01 Tom Tromey <tromey@cygnus.com>
2571
2572 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
2573 undefs.
2574 * fficonfig.h.in: Rebuilt.
2575 * configure: Rebuilt.
2576 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
2577 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
2578 * acconfig.h: Don't #undef PACKAGE or VERSION.
2579
63e5e3e0
AG
25801999-08-09 Anthony Green <green@cygnus.com>
2581
2582 * include/ffi.h.in: Try to work around messy header problem
2583 with PACKAGE and VERSION.
2584
2585 * configure: Rebuilt.
2586 * configure.in: Change version to 2.00-beta.
2587
4075db8f 2588 * fficonfig.h.in: Rebuilt.
63e5e3e0
AG
2589 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
2590
2591 * src/x86/ffi.c (ffi_raw_call): Rename.
2592
25931999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
2594
2595 * src/x86/ffi.c (ffi_closure_SYSV): New function.
2596 (ffi_prep_incoming_args_SYSV): Ditto.
2597 (ffi_prep_closure): Ditto.
2598 (ffi_closure_raw_SYSV): Ditto.
2599 (ffi_prep_raw_closure): More ditto.
2600 (ffi_call_raw): Final ditto.
2601
2602 * include/ffi.h.in: Add definitions for closure and raw API.
2603
2604 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4977bab6 2605 FFI_TYPE_UINT64.
63e5e3e0
AG
2606
2607 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
2608
2609 * src/raw_api.c: New file.
2610
2611 * include/ffi.h.in (ffi_raw): New type.
2612 (UINT_ARG, SINT_ARG): New defines.
2613 (ffi_closure, ffi_raw_closure): New types.
2614 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4977bab6 2615
63e5e3e0
AG
2616 * configure.in: Add check for endianness and sizeof void*.
2617
2618 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
2619 instead of directly.
2620
2621 * configure: Rebuilt.
2622
2623Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
2624
2625 * configure.in: Add x86 and powerpc BeOS configurations.
2626 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
2627
26281999-05-09 Anthony Green <green@cygnus.com>
2629
2630 * configure.in: Add warning about this being beta code.
2631 Remove src/Makefile.am from the picture.
2632 * configure: Rebuilt.
2633
2634 * Makefile.am: Move logic from src/Makefile.am. Add changes
2635 to support libffi as a target library.
2636 * Makefile.in: Rebuilt.
2637
2638 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
2639 Upgraded to new autoconf, automake, libtool.
2640
2641 * README: Tweaks.
2642
2643 * LICENSE: Update copyright date.
2644
2645 * src/Makefile.am, src/Makefile.in: Removed.
2646
26471998-11-29 Anthony Green <green@cygnus.com>
2648
2649 * include/ChangeLog: Removed.
2650 * src/ChangeLog: Removed.
2651 * src/mips/ChangeLog: Removed.
2652 * src/sparc/ChangeLog: Remboved.
2653 * src/x86/ChangeLog: Removed.
2654
2655 * ChangeLog.v1: Created.