diff options
Diffstat (limited to 'src/thread/i386')
-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 |