| ... | @@ -351,8 +351,9 @@ fn _start() callconv(.Naked) noreturn { | ... | @@ -351,8 +351,9 @@ fn _start() callconv(.Naked) noreturn { |
| 351 | \\ j %[posixCallMainAndExit] | 351 | \\ j %[posixCallMainAndExit] |
| 352 | , | 352 | , |
| 353 | .powerpc, .powerpcle => | 353 | .powerpc, .powerpcle => |
| 354 | // Setup the initial stack frame and clear the back chain pointer. | 354 | // Set up the initial stack frame, and clear the back chain pointer. |
| 355 | \\ mr 3, 1 | 355 | \\ mr 3, 1 |
| | 356 | \\ clrrwi 1, 1, 4 |
| 356 | \\ li 0, 0 | 357 | \\ li 0, 0 |
| 357 | \\ stwu 1, -16(1) | 358 | \\ stwu 1, -16(1) |
| 358 | \\ stw 0, 0(1) | 359 | \\ stw 0, 0(1) |
| ... | @@ -360,7 +361,7 @@ fn _start() callconv(.Naked) noreturn { | ... | @@ -360,7 +361,7 @@ fn _start() callconv(.Naked) noreturn { |
| 360 | \\ b %[posixCallMainAndExit] | 361 | \\ b %[posixCallMainAndExit] |
| 361 | , | 362 | , |
| 362 | .powerpc64, .powerpc64le => | 363 | .powerpc64, .powerpc64le => |
| 363 | // Setup the initial stack frame and clear the back chain pointer. | 364 | // Set up the ToC and initial stack frame, and clear the back chain pointer. |
| 364 | \\ addis 2, 12, .TOC. - %[_start]@ha | 365 | \\ addis 2, 12, .TOC. - %[_start]@ha |
| 365 | \\ addi 2, 2, .TOC. - %[_start]@l | 366 | \\ addi 2, 2, .TOC. - %[_start]@l |
| 366 | \\ mr 3, 1 | 367 | \\ mr 3, 1 |