| .text | |
| .global __set_thread_area | |
| .type __set_thread_area,@function | |
| __set_thread_area: | |
| push %ebx | |
| push $0x51 | |
| push $0xfffff | |
| push 16(%esp) | |
| call 1f | |
| 1: addl $4f-1b,(%esp) | |
| pop %ecx | |
| mov (%ecx),%edx | |
| push %edx | |
| mov %esp,%ebx | |
| xor %eax,%eax | |
| mov $243,%al | |
| int $128 | |
| testl %eax,%eax | |
| jnz 2f | |
| movl (%esp),%edx | |
| movl %edx,(%ecx) | |
| leal 3(,%edx,8),%edx | |
| 3: movw %dx,%gs | |
| 1: | |
| addl $16,%esp | |
| popl %ebx | |
| ret | |
| 2: | |
| mov %ebx,%ecx | |
| xor %ebx,%ebx | |
| xor %edx,%edx | |
| mov %ebx,(%esp) | |
| mov $1,%bl | |
| mov $16,%dl | |
| mov $123,%al | |
| int $128 | |
| testl %eax,%eax | |
| jnz 1b | |
| mov $7,%dl | |
| inc %al | |
| jmp 3b | |
| .data | |
| .align 4 | |
| 4: .long -1 |