projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix missing barrier in pthread_once/call_once shortcut path
[musl]
/
src
/
thread
/
i386
/
__set_thread_area.s
diff --git
a/src/thread/i386/__set_thread_area.s
b/src/thread/i386/__set_thread_area.s
index
2a2e31a
..
ad53815
100644
(file)
--- a/
src/thread/i386/__set_thread_area.s
+++ b/
src/thread/i386/__set_thread_area.s
@@
-1,20
+1,36
@@
.text
.global __set_thread_area
.text
.global __set_thread_area
+.type __set_thread_area,@function
__set_thread_area:
__set_thread_area:
- push
l
%ebx
- movl 8(%esp),%ecx
- movl $-1,4(%ecx)
-
movl %ecx,8(%ecx
)
- movl $0xfffff,12(%ecx)
- mov
l $0x51,16(%ecx)
-
leal 4(%ecx),%eb
x
- mov
l $243,%eax
+ push %ebx
+ push $0x51
+ push $0xfffff
+
push 16(%esp
)
+ push $-1
+ mov
%esp,%ebx
+
xor %eax,%ea
x
+ mov
$243,%al
int $128
int $128
- popl %ebx
testl %eax,%eax
testl %eax,%eax
- jnz
1
f
- movl
4(%ecx),%ec
x
- leal 3(,%e
cx,8),%ec
x
-
movw %c
x,%gs
+ jnz
2
f
+ movl
(%esp),%ed
x
+ leal 3(,%e
dx,8),%ed
x
+
3: movw %d
x,%gs
1:
1:
+ addl $16,%esp
+ popl %ebx
ret
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