]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Darwin, X86 : Implement __cache_clear.
authorIain Sandoe <iain@sandoe.co.uk>
Fri, 4 Sep 2020 13:05:12 +0000 (14:05 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Sun, 29 Aug 2021 06:50:52 +0000 (07:50 +0100)
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.

gcc/config/i386/darwin.h

index 73b06e2307d2ee93104a3058b8f11a1c05b29cd8..da0ae5b3ee78ef4ab66bd0afc5a1667201cb4231 100644 (file)
@@ -344,3 +344,8 @@ along with GCC; see the file COPYING3.  If not see
 #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)))