mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
Attach handling of "this" to ProtoParameter
This commit is contained in:
parent
bcc0f7fe38
commit
004a99bb87
29 changed files with 338 additions and 149 deletions
|
@ -100,15 +100,12 @@ public:
|
|||
indirect_store = 0x80000000 ///< CPUI_INDIRECT is caused by CPUI_STORE
|
||||
};
|
||||
enum {
|
||||
has_thisptr = 0x1, ///< First parameter ( getIn(1) ) is a this pointer
|
||||
is_constructor = 0x2, ///< Op is call to a constructor
|
||||
is_destructor = 0x4, ///< Op is call to a destructor
|
||||
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
|
||||
incidental_copy = 0x80, ///< Treat this as \e incidental for parameter recovery algorithms
|
||||
is_cpool_transformed = 0x100 ///< Have we checked for cpool transforms
|
||||
special_prop = 1, ///< Does some special form of datatype propagation
|
||||
special_print = 2, ///< Op is marked for special printing
|
||||
modified = 4, ///< This op has been modified by the current action
|
||||
warning = 8, ///< Warning has been generated for this op
|
||||
incidental_copy = 0x10, ///< Treat this as \e incidental for parameter recovery algorithms
|
||||
is_cpool_transformed = 0x20 ///< Have we checked for cpool transforms
|
||||
};
|
||||
private:
|
||||
TypeOp *opcode; ///< Pointer to class providing behavioral details of the operation
|
||||
|
@ -199,9 +196,6 @@ public:
|
|||
bool isSplitting(void) const { return ((flags&PcodeOp::splittingbranch)!=0); } ///< Return \b true if this branch splits
|
||||
bool doesSpecialPropagation(void) const { return ((addlflags&PcodeOp::special_prop)!=0); } ///< Return \b true if this does datatype propagation
|
||||
bool doesSpecialPrinting(void) const { return ((addlflags&PcodeOp::special_print)!=0); } ///< Return \b true if this needs to special printing
|
||||
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); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue