Warning: That file was not part of the compilation database. It may have many parsing errors.

1/* Macros to support TLS testing in times of missing compiler support. */
2
3extern void *__tls_get_addr (void *);
4
5# define TLS_GD(x) \
6 ({ register void *__gp asm ("$29"); void *__result; \
7 asm ("lda %0, " #x "($gp) !tlsgd" : "=r" (__result) : "r"(__gp)); \
8 __tls_get_addr (__result); })
9
10# define TLS_LD(x) \
11 ({ register void *__gp asm ("$29"); void *__result; \
12 asm ("lda %0, " #x "($gp) !tlsldm" : "=r" (__result) : "r"(__gp)); \
13 __result = __tls_get_addr (__result); \
14 asm ("lda %0, " #x "(%0) !dtprel" : "+r" (__result)); \
15 __result; })
16
17# define TLS_IE(x) \
18 ({ register void *__gp asm ("$29"); long ofs; \
19 asm ("ldq %0, " #x "($gp) !gottprel" : "=r"(ofs) : "r"(__gp)); \
20 __builtin_thread_pointer () + ofs; })
21
22# define TLS_LE(x) \
23 ({ void *__result = __builtin_thread_pointer (); \
24 asm ("lda %0, " #x "(%0) !tprel" : "+r" (__result)); \
25 __result; })
26

Warning: That file was not part of the compilation database. It may have many parsing errors.