summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/physical.cc4
-rw-r--r--src/mem/physical.hh6
2 files changed, 8 insertions, 2 deletions
diff --git a/src/mem/physical.cc b/src/mem/physical.cc
index 8c56d340f..a3a9df64e 100644
--- a/src/mem/physical.cc
+++ b/src/mem/physical.cc
@@ -70,6 +70,10 @@ PhysicalMemory::PhysicalMemory(const Params *p)
memset(pmemAddr, 0, p->range.size());
pagePtr = 0;
+
+ cachedSize = params()->range.size();
+ cachedStart = params()->range.start;
+
}
void
diff --git a/src/mem/physical.hh b/src/mem/physical.hh
index b06cc90f8..c3749bd5b 100644
--- a/src/mem/physical.hh
+++ b/src/mem/physical.hh
@@ -149,10 +149,12 @@ class PhysicalMemory : public MemObject
std::vector<MemoryPort*> ports;
typedef std::vector<MemoryPort*>::iterator PortIterator;
+ uint64_t cachedSize;
+ uint64_t cachedStart;
public:
Addr new_page();
- uint64_t size() { return params()->range.size(); }
- uint64_t start() { return params()->range.start; }
+ uint64_t size() { return cachedSize; }
+ uint64_t start() { return cachedStart; }
public:
typedef PhysicalMemoryParams Params;