12345678910111213141516171819202122232425 |
- register void *__gp __asm__("$29");
- # define TLS_LE(x) \
- ({ int *__l; \
- __asm__ ("call_pal 158\n\tlda $0," #x "($0)\t\t!tprel" : "=v"(__l)); \
- __l; })
- # define TLS_IE(x) \
- ({ char *__tp; unsigned long __o; \
- __asm__ ("call_pal 158\n\tldq %1," #x "($gp)\t\t!gottprel" \
- : "=v"(__tp), "=r"(__o) : "r"(__gp)); \
- (int *)(__tp + __o); })
- # define TLS_LD(x) \
- ({ extern void *__tls_get_addr(void *); int *__l; void *__i; \
- __asm__ ("lda %0," #x "($gp)\t\t!tlsldm" : "=r" (__i) : "r"(__gp)); \
- __i = __tls_get_addr(__i); \
- __asm__ ("lda %0, " #x "(%1)\t\t!dtprel" : "=r"(__l) : "r"(__i)); \
- __l; })
- # define TLS_GD(x) \
- ({ extern void *__tls_get_addr(void *); void *__i; \
- __asm__ ("lda %0," #x "($gp)\t\t!tlsgd" : "=r" (__i) : "r"(__gp)); \
- (int *) __tls_get_addr(__i); })
|