});
}
+/*
+ * TODO: If we jump into some Basic Block we need to split it there into two
+ */
void LLVMDisassembler::disassemble() {
std::stack<LLVMFunction*> remaining_functions;
std::stack<LLVMBasicBlock*> remaining_blocks;
bool contains;
SymbolRef::Type symbol_type;
-/*
- * TODO: If we jump into some Basic Block we need to split it there into two
- */
if (text_section.containsSymbol(x->second, contains) || !contains)
continue;
LLVMBasicBlock * block = new LLVMBasicBlock(jmptarget);
blocks.insert(std::make_pair(block->getStartAddress(), block));
remaining_blocks.push(new LLVMBasicBlock(jmptarget));
+ }
}
}
}
current_block->setEndAddress(current_address + base_address);
LOG4CXX_DEBUG(logger, "Finished Block at " << std::hex <<
current_block->getEndAddress());
- }
break;
}
current_address += inst_size;