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
- darwin/amd64
- Last checked
- 8 months ago –
Tools for package owners.