summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2016-08-15 12:00:36 +0100
committerNikos Nikoleris <nikos.nikoleris@arm.com>2016-08-15 12:00:36 +0100
commit25ce5db3a3e61d7c4d35ff7f841a5beb9b353a08 (patch)
treefa77e066654b105793c52d48495c99d79f90ae85
parent4c494965ab52e75428973a5b9aafa7cc923a05e8 (diff)
downloadgem5-25ce5db3a3e61d7c4d35ff7f841a5beb9b353a08.tar.xz
mem: Print an MSHR without triggering any assertions
Previously printing an mshr would trigger an assertion if the MSHR was not in service or if the targets list was empty. This patch changes the print function to bypasses the accessor functions for postInvalidate and postDowngrade and avoid the relevant assertions. It also checks if the targets list is empty before calling print on it. Change-Id: Ic18bee6cb088f63976112eba40e89501237cfe62 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
-rw-r--r--src/mem/cache/mshr.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mem/cache/mshr.cc b/src/mem/cache/mshr.cc
index 71cfca7bd..86b5a4c08 100644
--- a/src/mem/cache/mshr.cc
+++ b/src/mem/cache/mshr.cc
@@ -518,11 +518,13 @@ MSHR::print(std::ostream &os, int verbosity, const std::string &prefix) const
_isUncacheable ? "Unc" : "",
inService ? "InSvc" : "",
downstreamPending ? "DwnPend" : "",
- hasPostInvalidate() ? "PostInv" : "",
- hasPostDowngrade() ? "PostDowngr" : "");
+ postInvalidate ? "PostInv" : "",
+ postDowngrade ? "PostDowngr" : "");
- ccprintf(os, "%s Targets:\n", prefix);
- targets.print(os, verbosity, prefix + " ");
+ if (!targets.empty()) {
+ ccprintf(os, "%s Targets:\n", prefix);
+ targets.print(os, verbosity, prefix + " ");
+ }
if (!deferredTargets.empty()) {
ccprintf(os, "%s Deferred Targets:\n", prefix);
deferredTargets.print(os, verbosity, prefix + " ");