| ... | ... | @@ -200,8 +200,9 @@ pub fn clone() callconv(.naked) u32 { |
| 200 | 200 | asm volatile ( |
| 201 | 201 | \\ # store non-volatile regs r29, r30 on stack in order to put our |
| 202 | 202 | \\ # start func and its arg there |
| 203 | | \\ stwu 29, -16(1) |
| 204 | | \\ stw 30, 4(1) |
| 203 | \\ stwu 1, -16(1) |
| 204 | \\ stw 29, 8(1) |
| 205 | \\ stw 30, 12(1) |
| 205 | 206 | \\ |
| 206 | 207 | \\ # save r3 (func) into r29, and r6(arg) into r30 |
| 207 | 208 | \\ mr 29, 3 |
| ... | ... | @@ -234,8 +235,8 @@ pub fn clone() callconv(.naked) u32 { |
| 234 | 235 | \\ |
| 235 | 236 | \\ # if not 0, restore stack and return |
| 236 | 237 | \\ beq cr7, 2f |
| 237 | | \\ lwz 29, 0(1) |
| 238 | | \\ lwz 30, 4(1) |
| 238 | \\ lwz 29, 8(1) |
| 239 | \\ lwz 30, 12(1) |
| 239 | 240 | \\ addi 1, 1, 16 |
| 240 | 241 | \\ blr |
| 241 | 242 | \\ |