The __clear_cache function (from libgcc / libcompier-rt) ought to issue a system call that flushes instruction caches. Instead, it aborts. This makes it impossible to correctly implement self-modifying code on MIPS (where i-cache is not guaranteed to be coherent with d-cache).