diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2004-03-24 23:29:10 -0800 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2004-03-24 23:29:10 -0800 |
commit | aeb8e8ccb7d9a69e44c3943a5e82b6e58e7082f3 (patch) | |
tree | 234828776c4def1dd4a9bb783b52c4a49f9b6205 | |
parent | 97c11561ff75a9b0d1df14f628c0a398d2e00854 (diff) | |
download | gem5-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.hh | 2 | ||||
-rw-r--r-- | cpu/exec_context.cc | 2 | ||||
-rw-r--r-- | sim/process.cc | 1 |
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(®s, 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(®s, 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; |