diff options
Diffstat (limited to 'src/thread')
| -rw-r--r-- | src/thread/i386/__set_thread_area.s | 22 | 
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 | 
