1 #ifndef ROSE_Partitioner2_ModulesM68k_H
2 #define ROSE_Partitioner2_ModulesM68k_H
4 #include <featureTests.h>
5 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
7 #include <Partitioner2/Function.h>
8 #include <Partitioner2/Partitioner.h>
12 namespace Partitioner2 {
15 namespace ModulesM68k {
26 virtual std::vector<Function::Ptr>
functions() const ROSE_OVERRIDE {
return std::vector<Function::Ptr>(1, function_); }
35 virtual rose_addr_t
match(
const Partitioner&, rose_addr_t anchor) ROSE_OVERRIDE;
43 virtual bool operator()(
bool chain,
const Args&) ROSE_OVERRIDE;
static Ptr instance()
Allocating constructor.
Base class for matching function padding.
Base class for adjusting basic blocks during discovery.
Base class for matching function prologues.
virtual rose_addr_t match(const Partitioner &, rose_addr_t anchor) ROSE_OVERRIDE
Attempt to match padding.
virtual std::vector< Function::Ptr > functions() const ROSE_OVERRIDE
Returns the function(s) for the previous successful match.
Matches an M68k function prologue with LINK instruction.
Main namespace for the ROSE library.
Adjusts basic block successors for M68k "switch" statements.
virtual bool match(const Partitioner &, rose_addr_t anchor) ROSE_OVERRIDE
Attempt to match an instruction pattern.
static Ptr instance()
Allocating constructor.
Matches M68k function padding.
Sawyer::SharedPointer< FunctionPaddingMatcher > Ptr
Shared-ownership pointer to a FunctionPaddingMatcher.
static Ptr instance()
Allocating constructor.
virtual bool operator()(bool chain, const Args &) ROSE_OVERRIDE
Callback method.
Sawyer::SharedPointer< FunctionPrologueMatcher > Ptr
Shared-ownership pointer to a FunctionPrologueMatcher.
Sawyer::SharedPointer< BasicBlockCallback > Ptr
Shared-ownership pointer to a BasicBlockCallback.
Partitions instructions into basic blocks and functions.
std::vector< Function::Ptr > findInterruptFunctions(const Partitioner &, rose_addr_t vectorVa)
Find functions for an interrupt vector.