| ... | @@ -120,8 +120,8 @@ pub fn clone() callconv(.naked) u32 { | ... | @@ -120,8 +120,8 @@ pub fn clone() callconv(.naked) u32 { |
| 120 | // __clone(func, stack, flags, arg, ptid, tls, ctid) | 120 | // __clone(func, stack, flags, arg, ptid, tls, ctid) |
| 121 | // r3, r4, r5, r6, r7, r8, +0 | 121 | // r3, r4, r5, r6, r7, r8, +0 |
| 122 | // | 122 | // |
| 123 | // syscall(SYS_clone, flags, stack, ptid, tls, ctid) | 123 | // syscall(SYS_clone, flags, stack, ptid, ctid, tls) |
| 124 | // r11 r3, r4, r5, r6, r7 | 124 | // r11 r3, r4, r5, r6, r7 |
| 125 | asm volatile ( | 125 | asm volatile ( |
| 126 | \\ # Save function pointer and argument pointer on new thread stack | 126 | \\ # Save function pointer and argument pointer on new thread stack |
| 127 | \\ l.addi r13, r0, -4 | 127 | \\ l.addi r13, r0, -4 |
| ... | @@ -134,8 +134,8 @@ pub fn clone() callconv(.naked) u32 { | ... | @@ -134,8 +134,8 @@ pub fn clone() callconv(.naked) u32 { |
| 134 | \\ l.ori r11, r0, 220 # SYS_clone | 134 | \\ l.ori r11, r0, 220 # SYS_clone |
| 135 | \\ l.ori r3, r5, 0 | 135 | \\ l.ori r3, r5, 0 |
| 136 | \\ l.ori r5, r7, 0 | 136 | \\ l.ori r5, r7, 0 |
| 137 | \\ l.ori r6, r8, 0 | 137 | \\ l.lwz r6, 0(r1) |
| 138 | \\ l.lwz r7, 0(r1) | 138 | \\ l.ori r7, r8, 0 |
| 139 | \\ l.sys 1 | 139 | \\ l.sys 1 |
| 140 | \\ l.sfeqi r11, 0 | 140 | \\ l.sfeqi r11, 0 |
| 141 | \\ l.bf 1f | 141 | \\ l.bf 1f |