decompiler
1.0.0
|
Describes a (register) storage location and the ways it might be split into lanes. More...
#include <transform.hh>
Classes | |
class | LanedIterator |
Class for iterating over possible lane sizes. More... | |
Public Types | |
typedef LanedIterator | const_iterator |
Iterator over possible lane sizes for this register. | |
Public Member Functions | |
LanedRegister (void) | |
Constructor for use with restoreXml. | |
LanedRegister (int4 sz, uint4 mask) | |
Constructor. | |
bool | restoreXml (const Element *el, const AddrSpaceManager *manage) |
Restore object from XML stream. More... | |
int4 | getWholeSize (void) const |
Get the size in bytes of the whole laned register. | |
uint4 | getSizeBitMask (void) const |
Get the bit mask of possible lane sizes. | |
void | addLaneSize (int4 size) |
Add a new size to the allowed list. | |
bool | allowedLane (int4 size) const |
Is size among the allowed lane sizes. | |
const_iterator | begin (void) const |
Starting iterator over possible lane sizes. | |
const_iterator | end (void) const |
Ending iterator over possible lane sizes. | |
Private Attributes | |
int4 | wholeSize |
Size of the whole register. | |
uint4 | sizeBitMask |
A 1-bit for every permissible lane size. | |
Friends | |
class | LanedIterator |
Describes a (register) storage location and the ways it might be split into lanes.
bool LanedRegister::restoreXml | ( | const Element * | el, |
const AddrSpaceManager * | manage | ||
) |
Restore object from XML stream.
Read XML of the form <register name=".." vector_lane_sizes=".."/>
el | is the particular register tag |
manage | is used to map register names to storage info |
References Element::getAttributeName(), Element::getAttributeValue(), Element::getNumAttributes(), VarnodeData::restoreXml(), VarnodeData::size, VarnodeData::space, and LaneDescription::wholeSize.
Referenced by Architecture::parseLaneSizes().