1
0
mirror of https://github.com/fumiama/go-base16384.git synced 2026-06-05 00:32:52 +08:00
Files
go-base16384/base14_amd64.go
2025-10-27 22:26:01 +08:00

43 lines
761 B
Go

//go:build amd64
// +build amd64
package base14
import (
"encoding/binary"
)
//go:noescape
//go:nosplit
func _encode(offset int, b, encd []byte) (sum uint64, n uint64)
//go:noescape
//go:nosplit
func _decode(offset, outlen int, b, decd []byte)
//go:nosplit
func encode(offset, outlen int, b, encd []byte) {
if movbe {
sum, n := _encode(offset, b, encd)
if offset == 0 {
return
}
var tmp [8]byte
binary.LittleEndian.PutUint64(tmp[:], sum)
copy(encd[n:], tmp[:])
encd[outlen-2] = '='
encd[outlen-1] = byte(offset)
} else {
encodeGeneric(offset, outlen, b, encd)
}
}
//go:nosplit
func decode(offset, outlen int, b, decd []byte) {
if movbe {
_decode(offset, outlen, b, decd)
} else {
decodeGeneric(offset, outlen, b, decd)
}
}