kobalicek 87bec89b10 [API] Deprecated the use of Operand::size()
From this moment, the use of Operand::size() is discouraged:

  - Use BaseReg::size() to get a size of a register
  - Use x86::Mem::size() to get a size of a x88 memory operand
  - Use Operand::x86RmSize() to get a size of a register or
    x86 memory operand (convenience)

The problem with size occupying bits of each operand is problematic
as we want to pack more information to architecture specific operands.
For example AArch32 and AArch64 memory operands need more payload,
which can use the bits that were used by size in the past.
2023-09-14 16:47:52 +02:00
2020-02-08 10:13:44 +01:00

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

  • Ports:
    • 32-bit ARM/Thumb port.
    • 64-bit ARM (AArch64) port.
    • RISC-V port.

Support

Notable Donors List:

Authors & Maintainers

Languages
C++ 93.2%
JavaScript 3.3%
C 3.2%
CMake 0.3%