]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix SIGILL in checkvectorfacility on s390x
authorMichael Munday <munday@ca.ibm.com>
Thu, 8 Sep 2016 23:27:24 +0000 (19:27 -0400)
committerMichael Munday <munday@ca.ibm.com>
Fri, 9 Sep 2016 00:34:22 +0000 (00:34 +0000)
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 <bradfitz@golang.org>
src/runtime/asm_s390x.s

index cf0ed1a917abb4bc01ffef2872ad460cf03dd9f1..928fe37121686f5077fcc15a1e5727937d4a45d9 100644 (file)
@@ -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