Documentation ¶
Overview ¶
package sys contains system- and configuration- and architecture-specific constants used by the runtime.
Index ¶
- Constants
- func Bswap32(x uint32) uint32
- func Bswap64(x uint64) uint64
- func Ctz32(x uint32) int
- func Ctz64(x uint64) int
- func Ctz8(x uint8) int
- func LeadingZeros64(x uint64) int
- func LeadingZeros8(x uint8) int
- func Len64(x uint64) (n int)
- func Len8(x uint8) int
- func OnesCount64(x uint64) int
- func Prefetch(addr uintptr)
- func PrefetchStreamed(addr uintptr)
- func TrailingZeros64(x uint64) int
- func TrailingZeros8(x uint8) int
Constants ¶
const DefaultPhysPageSize = goarch.DefaultPhysPageSize
DefaultPhysPageSize is the default physical page size.
const Int64Align = goarch.PtrSize
Int64Align is the required alignment for a 64-bit integer (4 on 32-bit systems, 8 on 64-bit).
const MinFrameSize = goarch.MinFrameSize
MinFrameSize is the size of the system-reserved words at the bottom of a frame (just above the architectural stack pointer). It is zero on x86 and PtrSize on most non-x86 (LR-based) systems. On PowerPC it is larger, to cover three more reserved words: the compiler word, the link editor word, and the TOC save word.
const PCQuantum = goarch.PCQuantum
PCQuantum is the minimal unit for a program counter (1 on x86, 4 on most other systems). The various PC tables record PC deltas pre-divided by PCQuantum.
const StackAlign = goarch.StackAlign
StackAlign is the required alignment of the SP register. The stack must be at least word aligned, but some architectures require more.
const StackGuardMultiplier = StackGuardMultiplierDefault*(1-goos.IsAix) + 2*goos.IsAix
AIX requires a larger stack for syscalls.
Variables ¶
This section is empty.
Functions ¶
func Bswap32 ¶ added in go1.7
Bswap32 returns its input with byte order reversed 0x01020304 -> 0x04030201
func Bswap64 ¶ added in go1.7
Bswap64 returns its input with byte order reversed 0x0102030405060708 -> 0x0807060504030201
func Ctz8 ¶ added in go1.7
Ctz8 returns the number of trailing zero bits in x; the result is 8 for x == 0.
func LeadingZeros64 ¶ added in go1.14
LeadingZeros64 returns the number of leading zero bits in x; the result is 64 for x == 0.
func LeadingZeros8 ¶ added in go1.14
LeadingZeros8 returns the number of leading zero bits in x; the result is 8 for x == 0.
func Len64 ¶ added in go1.14
len64 returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func Len8 ¶ added in go1.14
Len8 returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func OnesCount64 ¶ added in go1.14
OnesCount64 returns the number of one bits ("population count") in x.
func Prefetch ¶ added in go1.18
func Prefetch(addr uintptr)
Prefetch prefetches data from memory addr to cache
AMD64: Produce PREFETCHT0 instruction
ARM64: Produce PRFM instruction with PLDL1KEEP option
func PrefetchStreamed ¶ added in go1.18
func PrefetchStreamed(addr uintptr)
PrefetchStreamed prefetches data from memory addr, with a hint that this data is being streamed. That is, it is likely to be accessed very soon, but only once. If possible, this will avoid polluting the cache.
AMD64: Produce PREFETCHNTA instruction
ARM64: Produce PRFM instruction with PLDL1STRM option
func TrailingZeros64 ¶ added in go1.14
TrailingZeros64 returns the number of trailing zero bits in x; the result is 64 for x == 0.
func TrailingZeros8 ¶ added in go1.14
TrailingZeros8 returns the number of trailing zero bits in x; the result is 8 for x == 0.
Types ¶
This section is empty.