golang/CL288278.patch

46 lines
1.9 KiB
Diff

From 297b61305501fc9fa434551664f69f3b48351924 Mon Sep 17 00:00:00 2001
From: Tom Thorogood <me+google@tomthorogood.co.uk>
Date: Mon, 01 Feb 2021 13:32:18 +1030
Subject: [PATCH] test: fix incorrectly laid out instructions in issue11656.go
CL 279423 introduced a regression in this test as it incorrectly laid
out various instructions. In the case of arm, the second instruction
was overwriting the first. In the case of 386, amd64 and s390x, the
instructions were being appended to the end of the slice after 64
zero bytes.
This was causing test failures on "linux/s390x on z13".
Fixes #44028
Change-Id: Id136212dabdae27db7e91904b0df6a3a9d2f4af4
---
diff --git a/test/fixedbugs/issue11656.go b/test/fixedbugs/issue11656.go
index acd3f4f..85fe720 100644
--- a/test/fixedbugs/issue11656.go
+++ b/test/fixedbugs/issue11656.go
@@ -59,10 +59,10 @@
ill := make([]byte, 64)
switch runtime.GOARCH {
case "386", "amd64":
- ill = append(ill, 0x89, 0x04, 0x25, 0x00, 0x00, 0x00, 0x00) // MOVL AX, 0
+ ill = append(ill[:0], 0x89, 0x04, 0x25, 0x00, 0x00, 0x00, 0x00) // MOVL AX, 0
case "arm":
- binary.LittleEndian.PutUint32(ill, 0xe3a00000) // MOVW $0, R0
- binary.LittleEndian.PutUint32(ill, 0xe5800000) // MOVW R0, (R0)
+ binary.LittleEndian.PutUint32(ill[0:4], 0xe3a00000) // MOVW $0, R0
+ binary.LittleEndian.PutUint32(ill[4:8], 0xe5800000) // MOVW R0, (R0)
case "arm64":
binary.LittleEndian.PutUint32(ill, 0xf90003ff) // MOVD ZR, (ZR)
case "ppc64":
@@ -74,7 +74,7 @@
case "mipsle", "mips64le":
binary.LittleEndian.PutUint32(ill, 0xfc000000) // MOVV R0, (R0)
case "s390x":
- ill = append(ill, 0xa7, 0x09, 0x00, 0x00) // MOVD $0, R0
+ ill = append(ill[:0], 0xa7, 0x09, 0x00, 0x00) // MOVD $0, R0
ill = append(ill, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x24) // MOVD R0, (R0)
case "riscv64":
binary.LittleEndian.PutUint32(ill, 0x00003023) // MOV X0, (X0)