Commit 230c3918 authored by Michael Munday's avatar Michael Munday Committed by Chris Broadfoot

[release-branch.go1.7] runtime: fix SIGILL in checkvectorfacility on s390x

STFLE does not necessarily write to all the double-words that are
requested. It is therefore necessary to clear the target memory
before calling STFLE in order to ensure that the facility list does
not contain false positives.

Fixes #17032.

Change-Id: I7bec9ade7103e747b72f08562fe57e6f091bd89f
Reviewed-on: https://go-review.googlesource.com/28850Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
Reviewed-on: https://go-review.googlesource.com/31267Reviewed-by: 's avatarMichael Munday <munday@ca.ibm.com>
parent b67902fe
...@@ -20,6 +20,7 @@ TEXT runtime·checkvectorfacility(SB),NOSPLIT,$32-0 ...@@ -20,6 +20,7 @@ TEXT runtime·checkvectorfacility(SB),NOSPLIT,$32-0
MOVD $2, R0 MOVD $2, R0
MOVD R1, tmp-32(SP) MOVD R1, tmp-32(SP)
MOVD $x-24(SP), R1 MOVD $x-24(SP), R1
XC $24, 0(R1), 0(R1)
// STFLE 0(R1) // STFLE 0(R1)
WORD $0xB2B01000 WORD $0xB2B01000
MOVBZ z-8(SP), R1 MOVBZ z-8(SP), R1
......
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