gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ruby::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 ()
 
int getBlockSize () const
 
void setBlockSize (int size)
 
int getBlockSizeBits () const
 
void clear ()
 
bool test (int offset) const
 
void setMask (int offset, int len, bool val=true)
 
void fillMask ()
 
bool getMask (int offset, int len) const
 
bool isOverlap (const WriteMask &readMask) const
 
bool containsMask (const WriteMask &readMask) const
 
bool isEmpty () const
 
bool isFull () const
 
void andMask (const WriteMask &writeMask)
 
void orMask (const WriteMask &writeMask)
 
void setInvertedMask (const WriteMask &writeMask)
 
int firstBitSet (bool val, int offset=0) const
 
int count (int offset=0) const
 
void print (std::ostream &out) const
 
void performAtomic (uint8_t *p, std::deque< uint8_t * > &atomicChangeLog, bool isAtomicNoReturn=true) 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 60 of file WriteMask.hh.

Member Typedef Documentation

◆ AtomicOpVector

Constructor & Destructor Documentation

◆ WriteMask() [1/4]

gem5::ruby::WriteMask::WriteMask ( )

Definition at line 41 of file WriteMask.cc.

References mAtomic, mMask, and mSize.

Referenced by andMask(), containsMask(), isOverlap(), orMask(), and setInvertedMask().

◆ WriteMask() [2/4]

gem5::ruby::WriteMask::WriteMask ( int size)
inline

Definition at line 67 of file WriteMask.hh.

References mAtomic, mMask, and mSize.

◆ WriteMask() [3/4]

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

Definition at line 71 of file WriteMask.hh.

References gem5::ArmISA::mask, mAtomic, mMask, and mSize.

◆ WriteMask() [4/4]

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

Definition at line 75 of file WriteMask.hh.

References gem5::ArmISA::mask, mAtomic, mAtomicOp, mMask, and mSize.

◆ ~WriteMask()

gem5::ruby::WriteMask::~WriteMask ( )
inline

Definition at line 79 of file WriteMask.hh.

Member Function Documentation

◆ andMask()

void gem5::ruby::WriteMask::andMask ( const WriteMask & writeMask)
inline

Definition at line 191 of file WriteMask.hh.

References gem5::ArmISA::i, mAtomic, mAtomicOp, mMask, mSize, and WriteMask().

◆ clear()

void gem5::ruby::WriteMask::clear ( )
inline

Definition at line 96 of file WriteMask.hh.

References mMask, and mSize.

Referenced by setBlockSize().

◆ containsMask()

bool gem5::ruby::WriteMask::containsMask ( const WriteMask & readMask) const
inline

Definition at line 154 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, mSize, and WriteMask().

◆ count()

int gem5::ruby::WriteMask::count ( int offset = 0) const
inline

Definition at line 241 of file WriteMask.hh.

References count(), gem5::ArmISA::i, mMask, mSize, and gem5::ArmISA::offset.

Referenced by count().

◆ fillMask()

void gem5::ruby::WriteMask::fillMask ( )
inline

Definition at line 119 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, and mSize.

◆ firstBitSet()

int gem5::ruby::WriteMask::firstBitSet ( bool val,
int offset = 0 ) const
inline

Definition at line 231 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, mSize, gem5::ArmISA::offset, and gem5::X86ISA::val.

◆ getAtomicOps()

const AtomicOpVector & gem5::ruby::WriteMask::getAtomicOps ( ) const
inline

Definition at line 264 of file WriteMask.hh.

References mAtomicOp.

◆ getBlockSize()

int gem5::ruby::WriteMask::getBlockSize ( ) const
inline

Definition at line 82 of file WriteMask.hh.

References mSize.

◆ getBlockSizeBits()

int gem5::ruby::WriteMask::getBlockSizeBits ( ) const
inline

Definition at line 93 of file WriteMask.hh.

References gem5::floorLog2(), and mSize.

◆ getMask()

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

Definition at line 128 of file WriteMask.hh.

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

◆ isEmpty()

bool gem5::ruby::WriteMask::isEmpty ( ) const
inline

Definition at line 167 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, and mSize.

Referenced by gem5::ruby::RubySystem::partialFunctionalRead().

◆ isFull()

bool gem5::ruby::WriteMask::isFull ( ) const
inline

Definition at line 179 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, and mSize.

Referenced by gem5::ruby::RubySystem::partialFunctionalRead().

◆ isOverlap()

bool gem5::ruby::WriteMask::isOverlap ( const WriteMask & readMask) const
inline

Definition at line 140 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, mSize, and WriteMask().

◆ orMask()

void gem5::ruby::WriteMask::orMask ( const WriteMask & writeMask)
inline

Definition at line 206 of file WriteMask.hh.

References gem5::ArmISA::i, mAtomic, mAtomicOp, mMask, mSize, and WriteMask().

◆ performAtomic()

void gem5::ruby::WriteMask::performAtomic ( uint8_t * p,
std::deque< uint8_t * > & atomicChangeLog,
bool isAtomicNoReturn = true ) const

Definition at line 59 of file WriteMask.cc.

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

◆ print()

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

Definition at line 46 of file WriteMask.cc.

References gem5::ArmISA::i, mMask, and mSize.

Referenced by gem5::ruby::operator<<().

◆ setAtomicOps()

void gem5::ruby::WriteMask::setAtomicOps ( const AtomicOpVector & atomicOps)
inline

Definition at line 270 of file WriteMask.hh.

References mAtomic, and mAtomicOp.

◆ setBlockSize()

void gem5::ruby::WriteMask::setBlockSize ( int size)
inline

Definition at line 84 of file WriteMask.hh.

References clear(), and mSize.

Referenced by gem5::ruby::RubySystem::partialFunctionalRead().

◆ setInvertedMask()

void gem5::ruby::WriteMask::setInvertedMask ( const WriteMask & writeMask)
inline

Definition at line 221 of file WriteMask.hh.

References gem5::ArmISA::i, mMask, mSize, and WriteMask().

◆ setMask()

void gem5::ruby::WriteMask::setMask ( int offset,
int len,
bool val = true )
inline

◆ test()

bool gem5::ruby::WriteMask::test ( int offset) const
inline

Definition at line 102 of file WriteMask.hh.

References mMask, mSize, and gem5::ArmISA::offset.

Member Data Documentation

◆ mAtomic

bool gem5::ruby::WriteMask::mAtomic
private

Definition at line 279 of file WriteMask.hh.

Referenced by andMask(), orMask(), setAtomicOps(), WriteMask(), WriteMask(), WriteMask(), and WriteMask().

◆ mAtomicOp

AtomicOpVector gem5::ruby::WriteMask::mAtomicOp
private

Definition at line 280 of file WriteMask.hh.

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

◆ mMask

◆ mSize


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

Generated on Mon May 26 2025 09:19:37 for gem5 by doxygen 1.13.2