Index: src/mips/ffi.c =================================================================== --- src/mips/ffi.c (revision 125997) +++ src/mips/ffi.c (working copy) @@ -27,7 +27,6 @@ #include #include -#include #if _MIPS_SIM == _ABIN32 #define FIX_ARGP \ @@ -506,6 +505,7 @@ ffi_prep_closure_loc (ffi_closure *closu unsigned int *tramp = (unsigned int *) &closure->tramp[0]; unsigned int fn; unsigned int ctx = (unsigned int) codeloc; + char *clear_location = (char *) codeloc; #if defined(FFI_MIPS_O32) FFI_ASSERT(cif->abi == FFI_O32 || cif->abi == FFI_O32_SOFT_FLOAT); @@ -525,8 +525,7 @@ ffi_prep_closure_loc (ffi_closure *closu closure->fun = fun; closure->user_data = user_data; - /* XXX this is available on Linux, but anything else? */ - cacheflush (codeloc, FFI_TRAMPOLINE_SIZE, ICACHE); + __builtin___clear_cache(clear_location, clear_location + FFI_TRAMPOLINE_SIZE); return FFI_OK; }