25 lines
642 B
C
25 lines
642 B
C
#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);
|
|
}
|