Fix N32 ABI issue for MIPS.
This commit is contained in:
committed by
Anthony Green
parent
d6716aba81
commit
d3372c54ce
@@ -1,3 +1,8 @@
|
|||||||
|
2013-10-23 Mark H Weaver <mhw@netris.org>
|
||||||
|
|
||||||
|
* src/mips/ffi.c: Fix handling of uint32_t arguments on the
|
||||||
|
MIPS N32 ABI.
|
||||||
|
|
||||||
2013-10-13 Sandra Loosemore <sandra@codesourcery.com>
|
2013-10-13 Sandra Loosemore <sandra@codesourcery.com>
|
||||||
|
|
||||||
* README: Add Nios II to table of supported platforms.
|
* README: Add Nios II to table of supported platforms.
|
||||||
|
|||||||
@@ -170,7 +170,14 @@ static void ffi_prep_args(char *stack,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case FFI_TYPE_UINT32:
|
case FFI_TYPE_UINT32:
|
||||||
|
#ifdef FFI_MIPS_N32
|
||||||
|
/* The N32 ABI requires that 32-bit integers
|
||||||
|
be sign-extended to 64-bits, regardless of
|
||||||
|
whether they are signed or unsigned. */
|
||||||
|
*(ffi_arg *)argp = *(SINT32 *)(* p_argv);
|
||||||
|
#else
|
||||||
*(ffi_arg *)argp = *(UINT32 *)(* p_argv);
|
*(ffi_arg *)argp = *(UINT32 *)(* p_argv);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* This can only happen with 64bit slots. */
|
/* This can only happen with 64bit slots. */
|
||||||
|
|||||||
Reference in New Issue
Block a user