My Project
|
An edge between a Varnode and a PcodeOp. More...
#include <dynamic.hh>
Public Member Functions | |
ToOpEdge (const PcodeOp *o, int4 s) | |
Constructor. | |
const PcodeOp * | getOp (void) const |
Get the PcodeOp defining the edge. | |
int4 | getSlot (void) const |
Get the slot of the starting Varnode. | |
bool | operator< (const ToOpEdge &op2) const |
Compare two edges based on PcodeOp. More... | |
uint4 | hash (uint4 reg) const |
Hash this edge into an accumulator. More... | |
An edge between a Varnode and a PcodeOp.
A DynamicHash is defined on a sub-graph of the data-flow, and this defines an edge in the sub-graph. The edge can either be from an input Varnode to the PcodeOp that reads it, or from a PcodeOp to the Varnode it defines.
uint4 ToOpEdge::hash | ( | uint4 | reg | ) | const |
Hash this edge into an accumulator.
The hash accumulates:
The op-codes are translated so that the hash is invariant under common variants.
reg | is the incoming hash accumulator value |
bool ToOpEdge::operator< | ( | const ToOpEdge & | op2 | ) | const |