Skip to content
Snippets Groups Projects
Commit 427af56c authored by jdh8d's avatar jdh8d
Browse files

first draft of unpinning

parent a2c69e18
No related branches found
No related tags found
No related merge requests found
......@@ -33,38 +33,20 @@
#include <memory_space.h>
#include <dollop_man.h>
#include <set>
#include <utility>
namespace Zipr_SDK
{
typedef std::set< std::pair<Dollop_t*,RangeAddress_t> > PlacementQueue_t;
class Zipr_t
{
protected:
/*
* Private, but listing them here so that SDK users
* can get a sense of the overall flow of the rewriter.
*/
virtual void FindFreeRanges(const std::string &name) = 0;
virtual void AddPinnedInstructions() = 0;
virtual void ReservePinnedInstructions() = 0;
virtual void PreReserve2ByteJumpTargets() = 0;
virtual void ExpandPinnedInstructions() = 0;
virtual void Fix2BytePinnedInstructions() = 0;
virtual void CreateDollops() = 0;
virtual void PlaceDollops() = 0;
virtual void WriteDollops() = 0;
virtual void UpdatePins() = 0;
virtual void OptimizePinnedInstructions() = 0;
virtual void AskPluginsAboutPlopping() = 0;
virtual void UpdateCallbacks() = 0;
virtual void PrintStats() = 0;
virtual void RecordPinnedInsnAddrs() = 0;
public:
/*
* These are public functions that the SDK user
* way want to use.
* These are public functions that the SDK user way want to use.
*/
virtual int DetermineWorstCaseInsnSize(libIRDB::Instruction_t*, bool account_for_jump = true) = 0;
......@@ -89,6 +71,7 @@ class Zipr_t
virtual libIRDB::FileIR_t *GetFileIR()=0;
virtual Zipr_SDK::InstructionLocationMap_t *GetLocationMap()=0;
virtual Zipr_SDK::DollopManager_t *GetDollopManager()=0;
virtual Zipr_SDK::PlacementQueue_t* GetPlacementQueue()=0;
};
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment