diff --git a/src/runtime/sys_windows_arm64.s b/src/runtime/sys_windows_arm64.s index 87f8f0d2183a22..6031962f74164c 100644 --- a/src/runtime/sys_windows_arm64.s +++ b/src/runtime/sys_windows_arm64.s @@ -112,10 +112,11 @@ TEXT runtime·badsignal2(SB),NOSPLIT,$16-0 MOVD $runtime·badsignalmsg(SB), R1 // lpBuffer MOVD $runtime·badsignallen(SB), R2 // lpNumberOfBytesToWrite MOVD (R2), R2 - MOVD R13, R3 // lpNumberOfBytesWritten MOVD $0, R4 // lpOverlapped MOVD runtime·_WriteFile(SB), R12 - SUB $16, RSP // skip over saved frame pointer below RSP + MOVD RSP, R3 // lpNumberOfBytesWritten, point to stack - 24 bytes (see next instruction) + SUB $24, R3 + SUB $32, RSP // skip over saved frame pointer, lpNumberOfBytesWritten and align to 16 bytes BL (R12) // Does not return.