test: reorganize tls macros in separate architecture files
[uclibc-ng.git] / test / tls / tls-macros-arc.h
blob4b2d6f8ad90a3bce3e7ede0c7fc012d75f2fc414
1 /* For now */
2 #define TLS_LD(x) TLS_IE(x)
4 #define TLS_GD(x) \
5 ({ int *__result; \
6 __asm__ ("add r0, pcl, @" #x "@tlsgd \n" \
7 ".tls_gd_ld " #x "`bl __tls_get_addr@plt \n" \
8 "mov %0, r0 \n" \
9 : "=&r" (__result) \
10 ::"r0","r1","r2","r3","r4","r5","r6","r7", \
11 "r8","r9","r10","r11","r12"); \
12 __result; })
14 #define TLS_LE(x) \
15 ({ int *__result; \
16 void *tp = __builtin_thread_pointer(); \
17 __asm__ ("add %0, %1, @" #x "@tpoff \n" \
18 : "=r" (__result) : "r"(tp)); \
19 __result; })
21 #define TLS_IE(x) \
22 ({ int *__result; \
23 void *tp = __builtin_thread_pointer(); \
24 __asm__ ("ld %0, [pcl, @" #x "@tlsie] \n" \
25 "add %0, %1, %0 \n" \
26 : "=&r" (__result) : "r" (tp)); \
27 __result; })