projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
synchronize cond var destruction with exiting waits
[musl]
/
src
/
thread
/
x86_64
/
syscall_cp.s
diff --git
a/src/thread/x86_64/syscall_cp.s
b/src/thread/x86_64/syscall_cp.s
index
1894ce1
..
b036354
100644
(file)
--- a/
src/thread/x86_64/syscall_cp.s
+++ b/
src/thread/x86_64/syscall_cp.s
@@
-1,6
+1,6
@@
.text
.global __syscall_cp_asm
.text
.global __syscall_cp_asm
-.type __syscall_cp_asm,
%
function
+.type __syscall_cp_asm,
@
function
__syscall_cp_asm:
lea 1f(%rip),%rax
mov %rax,8(%rdi)
__syscall_cp_asm:
lea 1f(%rip),%rax
mov %rax,8(%rdi)
@@
-8,6
+8,7
@@
__syscall_cp_asm:
mov 16(%rdi),%eax
test %eax,%eax
jnz 2f
mov 16(%rdi),%eax
test %eax,%eax
jnz 2f
+ mov %rdi,%r11
mov %rsi,%rax
mov %rdx,%rdi
mov %rcx,%rsi
mov %rsi,%rax
mov %rdx,%rdi
mov %rcx,%rsi
@@
-15,10
+16,10
@@
__syscall_cp_asm:
mov %r9,%r10
mov 8(%rsp),%r8
mov 16(%rsp),%r9
mov %r9,%r10
mov 8(%rsp),%r8
mov 16(%rsp),%r9
+ mov %r11,8(%rsp)
1: syscall
1: syscall
+ xor %ecx,%ecx
+ mov 8(%rsp),%rdi
+ mov %rcx,(%rdi)
ret
ret
-2: xor %edi,%edi
- mov %rdi,8(%r10)
- mov %rdi,(%r10)
- dec %rdi
- jmp pthread_exit
+2: call __cancel