diff options
author | Aram Hăvărneanu <aram@mgk.ro> | 2014-05-30 12:28:01 +0200 |
---|---|---|
committer | Aram Hăvărneanu <aram@mgk.ro> | 2014-05-30 12:28:01 +0200 |
commit | bf0d5c8abbe9d4e3a145df29bee8ef2758d01884 (patch) | |
tree | 19a0ae52aab138503e959b78be3f1ed89bd72fc0 /sys/src/cmd/6a | |
parent | 17d0dea87c80203aaf0199cb33dea0afc4a7f956 (diff) |
6a, 6c, 6l: fix copy propagation
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.
This was independently discovered and fixed in Go. See:
http://golang.org/issue/1315
https://codereview.appspot.com/6002043/
Thanks Charles Forsyth for tips and advice.
Diffstat (limited to 'sys/src/cmd/6a')
-rw-r--r-- | sys/src/cmd/6a/lex.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/src/cmd/6a/lex.c b/sys/src/cmd/6a/lex.c index f7c4abcd6..b2b6aee44 100644 --- a/sys/src/cmd/6a/lex.c +++ b/sys/src/cmd/6a/lex.c @@ -475,6 +475,7 @@ struct "MOVLQZX", LTYPE3, AMOVLQZX, "MOVNTIL", LTYPE3, AMOVNTIL, "MOVNTIQ", LTYPE3, AMOVNTIQ, + "MOVQL", LTYPE3, AMOVQL, "MOVWLSX", LTYPE3, AMOVWLSX, "MOVWLZX", LTYPE3, AMOVWLZX, "MOVWQSX", LTYPE3, AMOVWQSX, |