clone.s raw
1 .text
2 .global __clone
3 .hidden __clone
4 .type __clone,@function
5 __clone:
6 movl $0x40000038,%eax /* SYS_clone */
7 mov %rdi,%r11
8 mov %rdx,%rdi
9 mov %r8,%rdx
10 mov %r9,%r8
11 mov 8(%rsp),%r10
12 mov %r11,%r9
13 and $-16,%rsi
14 sub $8,%rsi
15 mov %rcx,(%rsi)
16 syscall
17 test %eax,%eax
18 jnz 1f
19 xor %ebp,%ebp
20 pop %rdi
21 call *%r9
22 mov %eax,%edi
23 movl $0x4000003c,%eax /* SYS_exit */
24 syscall
25 hlt
26 1: ret
27