package sys

import "cmd/internal/sys"

Index

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

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 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.

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
)

Source Files

arch.go supported.go

Version
v1.12.0-beta.2
Published
Jan 10, 2019
Platform
js/wasm
Imports
1 packages
Last checked
51 seconds ago

Tools for package owners.