consistently use hidden visibility for cancellable syscall internals
[musl] / src / thread / i386 / __set_thread_area.s
1 .text
2 .global __set_thread_area
3 .type   __set_thread_area,@function
4 __set_thread_area:
5         push %ebx
6         push $0x51
7         push $0xfffff
8         push 16(%esp)
9         xor %edx,%edx
10         mov %gs,%dx
11         sub $3,%edx
12         sar $3,%edx
13         push %edx
14         mov %esp,%ebx
15         xor %eax,%eax
16         mov $243,%al
17         int $128
18         testl %eax,%eax
19         jnz 2f
20         movl (%esp),%edx
21         leal 3(,%edx,8),%edx
22 3:      movw %dx,%gs
23 1:
24         addl $16,%esp
25         popl %ebx
26         ret
27 2:
28         mov %ebx,%ecx
29         xor %ebx,%ebx
30         xor %edx,%edx
31         mov %ebx,(%esp)
32         mov $1,%bl
33         mov $16,%dl
34         mov $123,%al
35         int $128
36         testl %eax,%eax
37         jnz 1b
38         mov $7,%dl
39         inc %al
40         jmp 3b