]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.9] cmd/compile: use unsigned loads for multi-element comparisons
authorKeith Randall <khr@google.com>
Tue, 6 Feb 2018 17:44:34 +0000 (09:44 -0800)
committerAndrew Bonventre <andybons@golang.org>
Thu, 29 Mar 2018 06:05:52 +0000 (06:05 +0000)
commitf5c8db9643005344b9d1306588afea35c18140cc
treebfa49dcfca1deb1c78aec0116729139cbc0bd241
parent9c69ed5d094bb8806b71076ab986c35df0a3f8a3
[release-branch.go1.9] cmd/compile: use unsigned loads for multi-element comparisons

When loading multiple elements of an array into a single register,
make sure we treat them as unsigned.  When treated as signed, the
upper bits might all be set, causing the shift-or combo to clobber
the values higher in the register.

Fixes #23719.

Change-Id: Ic87da03e9bd0fe2c60bb214b99f846e4e9446052
Reviewed-on: https://go-review.googlesource.com/92335
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ilya Tocar <ilya.tocar@intel.com>
Reviewed-on: https://go-review.googlesource.com/103115
Run-TryBot: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/asm_test.go
src/cmd/compile/internal/gc/walk.go
test/fixedbugs/issue23719.go [new file with mode: 0644]