From: Alex Brainman Date: Thu, 10 Jul 2014 04:23:50 +0000 (+1000) Subject: runtime: align stack before calling windows in usleep2 X-Git-Tag: go1.4beta1~1125 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=418b39d436ceda146bbbced0bd716bff2f8371e2;p=gostls13.git runtime: align stack before calling windows in usleep2 Fixes #8174. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews https://golang.org/cl/102360043 --- diff --git a/src/pkg/runtime/sys_windows_amd64.s b/src/pkg/runtime/sys_windows_amd64.s index 72b905ef79..6dc13e293d 100644 --- a/src/pkg/runtime/sys_windows_amd64.s +++ b/src/pkg/runtime/sys_windows_amd64.s @@ -367,7 +367,10 @@ usleep1_ret: RET // Runs on OS stack. duration (in 100ns units) is in BX. -TEXT runtime·usleep2(SB),NOSPLIT,$8 +TEXT runtime·usleep2(SB),NOSPLIT,$16 + MOVQ SP, AX + ANDQ $~15, SP // alignment as per Windows requirement + MOVQ AX, 8(SP) // Want negative 100ns units. NEGQ BX MOVQ SP, R8 // ptime @@ -376,4 +379,5 @@ TEXT runtime·usleep2(SB),NOSPLIT,$8 MOVQ $0, DX // alertable MOVQ runtime·NtWaitForSingleObject(SB), AX CALL AX + MOVQ 8(SP), SP RET