decompiler  1.0.0
Public Member Functions | List of all members
RuleCollapseConstants Class Reference

Collapse constant expressions. More...

Inheritance diagram for RuleCollapseConstants:
Rule

Public Member Functions

virtual Ruleclone (const ActionGroupList &grouplist) const
 Clone the Rule. More...
 
virtual int4 applyOp (PcodeOp *op, Funcdata &data)
 Attempt to apply this Rule. More...
 
- Public Member Functions inherited from Rule
 Rule (const string &g, uint4 fl, const string &nm)
 Construct given group, properties name. More...
 
bool checkActionBreak (void)
 Check if an action breakpoint is turned on. More...
 
virtual void getOpList (vector< uint4 > &oplist) const
 List of op codes this rule operates on. More...
 
virtual void reset (Funcdata &data)
 Reset this Rule. More...
 
virtual void resetStats (void)
 Reset Rule statistics. More...
 
virtual void printStatistics (ostream &s) const
 Print statistics for this Rule. More...
 

Additional Inherited Members

- Public Types inherited from Rule
enum  typeflags { type_disable = 1, rule_debug = 2, warnings_on = 4, warnings_given = 8 }
 Properties associated with a Rule. More...
 

Detailed Description

Collapse constant expressions.

Member Function Documentation

◆ applyOp()

int4 RuleCollapseConstants::applyOp ( PcodeOp op,
Funcdata data 
)
virtual

Attempt to apply this Rule.

This method contains the main logic for applying the Rule. It must use a given PcodeOp as the point at which the Rule applies. If it does apply, changes are made directly to the function and 1 (non-zero) is returned, otherwise 0 is returned.

Parameters
opis the given PcodeOp where the Rule may apply
datais the function to which to apply

Reimplemented from Rule.

References PcodeOp::collapse(), PcodeOp::collapseConstantSymbol(), CPUI_COPY, PcodeOp::isCollapsible(), Funcdata::newVarnode(), Funcdata::opRemoveInput(), Funcdata::opSetInput(), and Funcdata::opSetOpcode().

◆ clone()

virtual Rule* RuleCollapseConstants::clone ( const ActionGroupList grouplist) const
inlinevirtual

Clone the Rule.

If this Rule is a member of one of the groups in the grouplist, this returns a clone of the Rule, otherwise NULL is returned.

Parameters
grouplistis the list of groups being cloned
Returns
the cloned Rule or NULL

Implements Rule.

References ActionGroupList::contains().


The documentation for this class was generated from the following files: