diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2007-11-19 18:23:43 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2007-11-19 18:23:43 -0500 |
commit | 8026ecbb8e9f93894b15ac5422c58ecedfbf9fdf (patch) | |
tree | ce36c51aec53784f64a8ac36520775d76412f412 /src/mem | |
parent | fed9ee52fc551068b4b256f5e77b3bb924bbac05 (diff) | |
download | gem5-8026ecbb8e9f93894b15ac5422c58ecedfbf9fdf.tar.xz |
Memory: Cache the physical memory start and size so we don't need a dynamic cast on every access.
--HG--
extra : convert_revision : d6c3e93718991e7b68248242c80d8e6ac637ac51
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/physical.cc | 4 | ||||
-rw-r--r-- | src/mem/physical.hh | 6 |
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; |