]> Cypherpunks repositories - gostls13.git/commitdiff
strconv: slightly faster int conversion for GOARCH=386
authorRobert Griesemer <gri@golang.org>
Wed, 14 Dec 2011 19:14:10 +0000 (11:14 -0800)
committerRobert Griesemer <gri@golang.org>
Wed, 14 Dec 2011 19:14:10 +0000 (11:14 -0800)
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

src/pkg/strconv/itoa.go

index 4ef835502d4e97fb91344e032b371ae3cd310045..ca40dd7ef626d86f925f769248b3bd61492b221b 100644 (file)
@@ -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
                }
        }