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: 7 months 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-04-20T16:45:26.000Z (7 months ago)
- Last Synced: 2025-04-27T11:51:42.998Z (7 months ago)
- Topics: aarch64, asmjit, assembler, code-generation, compiler, cpp, jit, jit-compilation, x86, x86-64, x86-x64
- Language: C++
- Homepage: https://asmjit.com
- Size: 8.63 MB
- Stars: 4,127
- Watchers: 152
- Forks: 529
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- fucking-awesome-cpp - AsmJit - Low-latency machine code generation. [Zlib] 🌎 [website](asmjit.com) (Miscellaneous)
- 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)
- StarryDivineSky - asmjit/asmjit - 64 和 ARM,并确保代码在不同平台(Windows、Linux、macOS)和编译器(GCC、Clang、MSVC)下的可移植性。项目采用头文件(header-only)设计,简化了集成流程,同时提供沙箱化执行环境以增强安全性。其功能覆盖指令集生成、代码段管理、寄存器分配等核心模块,并支持调试信息和代码优化选项。asmjit 的 MIT 许可协议使其适用于商业和开源项目,且社区活跃度高,持续更新维护。该项目特别适合需要动态生成代码的场景,例如动态编译器、实时音频处理或游戏中的物理模拟,通过直接操作硬件指令集,显著提升性能表现。 (C/C++程序设计 / 资源传输下载)
README
AsmJit
------
AsmJit is a lightweight library for machine code generation written in C++ language.
* [Official Home Page (asmjit.com)](https://asmjit.com)
* [Official Repository (asmjit/asmjit)](https://github.com/asmjit/asmjit)
* [Public Chat Channel](https://app.gitter.im/#/room/#asmjit:gitter.im)
* [Zlib License](./LICENSE.md)
See [asmjit.com](https://asmjit.com) page for more details, examples, and documentation.
Documentation
-------------
* [Documentation Index](https://asmjit.com/doc/index.html)
* [Build Instructions](https://asmjit.com/doc/group__asmjit__build.html)
Contributing
------------
* See [CONTRIBUTING](./CONTRIBUTING.md) page for more details
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](./test/asmjit_test_emitters.cpp) - Tests that demonstrate the purpose of emitters
* [asmjit_test_assembler_x86.cpp](./test/asmjit_test_assembler_x86.cpp) - Tests targeting AsmJit's Assembler (x86/x64)
* [asmjit_test_compiler_x86.cpp](./test/asmjit_test_compiler_x86.cpp) - Tests targeting AsmJit's Compiler (x86/x64)
* [asmjit_test_instinfo.cpp](./test/asmjit_test_instinfo.cpp) - Tests that query instruction information
* [asmjit_test_x86_sections.cpp](./test/asmjit_test_x86_sections.cpp) - Multiple sections test.
* Visit our [Gitter Chat](https://app.gitter.im/#/room/#asmjit:gitter.im) if you need a quick help
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
Ports
-----
* [ ] 32-bit ARM/Thumb port (work in progress)
* [ ] RISC-V port (not in progress, help welcome)
Support
-------
* AsmJit project has both community and commercial support, see [AsmJit's Support Page](https://asmjit.com/support.html)
* You can help the development and maintenance through Petr Kobalicek's [GitHub sponsors Profile](https://github.com/sponsors/kobalicek)
Notable Donors List:
* [ZehMatt](https://github.com/ZehMatt)
Authors & Maintainers
---------------------
* Petr Kobalicek