icache_riscv.c (420B)
1 /* riscv32 / riscv64 icache flush. Emit fence.i first so the current hart 2 * sees freshly written bytes immediately, then __builtin___clear_cache 3 * lowers to __riscv_flush_icache for cross-hart visibility (Linux). */ 4 5 #include <stddef.h> 6 7 #include "env_internal.h" 8 9 void env_flush_icache(void* addr, size_t n) { 10 __asm__ __volatile__("fence.i" ::: "memory"); 11 __builtin___clear_cache((char*)addr, (char*)addr + n); 12 }