Kaynağa Gözat

Invalidate CPU I-cache on Apple Silicon

Call __builtin___clear_cache() after pthread_jit_write_protect_np() according to https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon
SChernykh 3 yıl önce
ebeveyn
işleme
7245f13c7e
1 değiştirilmiş dosya ile 1 ekleme ve 0 silme
  1. 1 0
      src/virtual_memory.c

+ 1 - 0
src/virtual_memory.c

@@ -189,6 +189,7 @@ void setPagesRX(void* ptr, size_t bytes) {
 	&& MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
 	if (__builtin_available(macOS 11.0, *)) {
 		pthread_jit_write_protect_np(1);
+		__builtin___clear_cache((char*)ptr, ((char*)ptr) + bytes);
 	} else {
 		pageProtect(ptr, bytes, PAGE_EXECUTE_READ, &errfunc);
 	}