Commit 6890afd9 authored by Robert Griesemer's avatar Robert Griesemer

strconv: slightly faster int conversion for GOARCH=386

benchmark                           old ns/op    new ns/op    delta
strconv_test.BenchmarkFormatInt         12198        12031   -1.37%
strconv_test.BenchmarkAppendInt          9268         9153   -1.24%
strconv_test.BenchmarkFormatUint         3538         3429   -3.08%
strconv_test.BenchmarkAppendUint         3133         3062   -2.27%

No performance difference for GOARCH=amd64.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5488089
parent 34c7765f
......@@ -76,7 +76,7 @@ func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s
for u >= 100 {
i -= 2
q := u / 100
j := u - q*100
j := uintptr(u - q*100)
a[i+1] = digits01[j]
a[i+0] = digits10[j]
u = q
......@@ -84,7 +84,7 @@ func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s
if u >= 10 {
i--
q := u / 10
a[i] = digits[u-q*10]
a[i] = digits[uintptr(u-q*10)]
u = q
}
......@@ -103,7 +103,7 @@ func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s
b := uint64(base)
for u >= b {
i--
a[i] = digits[u%b]
a[i] = digits[uintptr(u%b)]
u /= b
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment