|
| SplitVarnode (int4 sz, uintb v) |
|
| SplitVarnode (Varnode *l, Varnode *h) |
|
void | initAll (Varnode *w, Varnode *l, Varnode *h) |
|
void | initPartial (int4 sz, uintb v) |
|
void | initPartial (Varnode *l, Varnode *h) |
|
bool | inHandHi (Varnode *h) |
|
bool | inHandLo (Varnode *l) |
|
bool | inHandLoNoHi (Varnode *l) |
|
bool | inHandHiOut (Varnode *h) |
|
bool | inHandLoOut (Varnode *h) |
|
bool | isConstant (void) const |
|
bool | hasBothPieces (void) const |
|
int4 | getSize (void) const |
|
Varnode * | getLo (void) const |
|
Varnode * | getHi (void) const |
|
Varnode * | getWhole (void) const |
|
PcodeOp * | getDefPoint (void) const |
|
BlockBasic * | getDefBlock (void) const |
|
uintb | getValue (void) const |
|
bool | isWholeFeasible (PcodeOp *existop) |
|
bool | isWholePhiFeasible (FlowBlock *bl) |
|
void | findCreateWhole (Funcdata &data) |
|
void | findCreateOutputWhole (Funcdata &data) |
|
void | createJoinedWhole (Funcdata &data) |
|
void | buildLoFromWhole (Funcdata &data) |
|
void | buildHiFromWhole (Funcdata &data) |
|
PcodeOp * | findEarliestSplitPoint (void) |
|
PcodeOp * | findOutExist (void) |
|
|
static bool | adjacentOffsets (Varnode *vn1, Varnode *vn2, uintb size1) |
|
static bool | testContiguousLoad (PcodeOp *most, PcodeOp *least, bool allowfree, PcodeOp *&first, PcodeOp *&second, AddrSpace *&spc, int4 &sizeres) |
|
static bool | isAddrTiedContiguous (Varnode *lo, Varnode *hi, Address &res) |
|
static void | wholeList (Varnode *w, vector< SplitVarnode > &splitvec) |
|
static void | findCopies (const SplitVarnode &in, vector< SplitVarnode > &splitvec) |
|
static void | getTrueFalse (PcodeOp *boolop, bool flip, BlockBasic *&trueout, BlockBasic *&falseout) |
|
static bool | otherwiseEmpty (PcodeOp *branchop) |
|
static bool | verifyMultNegOne (PcodeOp *op) |
|
static PcodeOp * | prepareBinaryOp (SplitVarnode &out, SplitVarnode &in1, SplitVarnode &in2) |
|
static void | createBinaryOp (Funcdata &data, SplitVarnode &out, SplitVarnode &in1, SplitVarnode &in2, PcodeOp *existop, OpCode opc) |
|
static PcodeOp * | prepareShiftOp (SplitVarnode &out, SplitVarnode &in) |
|
static void | createShiftOp (Funcdata &data, SplitVarnode &out, SplitVarnode &in, Varnode *sa, PcodeOp *existop, OpCode opc) |
|
static void | replaceBoolOp (Funcdata &data, PcodeOp *boolop, SplitVarnode &in1, SplitVarnode &in2, OpCode opc) |
|
static bool | prepareBoolOp (SplitVarnode &in1, SplitVarnode &in2, PcodeOp *testop) |
|
static void | createBoolOp (Funcdata &data, PcodeOp *cbranch, SplitVarnode &in1, SplitVarnode &in2, OpCode opc) |
|
static PcodeOp * | preparePhiOp (SplitVarnode &out, vector< SplitVarnode > &inlist) |
|
static void | createPhiOp (Funcdata &data, SplitVarnode &out, vector< SplitVarnode > &inlist, PcodeOp *existop) |
|
static bool | prepareIndirectOp (SplitVarnode &in, PcodeOp *affector) |
|
static void | replaceIndirectOp (Funcdata &data, SplitVarnode &out, SplitVarnode &in, PcodeOp *affector) |
|
static int4 | applyRuleIn (SplitVarnode &in, Funcdata &data) |
|