clarify the purpose of this project
[nyanglibc.git] / misc / ptrace.s
blobe1247a2c7e618c3c36f22755127829e5104f0d80
1 .text
2 .p2align 4,,15
3 .globl ptrace
4 .type ptrace, @function
5 ptrace:
6 leaq 8(%rsp), %rax
7 leal -1(%rdi), %r8d
8 movq %rsi, -40(%rsp)
9 movq %rdx, -32(%rsp)
10 movq %rcx, -24(%rsp)
11 leaq -80(%rsp), %r10
12 movq %rax, -64(%rsp)
13 leaq -48(%rsp), %rax
14 cmpl $3, %r8d
15 movl 8(%rax), %esi
16 movq 16(%rax), %rdx
17 movq %rax, -56(%rsp)
18 cmovnb 24(%rax), %r10
19 movl $101, %eax
20 movl $24, -72(%rsp)
21 #APP
22 # 45 "../sysdeps/unix/sysv/linux/ptrace.c" 1
23 syscall
25 # 0 "" 2
26 #NO_APP
27 cmpq $-4096, %rax
28 ja .L16
29 testq %rax, %rax
30 js .L1
31 cmpl $2, %r8d
32 jbe .L17
33 .L1:
34 rep ret
35 .p2align 4,,10
36 .p2align 3
37 .L17:
38 movq __libc_errno@gottpoff(%rip), %rax
39 movl $0, %fs:(%rax)
40 movq -80(%rsp), %rax
41 ret
42 .p2align 4,,10
43 .p2align 3
44 .L16:
45 movq __libc_errno@gottpoff(%rip), %rdx
46 negl %eax
47 movl %eax, %fs:(%rdx)
48 movq $-1, %rax
49 ret
50 .size ptrace, .-ptrace