X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fi386%2F__set_thread_area.s;h=c2c21dd5d6ccdbe6198f516199f8c9093d7988b0;hb=9d44b6460ab603487dab4d916342d9ba4467e6b9;hp=cccf1cd3dd751f2a1446d4f927a29aca4b992bbb;hpb=3f72cdac73030761120cf32aeef44e7d03e2f1fa;p=musl diff --git a/src/thread/i386/__set_thread_area.s b/src/thread/i386/__set_thread_area.s index cccf1cd3..c2c21dd5 100644 --- a/src/thread/i386/__set_thread_area.s +++ b/src/thread/i386/__set_thread_area.s @@ -1,22 +1,46 @@ .text .global __set_thread_area +.hidden __set_thread_area .type __set_thread_area,@function __set_thread_area: push %ebx push $0x51 push $0xfffff push 16(%esp) - push $-1 + 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 1f - movl (%esp),%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