go/src/cmd/6c
Russ Cox e530d6a1e0 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
2012-04-10 12:51:59 -04:00
..
Makefile build: delete make paraphernalia 2012-02-06 13:34:25 -05:00
cgen.c cmd/6c: fix probable code gen bug 2012-04-10 12:51:36 -04:00
div.c various: avoid %ld etc 2010-10-13 16:20:22 -04:00
doc.go tweak documentation of commands 2009-11-09 11:45:15 -08:00
gc.h 5c, 6c, 8c: support 64-bit switch value 2011-12-14 17:30:40 -05:00
list.c 6c, 8c: show line numbers in -S output 2010-09-10 11:53:51 -04:00
machcap.c move 6c/pgen.c, 6c/pswt.c into cc 2009-07-07 10:07:15 -07:00
mul.c various: avoid %ld etc 2010-10-13 16:20:22 -04:00
peep.c 6c, 6g, 6l: add MOVQL to make truncation explicit 2012-04-10 12:51:59 -04:00
reg.c 6c, 6g, 6l: add MOVQL to make truncation explicit 2012-04-10 12:51:59 -04:00
sgen.c amd64: use segment memory for thread-local storage 2010-08-04 17:50:22 -07:00
swt.c 5c, 6c, 8c: take GOROOT_FINAL into consideration 2012-04-04 00:04:36 +08:00
txt.c 6c, 6g, 6l: add MOVQL to make truncation explicit 2012-04-10 12:51:59 -04:00