Skip to content

Commit

Permalink
Extended reggistration of external functions
Browse files Browse the repository at this point in the history
  • Loading branch information
eyck committed Apr 24, 2018
1 parent 2db0dd3 commit d951285
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
6 changes: 5 additions & 1 deletion incl/iss/vm_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ template <typename ARCH> class vm_base : public debugger_if, public vm_if {
auto build_if_needed = [this, &cont, &pc](llvm::Module* m)->llvm::Function*{
llvm::Function *func;
this->mod=m;
add_functions_2_module(m);
this->setup_module(m);
std::tie(cont, func) = disass(pc);
this->mod=nullptr;
this->func=nullptr;
Expand Down Expand Up @@ -207,6 +207,10 @@ template <typename ARCH> class vm_base : public debugger_if, public vm_if {
str += buf.data();
}

virtual void setup_module(llvm::Module* m){
add_functions_2_module(m);
}

virtual std::tuple<continuation_e, llvm::BasicBlock *>
gen_single_inst_behavior(virt_addr_t &pc_v, unsigned int &inst_cnt, llvm::BasicBlock *this_block) = 0;

Expand Down
8 changes: 5 additions & 3 deletions src/vm_base.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,11 @@ llvm::cl::opt<uint32_t> LikelyBranchWeight("likely-branch-weight", llvm::cl::Hid
llvm::cl::opt<uint32_t> UnlikelyBranchWeight("unlikely-branch-weight", llvm::cl::Hidden, llvm::cl::init(4),
llvm::cl::desc("Weight of the branch unlikely to be taken (default = 4)"));

#define INT_TYPE(L) IntegerType::get(mod->getContext(), L)
#define VOID_TYPE Type::getVoidTy(mod->getContext())
#define THIS_PTR_TYPE INT_TYPE(8)->getPointerTo()
#define INT_TYPE(L) Type::getIntNTy(mod->getContext(), L)
#define FLOAT_TYPE Type::getFloatTy(mod->getContext())
#define DOUBLE_TYPE Type::getDoubleTy(mod->getContext())
#define VOID_TYPE Type::getVoidTy(mod->getContext())
#define THIS_PTR_TYPE Type::getIntNPtrTy(mod->getContext(), 8)
#define FDECLL(NAME, RET, ...) \
Function *NAME##_func = CurrentModule->getFunction(#NAME); \
if (!NAME##_func) { \
Expand Down

0 comments on commit d951285

Please sign in to comment.