authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-24 17:36:34+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-24 21:56:54+02:00
logce81525f3f3057e4239332b2152bf60f75c5f52a
treea7e5852b3ea78c86bf38cfffd13ff21e04121f61
parent52653ec82bcc8e10fee9b6d9997b2de41a22a93a
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

start: Align the stack on s390x just in case.

The kernel does this as required, but we cannot trust dynamic linkers to do it.

1 files changed, 2 insertions(+), 1 deletions(-)

lib/std/start.zig+2-1
...@@ -373,8 +373,9 @@ fn _start() callconv(.Naked) noreturn {...@@ -373,8 +373,9 @@ fn _start() callconv(.Naked) noreturn {
373 ,373 ,
374 .s390x =>374 .s390x =>
375 // Set up the stack frame (register save area and cleared back-chain slot).375 // Set up the stack frame (register save area and cleared back-chain slot).
376 // Note: Stack pointer is guaranteed by ABI to be 8-byte aligned as required.
377 \\ lgr %r2, %r15376 \\ lgr %r2, %r15
377 \\ lghi %r0, -16
378 \\ ngr %r15, %r0
378 \\ aghi %r15, -160379 \\ aghi %r15, -160
379 \\ lghi %r0, 0380 \\ lghi %r0, 0
380 \\ stg %r0, 0(%r15)381 \\ stg %r0, 0(%r15)