diff options
| -rw-r--r-- | src/thread/i386/tls.s | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/src/thread/i386/tls.s b/src/thread/i386/tls.s index e1f22629..6e01adf2 100644 --- a/src/thread/i386/tls.s +++ b/src/thread/i386/tls.s @@ -2,7 +2,14 @@  .global ___tls_get_addr  .type ___tls_get_addr,@function  ___tls_get_addr: -	push %eax +	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  	call __tls_get_addr  	pop %edx  	ret | 
