Skip to content

Commit

Permalink
test: fix incorrectly laid out instructions in issue11656.go
Browse files Browse the repository at this point in the history
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
Reviewed-on: https://go-review.googlesource.com/c/go/+/288278
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
  • Loading branch information
tmthrgd authored and ianlancetaylor committed Feb 1, 2021
1 parent 0b6cfea commit 32e789f
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions test/fixedbugs/issue11656.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ func f(n int) {
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":
Expand All @@ -74,7 +74,7 @@ func f(n int) {
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)
Expand Down

0 comments on commit 32e789f

Please sign in to comment.