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 {
373373 ,
374374 .s390x =>
375375 // 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.
377376 \\ lgr %r2, %r15
377 \\ lghi %r0, -16
378 \\ ngr %r15, %r0
378379 \\ aghi %r15, -160
379380 \\ lghi %r0, 0
380381 \\ stg %r0, 0(%r15)