mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
GP-3378 Remove op when clearing placeholder
This commit is contained in:
parent
89e18fa536
commit
68747248f3
3 changed files with 29 additions and 14 deletions
|
@ -1610,6 +1610,10 @@ class FuncCallSpecs : public FuncProto {
|
|||
void commitNewInputs(Funcdata &data,vector<Varnode *> &newinput);
|
||||
void commitNewOutputs(Funcdata &data,Varnode *newout);
|
||||
void collectOutputTrialVarnodes(vector<Varnode *> &trialvn);
|
||||
void setStackPlaceholderSlot(int4 slot) { stackPlaceholderSlot = slot;
|
||||
if (isinputactive) activeinput.setPlaceholderSlot(); } ///< Set the slot of the stack-pointer placeholder
|
||||
void clearStackPlaceholderSlot(void) {
|
||||
stackPlaceholderSlot = -1; if (isinputactive) activeinput.freePlaceholderSlot(); } ///< Release the stack-pointer placeholder
|
||||
public:
|
||||
enum {
|
||||
offset_unknown = 0xBADBEEF ///< "Magic" stack offset indicating the offset is unknown
|
||||
|
@ -1629,10 +1633,6 @@ public:
|
|||
int4 getParamshift(void) const { return paramshift; } ///< Get the parameter shift for this call site
|
||||
int4 getMatchCallCount(void) const { return matchCallCount; } ///< Get the number of calls the caller makes to \b this sub-function
|
||||
int4 getStackPlaceholderSlot(void) const { return stackPlaceholderSlot; } ///< Get the slot of the stack-pointer placeholder
|
||||
void setStackPlaceholderSlot(int4 slot) { stackPlaceholderSlot = slot;
|
||||
if (isinputactive) activeinput.setPlaceholderSlot(); } ///< Set the slot of the stack-pointer placeholder
|
||||
void clearStackPlaceholderSlot(void) {
|
||||
stackPlaceholderSlot = -1; if (isinputactive) activeinput.freePlaceholderSlot(); } ///< Release the stack-pointer placeholder
|
||||
|
||||
void initActiveInput(void); ///< Turn on analysis recovering input parameters
|
||||
void clearActiveInput(void) { isinputactive = false; } ///< Turn off analysis recovering input parameters
|
||||
|
@ -1651,6 +1651,7 @@ public:
|
|||
void deindirect(Funcdata &data,Funcdata *newfd);
|
||||
void forceSet(Funcdata &data,const FuncProto &fp);
|
||||
void insertPcode(Funcdata &data);
|
||||
void createPlaceholder(Funcdata &data,AddrSpace *spacebase);
|
||||
void resolveSpacebaseRelative(Funcdata &data,Varnode *phvn);
|
||||
void abortSpacebaseRelative(Funcdata &data);
|
||||
void finalInputCheck(void);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue