forked from GitHub/gf-core
fix in the JIT compiler that would hopefully make it work on iOS
This commit is contained in:
@@ -41,6 +41,17 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
|
#if defined(ios_HOST_OS) || defined (darwin_HOST_OS)
|
||||||
|
extern void sys_icache_invalidate(void *start, size_t len);
|
||||||
|
|
||||||
|
static void
|
||||||
|
jit_flush_code(void *start, void *end)
|
||||||
|
{
|
||||||
|
mprotect(start, (char *)end - (char *)start,
|
||||||
|
PROT_READ | PROT_WRITE | PROT_EXEC);
|
||||||
|
sys_icache_invalidate(start, (char *)end-(char *)start);
|
||||||
|
}
|
||||||
|
#else
|
||||||
extern void __clear_cache(void*, void*);
|
extern void __clear_cache(void*, void*);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -50,6 +61,7 @@ jit_flush_code(void *start, void *end)
|
|||||||
PROT_READ | PROT_WRITE | PROT_EXEC);
|
PROT_READ | PROT_WRITE | PROT_EXEC);
|
||||||
__clear_cache(start, end);
|
__clear_cache(start, end);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
__attribute__((constructor)) static void
|
__attribute__((constructor)) static void
|
||||||
jit_get_cpu(void)
|
jit_get_cpu(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user