|
decompiler
1.0.0
|
Special AddrSpace for special/user-defined address spaces. More...
#include <space.hh>
Public Member Functions | |
| OtherSpace (AddrSpaceManager *m, const Translate *t, const string &nm, int4 ind) | |
| Constructor. More... | |
| OtherSpace (AddrSpaceManager *m, const Translate *t) | |
| For use with restoreXml. | |
| virtual void | printRaw (ostream &s, uintb offset) const |
| Write an address in this space to a stream. More... | |
| virtual void | saveXml (ostream &s) const |
| Write the details of this space as XML. More... | |
Public Member Functions inherited from AddrSpace | |
| AddrSpace (AddrSpaceManager *m, const Translate *t, spacetype tp, const string &nm, uint4 size, uint4 ws, int4 ind, uint4 fl, int4 dl) | |
| AddrSpace (AddrSpaceManager *m, const Translate *t, spacetype tp) | |
| For use with restoreXml. More... | |
| virtual | ~AddrSpace (void) |
| The address space destructor. | |
| const string & | getName (void) const |
| Get the name. More... | |
| AddrSpaceManager * | getManager (void) const |
| Get the space manager. More... | |
| const Translate * | getTrans (void) const |
| Get the processor translator. More... | |
| spacetype | getType (void) const |
| Get the type of space. More... | |
| int4 | getDelay (void) const |
| Get number of heritage passes being delayed. More... | |
| int4 | getDeadcodeDelay (void) const |
| Get number of passes before deadcode removal is allowed. More... | |
| int4 | getIndex (void) const |
| Get the integer identifier. More... | |
| uint4 | getWordSize (void) const |
| Get the addressable unit size. More... | |
| uint4 | getAddrSize (void) const |
| Get the size of the space. More... | |
| uintb | getHighest (void) const |
| Get the highest byte-scaled address. More... | |
| uintb | getPointerLowerBound (void) const |
| Get lower bound for assuming an offset is a pointer. More... | |
| uintb | getPointerUpperBound (void) const |
| Get upper bound for assuming an offset is a pointer. More... | |
| int4 | getMinimumPtrSize (void) const |
| Get the minimum pointer size for this space. More... | |
| uintb | wrapOffset (uintb off) const |
| Wrap -off- to the offset that fits into this space. More... | |
| char | getShortcut (void) const |
| Get the shortcut character. More... | |
| bool | isHeritaged (void) const |
| Return true if dataflow has been traced. More... | |
| bool | doesDeadcode (void) const |
| Return true if dead code analysis should be done on this space. More... | |
| bool | hasPhysical (void) const |
| Return true if data is physically stored in this. More... | |
| bool | isBigEndian (void) const |
| Return true if values in this space are big endian. More... | |
| bool | isReverseJustified (void) const |
| Return true if alignment justification does not match endianness. More... | |
| bool | isOverlay (void) const |
| Return true if this is an overlay space. | |
| bool | isOverlayBase (void) const |
| Return true if other spaces overlay this space. | |
| bool | isOtherSpace (void) const |
| Return true if this is the other address space. | |
| bool | isTruncated (void) const |
| Return true if this space is truncated from its original size. More... | |
| bool | hasNearPointers (void) const |
| Return true if near (truncated) pointers into this space are possible. | |
| void | printOffset (ostream &s, uintb offset) const |
| Write an address offset to a stream. More... | |
| virtual int4 | numSpacebase (void) const |
| Number of base registers associated with this space. More... | |
| virtual const VarnodeData & | getSpacebase (int4 i) const |
| Get a base register that creates this virtual space. More... | |
| virtual const VarnodeData & | getSpacebaseFull (int4 i) const |
| Return original spacebase register before truncation. More... | |
| virtual bool | stackGrowsNegative (void) const |
| Return true if a stack in this space grows negative. More... | |
| virtual AddrSpace * | getContain (void) const |
| Return this space's containing space (if any) More... | |
| virtual void | saveXmlAttributes (ostream &s, uintb offset) const |
| Save an address as XML. More... | |
| virtual void | saveXmlAttributes (ostream &s, uintb offset, int4 size) const |
| Save an address and size as XML. More... | |
| virtual uintb | restoreXmlAttributes (const Element *el, uint4 &size) const |
| Recover an offset and size. More... | |
| virtual uintb | read (const string &s, int4 &size) const |
| Read in an address (and possible size) from a string. More... | |
| virtual void | restoreXml (const Element *el) |
| Recover the details of this space from XML. More... | |
Additional Inherited Members | |
Public Types inherited from AddrSpace | |
| enum | { big_endian = 1, heritaged = 2, does_deadcode = 4, programspecific = 8, reverse_justification = 16, overlay = 32, overlaybase = 64, truncated = 128, hasphysical = 256, is_otherspace = 512, has_nearpointers = 0x400 } |
| enum | { constant_space_index = 0, other_space_index = 1 } |
Static Public Member Functions inherited from AddrSpace | |
| static uintb | addressToByte (uintb val, uint4 ws) |
| Scale from addressable units to byte units. More... | |
| static uintb | byteToAddress (uintb val, uint4 ws) |
| Scale from byte units to addressable units. More... | |
| static int4 | addressToByteInt (int4 val, uint4 ws) |
| Scale int4 from addressable units to byte units. More... | |
| static int4 | byteToAddressInt (int4 val, uint4 ws) |
| Scale int4 from byte units to addressable units. More... | |
| static bool | compareByIndex (const AddrSpace *a, const AddrSpace *b) |
| Compare two spaces by their index. More... | |
Protected Member Functions inherited from AddrSpace | |
| void | calcScaleMask (void) |
| Calculate scale and mask. More... | |
| void | setFlags (uint4 fl) |
| Set a cached attribute. More... | |
| void | clearFlags (uint4 fl) |
| Clear a cached attribute. More... | |
| void | saveBasicAttributes (ostream &s) const |
| Write the XML attributes of this space. More... | |
| void | truncateSpace (uint4 newsize) |
Protected Attributes inherited from AddrSpace | |
| string | name |
| Name of this space. | |
| uint4 | addressSize |
| Size of an address into this space in bytes. | |
| uint4 | wordsize |
| Size of unit being addressed (1=byte) | |
| int4 | minimumPointerSize |
| Smallest size of a pointer into this space (in bytes) | |
| int4 | index |
| An integer identifier for the space. | |
| int4 | delay |
| Delay in heritaging this space. | |
| int4 | deadcodedelay |
| Delay before deadcode removal is allowed on this space. | |
Special AddrSpace for special/user-defined address spaces.
| OtherSpace::OtherSpace | ( | AddrSpaceManager * | m, |
| const Translate * | t, | ||
| const string & | nm, | ||
| int4 | ind | ||
| ) |
Constructor.
Construct the other space, which is automatically constructed by the compiler, and is only constructed once. The name should always by OTHER.
| m | is the associated address space manager |
| t | is the associated processor translator |
| nm | is the name of the space |
| ind | is the integer identifier |
References AddrSpace::clearFlags(), AddrSpace::does_deadcode, AddrSpace::heritaged, AddrSpace::is_otherspace, and AddrSpace::setFlags().
|
virtual |
Write an address in this space to a stream.
This is a printing method for the debugging routines. It prints taking into account the wordsize, adding a "+n" if the offset is not on-cut with wordsize. It also returns the expected/typical size of values from this space.
| s | is the stream being written |
| offset | is the offset to be printed |
Reimplemented from AddrSpace.
|
virtual |
Write the details of this space as XML.
Write a tag fully describing the details of this space suitable for later recovery via restoreXml.
| s | is the stream being written |
Reimplemented from AddrSpace.
References AddrSpace::saveBasicAttributes().
1.8.11