summaryrefslogtreecommitdiff
path: root/src/thread/i386/__set_thread_area.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread/i386/__set_thread_area.s')
-rw-r--r--src/thread/i386/__set_thread_area.s21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/thread/i386/__set_thread_area.s b/src/thread/i386/__set_thread_area.s
index a43525ec..cccf1cd3 100644
--- a/src/thread/i386/__set_thread_area.s
+++ b/src/thread/i386/__set_thread_area.s
@@ -2,20 +2,21 @@
.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)
+ push $-1
+ mov %esp,%ebx
+ xor %eax,%eax
+ mov $243,%al
int $128
- popl %ebx
testl %eax,%eax
jnz 1f
- movl 4(%ecx),%ecx
+ movl (%esp),%ecx
leal 3(,%ecx,8),%ecx
movw %cx,%gs
1:
+ addl $16,%esp
+ popl %ebx
ret