https://github.com/asmjit/asmjit
Low-latency machine code generation
https://github.com/asmjit/asmjit
aarch64 asmjit assembler code-generation compiler cpp jit jit-compilation x86 x86-64 x86-x64
Last synced: 10 days ago
JSON representation
Low-latency machine code generation
- Host: GitHub
- URL: https://github.com/asmjit/asmjit
- Owner: asmjit
- License: zlib
- Created: 2014-01-28T21:47:50.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2025-12-13T14:32:30.000Z (13 days ago)
- Last Synced: 2025-12-15T06:58:00.196Z (12 days ago)
- Topics: aarch64, asmjit, assembler, code-generation, compiler, cpp, jit, jit-compilation, x86, x86-64, x86-x64
- Language: C++
- Homepage: https://asmjit.com
- Size: 9.66 MB
- Stars: 4,362
- Watchers: 145
- Forks: 558
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
- fucking-awesome-cpp - AsmJit - Low-latency machine code generation. [Zlib] 🌎 [website](asmjit.com) (Miscellaneous)
- StarryDivineSky - asmjit/asmjit - 64 和 ARM,并确保代码在不同平台(Windows、Linux、macOS)和编译器(GCC、Clang、MSVC)下的可移植性。项目采用头文件(header-only)设计,简化了集成流程,同时提供沙箱化执行环境以增强安全性。其功能覆盖指令集生成、代码段管理、寄存器分配等核心模块,并支持调试信息和代码优化选项。asmjit 的 MIT 许可协议使其适用于商业和开源项目,且社区活跃度高,持续更新维护。该项目特别适合需要动态生成代码的场景,例如动态编译器、实时音频处理或游戏中的物理模拟,通过直接操作硬件指令集,显著提升性能表现。 (C/C++程序设计 / 资源传输下载)
- awesome-list - AsmJit - A lightweight library for machine code generation written in C++ language. (Containers & Language Extentions & Linting / For C++/C)
- awesome-compilers - AsmJIT - Complete x86/x64 JIT and Remote Assembler for C++. (Tools and Frameworks / C / C++)
- awesome-reverse-engineering - **2003**星
- awesome-cpp - AsmJit - Low-latency machine code generation. [Zlib] [website](https://asmjit.com) (Miscellaneous)
README
AsmJit
------
AsmJit is a library for low-latency machine code generation written in C++.
* [Official Home Page (asmjit.com)](https://asmjit.com)
* [Official Repository (asmjit/asmjit)](https://github.com/asmjit/asmjit)
* [Public Chat Channel](https://app.element.io/#/room/#asmjit:matrix.org)
* [Zlib License](./LICENSE.md)
See [asmjit.com](https://asmjit.com) page for more details, examples, and documentation.
Project Organization
--------------------
* **`/`** - Project root - project files and scripts, `include` path points here
* **asmjit** - AsmJit source code and headers
* **core** - Core API, backend independent except relocations
* **support** - Support classes and functions
* **arm** - ARM specific API, designed to be common for both AArch32 and AArch64
* **a64** - AArch64 specific API, used only by AArch64 backends
* **x86** - X86 specific API, used only by X86 and X64 backends
* **ujit** - Universal JIT API
* **asmjit-testing** - Unit tests, integration tests, and benchmarks (don't embed in your project)
* **commons** - Common utilities shared between tests and benchmarks
* **bench** - Benchmarks
* **tests** - Unit tests and integration tests
* **db** - Instruction database
* **tools** - Tools used to re-regenerate generated files (instruction DB, enum strings)
Roadmap
-------
* See [Roadmap](https://asmjit.com/roadmap.html) page for more details
Documentation
-------------
* [Documentation Index](https://asmjit.com/doc/index.html)
* [Build Instructions](https://asmjit.com/doc/group__asmjit__build.html) (includes [CMake Integration](https://asmjit.com/doc/group__asmjit__build.html#cmake_integration))
Contributing Guidelines
-----------------------
* See [CONTRIBUTING](./CONTRIBUTING.md) page for more details
Development & Testing
---------------------
* Basic configure scripts that invoke cmake are provided in project root.
Breaking Changes
----------------
Breaking the API is sometimes inevitable, what to do?
* See [Breaking Changes Guide](https://asmjit.com/doc/group__asmjit__breaking__changes.html), which is now part of AsmJit documentation
* See asmjit tests, they always compile and provide implementation of many use-cases:
* [asmjit_test_emitters.cpp](./asmjit-testing/tests/asmjit_test_emitters.cpp) - Tests that demonstrate the purpose of emitters
* [asmjit_test_assembler_x86.cpp](./asmjit-testing/tests/asmjit_test_assembler_x86.cpp) - Tests targeting AsmJit's Assembler (x86/x64)
* [asmjit_test_compiler_x86.cpp](./asmjit-testing/tests/asmjit_test_compiler_x86.cpp) - Tests targeting AsmJit's Compiler (x86/x64)
* [asmjit_test_instinfo.cpp](./asmjit-testing/tests/asmjit_test_instinfo.cpp) - Tests that query instruction information
* [asmjit_test_x86_sections.cpp](./asmjit-testing/tests/asmjit_test_x86_sections.cpp) - Multiple sections test
* Visit our [Public Chat](https://app.element.io/#/room/#asmjit:matrix.org) if you need a quick help
Support & Funding
-----------------
* AsmJit project has both community and commercial support, see [AsmJit's Support Page](https://asmjit.com/support.html)
* If you use this software commercially, please see the [Funding Page](https://kobalicek.com/funding.html) and support the development
Notable Donors List:
* [ZehMatt](https://github.com/ZehMatt)
Authors & Maintainers
---------------------
* Petr Kobalicek ([website](https://kobalicek.com))