From: Michael Munday Date: Thu, 8 Sep 2016 23:27:24 +0000 (-0400) Subject: runtime: fix SIGILL in checkvectorfacility on s390x X-Git-Tag: go1.8beta1~1424 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d38d59ffb5d56c838b1ed7cc346b8d63398b5452;p=gostls13.git 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/28850 Reviewed-by: Brad Fitzpatrick --- diff --git a/src/runtime/asm_s390x.s b/src/runtime/asm_s390x.s index cf0ed1a917..928fe37121 100644 --- a/src/runtime/asm_s390x.s +++ b/src/runtime/asm_s390x.s @@ -20,6 +20,7 @@ TEXT runtime·checkvectorfacility(SB),NOSPLIT,$32-0 MOVD $2, R0 MOVD R1, tmp-32(SP) MOVD $x-24(SP), R1 + XC $24, 0(R1), 0(R1) // STFLE 0(R1) WORD $0xB2B01000 MOVBZ z-8(SP), R1