diff --git a/src/mem/physical.cc b/src/mem/physical.cc index 8c56d340f8..a3a9df64e8 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 b06cc90f83..c3749bd5bc 100644 --- a/src/mem/physical.hh +++ b/src/mem/physical.hh @@ -149,10 +149,12 @@ class PhysicalMemory : public MemObject std::vector ports; typedef std::vector::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;