aboutsummaryrefslogtreecommitdiff
path: root/client/src/assembler/assembler.cpp
blob: 43816fd0c4b8a278d4ef499dc82b4cb6b5178a30 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "../include.h"
#include "assembler.h"

void assembler::assembler::push(const std::vector<uintptr_t>& args) {
  for (auto it = args.rbegin(); it != args.rend(); ++it) {
    m_assembler.push(*it);
  }
}

void assembler::assembler::end() {
  // epilogue here

  void* func;
  m_runtime.add(&func, &m_code);

  const size_t size = m_code.codeSize();

  m_buf.resize(size);

  std::memcpy(&m_buf[0], func, size);
}