go: github.com/golang/go/src/cmd/internal/sys Index | Files

package sys

import "github.com/golang/go/src/cmd/internal/sys"

Index

Package Files

arch.go supported.go

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 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 ArchRISCV64 = &Arch{
    Name:      "riscv64",
    Family:    RISCV64,
    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,
    ArchARM,
    ArchARM64,
    ArchMIPS,
    ArchMIPSLE,
    ArchMIPS64,
    ArchMIPS64LE,
    ArchPPC64,
    ArchPPC64LE,
    ArchRISCV64,
    ArchS390X,
    ArchWasm,
}

func BuildModeSupported Uses

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

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

func MSanSupported Uses

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 Uses

func MustLinkExternal(goos, goarch string) bool

MustLinkExternal reports whether goos/goarch requires external linking.

func RaceDetectorSupported Uses

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.

type Arch Uses

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 Uses

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

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

type ArchFamily Uses

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
)

Package sys imports 1 packages (graph). Updated 2019-11-24. Refresh now. Tools for package owners.