/asmjit

Machine code generation for C++

Primary LanguageC++zlib LicenseZlib

AsmJit

AsmJit is a lightweight library for machine code generation written in C++ language.

See asmjit.com page for more details, examples, and documentation.

Documentation

Breaking Changes

Breaking the API is sometimes inevitable, what to do?

Project Organization

  • / - Project root.
    • src - Source code.
      • asmjit - Source code and headers (always point include path in here).
        • core - Core API, backend independent except relocations.
        • arm - ARM specific API, used only by ARM and AArch64 backends.
        • x86 - X86 specific API, used only by X86 and X64 backends.
    • test - Unit and integration tests (don't embed in your project).
    • tools - Tools used for configuring, documenting, and generating files.

TODO

  • Core:
    • Add support for user external buffers in CodeBuffer / CodeHolder.
    • Register allocator doesn't understand register pairs, affected instructions:
      • v4fmaddps, v4fmaddss, v4fnmaddps, v4fnmaddss
      • vp4dpwssd, vp4dpwssds
      • vp2intersectd, vp2intersectq
  • Ports:
    • ARM/Thumb/AArch64 support.

Support

Notable Donors List:

Authors & Maintainers