aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Munday <munday@ca.ibm.com>2016-09-08 19:27:24 -0400
committerChris Broadfoot <cbro@golang.org>2016-10-17 20:24:42 +0000
commit230c3918a8ae8a65e1974659e55f8a808fe731b5 (patch)
tree5f87d34605b6af24630d5a729136d2da66223538
parentb67902fee7b56dd3235b2f489550c279248bacb9 (diff)
downloadgo-230c3918a8ae8a65e1974659e55f8a808fe731b5.tar.gz
go-230c3918a8ae8a65e1974659e55f8a808fe731b5.zip
[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/28850 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-on: https://go-review.googlesource.com/31267 Reviewed-by: Michael Munday <munday@ca.ibm.com>
-rw-r--r--src/runtime/asm_s390x.s1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/runtime/asm_s390x.s b/src/runtime/asm_s390x.s
index 896ccde801..97f276cdb8 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