Scanner now picks up restgprlr calls.

This commit is contained in:
Ben Vanik
2013-12-08 11:26:43 -08:00
parent 1dc356cb4d
commit e2e2a392ee
4 changed files with 34 additions and 12 deletions

View File

@@ -22,7 +22,7 @@ SymbolInfo::~SymbolInfo() {
}
FunctionInfo::FunctionInfo(Module* module, uint64_t address) :
end_address_(0), function_(0),
end_address_(0), behavior_(BEHAVIOR_DEFAULT), function_(0),
SymbolInfo(SymbolInfo::TYPE_FUNCTION, module, address) {
}

View File

@@ -52,6 +52,14 @@ protected:
};
class FunctionInfo : public SymbolInfo {
public:
enum Behavior {
BEHAVIOR_DEFAULT = 0,
BEHAVIOR_PROLOG,
BEHAVIOR_EPILOG,
BEHAVIOR_EPILOG_RETURN,
};
public:
FunctionInfo(Module* module, uint64_t address);
virtual ~FunctionInfo();
@@ -60,11 +68,15 @@ public:
uint64_t end_address() const { return end_address_; }
void set_end_address(uint64_t value) { end_address_ = value; }
Behavior behavior() const { return behavior_; }
void set_behavior(Behavior value) { behavior_ = value; }
Function* function() const { return function_; }
void set_function(Function* value) { function_ = value; }
private:
uint64_t end_address_;
Behavior behavior_;
Function* function_;
};