re PR libffi/13221 (libffi's closure couldn't pass sequence of char and/or short arguments.)

2003-12-02  Hosaka Yuji  <hos@tamanegi.org>

	PR other/13221
	* src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
	Align arguments to 32 bits.

From-SVN: r74161
This commit is contained in:
Hosaka Yuji 2003-12-02 05:39:06 +00:00 committed by Andreas Tobler
parent c25d9caa3b
commit 2c4ed4565a
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2003-12-02 Hosaka Yuji <hos@tamanegi.org>
PR other/13221
* src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
Align arguments to 32 bits.
2003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
PR other/13221

View File

@ -62,8 +62,8 @@ void ffi_prep_args(char *stack, extended_cif *ecif)
size_t z;
/* Align if necessary */
if (((*p_arg)->alignment - 1) & (unsigned) argp)
argp = (char *) ALIGN(argp, (*p_arg)->alignment);
if ((sizeof(int) - 1) & (unsigned) argp)
argp = (char *) ALIGN(argp, sizeof(int));
z = (*p_arg)->size;
if (z < sizeof(int))
@ -301,8 +301,8 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue,
size_t z;
/* Align if necessary */
if (((*p_arg)->alignment - 1) & (unsigned) argp) {
argp = (char *) ALIGN(argp, (*p_arg)->alignment);
if ((sizeof(int) - 1) & (unsigned) argp) {
argp = (char *) ALIGN(argp, sizeof(int));
}
z = (*p_arg)->size;