]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.7] runtime: fix SIGILL in checkvectorfacility on s390x
authorMichael Munday <munday@ca.ibm.com>
Thu, 8 Sep 2016 23:27:24 +0000 (19:27 -0400)
committerChris Broadfoot <cbro@golang.org>
Mon, 17 Oct 2016 20:24:42 +0000 (20:24 +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>
Reviewed-on: https://go-review.googlesource.com/31267
Reviewed-by: Michael Munday <munday@ca.ibm.com>
src/runtime/asm_s390x.s

index 896ccde8015881a5316187adf44eef054a48d9ce..97f276cdb86506ea72e141a1f64f644714fecc80 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