41#ifndef __MEM_RUBY_COMMON_WRITEMASK_HH__
42#define __MEM_RUBY_COMMON_WRITEMASK_HH__
98 for (
int i = 0;
i <
len;
i++) {
115 for (
int i = 0;
i <
len;
i++) {
127 if (readMask.
mMask.at(
i)) {
140 if (readMask.
mMask.at(
i)) {
223 void print(std::ostream& out)
const;
234 bool isAtomicNoReturn=
true)
const;
void performAtomic(uint8_t *p, std::deque< uint8_t * > &atomicChangeLog, bool isAtomicNoReturn=true) const
bool getMask(int offset, int len) const
bool isOverlap(const WriteMask &readMask) const
std::vector< std::pair< int, AtomicOpFunctor * > > AtomicOpVector
bool containsMask(const WriteMask &readMask) const
int count(int offset=0) const
void setMask(int offset, int len, bool val=true)
std::vector< bool > mMask
WriteMask(int size, std::vector< bool > &mask, AtomicOpVector atomicOp)
void setInvertedMask(const WriteMask &writeMask)
bool test(int offset) const
void orMask(const WriteMask &writeMask)
const AtomicOpVector & getAtomicOps() const
WriteMask(int size, std::vector< bool > &mask)
void print(std::ostream &out) const
void andMask(const WriteMask &writeMask)
void setAtomicOps(const AtomicOpVector &atomicOps)
int firstBitSet(bool val, int offset=0) const
std::ostream & operator<<(std::ostream &os, const BoolVec &myvector)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.