summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2004-03-24 23:29:10 -0800
committerSteve Reinhardt <stever@eecs.umich.edu>2004-03-24 23:29:10 -0800
commitaeb8e8ccb7d9a69e44c3943a5e82b6e58e7082f3 (patch)
tree234828776c4def1dd4a9bb783b52c4a49f9b6205
parent97c11561ff75a9b0d1df14f628c0a398d2e00854 (diff)
downloadgem5-aeb8e8ccb7d9a69e44c3943a5e82b6e58e7082f3.tar.xz
Minor cleanup from building & diffing behavior
on various platforms. base/hashmap.hh: gcc on Alpha doesn't always define __LP64__, even though it arguably should. cpu/exec_context.cc: Clear register file on non-full-system too (even though it typically gets overwritten by the initial regs from the Process object). sim/process.cc: Clear initial register copy in Process object. Not all regs get initialized when the executable is loaded. --HG-- extra : convert_revision : f1fe4734a5ea81331d70994cb5284b1e9db0dceb
-rw-r--r--base/hashmap.hh2
-rw-r--r--cpu/exec_context.cc2
-rw-r--r--sim/process.cc1
3 files changed, 4 insertions, 1 deletions
diff --git a/base/hashmap.hh b/base/hashmap.hh
index 995e98a90..59c1fe3aa 100644
--- a/base/hashmap.hh
+++ b/base/hashmap.hh
@@ -57,7 +57,7 @@ namespace m5 {
//
namespace __hash_namespace {
-#if !defined(__LP64__)
+#if !defined(__LP64__) && !defined(__alpha__)
template<>
struct hash<uint64_t> {
size_t operator()(uint64_t r) const {
diff --git a/cpu/exec_context.cc b/cpu/exec_context.cc
index eedd8b8a8..e7d3e0b91 100644
--- a/cpu/exec_context.cc
+++ b/cpu/exec_context.cc
@@ -60,6 +60,7 @@ ExecContext::ExecContext(BaseCPU *_cpu, int _thread_num,
process(_process), mem(process->getMemory()), asid(_asid),
func_exe_inst(0), storeCondFailures(0)
{
+ memset(&regs, 0, sizeof(RegFile));
}
ExecContext::ExecContext(BaseCPU *_cpu, int _thread_num,
@@ -67,6 +68,7 @@ ExecContext::ExecContext(BaseCPU *_cpu, int _thread_num,
: cpu(_cpu), thread_num(_thread_num), process(0), mem(_mem), asid(_asid),
func_exe_inst(0), storeCondFailures(0)
{
+ memset(&regs, 0, sizeof(RegFile));
}
#endif
diff --git a/sim/process.cc b/sim/process.cc
index c5eee4527..28d59e22c 100644
--- a/sim/process.cc
+++ b/sim/process.cc
@@ -75,6 +75,7 @@ Process::Process(const string &name,
// allocate initial register file
init_regs = new RegFile;
+ memset(init_regs, 0, sizeof(RegFile));
// initialize first 3 fds (stdin, stdout, stderr)
fd_map[STDIN_FILENO] = stdin_fd;