decompiler  1.0.0
Classes | Public Types | Public Member Functions | Private Attributes | Friends | List of all members
LanedRegister Class Reference

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
 

Detailed Description

Describes a (register) storage location and the ways it might be split into lanes.

Member Function Documentation

bool LanedRegister::restoreXml ( const Element el,
const AddrSpaceManager manage 
)

Restore object from XML stream.

Read XML of the form <register name=".." vector_lane_sizes=".."/>

Parameters
elis the particular register tag
manageis used to map register names to storage info
Returns
true if the XML description provides lane sizes

References Element::getAttributeName(), Element::getAttributeValue(), Element::getNumAttributes(), VarnodeData::restoreXml(), VarnodeData::size, VarnodeData::space, and LaneDescription::wholeSize.

Referenced by Architecture::parseLaneSizes().


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