Back to directory

avo

A Go library for generating x86 assembly, letting Go control structures describe assembly programs that avo compiles into an assembly file and a Go stub.

avo

avo lets a developer write Go programs that generate x86 assembly, using Go's own control structures rather than assembly syntax directly. It handles register allocation by assigning physical registers to virtual ones the programmer writes against, automatically loads arguments and stores return values with correct memory offsets for complex structures, and generates the stub file needed to call the resulting assembly from ordinary Go code.

A typical workflow defines a small Go program under a build-ignore tag that calls avo's API to describe a function, then runs that program to produce the assembly file and a matching Go stub. The project notes its APIs may still change while it is in an experimental phase, and recommends pinning a version. It requires the Go toolchain and is BSD-3-Clause licensed.

More in Libraries

See all 292
  • OpenDecision

    deepanwadhwa.github.io

    An open-source Python package that answers typed questions about application state or documents using a local natural-language-inference model, returning structured choice, score, yes/no or evidence-relation values instead of free text.

  • TradeCanvas

    bonguynvan.github.io

    A zero-dependency canvas charting engine for building TradingView-style trading charts in JavaScript, with 66 technical indicators, 24 drawing tools, 17 chart types, and real-time streaming.

  • 3d retro graphics

    3d-retro.com

    A free, CC0-licensed library of copy-paste retro 3D and demoscene graphics effects, such as plasma, raytracing, and voxel terrain, runnable as WebGL 1 or plain 2D canvas.