aboutsummaryrefslogtreecommitdiff
path: root/client/src/assembler
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/assembler')
-rw-r--r--client/src/assembler/assembler.cpp16
-rw-r--r--client/src/assembler/assembler.h4
2 files changed, 16 insertions, 4 deletions
diff --git a/client/src/assembler/assembler.cpp b/client/src/assembler/assembler.cpp
index 43816fd..5311833 100644
--- a/client/src/assembler/assembler.cpp
+++ b/client/src/assembler/assembler.cpp
@@ -1,14 +1,24 @@
#include "../include.h"
#include "assembler.h"
+void assembler::assembler::start() {}
+
void assembler::assembler::push(const std::vector<uintptr_t>& args) {
- for (auto it = args.rbegin(); it != args.rend(); ++it) {
- m_assembler.push(*it);
+ if (!m_x64) {
+ for (auto it = args.rbegin(); it != args.rend(); ++it) {
+ m_assembler.push(*it);
+ }
+ return;
}
+
+ // 64bit impl
}
+void assembler::assembler::call(const uintptr_t addr) {}
+
void assembler::assembler::end() {
- // epilogue here
+ if (m_x64) {
+ }
void* func;
m_runtime.add(&func, &m_code);
diff --git a/client/src/assembler/assembler.h b/client/src/assembler/assembler.h
index 390cd42..3dcdeaf 100644
--- a/client/src/assembler/assembler.h
+++ b/client/src/assembler/assembler.h
@@ -13,13 +13,15 @@ class assembler {
JitRuntime m_runtime;
x86::Assembler m_assembler;
+ bool m_x64;
public:
- assembler(const bool x64 = false) {
+ assembler(const bool x64 = false) : m_x64{x64} {
Environment env(x64 ? Environment::kArchX64 : Environment::kArchX86);
m_code.init(env);
m_code.attach(&m_assembler);
}
+
void start();
void push(const std::vector<uintptr_t> &args);
void call(const uintptr_t addr);