1570af302Sopenharmony_cistatic inline uintptr_t __get_tp()
2570af302Sopenharmony_ci{
3570af302Sopenharmony_ci	register uintptr_t tp __asm__("$3");
4570af302Sopenharmony_ci#if __mips_isa_rev < 2
5570af302Sopenharmony_ci	__asm__ (".word 0x7c03e83b" : "=r" (tp) );
6570af302Sopenharmony_ci#else
7570af302Sopenharmony_ci	__asm__ ("rdhwr %0, $29" : "=r" (tp) );
8570af302Sopenharmony_ci#endif
9570af302Sopenharmony_ci	return tp;
10570af302Sopenharmony_ci}
11570af302Sopenharmony_ci
12570af302Sopenharmony_ci#define TLS_ABOVE_TP
13570af302Sopenharmony_ci#define GAP_ABOVE_TP 0
14570af302Sopenharmony_ci
15570af302Sopenharmony_ci#define TP_OFFSET 0x7000
16570af302Sopenharmony_ci#define DTP_OFFSET 0x8000
17570af302Sopenharmony_ci
18570af302Sopenharmony_ci#define MC_PC pc
19