diff --git a/bitlen_amd64.go b/bitlen_amd64.go new file mode 100644 index 0000000..99ef323 --- /dev/null +++ b/bitlen_amd64.go @@ -0,0 +1,11 @@ +//go:build amd64 && !gccgo +// +build amd64,!gccgo + +package encoding + +import "math/bits" + +// bitlen returns the number of bits required to represent x. +func bitlen(x uint64) int { + return bits.Len64(x) +} diff --git a/bitlen_amd64.s b/bitlen_amd64.s deleted file mode 100644 index 5e26858..0000000 --- a/bitlen_amd64.s +++ /dev/null @@ -1,12 +0,0 @@ -// +build !gccgo - -// func bitlen(x Word) (n int) -TEXT ·bitlen(SB),4,$0 - BSRQ x+0(FP), AX - JZ Z1 - ADDQ $1, AX - MOVQ AX, n+8(FP) - RET - -Z1: MOVQ $0, n+8(FP) - RET diff --git a/bitlen_decl.go b/bitlen_decl.go index 8641ac4..5fc5503 100644 --- a/bitlen_decl.go +++ b/bitlen_decl.go @@ -1,5 +1,6 @@ +//go:build !gccgo && (386 || arm) // +build !gccgo -// +build amd64 386 arm +// +build 386 arm package encoding