decompiler
1.0.0
|
A class for uniquely labelling and comparing PcodeOps. More...
#include <address.hh>
Public Member Functions | |
SeqNum (void) | |
Create an invalid sequence number. | |
SeqNum (Address::mach_extreme ex) | |
Create an extremal sequence number. | |
SeqNum (const Address &a, uintm b) | |
Create a sequence number with a specific time field. | |
SeqNum (const SeqNum &op2) | |
Copy a sequence number. | |
const Address & | getAddr (void) const |
Get the address portion of a sequence number. | |
uintm | getTime (void) const |
Get the time field of a sequence number. | |
uintm | getOrder (void) const |
Get the order field of a sequence number. | |
void | setOrder (uintm ord) |
Set the order field of a sequence number. | |
bool | operator== (const SeqNum &op2) const |
Compare two sequence numbers for equality. | |
bool | operator!= (const SeqNum &op2) const |
Compare two sequence numbers for inequality. | |
bool | operator< (const SeqNum &op2) const |
Compare two sequence numbers with their natural order. | |
void | saveXml (ostream &s) const |
Save a SeqNum to a stream as an XML tag. | |
Static Public Member Functions | |
static SeqNum | restoreXml (const Element *el, const AddrSpaceManager *manage) |
Restore a SeqNum from parsed XML. | |
Private Attributes | |
Address | pc |
Program counter at start of instruction. | |
uintm | uniq |
Number to guarantee uniqueness. | |
uintm | order |
Number for order comparisons within a block. | |
Friends | |
ostream & | operator<< (ostream &s, const SeqNum &sq) |
Write out a SeqNum to a stream. | |
A class for uniquely labelling and comparing PcodeOps.
Different PcodeOps generated by a single machine instruction can only be labelled with a single Address. But PcodeOps must be distinguishable and compared for execution order. A SeqNum extends the address for a PcodeOp to include: