From 8bdd9468de89559de1bffdfc1891c28a217cbe7c Mon Sep 17 00:00:00 2001 From: SamsonLib Date: Sat, 14 Jun 2025 01:29:16 +0200 Subject: [PATCH] Added Makefile and made things run on my machine (im sorry ); ) --- Makefile | 29 +++++++++++++++++++++++++++++ core/JIT/jit.cpp | 22 ++++++++++++---------- core/JIT/jit.h | 7 ++++--- ui/main.cpp | 9 ++++++--- 4 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3c606cd --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +CXX := g++ +CXXFLAGS := -std=c++17 -Wall -Wextra -Icore -Icore/ARM -Icore/audio -Icore/fs -Icore/gpu/emu -Icore/gpu/vk -Icore/JIT + +SRC := \ + ui/main.cpp \ + core/audio/audio.cpp \ + core/fs/fs.cpp \ + core/gpu/emu/emugpu.cpp \ + core/gpu/vk/emugpuvk.cpp \ + core/JIT/jit.cpp + +OBJ := $(SRC:.cpp=.o) +TARGET := app + +all: $(TARGET) + +$(TARGET): $(OBJ) + $(CXX) $(OBJ) -o $(TARGET) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +clean: + rm -f $(OBJ) $(TARGET) + +run: $(TARGET) + ./$(TARGET) + +.PHONY: all clean diff --git a/core/JIT/jit.cpp b/core/JIT/jit.cpp index b339095..5efc146 100644 --- a/core/JIT/jit.cpp +++ b/core/JIT/jit.cpp @@ -1,18 +1,20 @@ -#include "core/JIT/jit.h" +#include "jit.h" #include #include #include #include -using JitFunc = void(*)(); +using JitFunc = void (*)(); -void JIT::translate_and_run(CPU& cpu) { - uint8_t* code = (uint8_t*)mmap(nullptr, 64, PROT_READ | PROT_WRITE | PROT_EXEC, - MAP_PRIVATE | MAP_ANON, -1, 0); +void JIT::translate_and_run(CPU &cpu) +{ + uint8_t *code = (uint8_t *)mmap(nullptr, 64, PROT_READ | PROT_WRITE | PROT_EXEC, + MAP_PRIVATE | MAP_ANON, -1, 0); size_t offset = 0; // Decode mock instructions from cpu.memory - if (cpu.memory[0] == 0x05) { // MOVZ placeholder + if (cpu.memory[0] == 0x05) + { // MOVZ placeholder code[offset++] = 0x48; // mov rax, imm64 code[offset++] = 0xB8; uint64_t imm = 5; @@ -20,7 +22,8 @@ void JIT::translate_and_run(CPU& cpu) { offset += 8; } - if (cpu.memory[4] == 0x03) { // ADD placeholder + if (cpu.memory[4] == 0x03) + { // ADD placeholder code[offset++] = 0x48; // add rax, imm32 code[offset++] = 0x05; uint32_t addval = 3; @@ -32,13 +35,12 @@ void JIT::translate_and_run(CPU& cpu) { JitFunc fn = reinterpret_cast(code); uint64_t result; - asm volatile ( + asm volatile( "call *%1\n" "mov %%rax, %0\n" : "=r"(result) : "r"(fn) - : "%rax" - ); + : "%rax"); cpu.regs[0] = result; } diff --git a/core/JIT/jit.h b/core/JIT/jit.h index 0b2cc8e..1a5e5df 100644 --- a/core/JIT/jit.h +++ b/core/JIT/jit.h @@ -1,10 +1,11 @@ #ifndef JIT_H #define JIT_H -#include "core/ARM/cpu.h" +#include "cpu.h" -class JIT { +class JIT +{ public: - void translate_and_run(CPU& cpu); + void translate_and_run(CPU &cpu); }; #endif \ No newline at end of file diff --git a/ui/main.cpp b/ui/main.cpp index 6749a95..c602897 100644 --- a/ui/main.cpp +++ b/ui/main.cpp @@ -1,7 +1,10 @@ -#include "core/ARM/cpu.h" -#include "core/JIT/jit.h" +#include "cpu.h" +#include "jit.h" -int main() { +#include + +int main() +{ CPU cpu; cpu.pc = 0;