mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 04:24:37 +03:00
118ae6ced160f68dd142a0d758aa7efb4356196a
The problem was that the sign/zero extension was not working with TypeIds, but it was working with register IDs, when emitted. Thus, even when TypeId was uint8, for example, the register could be uint32, so the final instruction emitted was 'movzx eax, eax', for example, which was wrong.
AsmJit
AsmJit is a lightweight library for machine code generation written in C++ language.
- Official Home Page (asmjit.com)
- Official Repository (asmjit/asmjit)
- Public Chat Channel
- Zlib License
See asmjit.com page for more details, examples, and documentation.
Documentation
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 Official Chat 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.
- asmjit - Source code and headers (always point include path in here).
- test - Unit and integration tests (don't embed in your project).
- tools - Tools used for configuring, documenting, and generating files.
- src - Source code.
TODO
- Ports:
- 32-bit ARM/Thumb port.
- RISC-V port.
Support
- AsmJit project has both community and commercial support, see AsmJit's Support Page
- You can help the development and maintenance through Petr Kobalicek's GitHub sponsors Profile
Notable Donors List:
Authors & Maintainers
- Petr Kobalicek kobalicek.petr@gmail.com
Languages
C++
93.2%
JavaScript
3.3%
C
3.2%
CMake
0.3%