ROSE 0.11.145.147
ModulesM68k.h
1#ifndef ROSE_BinaryAnalysis_Partitioner2_ModulesM68k_H
2#define ROSE_BinaryAnalysis_Partitioner2_ModulesM68k_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
6
7#include <Rose/BinaryAnalysis/Partitioner2/Modules.h>
8
9namespace Rose {
10namespace BinaryAnalysis {
11namespace Partitioner2 {
12
14namespace ModulesM68k {
15
20protected:
21 FunctionPtr function_;
22
23protected:
24 MatchLink();
25public:
26 ~MatchLink();
27
29 static Ptr instance();
30 virtual std::vector<FunctionPtr> functions() const override;
31 virtual bool match(const PartitionerConstPtr&, rose_addr_t anchor) override;
32};
33
36public:
38 static Ptr instance() { return Ptr(new MatchFunctionPadding); }
39 virtual rose_addr_t match(const PartitionerConstPtr&, rose_addr_t anchor) override;
40};
41
44public:
46 static Ptr instance() { return Ptr(new SwitchSuccessors); }
47 virtual bool operator()(bool chain, const Args&) override;
48};
49
54std::vector<FunctionPtr> findInterruptFunctions(const PartitionerConstPtr&, rose_addr_t vectorVa);
55
56} // namespace
57} // namespace
58} // namespace
59} // namespace
60
61#endif
62#endif
Base class for adjusting basic blocks during discovery.
Definition Modules.h:39
BasicBlockCallbackPtr Ptr
Shared-ownership pointer to a BasicBlockCallback.
Definition Modules.h:42
Base class for matching function padding.
Definition Modules.h:134
FunctionPaddingMatcherPtr Ptr
Shared-ownership pointer to a FunctionPaddingMatcher.
Definition Modules.h:137
Base class for matching function prologues.
Definition Modules.h:108
virtual rose_addr_t match(const PartitionerConstPtr &, rose_addr_t anchor) override
Attempt to match padding.
Adjusts basic block successors for M68k "switch" statements.
Definition ModulesM68k.h:43
virtual bool operator()(bool chain, const Args &) override
Callback method.
std::vector< FunctionPtr > findInterruptFunctions(const PartitionerConstPtr &, rose_addr_t vectorVa)
Find functions for an interrupt vector.
The ROSE library.