1234567891011121314151617181920212223242526 |
- /* For now */
- #define TLS_LD(x) TLS_IE(x)
- #define TLS_GD(x) \
- ({ void *__result; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("add %0, pcl, @" #x "@tlsgd \n" \
- ".tls_gd_ld " #x " \n" \
- : "=r" (__result)); \
- (int *)__tls_get_addr(__result); })
- #define TLS_LE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer(); \
- __asm__ ("add %0, %1, @" #x "@tpoff \n" \
- : "=r" (__result) : "r"(tp)); \
- __result; })
- #define TLS_IE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer(); \
- __asm__ ("ld %0, [pcl, @" #x "@tlsie] \n" \
- "add %0, %1, %0 \n" \
- : "=&r" (__result) : "r" (tp)); \
- __result; })
|