MCPcopy Create free account
hub / github.com/QBDI/QBDI / ExecBlockManager

Method ExecBlockManager

src/ExecBlock/ExecBlockManager.cpp:50–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48} // namespace
49
50ExecBlockManager::ExecBlockManager(const LLVMCPUs &llvmCPUs,
51 VMInstanceRef vminstance)
52 : total_translated_size(1), total_translation_size(1),
53 vminstance(vminstance), llvmCPUs(llvmCPUs),
54 execBlockPrologue(
55 getExecBlockPrologue(llvmCPUs.getCPU(CPUMode::DEFAULT))),
56 execBlockEpilogue(
57 getExecBlockEpilogue(llvmCPUs.getCPU(CPUMode::DEFAULT))) {
58
59 auto execBrokerBlock = std::make_unique<ExecBlock>(
60 llvmCPUs, vminstance, &execBlockPrologue, &execBlockEpilogue, 0);
61 epilogueSize = execBrokerBlock->getEpilogueSize();
62 execBroker = std::make_unique<ExecBroker>(std::move(execBrokerBlock),
63 llvmCPUs, vminstance);
64}
65
66ExecBlockManager::~ExecBlockManager() {
67 QBDI_DEBUG_BLOCK({ this->printCacheStatistics(); });

Callers

nothing calls this directly

Calls 3

getEpilogueSizeMethod · 0.80
getExecBlockPrologueFunction · 0.50
getExecBlockEpilogueFunction · 0.50

Tested by

no test coverage detected