mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 17:59:46 +02:00
Extending incidental copy
This commit is contained in:
parent
4fc507f711
commit
00ac31c788
8 changed files with 39 additions and 12 deletions
|
@ -106,7 +106,8 @@ public:
|
|||
special_prop = 0x8, ///< Does some special form of datatype propagation
|
||||
special_print = 0x10, ///< Op is marked for special printing
|
||||
modified = 0x20, ///< This op has been modified by the current action
|
||||
warning = 0x40 ///< Warning has been generated for this op
|
||||
warning = 0x40, ///< Warning has been generated for this op
|
||||
incidental_copy = 0x80 ///< Treat this as \e incidental for parameter recovery algorithms
|
||||
};
|
||||
private:
|
||||
TypeOp *opcode; ///< Pointer to class providing behavioral details of the operation
|
||||
|
@ -197,6 +198,7 @@ public:
|
|||
bool hasThisPointer(void) const { return ((addlflags&PcodeOp::has_thisptr)!=0); } ///< Return \b true if this is a call taking 'this' parameter
|
||||
bool isConstructor(void) const { return ((addlflags&PcodeOp::is_constructor)!=0); } ///< Return \b true if this is call to a constructor
|
||||
bool isDestructor(void) const { return ((addlflags&PcodeOp::is_destructor)!=0); } ///< Return \b true if this is call to a destructor
|
||||
bool isIncidentalCopy(void) const { return ((addlflags&PcodeOp::incidental_copy)!=0); } ///< Return \b true if \b this COPY is \e incidental
|
||||
/// \brief Return \b true if output is 1-bit boolean
|
||||
bool isCalculatedBool(void) const { return ((flags&(PcodeOp::calculated_bool|PcodeOp::booloutput))!=0); }
|
||||
/// \brief Return \b true if we have already examined this cpool
|
||||
|
@ -267,6 +269,7 @@ public:
|
|||
void markDead(PcodeOp *op); ///< Mark the given PcodeOp as \e dead
|
||||
void insertAfterDead(PcodeOp *op,PcodeOp *prev); ///< Insert the given PcodeOp after a point in the \e dead list
|
||||
void moveSequenceDead(PcodeOp *firstop,PcodeOp *lastop,PcodeOp *prev);
|
||||
void markIncidentalCopy(PcodeOp *firstop,PcodeOp *lastop); ///< Mark any COPY ops in the given range as \e incidental
|
||||
bool empty(void) const { return optree.empty(); } ///< Return \b true if there are no PcodeOps in \b this container
|
||||
PcodeOp *target(const Address &addr) const; ///< Find the first executing PcodeOp for a target address
|
||||
PcodeOp *findOp(const SeqNum &num) const; ///< Find a PcodeOp by sequence number
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue