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>
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)
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)