mirror of
https://github.com/golang/go.git
synced 2025-10-19 11:03:18 +00:00
runtime: correct vdsoSP on S390X
It should get the caller's SP. The current code gets the address of the first parameter, which is one word above the caller's SP. There is a slot for saving the LR at 0(SP) in the caller's frame. Fixes #62086 (for s390x). Change-Id: Ie8cbfabc8161b98658c884a32e0af72df189ea56 Reviewed-on: https://go-review.googlesource.com/c/go/+/685715 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
dd687c3860
commit
6c3b5a2798
1 changed files with 2 additions and 2 deletions
|
@ -226,7 +226,7 @@ TEXT runtime·walltime(SB),NOSPLIT,$32-12
|
|||
MOVD R4, 24(R15)
|
||||
|
||||
MOVD R14, R8 // Backup return address
|
||||
MOVD $sec+0(FP), R4 // return parameter caller
|
||||
MOVD $ret-8(FP), R4 // caller's SP
|
||||
|
||||
MOVD R8, m_vdsoPC(R6)
|
||||
MOVD R4, m_vdsoSP(R6)
|
||||
|
@ -312,7 +312,7 @@ TEXT runtime·nanotime1(SB),NOSPLIT,$32-8
|
|||
MOVD R4, 24(R15)
|
||||
|
||||
MOVD R14, R8 // Backup return address
|
||||
MOVD $ret+0(FP), R4 // caller's SP
|
||||
MOVD $ret-8(FP), R4 // caller's SP
|
||||
|
||||
MOVD R8, m_vdsoPC(R6)
|
||||
MOVD R4, m_vdsoSP(R6)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue