From 6a33a72c7b423afb143a67a3e88d27e4bcafd116 Mon Sep 17 00:00:00 2001 From: auth Date: Sun, 5 Jul 2020 12:00:04 +0200 Subject: More assembler implementations. Small changes to client on server. --- client/src/assembler/assembler.cpp | 16 +++++++++++++--- client/src/assembler/assembler.h | 4 +++- client/src/main.cpp | 5 +---- 3 files changed, 17 insertions(+), 8 deletions(-) (limited to 'client/src') 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& 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 &args); void call(const uintptr_t addr); diff --git a/client/src/main.cpp b/client/src/main.cpp index 727e3a0..8e742de 100644 --- a/client/src/main.cpp +++ b/client/src/main.cpp @@ -28,9 +28,6 @@ int main(int argc, char* argv[]) { auto message = packet(); auto action = packet.act; - // move ? - int ret = -1; - if (action == tcp::packet_action::session) { client.session_id = packet.session_id; tcp::version_t v{0, 1, 0}; @@ -50,7 +47,7 @@ int main(int argc, char* argv[]) { } io::logger->info("{}:{}->{} {}", packet.id, packet.session_id, message, - packet.act); + action); }); while (client) { -- cgit v1.2.3