We had a NOP cache clear, but there is a suitable mechanism provided
by a system call. This connects it up.
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/ChangeLog:
* config/i386/darwin.h (CLEAR_INSN_CACHE): New.
#undef SUBTARGET_SHADOW_OFFSET
#define SUBTARGET_SHADOW_OFFSET \
(TARGET_LP64 ? HOST_WIDE_INT_1 << 44 : HOST_WIDE_INT_1 << 29)
+
+#undef CLEAR_INSN_CACHE
+#define CLEAR_INSN_CACHE(beg, end) \
+ extern void sys_icache_invalidate(void *start, size_t len); \
+ sys_icache_invalidate ((beg), (size_t)((end)-(beg)))