mem-ruby: add andMask to WriteMask

Change-Id: Ieeb68b405a68226077a2ffee231408f554e758a5
Signed-off-by: Tiago Mück <tiago.muck@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/41154
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Tiago Mück
2020-09-28 19:15:33 -05:00
parent 8839beb492
commit d789b75a98
2 changed files with 16 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 ARM Limited
* Copyright (c) 2020,2021 ARM Limited
* All rights reserved.
*
* The license below extends only to copyright in the software and shall
@@ -159,6 +159,20 @@ class WriteMask
return true;
}
void
andMask(const WriteMask & writeMask)
{
assert(mSize == writeMask.mSize);
for (int i = 0; i < mSize; i++) {
mMask[i] = (mMask.at(i)) & (writeMask.mMask.at(i));
}
if (writeMask.mAtomic) {
mAtomic = true;
mAtomicOp = writeMask.mAtomicOp;
}
}
void
orMask(const WriteMask & writeMask)
{

View File

@@ -57,6 +57,7 @@ structure(WriteMask, external="yes", desc="...") {
bool isEmpty();
bool isFull();
bool isOverlap(WriteMask);
void andMask(WriteMask);
void orMask(WriteMask);
void setInvertedMask(WriteMask);
void fillMask();