20 lines
634 B
C++
20 lines
634 B
C++
#pragma once
|
|
|
|
#include "AnalysisPass.h"
|
|
#include "BasicBlock.h"
|
|
|
|
class LinearPass : public AnalysisPass
|
|
{
|
|
public:
|
|
LinearPass(duint VirtualStart, duint VirtualEnd, BBlockArray & MainBlocks);
|
|
virtual ~LinearPass();
|
|
|
|
virtual const char* GetName() override;
|
|
virtual bool Analyse() override;
|
|
void AnalyseOverlaps();
|
|
|
|
private:
|
|
void AnalysisWorker(duint Start, duint End, BBlockArray* Blocks);
|
|
void AnalysisOverlapWorker(duint Start, duint End, BBlockArray* Insertions);
|
|
BasicBlock* CreateBlockWorker(BBlockArray* Blocks, duint Start, duint End, bool Call, bool Jmp, bool Ret, bool Pad);
|
|
}; |