start working on x64 emitter

This commit is contained in:
Simone Coco
2025-12-23 17:08:49 +01:00
parent 441952ad45
commit c5733869e6
3 changed files with 24 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.23)
project(rc64 CXX)
add_library(rc64 )
target_include_directories(rc64 PUBLIC src/misc)
add_library(rc64 src/backend/x64/emitter.cpp)
target_include_directories(rc64 PUBLIC src/backend/x64 src/misc external/xbyak)
set_target_properties(rc64 PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED ON)

View File

@@ -0,0 +1,7 @@
#include <emitter.hpp>
namespace rc64 {
Emitter::Emitter() : Xbyak::CodeGenerator(kMaxCodeCacheSize, Xbyak::AutoGrow) {
}
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include <xbyak/xbyak.h>
#include <util.hpp>
#include <type.hpp>
namespace rc64 {
struct Emitter : Xbyak::CodeGenerator {
Emitter();
static constexpr size_t kMaxTableSize = 1 << 12;
static constexpr size_t kMaxPagesPerTable = 1 << 20;
static constexpr size_t kMaxCodeCacheSize = kMaxTableSize * kMaxPagesPerTable;
};
}