OLD | NEW |
| (Empty) |
1 /* int clone(fn, stack, flags, arg, ptid, tls, ctid) | |
2 * r3 r4 r5 r6 sp+0 sp+4 sp+8 | |
3 * sys_clone(flags, stack, ptid, ctid, tls) | |
4 */ | |
5 .global __clone | |
6 .type __clone,@function | |
7 __clone: | |
8 l.addi r4, r4, -8 | |
9 l.sw 0(r4), r3 | |
10 l.sw 4(r4), r6 | |
11 /* (fn, st, fl, ar, pt, tl, ct) => (fl, st, pt, ct, tl) */ | |
12 l.ori r3, r5, 0 | |
13 l.lwz r5, 0(r1) | |
14 l.lwz r6, 8(r1) | |
15 l.lwz r7, 4(r1) | |
16 l.ori r11, r0, 220 /* __NR_clone */ | |
17 l.sys 1 | |
18 | |
19 l.sfeqi r11, 0 | |
20 l.bf 1f | |
21 l.nop | |
22 l.jr r9 | |
23 l.nop | |
24 | |
25 1: l.lwz r11, 0(r1) | |
26 l.jalr r11 | |
27 l.lwz r3, 4(r1) | |
28 | |
29 l.ori r11, r0, 93 /* __NR_exit */ | |
30 l.sys 1 | |
OLD | NEW |