@@ -19,18 +19,12 @@
#ifndef _SYS_THREAD_POINTER_H
#define _SYS_THREAD_POINTER_H
-#include <sys/cdefs.h>
+register void *__thread_self asm ("$tp");
static inline void *
__thread_pointer (void)
{
-#if __glibc_has_builtin (__builtin_thread_pointer)
- return __builtin_thread_pointer ();
-#else
- void *__thread_register;
- __asm__ ("move %0, $tp" : "=r" (__thread_register));
- return __thread_register;
-#endif
+ return __thread_self;
}
#endif /* _SYS_THREAD_POINTER_H */
@@ -26,8 +26,8 @@
#include <stddef.h>
#include <stdint.h>
#include <dl-dtv.h>
+#include "thread_pointer.h"
-register void *__thread_self asm ("$tp");
#define READ_THREAD_POINTER() ({ __thread_self; })
/* Get system call information. */
Signed-off-by: caiyinyu <caiyinyu@loongson.cn> this is version 4 disscussed in https://sourceware.org/pipermail/libc-alpha/2024-November/161242.html v3: https://sourceware.org/pipermail/libc-alpha/2024-November/161237.html v2: https://sourceware.org/pipermail/libc-alpha/2024-November/161213.html v1: https://sourceware.org/pipermail/libc-alpha/2024-November/161185.html --- sysdeps/loongarch/nptl/thread_pointer.h | 10 ++-------- sysdeps/loongarch/nptl/tls.h | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-)