use hidden __tls_get_new for tls/tlsdesc lookup fallback cases
[musl] / src / thread / i386 / tls.s
index e1f2262..76d5d46 100644 (file)
@@ -2,7 +2,16 @@
 .global ___tls_get_addr
 .type ___tls_get_addr,@function
 ___tls_get_addr:
-       push %eax
-       call __tls_get_addr
+       mov %gs:4,%edx
+       mov (%eax),%ecx
+       cmp %ecx,(%edx)
+       jc 1f
+       mov 4(%eax),%eax
+       add (%edx,%ecx,4),%eax
+       ret
+1:     push %eax
+.weak __tls_get_new
+.hidden __tls_get_new
+       call __tls_get_new
        pop %edx
        ret