Yet another AArch64 emitter (currently unused, kept as a backup)
Find a file
2022-08-28 19:10:18 +01:00
.github/workflows github: Faster CI 2022-07-12 16:56:07 +01:00
include/oaknut oaknut: Add ARMv8.1 instructions 2022-08-28 19:10:18 +01:00
tests CodeGenerator: Add MOV (immediate) 2022-07-09 23:09:16 +01:00
.clang-format First commit 2022-07-02 20:31:43 +01:00
.gitignore Add CI 2022-07-09 21:06:03 +01:00
CMakeLists.txt oaknut: 1.1.0 2022-08-28 19:10:18 +01:00
LICENSE Update notices 2022-07-03 20:21:36 +01:00
README.md oaknut: Add ARMv8.1 instructions 2022-08-28 19:10:18 +01:00

Oaknut

A C++20 assembler for AArch64 (ARMv8.1)

Oaknut is a header-only library that allows one to dynamically assemble code in-memory at runtime.

Usage

Simple example:

using EmittedFunction = int (*)();

EmittedFunction EmitExample(oaknut::CodeGenerator& code, int value)
{
    using namespace oaknut::util;

    EmittedFunction result = code.ptr<EmittedFunction>();

    code.MOVZ(W0, value);
    code.RET();

    return result;
}

License

This project is MIT licensed.