__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