mirror of
https://github.com/golang/go
synced 2024-11-12 09:50:21 -07:00
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: Ian Lance Taylor <iant@golang.org> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
3e40f13cf3
commit
315f4c70f1
@ -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
|
|||||||
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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user