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 added in go1.14

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

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

    func InternalLinkPIESupported added in go1.16

    func InternalLinkPIESupported(goos, goarch string) bool

    func MSanSupported added in go1.12

    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 added in go1.13

      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 added in go1.12

        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
                )