diff --git a/arch/mips/pthread_arch.h b/arch/mips/pthread_arch.h index f75379cf834deb53c02c31c5f28584b75c0e7a44..77b7330dacfd1445d4635d64bb0c6ece1a87897c 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; }