From 880c479f0e3a798d826c1c91b38d33e2b3e36580 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 19 Jun 2014 02:48:45 -0400 Subject: optimize i386 ___tls_get_addr asm --- src/thread/i386/tls.s | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/thread') 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 -- cgit v1.2.3-70-g09d2