gem5  v20.1.0.0
Public Types | Public Member Functions | Private Attributes | List of all members
WriteMask Class Reference

#include <WriteMask.hh>

Public Types

typedef std::vector< std::pair< int, AtomicOpFunctor * > > AtomicOpVector
 

Public Member Functions

 WriteMask ()
 
 WriteMask (int size)
 
 WriteMask (int size, std::vector< bool > &mask)
 
 WriteMask (int size, std::vector< bool > &mask, AtomicOpVector atomicOp)
 
 ~WriteMask ()
 
void clear ()
 
bool test (int offset)
 
void setMask (int offset, int len)
 
void fillMask ()
 
bool getMask (int offset, int len) const
 
bool isOverlap (const WriteMask &readMask) const
 
bool cmpMask (const WriteMask &readMask) const
 
bool isEmpty () const
 
bool isFull () const
 
void orMask (const WriteMask &writeMask)
 
void print (std::ostream &out) const
 
void performAtomic (uint8_t *p) const
 
void performAtomic (DataBlock &blk) const
 
const AtomicOpVectorgetAtomicOps () const
 
void setAtomicOps (const AtomicOpVector &atomicOps)
 

Private Attributes

int mSize
 
std::vector< bool > mMask
 
bool mAtomic
 
AtomicOpVector mAtomicOp
 

Detailed Description

Definition at line 40 of file WriteMask.hh.

Member Typedef Documentation

◆ AtomicOpVector

Definition at line 43 of file WriteMask.hh.

Constructor & Destructor Documentation

◆ WriteMask() [1/4]

WriteMask::WriteMask ( )
inline

Definition at line 45 of file WriteMask.hh.

◆ WriteMask() [2/4]

WriteMask::WriteMask ( int  size)
inline

Definition at line 50 of file WriteMask.hh.

◆ WriteMask() [3/4]

WriteMask::WriteMask ( int  size,
std::vector< bool > &  mask 
)
inline

Definition at line 54 of file WriteMask.hh.

◆ WriteMask() [4/4]

WriteMask::WriteMask ( int  size,
std::vector< bool > &  mask,
AtomicOpVector  atomicOp 
)
inline

Definition at line 58 of file WriteMask.hh.

◆ ~WriteMask()

WriteMask::~WriteMask ( )
inline

Definition at line 62 of file WriteMask.hh.

Member Function Documentation

◆ clear()

void WriteMask::clear ( )
inline

Definition at line 66 of file WriteMask.hh.

References mMask, and mSize.

◆ cmpMask()

bool WriteMask::cmpMask ( const WriteMask readMask) const
inline

Definition at line 119 of file WriteMask.hh.

References ArmISA::i, mMask, and mSize.

◆ fillMask()

void WriteMask::fillMask ( )
inline

Definition at line 87 of file WriteMask.hh.

References ArmISA::i, mMask, and mSize.

◆ getAtomicOps()

const AtomicOpVector& WriteMask::getAtomicOps ( ) const
inline

Definition at line 190 of file WriteMask.hh.

References mAtomicOp.

◆ getMask()

bool WriteMask::getMask ( int  offset,
int  len 
) const
inline

Definition at line 95 of file WriteMask.hh.

References ArmISA::i, ArmISA::len, mMask, mSize, and ArmISA::offset.

◆ isEmpty()

bool WriteMask::isEmpty ( ) const
inline

Definition at line 131 of file WriteMask.hh.

References ArmISA::i, mMask, and mSize.

◆ isFull()

bool WriteMask::isFull ( ) const
inline

Definition at line 142 of file WriteMask.hh.

References ArmISA::i, mMask, and mSize.

◆ isOverlap()

bool WriteMask::isOverlap ( const WriteMask readMask) const
inline

Definition at line 106 of file WriteMask.hh.

References ArmISA::i, mMask, and mSize.

◆ orMask()

void WriteMask::orMask ( const WriteMask writeMask)
inline

Definition at line 153 of file WriteMask.hh.

References ArmISA::i, mAtomic, mAtomicOp, mMask, and mSize.

◆ performAtomic() [1/2]

void WriteMask::performAtomic ( DataBlock blk) const
inline

Definition at line 179 of file WriteMask.hh.

References DataBlock::getDataMod(), ArmISA::i, mAtomicOp, ArmISA::offset, and MipsISA::p.

◆ performAtomic() [2/2]

void WriteMask::performAtomic ( uint8_t *  p) const
inline

Definition at line 169 of file WriteMask.hh.

References ArmISA::i, mAtomicOp, ArmISA::offset, and MipsISA::p.

◆ print()

void WriteMask::print ( std::ostream &  out) const

Definition at line 36 of file WriteMask.cc.

References ArmISA::i, mMask, and mSize.

Referenced by operator<<().

◆ setAtomicOps()

void WriteMask::setAtomicOps ( const AtomicOpVector atomicOps)
inline

Definition at line 196 of file WriteMask.hh.

References mAtomic, and mAtomicOp.

◆ setMask()

void WriteMask::setMask ( int  offset,
int  len 
)
inline

Definition at line 79 of file WriteMask.hh.

References ArmISA::i, ArmISA::len, mMask, mSize, and ArmISA::offset.

◆ test()

bool WriteMask::test ( int  offset)
inline

Definition at line 72 of file WriteMask.hh.

References mMask, mSize, and ArmISA::offset.

Member Data Documentation

◆ mAtomic

bool WriteMask::mAtomic
private

Definition at line 205 of file WriteMask.hh.

Referenced by orMask(), and setAtomicOps().

◆ mAtomicOp

AtomicOpVector WriteMask::mAtomicOp
private

Definition at line 206 of file WriteMask.hh.

Referenced by getAtomicOps(), orMask(), performAtomic(), and setAtomicOps().

◆ mMask

std::vector<bool> WriteMask::mMask
private

◆ mSize

int WriteMask::mSize
private

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

Generated on Wed Sep 30 2020 14:02:34 for gem5 by doxygen 1.8.17