8g: optimize byte mov
Rewrite MOVB with less expensive
instruction when possible.
Suggested by atomic symbol.
benchmark old ns/op new ns/op delta
crc32.BenchmarkCrc32KB 13066 3942 -69.83%
crc64.BenchmarkCrc64KB 8780 5949 -32.24%
lzw.BenchmarkDecoder1e4 771224 636538 -17.46%
lzw.BenchmarkDecoder1e5
7101218 6096634 -14.15%
lzw.BenchmarkDecoder1e6
69762020 60789400 -12.86%
lzw.BenchmarkEncoder1e4 707968 638812 -9.77%
lzw.BenchmarkEncoder1e5
6567122 5965552 -9.16%
lzw.BenchmarkEncoder1e6
65006000 58911680 -9.38%
utf8_test.BenchmarkRuneCountTenASCIIChars 166 165 -0.60%
utf8_test.BenchmarkRuneCountTenJapaneseChars 246 258 +4.88%
utf8_test.BenchmarkEncodeASCIIRune 13 10 -23.08%
utf8_test.BenchmarkEncodeJapaneseRune 37 16 -56.76%
utf8_test.BenchmarkDecodeASCIIRune 23 21 -8.70%
utf8_test.BenchmarkDecodeJapaneseRune 58 32 -44.83%
R=ken2
CC=golang-dev
https://golang.org/cl/
4381045