#include "pthread_impl.h" hidden void __unmapself_sh_mmu(void *, size_t); hidden void __unmapself_sh_nommu(void *, size_t); #if !defined(__SH3__) && !defined(__SH4__) #define __unmapself __unmapself_sh_nommu #include "dynlink.h" #undef CRTJMP #define CRTJMP(pc,sp) __asm__ __volatile__( \ "mov.l @%0+,r0 ; mov.l @%0,r12 ; jmp @r0 ; mov %1,r15" \ : : "r"(pc), "r"(sp) : "r0", "memory" ) #include "../__unmapself.c" #undef __unmapself extern hidden unsigned __sh_nommu; #else #define __sh_nommu 0 #endif void __unmapself(void *base, size_t size) { if (__sh_nommu) __unmapself_sh_nommu(base, size); else __unmapself_sh_mmu(base, size); }