mirror of git://sourceware.org/git/glibc.git
powerpc: Use global register variable in <thread_pointer.h>
A local register variable is merely a compiler hint, and so not
appropriate in this context. Move the global register variable into
<thread_pointer.h> and include it from <tls.h>, as there can only
be one global definition for one particular register.
Fixes commit 8dbeb0561e
("nptl: Add <thread_pointer.h> for defining __thread_pointer").
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Raphael M Zinsly <rzinsly@linux.ibm.com>
This commit is contained in:
parent
a6d2f948b7
commit
cb976fba4c
|
@ -19,15 +19,16 @@
|
|||
#ifndef _SYS_THREAD_POINTER_H
|
||||
#define _SYS_THREAD_POINTER_H
|
||||
|
||||
#ifdef __powerpc64__
|
||||
register void *__thread_register asm ("r13");
|
||||
#else
|
||||
register void *__thread_register asm ("r2");
|
||||
#endif
|
||||
|
||||
static inline void *
|
||||
__thread_pointer (void)
|
||||
{
|
||||
#ifdef __powerpc64__
|
||||
register void *__result asm ("r13");
|
||||
#else
|
||||
register void *__result asm ("r2");
|
||||
#endif
|
||||
return __result;
|
||||
return __thread_register;
|
||||
}
|
||||
|
||||
#endif /* _SYS_THREAD_POINTER_H */
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
# include <stddef.h>
|
||||
# include <stdint.h>
|
||||
# include <dl-dtv.h>
|
||||
# include <thread_pointer.h>
|
||||
|
||||
#else /* __ASSEMBLER__ */
|
||||
# include <tcb-offsets.h>
|
||||
|
@ -36,16 +37,10 @@
|
|||
#ifndef __powerpc64__
|
||||
/* Register r2 (tp) is reserved by the ABI as "thread pointer". */
|
||||
# define PT_THREAD_POINTER PT_R2
|
||||
# ifndef __ASSEMBLER__
|
||||
register void *__thread_register __asm__ ("r2");
|
||||
# endif
|
||||
|
||||
#else /* __powerpc64__ */
|
||||
/* Register r13 (tp) is reserved by the ABI as "thread pointer". */
|
||||
# define PT_THREAD_POINTER PT_R13
|
||||
# ifndef __ASSEMBLER__
|
||||
register void *__thread_register __asm__ ("r13");
|
||||
# endif
|
||||
#endif /* __powerpc64__ */
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
|
Loading…
Reference in New Issue