...
Run Format

Package sys

import "cmd/internal/sys"
Overview
Index

Overview ▾

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 Archs = [...]*Arch{
        Arch386,
        ArchAMD64,
        ArchAMD64P32,
        ArchARM,
        ArchARM64,
        ArchMIPS,
        ArchMIPSLE,
        ArchMIPS64,
        ArchMIPS64LE,
        ArchPPC64,
        ArchPPC64LE,
        ArchS390X,
}

type Arch

Arch represents an individual architecture.

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
}

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

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.

type ArchFamily byte
const (
        NoArch ArchFamily = iota
        AMD64
        ARM
        ARM64
        I386
        MIPS
        MIPS64
        PPC64
        S390X
)