aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2016-08-28 00:26:06 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2016-08-28 00:26:06 +0000
commit6a9e57741328dcae97b7966a6df69c2962f4ca2f (patch)
tree7e81abbe26892a3e5b161553c72d4b14f59e897a
parentda6e468936ace83c59c3ee466ed93ede41850ec9 (diff)
downloadsrc-6a9e57741328dcae97b7966a6df69c2962f4ca2f.tar.gz
src-6a9e57741328dcae97b7966a6df69c2962f4ca2f.zip
Notes
-rw-r--r--lib/libc/amd64/sys/ptrace.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/libc/amd64/sys/ptrace.S b/lib/libc/amd64/sys/ptrace.S
index c367a4ea12d1..c65a51ba2ef6 100644
--- a/lib/libc/amd64/sys/ptrace.S
+++ b/lib/libc/amd64/sys/ptrace.S
@@ -42,11 +42,21 @@ __FBSDID("$FreeBSD$");
.type CNAME(__error),@function
ENTRY(ptrace)
+ pushq %rdi /* align stack */
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ pushq %rcx
#ifdef PIC
callq PIC_PLT(CNAME(__error))
#else
callq CNAME(__error)
#endif
+ popq %rcx
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ popq %rdi
movl $0,(%rax)
mov $SYS_ptrace,%eax
KERNCALL