What about using something like the following: static void clear_mips_cache(const void* Addr, size_t Size) { __asm__("...\n" "jr.hb %0" :: r(&&after); after: ; } and not creating a separate function in asm at all? http://reviews.llvm.org/D6661 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/