mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-16 20:17:05 +03:00
* Denested src folder to root, renamed testing to asmjit-testing
* Refactored how headers are included into <asmjit/...> form. This
is necessary as compilers would never simplify a path once a ..
appears in include directory - then paths such as ../core/../core
appeared in asserts, which was ugly
* Moved support utilities into asmjit/support/... (still included
by asmjit/core.h for convenience and compatibility)
* Added CMakePresets.json for making it easy to develop AsmJit
* Reworked CMakeLists to be shorter and use CMake option(),
etc... This simplifies it and makes it using more standard
features
* ASMJIT_EMBED now creates asmjit_embed INTERFACE library,
which is accessible via asmjit::asmjit target - this simplifies
embedding and makes it the same as library targets from a CMake
perspective
* Removed ASMJIT_DEPS - this is now provided by cmake target
aliases - 'asmjit::asmjit' so users should not need this variable
* Changed meaning of ASMJIT_LIBS - this now contains only AsmJit
dependencies without asmjit::asmjit target alias. Don't rely on
ASMJIT_LIBS anymore as it's only used internally
* Removed ASMJIT_NO_DEPRECATED option - AsmJit is not going
to provide controllable deprecations in the future
* Removed ASMJIT_NO_VALIDATION in favor of ASMJIT_NO_INTROSPECTION,
which now controls query, features, and validation API presence
* Removed ASMJIT_DIR option - it was never really needed
* Removed AMX_TRANSPOSE feature from instruction database (X86).
Intel has removed it as well, so it's a feature that won't
be siliconized
3.4 KiB
3.4 KiB
AsmJit
AsmJit is a library for low-latency machine code generation written in C++.
- Official Home Page (asmjit.com)
- Official Repository (asmjit/asmjit)
- Public Chat Channel
- Zlib License
See asmjit.com page for more details, examples, and documentation.
Project Organization
/- Project root - project files and scripts,includepath 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)
- asmjit - AsmJit source code and headers
Roadmap
- See Roadmap page for more details
Contributing
- See CONTRIBUTING page for more details
Documentation
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, which is now part of AsmJit documentation
- See asmjit tests, they always compile and provide implementation of many use-cases:
- asmjit_test_emitters.cpp - Tests that demonstrate the purpose of emitters
- asmjit_test_assembler_x86.cpp - Tests targeting AsmJit's Assembler (x86/x64)
- asmjit_test_compiler_x86.cpp - Tests targeting AsmJit's Compiler (x86/x64)
- asmjit_test_instinfo.cpp - Tests that query instruction information
- asmjit_test_x86_sections.cpp - Multiple sections test
- Visit our Gitter Chat if you need a quick help
Support
- AsmJit project has both community and commercial support, see AsmJit's Support Page
- Organizations that rely on AsmJit should support the development!
Notable Donors List:
Authors & Maintainers
- Petr Kobalicek kobalicek.petr@gmail.com (website)