]>
Commit | Line | Data |
---|---|---|
320054e8 DG |
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 | |
322bd4ff | 31 | xor %eax,%eax |
320054e8 DG |
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 |