]> Cypherpunks repositories - gostls13.git/commitdiff
math/big: define Word as uint instead of uintptr
authorRobert Griesemer <gri@golang.org>
Tue, 21 Feb 2017 18:22:05 +0000 (10:22 -0800)
committerRobert Griesemer <gri@golang.org>
Tue, 21 Feb 2017 19:31:40 +0000 (19:31 +0000)
For compatibility with math/bits uint operations.

When math/big was written originally, the Go compiler used 32bit
int/uint values even on a 64bit machine. uintptr was the type that
represented the machine register size. Now, the int/uint types are
sized to the native machine register size, so they are the natural
machine Word type.

On most machines, the size of int/uint correspond to the size of
uintptr. On platforms where uint and uintptr have different sizes,
this change may lead to performance differences (e.g., amd64p32).

Change-Id: Ief249c160b707b6441848f20041e32e9e9d8d8ca
Reviewed-on: https://go-review.googlesource.com/37372
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
api/except.txt
src/math/big/arith.go

index 857ebb5d7d25cc5bb9572f4703afec2c14f1cfa6..fbabd18a8100ef1ddc504315f25b31c8ddbe10f2 100644 (file)
@@ -1,4 +1,5 @@
 pkg encoding/json, method (*RawMessage) MarshalJSON() ([]uint8, error)
+pkg math/big, type Word uintptr
 pkg net, func ListenUnixgram(string, *UnixAddr) (*UDPConn, error)
 pkg os (linux-arm), const O_SYNC = 4096
 pkg os (linux-arm-cgo), const O_SYNC = 4096
index d7ea8381e7ce59c2c865375bbf935ece5f78ad49..1101451f98edc986a81d16eef8a6f83ba8c15aa5 100644 (file)
@@ -9,7 +9,7 @@
 package big
 
 // A Word represents a single digit of a multi-precision unsigned integer.
-type Word uintptr
+type Word uint
 
 const (
        // Compute the size _S of a Word in bytes.