Ghidra 11.3.2
Ghidra internal decompiler documentation.
Loading...
Searching...
No Matches
ghidra::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 decode.
 
 LanedRegister (int4 sz, uint4 mask)
 Constructor.
 
void parseSizes (int4 registerSize, string laneSizes)
 Parse a vector_lane_sizes attribute.
 
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

◆ parseSizes()

void ghidra::LanedRegister::parseSizes ( int4  registerSize,
string  laneSizes 
)

Parse a vector_lane_sizes attribute.

Collect specific lane sizes in this object.

Parameters
registerSizeis the size of the laned register in bytes
laneSizesis a comma separated list of sizes

References addLaneSize(), sizeBitMask, and wholeSize.

Referenced by ghidra::Architecture::decodeRegisterData().


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