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