summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/packet.hh2
-rw-r--r--src/mem/request.hh16
2 files changed, 16 insertions, 2 deletions
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index 4aee81f9b..cf31fa53d 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -1305,7 +1305,7 @@ class Packet : public Printable
bool
isMaskedWrite() const
{
- return (cmd == MemCmd::WriteReq && !req->getByteEnable().empty());
+ return (cmd == MemCmd::WriteReq && req->isMasked());
}
/**
diff --git a/src/mem/request.hh b/src/mem/request.hh
index 90d1ee3dd..b3268e02e 100644
--- a/src/mem/request.hh
+++ b/src/mem/request.hh
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2013,2017-2018 ARM Limited
+ * Copyright (c) 2012-2013,2017-2019 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -650,6 +650,20 @@ class Request
_byteEnable = be;
}
+ /**
+ * Returns true if the memory request is masked, which means
+ * there is at least one byteEnable element which is false
+ * (byte is masked)
+ */
+ bool
+ isMasked() const
+ {
+ return std::find(
+ _byteEnable.begin(),
+ _byteEnable.end(),
+ false) != _byteEnable.end();
+ }
+
/** Accessor for time. */
Tick
time() const