config

package
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindClang

func FindClang() (string, error)

FindClang resolves clang compiler to use.

func FindClangObjdump

func FindClangObjdump() (string, error)

FindClangObjdump resolves clang disassembler to use.

func FindGoObjdump

func FindGoObjdump() (string, error)

FindGoObjdump resolves go toolchain to use.

Types

type Arch

type Arch struct {
	Name           string          // Architecture name
	Attribute      *regexp.Regexp  // Parses assembly attributes
	Function       *regexp.Regexp  // Parses assembly function names
	SourceLabel    *regexp.Regexp  // Parses assembly labels
	Code           *regexp.Regexp  // Parses assembly code
	Symbol         *regexp.Regexp  // Parses assembly symbols
	Data           *regexp.Regexp  // Parses assembly data
	Comment        *regexp.Regexp  // Parses assembly comments
	Const          *regexp.Regexp  // Parses assembly constants
	Label          *regexp.Regexp  // Finds label inside an instruction
	DataLoad       *regexp.Regexp  // Finds instructions with data loads
	JumpInstr      *regexp.Regexp  // Parses assembly jump instructions
	Registers      []string        // Registers to use
	FloatRegisters []string        // Floating point registers
	RetRegister    string          // Register for return values
	BuildTags      string          // Golang build tags
	CommentCh      string          // Assembly comment character
	MovInstr       map[int8]string // Instruction to use to load/store for various sizes
	MovFPInstr     map[int8]string // Instruction to use to load/store floating point values
	LoadInstr      map[int8]string // Instruction for loading registers (optional)
	Disassembler   []string        // Disassembler to use and flags
	ClangFlags     []string        // Flags for clang
}

Arch represents a context for a specific architecture

func AMD64

func AMD64() *Arch

AMD64 returns a configuration for AMD64 architecture

func ARM64

func ARM64() *Arch

ARM64 returns a configuration for ARM64 architecture

func Apple

func Apple() *Arch

Apple returns a configuration for ARM64 architecture. On my M1 mac, supported features are: AESARM, ASIMD, ASIMDDP, ASIMDHP, ASIMDRDM, ATOMICS, CRC32, DCPOP, FCMA, FP, FPHP, GPA, JSCVT, LRCPC, PMULL, SHA1, SHA2, SHA3, SHA512

func Avx2

func Avx2() *Arch

Avx2 returns a configuration for AMD64 architecture with AVX2 support

func Avx512

func Avx512() *Arch

Avx512 returns a configuration for AMD64 architecture with AVX512 support

func For

func For(arch string) (*Arch, error)

For returns a configuration for a given architecture

func Neon

func Neon() *Arch

Neon returns a configuration for ARM64 architecture with NEON support

func SVE

func SVE() *Arch

func SVE2

func SVE2() *Arch

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL