about summary refs log tree commit diff
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.s22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/thread/i386/__set_thread_area.s b/src/thread/i386/__set_thread_area.s
index cccf1cd3..ad538151 100644
--- a/src/thread/i386/__set_thread_area.s
+++ b/src/thread/i386/__set_thread_area.s
@@ -12,11 +12,25 @@ __set_thread_area:
 	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
+	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