5 void flush_icache(cell start, cell len) {
8 // XXX: why doesn't this work on Nokia n800? It should behave
9 // identically to the below assembly.
10 // result = syscall(__ARM_NR_cacheflush,start,start + len,0);
12 // Assembly swiped from
13 // http://lists.arm.linux.org.uk/pipermail/linux-arm/2002-July/003931.html
14 __asm__ __volatile__("mov r0, %1\n"
17 "swi " __sys1(__ARM_NR_cacheflush) "\n"
20 : "r"(start), "r"(start + len)
24 critical_error("flush_icache() failed", result);