.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