diff options
Diffstat (limited to 'libffi/src/mips/ffitarget.h')
-rw-r--r-- | libffi/src/mips/ffitarget.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/libffi/src/mips/ffitarget.h b/libffi/src/mips/ffitarget.h index 717d659..fdd5ca9 100644 --- a/libffi/src/mips/ffitarget.h +++ b/libffi/src/mips/ffitarget.h @@ -32,7 +32,7 @@ #error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." #endif -#ifdef linux +#ifdef __linux__ # include <asm/sgidefs.h> #elif defined(__rtems__) /* @@ -41,7 +41,7 @@ #define _MIPS_SIM_ABI32 1 #define _MIPS_SIM_NABI32 2 #define _MIPS_SIM_ABI64 3 -#elif !defined(__OpenBSD__) +#elif !defined(__OpenBSD__) && !defined(__FreeBSD__) # include <sgidefs.h> #endif @@ -224,24 +224,21 @@ typedef enum ffi_abi { #endif } ffi_abi; -#define FFI_EXTRA_CIF_FIELDS unsigned rstruct_flag +#define FFI_EXTRA_CIF_FIELDS unsigned rstruct_flag; unsigned mips_nfixedargs +#define FFI_TARGET_SPECIFIC_VARIADIC #endif /* !LIBFFI_ASM */ /* ---- Definitions for closures ----------------------------------------- */ -#if defined(FFI_MIPS_O32) #define FFI_CLOSURES 1 -#define FFI_TRAMPOLINE_SIZE 20 -#else -/* N32/N64. */ -# define FFI_CLOSURES 1 -#if _MIPS_SIM==_ABI64 -#define FFI_TRAMPOLINE_SIZE 52 +#define FFI_GO_CLOSURES 1 +#define FFI_NATIVE_RAW_API 0 + +#if defined(FFI_MIPS_O32) || (_MIPS_SIM ==_ABIN32) +# define FFI_TRAMPOLINE_SIZE 20 #else -#define FFI_TRAMPOLINE_SIZE 20 +# define FFI_TRAMPOLINE_SIZE 56 #endif -#endif /* FFI_MIPS_O32 */ -#define FFI_NATIVE_RAW_API 0 #endif |