diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2012-08-16 23:45:21 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2012-08-16 23:45:21 -0500 |
commit | 649e37793776757d4076ce194fbe537b8d49e1db (patch) | |
tree | 2f3b8a82888096660d01fa661b94e53f054d79d1 | |
parent | 0b3897fc90901953e9d016466c37ab507f85023c (diff) | |
download | gem5-649e37793776757d4076ce194fbe537b8d49e1db.tar.xz |
Alpha System: override startup(), instead of loadState()
Alpha System was overriding loadState() function to setup some functional
event. The system tried to read/write to memory before the Ruby memory had
unserialized the state. With this patch, Alpha System overrides the
startup() function, and sets up functional events in this function. This
works because startup() is called after Ruby memory system has unserialized
the memory state.
-rw-r--r-- | src/arch/alpha/system.cc | 9 | ||||
-rw-r--r-- | src/arch/alpha/system.hh | 4 |
2 files changed, 3 insertions, 10 deletions
diff --git a/src/arch/alpha/system.cc b/src/arch/alpha/system.cc index 51e1d7e07..ca3c2b078 100644 --- a/src/arch/alpha/system.cc +++ b/src/arch/alpha/system.cc @@ -134,21 +134,14 @@ AlphaSystem::initState() virtProxy.write(addr+0x58, data); } else panic("could not find hwrpb\n"); - - // Setup all the function events now that we have a system and a symbol - // table - setupFuncEvents(); } void -AlphaSystem::loadState(Checkpoint *cp) +AlphaSystem::startup() { - System::loadState(cp); - // Setup all the function events now that we have a system and a symbol // table setupFuncEvents(); - } void diff --git a/src/arch/alpha/system.hh b/src/arch/alpha/system.hh index d832dfe77..024d8bb47 100644 --- a/src/arch/alpha/system.hh +++ b/src/arch/alpha/system.hh @@ -62,9 +62,9 @@ class AlphaSystem : public System virtual void serialize(std::ostream &os); virtual void unserialize(Checkpoint *cp, const std::string §ion); - /** Override loadState to provide a path to call setupFuncEvents() + /** Override startup() to provide a path to call setupFuncEvents() */ - virtual void loadState(Checkpoint *cp); + virtual void startup(); /** * Set the m5AlphaAccess pointer in the console |