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 decode. | |
LanedRegister (int4 sz, uint4 mask) | |
Constructor. | |
bool | decode (Decoder &decoder) |
Parse <register> elements for lane sizes. 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 ghidra::LanedRegister::decode | ( | Decoder & | decoder | ) |
Parse <register> elements for lane sizes.
Parse any vector lane sizes.
decoder | is the stream decoder |
References ghidra::Decoder::closeElement(), ghidra::VarnodeData::decodeFromAttributes(), ghidra::Decoder::getNextAttributeId(), ghidra::Decoder::openElement(), ghidra::Decoder::readString(), ghidra::Decoder::rewindAttributes(), ghidra::VarnodeData::size, ghidra::VarnodeData::space, and ghidra::LaneDescription::wholeSize.
Referenced by ghidra::Architecture::decodeLaneSizes().