mirror of git://gcc.gnu.org/git/gcc.git
ffi.c (ffi_closure_helper_SYSV): Remove unused variable and cast integer to void * if needed.
* src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable and cast integer to void * if needed. Update the pointer to the FP register saved area correctly. From-SVN: r111225
This commit is contained in:
parent
a30425018e
commit
e097f8873d
|
@ -1,3 +1,9 @@
|
||||||
|
2006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||||
|
|
||||||
|
* src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
|
||||||
|
and cast integer to void * if needed. Update the pointer to
|
||||||
|
the FP register saved area correctly.
|
||||||
|
|
||||||
2006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
|
2006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
|
||||||
|
|
||||||
* testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
|
* testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* -----------------------------------------------------------------------
|
/* -----------------------------------------------------------------------
|
||||||
ffi.c - Copyright (c) 2002, 2003, 2004, 2005 Kaz Kojima
|
ffi.c - Copyright (c) 2002, 2003, 2004, 2005, 2006 Kaz Kojima
|
||||||
|
|
||||||
SuperH Foreign Function Interface
|
SuperH Foreign Function Interface
|
||||||
|
|
||||||
|
@ -535,7 +535,6 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue,
|
||||||
int freg = 0;
|
int freg = 0;
|
||||||
#endif
|
#endif
|
||||||
ffi_cif *cif;
|
ffi_cif *cif;
|
||||||
double temp;
|
|
||||||
|
|
||||||
cif = closure->cif;
|
cif = closure->cif;
|
||||||
avalue = alloca(cif->nargs * sizeof(void *));
|
avalue = alloca(cif->nargs * sizeof(void *));
|
||||||
|
@ -544,7 +543,7 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue,
|
||||||
returns the data directly to the caller. */
|
returns the data directly to the caller. */
|
||||||
if (cif->rtype->type == FFI_TYPE_STRUCT && STRUCT_VALUE_ADDRESS_WITH_ARG)
|
if (cif->rtype->type == FFI_TYPE_STRUCT && STRUCT_VALUE_ADDRESS_WITH_ARG)
|
||||||
{
|
{
|
||||||
rvalue = *pgr++;
|
rvalue = (void *) *pgr++;
|
||||||
ireg = 1;
|
ireg = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -611,6 +610,8 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue,
|
||||||
{
|
{
|
||||||
if (freg + 1 >= NFREGARG)
|
if (freg + 1 >= NFREGARG)
|
||||||
continue;
|
continue;
|
||||||
|
if (freg & 1)
|
||||||
|
pfr++;
|
||||||
freg = (freg + 1) & ~1;
|
freg = (freg + 1) & ~1;
|
||||||
freg += 2;
|
freg += 2;
|
||||||
avalue[i] = pfr;
|
avalue[i] = pfr;
|
||||||
|
|
Loading…
Reference in New Issue