sys

package
v1.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2022 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Arch386 = &Arch{
	Name:      "386",
	Family:    I386,
	ByteOrder: binary.LittleEndian,
	PtrSize:   4,
	RegSize:   4,
	MinLC:     1,
}
View Source
var ArchAMD64 = &Arch{
	Name:      "amd64",
	Family:    AMD64,
	ByteOrder: binary.LittleEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     1,
}
View Source
var ArchARM = &Arch{
	Name:      "arm",
	Family:    ARM,
	ByteOrder: binary.LittleEndian,
	PtrSize:   4,
	RegSize:   4,
	MinLC:     4,
}
View Source
var ArchARM64 = &Arch{
	Name:      "arm64",
	Family:    ARM64,
	ByteOrder: binary.LittleEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     4,
}
View Source
var ArchMIPS = &Arch{
	Name:      "mips",
	Family:    MIPS,
	ByteOrder: binary.BigEndian,
	PtrSize:   4,
	RegSize:   4,
	MinLC:     4,
}
View Source
var ArchMIPS64 = &Arch{
	Name:      "mips64",
	Family:    MIPS64,
	ByteOrder: binary.BigEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     4,
}
View Source
var ArchMIPS64LE = &Arch{
	Name:      "mips64le",
	Family:    MIPS64,
	ByteOrder: binary.LittleEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     4,
}
View Source
var ArchMIPSLE = &Arch{
	Name:      "mipsle",
	Family:    MIPS,
	ByteOrder: binary.LittleEndian,
	PtrSize:   4,
	RegSize:   4,
	MinLC:     4,
}
View Source
var ArchPPC64 = &Arch{
	Name:      "ppc64",
	Family:    PPC64,
	ByteOrder: binary.BigEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     4,
}
View Source
var ArchPPC64LE = &Arch{
	Name:      "ppc64le",
	Family:    PPC64,
	ByteOrder: binary.LittleEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     4,
}
View Source
var ArchRISCV64 = &Arch{
	Name:      "riscv64",
	Family:    RISCV64,
	ByteOrder: binary.LittleEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     4,
}
View Source
var ArchS390X = &Arch{
	Name:      "s390x",
	Family:    S390X,
	ByteOrder: binary.BigEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     2,
}
View Source
var ArchWasm = &Arch{
	Name:      "wasm",
	Family:    Wasm,
	ByteOrder: binary.LittleEndian,
	PtrSize:   8,
	RegSize:   8,
	MinLC:     1,
}

Functions

func BuildModeSupported

func BuildModeSupported(compiler, buildmode, goos, goarch string) bool

BuildModeSupported reports whether goos/goarch supports the given build mode using the given compiler.

func InternalLinkPIESupported

func InternalLinkPIESupported(goos, goarch string) bool

func MSanSupported

func MSanSupported(goos, goarch string) bool

MSanSupported reports whether goos/goarch supports the memory sanitizer option. There is a copy of this function in cmd/dist/test.go.

func MustLinkExternal

func MustLinkExternal(goos, goarch string) bool

MustLinkExternal reports whether goos/goarch requires external linking. (This is the opposite of internal/testenv.CanInternalLink. Keep them in sync.)

func RaceDetectorSupported

func RaceDetectorSupported(goos, goarch string) bool

RaceDetectorSupported reports whether goos/goarch supports the race detector. There is a copy of this function in cmd/dist/test.go. Race detector only supports 48-bit VMA on arm64. But it will always return true for arm64, because we don't have VMA size information during the compile time.

Types

type Arch

type Arch struct {
	Name   string
	Family ArchFamily

	ByteOrder binary.ByteOrder

	// PtrSize is the size in bytes of pointers and the
	// predeclared "int", "uint", and "uintptr" types.
	PtrSize int

	// RegSize is the size in bytes of general purpose registers.
	RegSize int

	// MinLC is the minimum length of an instruction code.
	MinLC int
}

Arch represents an individual architecture.

func (*Arch) InFamily

func (a *Arch) InFamily(xs ...ArchFamily) bool

InFamily reports whether a is a member of any of the specified architecture families.

type ArchFamily

type ArchFamily byte

ArchFamily represents a family of one or more related architectures. For example, ppc64 and ppc64le are both members of the PPC64 family.

const (
	NoArch ArchFamily = iota
	AMD64
	ARM
	ARM64
	I386
	MIPS
	MIPS64
	PPC64
	RISCV64
	S390X
	Wasm
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL