X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fi386%2F__set_thread_area.s;h=3a558fb08bba03f9c63a24bb2ad2ada2495e3493;hb=768b82c6de24e480267c4c251c440edfc71800e3;hp=2a2e31a49aff34f58af417bbded4ba4f9599cfc0;hpb=1e4f1cf154d18d2bd13cd4524a8bbae6786efd02;p=musl diff --git a/src/thread/i386/__set_thread_area.s b/src/thread/i386/__set_thread_area.s index 2a2e31a4..3a558fb0 100644 --- a/src/thread/i386/__set_thread_area.s +++ b/src/thread/i386/__set_thread_area.s @@ -1,20 +1,45 @@ .text .global __set_thread_area +.type __set_thread_area,@function __set_thread_area: - pushl %ebx - movl 8(%esp),%ecx - movl $-1,4(%ecx) - movl %ecx,8(%ecx) - movl $0xfffff,12(%ecx) - movl $0x51,16(%ecx) - leal 4(%ecx),%ebx - movl $243,%eax + 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 - popl %ebx testl %eax,%eax - jnz 1f - movl 4(%ecx),%ecx - leal 3(,%ecx,8),%ecx - movw %cx,%gs + 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