| 1 | static inline uintptr_t __get_tp() |
| 2 | { |
| 3 | #if __mips_isa_rev < 2 |
| 4 | 	register uintptr_t tp __asm__("$3"); |
| 5 | 	__asm__ (".word 0x7c03e83b" : "=r" (tp) ); |
| 6 | #else |
| 7 | 	uintptr_t tp; |
| 8 | 	__asm__ ("rdhwr %0, $29" : "=r" (tp) ); |
| 9 | #endif |
| 10 | 	return tp; |
| 11 | } |
| 12 | |
| 13 | #define TLS_ABOVE_TP |
| 14 | #define GAP_ABOVE_TP 0 |
| 15 | |
| 16 | #define TP_OFFSET 0x7000 |
| 17 | #define DTP_OFFSET 0x8000 |
| 18 | |
| 19 | #define MC_PC pc |