Commit 8624a53c authored by Shenghou Ma's avatar Shenghou Ma Committed by Andrew Gerrand

runtime: use correct psABI SP alignment before calling libc mmap

Fixes #14384.

Change-Id: Ib025cf2d20754b4c2db52f0a8a4717fd303371d6
Reviewed-on: https://go-review.googlesource.com/19660
Run-TryBot: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
Reviewed-by: 's avatarAustin Clements <austin@google.com>
Reviewed-on: https://go-review.googlesource.com/22037
parent 512261e5
...@@ -258,7 +258,7 @@ TEXT runtime·sysMmap(SB),NOSPLIT,$0 ...@@ -258,7 +258,7 @@ TEXT runtime·sysMmap(SB),NOSPLIT,$0
// Call the function stored in _cgo_mmap using the GCC calling convention. // Call the function stored in _cgo_mmap using the GCC calling convention.
// This must be called on the system stack. // This must be called on the system stack.
TEXT runtime·callCgoMmap(SB),NOSPLIT,$0 TEXT runtime·callCgoMmap(SB),NOSPLIT,$16
MOVQ addr+0(FP), DI MOVQ addr+0(FP), DI
MOVQ n+8(FP), SI MOVQ n+8(FP), SI
MOVL prot+16(FP), DX MOVL prot+16(FP), DX
...@@ -266,7 +266,11 @@ TEXT runtime·callCgoMmap(SB),NOSPLIT,$0 ...@@ -266,7 +266,11 @@ TEXT runtime·callCgoMmap(SB),NOSPLIT,$0
MOVL fd+24(FP), R8 MOVL fd+24(FP), R8
MOVL off+28(FP), R9 MOVL off+28(FP), R9
MOVQ _cgo_mmap(SB), AX MOVQ _cgo_mmap(SB), AX
MOVQ SP, BX
ANDQ $~15, SP // alignment as per amd64 psABI
MOVQ BX, 0(SP)
CALL AX CALL AX
MOVQ 0(SP), SP
MOVQ AX, ret+32(FP) MOVQ AX, ret+32(FP)
RET RET
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment