IR
This commit is contained in:
@@ -20,6 +20,7 @@ include_directories(
|
|||||||
src/frontend/imgui
|
src/frontend/imgui
|
||||||
src/backend
|
src/backend
|
||||||
src/backend/core
|
src/backend/core
|
||||||
|
src/backend/core/JIT
|
||||||
src/backend/core/mmio
|
src/backend/core/mmio
|
||||||
src/backend/core/registers
|
src/backend/core/registers
|
||||||
src/backend/core/rsp
|
src/backend/core/rsp
|
||||||
|
|||||||
15
src/backend/core/JIT/IR.cpp
Normal file
15
src/backend/core/JIT/IR.cpp
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#include <IR.hpp>
|
||||||
|
|
||||||
|
namespace n64 {
|
||||||
|
void IR::push(const Entry& e) {
|
||||||
|
code.push_back(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto IR::begin() {
|
||||||
|
return code.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto IR::end() {
|
||||||
|
return code.end();
|
||||||
|
}
|
||||||
|
}
|
||||||
24
src/backend/core/JIT/IR.hpp
Normal file
24
src/backend/core/JIT/IR.hpp
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <common.hpp>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace n64 {
|
||||||
|
struct Entry {
|
||||||
|
u16 type;
|
||||||
|
struct Operand {
|
||||||
|
enum {
|
||||||
|
REG_S64, REG_S32, REG_U64, REG_U32, REG_U5, IMM_S16,
|
||||||
|
IMM_S32, IMM_S64, IMM_U16, IMM_U32, IMM_U64, IMM_U5,
|
||||||
|
} type;
|
||||||
|
u8 index;
|
||||||
|
} dst, op1, op2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct IR {
|
||||||
|
void push(const Entry&);
|
||||||
|
auto begin();
|
||||||
|
auto end();
|
||||||
|
private:
|
||||||
|
std::vector<Entry> code{};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user