Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Arch386 = &Arch{ Name: "386", Family: I386, ByteOrder: binary.LittleEndian, PtrSize: 4, RegSize: 4, MinLC: 1, }
var ArchAMD64 = &Arch{ Name: "amd64", Family: AMD64, ByteOrder: binary.LittleEndian, PtrSize: 8, RegSize: 8, MinLC: 1, }
var ArchAMD64P32 = &Arch{ Name: "amd64p32", Family: AMD64, ByteOrder: binary.LittleEndian, PtrSize: 4, RegSize: 8, MinLC: 1, }
var ArchARM = &Arch{ Name: "arm", Family: ARM, ByteOrder: binary.LittleEndian, PtrSize: 4, RegSize: 4, MinLC: 4, }
var ArchARM64 = &Arch{ Name: "arm64", Family: ARM64, ByteOrder: binary.LittleEndian, PtrSize: 8, RegSize: 8, MinLC: 4, }
var ArchMIPS = &Arch{ Name: "mips", Family: MIPS, ByteOrder: binary.BigEndian, PtrSize: 4, RegSize: 4, MinLC: 4, }
var ArchMIPS64 = &Arch{ Name: "mips64", Family: MIPS64, ByteOrder: binary.BigEndian, PtrSize: 8, RegSize: 8, MinLC: 4, }
var ArchMIPS64LE = &Arch{ Name: "mips64le", Family: MIPS64, ByteOrder: binary.LittleEndian, PtrSize: 8, RegSize: 8, MinLC: 4, }
var ArchMIPSLE = &Arch{ Name: "mipsle", Family: MIPS, ByteOrder: binary.LittleEndian, PtrSize: 4, RegSize: 4, MinLC: 4, }
var ArchPPC64 = &Arch{ Name: "ppc64", Family: PPC64, ByteOrder: binary.BigEndian, PtrSize: 8, RegSize: 8, MinLC: 4, }
var ArchPPC64LE = &Arch{ Name: "ppc64le", Family: PPC64, ByteOrder: binary.LittleEndian, PtrSize: 8, RegSize: 8, MinLC: 4, }
var ArchS390X = &Arch{ Name: "s390x", Family: S390X, ByteOrder: binary.BigEndian, PtrSize: 8, RegSize: 8, MinLC: 2, }
var ArchWasm = &Arch{ Name: "wasm", Family: Wasm, ByteOrder: binary.LittleEndian, PtrSize: 8, RegSize: 8, MinLC: 1, }
var Archs = [...]*Arch{ Arch386, ArchAMD64, ArchAMD64P32, ArchARM, ArchARM64, ArchMIPS, ArchMIPSLE, ArchMIPS64, ArchMIPS64LE, ArchPPC64, ArchPPC64LE, ArchS390X, ArchWasm, }
Functions ¶
func MSanSupported ¶ added in go1.12
MSanSupported reports whether goos/goarch supports the memory sanitizer option. There is a copy of this function in cmd/dist/test.go.
func MustLinkExternal ¶ added in go1.13
MustLinkExternal reports whether goos/goarch requires external linking.
func RaceDetectorSupported ¶ added in go1.12
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, amd64 and amd64p32 are both members of the AMD64 family, and ppc64 and ppc64le are both members of the PPC64 family.
const ( NoArch ArchFamily = iota AMD64 ARM ARM64 I386 MIPS MIPS64 PPC64 S390X Wasm )