1*ea1413e5SStafford Horne /* SPDX-License-Identifier: LGPL-2.1-only OR MIT */ 2*ea1413e5SStafford Horne #ifndef _RSEQ_OR1K_THREAD_POINTER 3*ea1413e5SStafford Horne #define _RSEQ_OR1K_THREAD_POINTER 4*ea1413e5SStafford Horne 5*ea1413e5SStafford Horne static inline void *rseq_thread_pointer(void) 6*ea1413e5SStafford Horne { 7*ea1413e5SStafford Horne void *__thread_register; 8*ea1413e5SStafford Horne 9*ea1413e5SStafford Horne __asm__ ("l.or %0, r10, r0" : "=r" (__thread_register)); 10*ea1413e5SStafford Horne return __thread_register; 11*ea1413e5SStafford Horne } 12*ea1413e5SStafford Horne 13*ea1413e5SStafford Horne #endif 14