diff --git a/arch/mips/pthread_arch.h b/arch/mips/pthread_arch.h index f75379cf..77b7330d 100644 --- a/arch/mips/pthread_arch.h +++ b/arch/mips/pthread_arch.h @@ -1,7 +1,11 @@ static inline struct pthread *__pthread_self() { struct pthread *self; +#ifdef __clang__ + __asm__ __volatile__ (".word 0x7c03e83b ; move %0, $3" : "=r" (self) : : "$3" ); +#else __asm__ __volatile__ (".word 0x7c03e83b" : "=v" (self) ); +#endif return self; }