diff options
| author | Russ Cox <rsc@golang.org> | 2012-04-10 12:51:59 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2012-04-10 12:51:59 -0400 |
| commit | e530d6a1e00fbc0149b71bca9f940058838c1c44 (patch) | |
| tree | a49c2b7abd1f1ae0e0c1ec121ac863e708b6fa10 /src/pkg/runtime | |
| parent | b72c7e943cfbb7296bb182717642072c0e8efd5c (diff) | |
| download | go-e530d6a1e00fbc0149b71bca9f940058838c1c44.tar.xz | |
6c, 6g, 6l: add MOVQL to make truncation explicit
Without an explicit signal for a truncation, copy propagation
will sometimes propagate a 32-bit truncation and end up
overwriting uses of the original 64-bit value.
The case that arose in practice is in C but I believe
that the same could plausibly happen in Go.
The main reason we didn't run into the same in Go
is that I (perhaps incorrectly?) drop MOVL AX, AX
during gins, so the truncation was never generated, so
it didn't confuse the optimizer.
Fixes #1315.
Fixes #3488.
R=ken2
CC=golang-dev
https://golang.org/cl/6002043
Diffstat (limited to 'src/pkg/runtime')
0 files changed, 0 insertions, 0 deletions
