Description6c, 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 issue 1315.
Fixes issue 3488.
Patch Set 1 #Patch Set 2 : diff -r 775ac193aad2 https://go.googlecode.com/hg/ #Patch Set 3 : diff -r 72678c75b2d3 https://go.googlecode.com/hg/ #
MessagesTotal messages: 3
|