summaryrefslogtreecommitdiffhomepage
path: root/src/process/nt64/tt_fork_v1.asm
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2016-12-15 17:15:38 +0000
committermidipix <writeonce@midipix.org>2016-12-15 13:32:38 -0500
commit068c4fce6ad045ee109b2ae76e4b7af5ec656541 (patch)
tree5072ac7a8d53573746fe6ad8243d6a913ba7f5ac /src/process/nt64/tt_fork_v1.asm
parent81d5d522fd24f1e7b160849455af1125335e574b (diff)
downloadntapi-068c4fce6ad045ee109b2ae76e4b7af5ec656541.tar.bz2
ntapi-068c4fce6ad045ee109b2ae76e4b7af5ec656541.tar.xz
project: clbuild-bat: asm source file normalization.
Diffstat (limited to 'src/process/nt64/tt_fork_v1.asm')
-rw-r--r--src/process/nt64/tt_fork_v1.asm136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/process/nt64/tt_fork_v1.asm b/src/process/nt64/tt_fork_v1.asm
new file mode 100644
index 0000000..af9f2ad
--- /dev/null
+++ b/src/process/nt64/tt_fork_v1.asm
@@ -0,0 +1,136 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; ntapi: Native API core library ;;
+;; Copyright (C) 2013,2014,2015 Z. Gilboa ;;
+;; Released under GPLv2 and GPLv3; see COPYING.NTAPI. ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+TITLE tt_fork_x86_64
+
+.data
+__tt_fork_impl_v1 PROTO C
+
+.code
+__tt_fork_v1 PROC
+ push rbp
+ push rcx
+ push rdx
+ push rbx
+ push rsi
+ push rdi
+ push r8
+ push r9
+ push r10
+ push r11
+ push r12
+ push r13
+ push r14
+ push r15
+
+ sub rsp, 40h
+
+ mov rdx, rsp
+ and rdx, 15
+ test rdx, rdx
+ jne __tt_fork_impl_adj_call
+
+ mov rcx, rsp
+ call __tt_fork_impl_v1
+
+ add rsp, 40h
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop r11
+ pop r10
+ pop r9
+ pop r8
+ pop rdi
+ pop rsi
+ pop rbx
+ pop rdx
+ pop rcx
+ pop rbp
+ ret
+__tt_fork_v1 ENDP
+
+__tt_fork_impl_adj_call PROC
+ push rdi
+
+ mov rcx, rsp
+ mov rdx, 1
+ call __tt_fork_impl_v1
+
+ pop rdi
+
+ add rsp, 40h
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop r11
+ pop r10
+ pop r9
+ pop r8
+ pop rdi
+ pop rsi
+ pop rbx
+ pop rdx
+ pop rcx
+ pop rbp
+ ret
+__tt_fork_impl_adj_call ENDP
+
+
+__tt_fork_child_entry_point PROC
+ xor rax, rax
+ mov rsp, rcx
+
+ add rsp, 40h
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop r11
+ pop r10
+ pop r9
+ pop r8
+ pop rdi
+ pop rsi
+ pop rbx
+ pop rdx
+ pop rcx
+ pop rbp
+ ret
+__tt_fork_child_entry_point ENDP
+
+
+__tt_fork_child_entry_point_adj PROC
+ xor rax, rax
+ mov rsp, rcx
+
+ pop rdi
+
+ add rsp, 40h
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop r11
+ pop r10
+ pop r9
+ pop r8
+ pop rdi
+ pop rsi
+ pop rbx
+ pop rdx
+ pop rcx
+ pop rbp
+ ret
+__tt_fork_child_entry_point_adj ENDP
+
+END