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 |