__set_thread_area.s raw
1 .text
2 .global __set_thread_area
3 .hidden __set_thread_area
4 .type __set_thread_area,@function
5 __set_thread_area:
6 push %ebx
7 push $0x51
8 push $0xfffff
9 push 16(%esp)
10 call 1f
11 1: addl $4f-1b,(%esp)
12 pop %ecx
13 mov (%ecx),%edx
14 push %edx
15 mov %esp,%ebx
16 xor %eax,%eax
17 mov $243,%al
18 int $128
19 testl %eax,%eax
20 jnz 2f
21 movl (%esp),%edx
22 movl %edx,(%ecx)
23 leal 3(,%edx,8),%edx
24 3: movw %dx,%gs
25 1:
26 addl $16,%esp
27 popl %ebx
28 ret
29 2:
30 mov %ebx,%ecx
31 xor %eax,%eax
32 xor %ebx,%ebx
33 xor %edx,%edx
34 mov %ebx,(%esp)
35 mov $1,%bl
36 mov $16,%dl
37 mov $123,%al
38 int $128
39 testl %eax,%eax
40 jnz 1b
41 mov $7,%dl
42 inc %al
43 jmp 3b
44
45 .data
46 .align 4
47 4: .long -1
48