fix local-dynamic model TLS on mips and powerpc
[musl.git] / src / thread / __tls_get_addr.c
blob84a413d4a8cd4be9bdd662b66d10c6fe877bc76b
1 #include <stddef.h>
2 #include "pthread_impl.h"
4 void *__tls_get_addr(size_t *v)
6 pthread_t self = __pthread_self();
7 #ifdef SHARED
8 __attribute__((__visibility__("hidden")))
9 void *__tls_get_new(size_t *);
10 if (v[0]<=(size_t)self->dtv[0])
11 return (char *)self->dtv[v[0]]+v[1]+DTP_OFFSET;
12 return __tls_get_new(v);
13 #else
14 return (char *)self->dtv[1]+v[1]+DTP_OFFSET;
15 #endif