decompiler  1.0.0
Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
SeqNum Class Reference

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 AddressgetAddr (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.
 

Detailed Description

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:


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