1
0
mirror of https://github.com/golang/go synced 2024-11-26 09:48:14 -07:00

math/big: define Word as uint instead of uintptr

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>
This commit is contained in:
Robert Griesemer 2017-02-21 10:22:05 -08:00
parent 10d718b983
commit 174058038c
2 changed files with 2 additions and 1 deletions

View 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

View 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.