package avo
import "github.com/mmcloughlin/avo"
Package avo is a high-level x86 assembly generator.
Index ¶
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
attr | Package attr provides attributes for text and data sections. |
build | Package build provides an assembly-like interface for incremental building of avo Files. |
buildtags | Package buildtags provides types for representing and manipulating build constraints. |
examples | Package examples provides examples of avo usage. |
examples/add | Package add demonstrates an Add function in avo. |
examples/args | Package args demonstrates how to load function arguments in avo. |
examples/complex | Package complex shows how to work with complex types in avo. |
examples/data | Package data shows how to define DATA sections in avo. |
examples/dot | Package dot implements vector dot product in avo. |
examples/ext | Package ext demonstrates how to interact with external types. |
examples/ext/ext | Package ext is used as a target package in the external types example. |
examples/fnv1a | Package fnv1a implements FNV-1a in avo. |
examples/geohash | Package geohash implements integer geohash encoding in avo. |
examples/md5x16 | Package md5x16 implements 16-lane parallel MD5 with AVX-512 instructions. |
examples/pragma | Package pragma demonstrates the use of compiler directives. |
examples/returns | Package returns demonstrates how to write function return values in avo. |
examples/sha1 | Package sha1 implements the SHA-1 hash in avo. |
examples/stadtx | Package stadtx implements Stadtx Hash |
examples/sum | Package sum sums a slice in avo. |
gotypes | Package gotypes provides helpers for interacting with Go types within avo functions. |
internal | |
ir | Package ir provides the intermediate representation of avo programs. |
operand | Package operand provides types for instruction operands. |
pass | Package pass implements processing passes on avo Files. |
printer | Package printer implements printing of avo files in various formats. |
reg | Package reg provides types for physical and virtual registers, and definitions of x86-64 register families. |
src | Package src provides types for working with source files. |
tests | Package tests contains avo integration tests. |
tests/alloc | |
tests/alloc/gp8 | Package gp8 tests the register allocator by using as many 8-bit registers as possible. |
tests/alloc/masks | Package masks tests that register liveness and allocation passes handle masks correctly. |
tests/alloc/upper32 | Package upper32 tests liveness analysis of 32-bit operations on 64-bit registers. |
tests/alloc/zeroing | Package zeroing tests liveness analysis of AVX-512 operations with zeroing masking. |
tests/cast | Package cast tests casting virtual registers to different sizes. |
tests/fixedbugs | |
tests/fixedbugs/issue100 | |
tests/fixedbugs/issue100/allocfail | Package allocfail is a regression test for issue 100 based on the original reported allocation failure. |
tests/fixedbugs/issue100/minrepro | Package minrepro contains a minimal reproducer for the aliased register allocation bug in issue 100. |
tests/fixedbugs/issue122 | Package issue122 tests consecutive labels. |
tests/fixedbugs/issue191 | Package issue191 tests for correct argument size for a function taking a single uint16 argument. |
tests/fixedbugs/issue195 | Package issue195 tests for correct argument size for a function without return types. |
tests/fixedbugs/issue336 | Package issue336 tests boolean arguments and return values. |
tests/fixedbugs/issue387 | Package issue387 tests representation of floating point data with integer values. |
tests/fixedbugs/issue50 | Package issue50 tests for 32-bit MOVD/MOVQ instruction forms. |
tests/fixedbugs/issue62 | Package issue62 tests for using Implement() with an unexported function. |
tests/fixedbugs/issue65 | Package issue65 is a regression test for a bug involving casting physical registers. |
tests/fixedbugs/issue68 | Package custom tests overriding package name with the CLI. |
tests/fixedbugs/issue76 | Package issue76 deliberately produces redundant MOV instructions. |
tests/fixedbugs/issue89 | Package issue89 tests register allocation with self-cancelling inputs. |
tests/fmt | Package fmt tests assembly printer formatting. |
tests/labels | Package labels tests for cleanup of redundant labels. |
tests/signature | Package signature tests handling of random function signatures. |
tests/textflag | Package textflag tests that avo attribute constants agree with textflag.h. |
tests/thirdparty | Package thirdparty executes integration tests based on third-party projects that use avo. |
x86 | Package 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.