__get_tp()1*c9945492SAndroid Build Coastguard Workerstatic inline uintptr_t __get_tp() 2*c9945492SAndroid Build Coastguard Worker { 3*c9945492SAndroid Build Coastguard Worker register uintptr_t tp __asm__("r2"); 4*c9945492SAndroid Build Coastguard Worker __asm__ ("" : "=r" (tp) ); 5*c9945492SAndroid Build Coastguard Worker return tp; 6*c9945492SAndroid Build Coastguard Worker } 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker #define TLS_ABOVE_TP 9*c9945492SAndroid Build Coastguard Worker #define GAP_ABOVE_TP 0 10*c9945492SAndroid Build Coastguard Worker 11*c9945492SAndroid Build Coastguard Worker #define TP_OFFSET 0x7000 12*c9945492SAndroid Build Coastguard Worker #define DTP_OFFSET 0x8000 13*c9945492SAndroid Build Coastguard Worker 14*c9945492SAndroid Build Coastguard Worker // the kernel calls the ip "nip", it's the first saved value after the 32 15*c9945492SAndroid Build Coastguard Worker // GPRs. 16*c9945492SAndroid Build Coastguard Worker #define MC_PC gregs[32] 17