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