avo – github.com/mmcloughlin/avo Index | Files | Directories

package avo

import "github.com/mmcloughlin/avo"

Package avo is a high-level x86 assembly generator.

Index

Source Files

doc.go

Directories

PathSynopsis
attrPackage attr provides attributes for text and data sections.
buildPackage build provides an assembly-like interface for incremental building of avo Files.
buildtagsPackage buildtags provides types for representing and manipulating build constraints.
examplesPackage examples provides examples of avo usage.
examples/addPackage add demonstrates an Add function in avo.
examples/argsPackage args demonstrates how to load function arguments in avo.
examples/complexPackage complex shows how to work with complex types in avo.
examples/dataPackage data shows how to define DATA sections in avo.
examples/dotPackage dot implements vector dot product in avo.
examples/extPackage ext demonstrates how to interact with external types.
examples/ext/extPackage ext is used as a target package in the external types example.
examples/fnv1aPackage fnv1a implements FNV-1a in avo.
examples/geohashPackage geohash implements integer geohash encoding in avo.
examples/md5x16Package md5x16 implements 16-lane parallel MD5 with AVX-512 instructions.
examples/pragmaPackage pragma demonstrates the use of compiler directives.
examples/returnsPackage returns demonstrates how to write function return values in avo.
examples/sha1Package sha1 implements the SHA-1 hash in avo.
examples/stadtxPackage stadtx implements Stadtx Hash
examples/sumPackage sum sums a slice in avo.
gotypesPackage gotypes provides helpers for interacting with Go types within avo functions.
internal
irPackage ir provides the intermediate representation of avo programs.
operandPackage operand provides types for instruction operands.
passPackage pass implements processing passes on avo Files.
printerPackage printer implements printing of avo files in various formats.
regPackage reg provides types for physical and virtual registers, and definitions of x86-64 register families.
srcPackage src provides types for working with source files.
testsPackage tests contains avo integration tests.
tests/alloc
tests/alloc/gp8Package gp8 tests the register allocator by using as many 8-bit registers as possible.
tests/alloc/masksPackage masks tests that register liveness and allocation passes handle masks correctly.
tests/alloc/upper32Package upper32 tests liveness analysis of 32-bit operations on 64-bit registers.
tests/alloc/zeroingPackage zeroing tests liveness analysis of AVX-512 operations with zeroing masking.
tests/castPackage cast tests casting virtual registers to different sizes.
tests/fixedbugs
tests/fixedbugs/issue100
tests/fixedbugs/issue100/allocfailPackage allocfail is a regression test for issue 100 based on the original reported allocation failure.
tests/fixedbugs/issue100/minreproPackage minrepro contains a minimal reproducer for the aliased register allocation bug in issue 100.
tests/fixedbugs/issue122Package issue122 tests consecutive labels.
tests/fixedbugs/issue191Package issue191 tests for correct argument size for a function taking a single uint16 argument.
tests/fixedbugs/issue195Package issue195 tests for correct argument size for a function without return types.
tests/fixedbugs/issue336Package issue336 tests boolean arguments and return values.
tests/fixedbugs/issue387Package issue387 tests representation of floating point data with integer values.
tests/fixedbugs/issue50Package issue50 tests for 32-bit MOVD/MOVQ instruction forms.
tests/fixedbugs/issue62Package issue62 tests for using Implement() with an unexported function.
tests/fixedbugs/issue65Package issue65 is a regression test for a bug involving casting physical registers.
tests/fixedbugs/issue68Package custom tests overriding package name with the CLI.
tests/fixedbugs/issue76Package issue76 deliberately produces redundant MOV instructions.
tests/fixedbugs/issue89Package issue89 tests register allocation with self-cancelling inputs.
tests/fmtPackage fmt tests assembly printer formatting.
tests/labelsPackage labels tests for cleanup of redundant labels.
tests/signaturePackage signature tests handling of random function signatures.
tests/textflagPackage textflag tests that avo attribute constants agree with textflag.h.
tests/thirdpartyPackage thirdparty executes integration tests based on third-party projects that use avo.
x86Package x86 provides constructors for all x86-64 instructions.
Version
v0.6.0 (latest)
Published
Jan 7, 2024
Platform
linux/amd64
Last checked
4 weeks ago

Tools for package owners.