1 #if defined(__XTENSA_WINDOWED_ABI__)
4 __asm__ ("movi a8, " #x "@TLSFUNC\n\t" \
5 "movi a10, " #x "@TLSARG\n\t" \
6 "callx8.tls a8, " #x "@TLSCALL\n\t" \
10 : "a8", "a9", "a10", "a11", "a12", "a13", "a14", "a15"); \
15 __asm__ ("movi a8, _TLS_MODULE_BASE_@TLSFUNC\n\t" \
16 "movi a10, _TLS_MODULE_BASE_@TLSARG\n\t" \
17 "callx8.tls a8, _TLS_MODULE_BASE_@TLSCALL\n\t" \
18 "movi %0, " #x "@TPOFF\n\t" \
19 "add %0, %0, a10\n\t" \
22 : "a8", "a9", "a10", "a11", "a12", "a13", "a14", "a15"); \
24 #elif defined(__XTENSA_CALL0_ABI__)
27 __asm__ ("movi a0, " #x "@TLSFUNC\n\t" \
28 "movi a2, " #x "@TLSARG\n\t" \
29 "callx0.tls a0, " #x "@TLSCALL\n\t" \
33 : "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11");\
38 __asm__ ("movi a0, _TLS_MODULE_BASE_@TLSFUNC\n\t" \
39 "movi a2, _TLS_MODULE_BASE_@TLSARG\n\t" \
40 "callx0.tls a0, _TLS_MODULE_BASE_@TLSCALL\n\t" \
41 "movi %0, " #x "@TPOFF\n\t" \
42 "add %0, %0, a2\n\t" \
45 : "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11");\
48 #error Unsupported Xtensa ABI
51 #define TLS_IE(x) TLS_LE(x)
56 __asm__ ("rur %0, threadptr\n\t" \
57 "movi %1, " #x "@TPOFF\n\t" \
58 "add %0, %0, %1\n\t" \
59 : "=r" (__l), "=r" (__t) ); \