Minor cleanup from building & diffing behavior
authorSteve Reinhardt <stever@eecs.umich.edu>
Thu, 25 Mar 2004 07:29:10 +0000 (23:29 -0800)
committerSteve Reinhardt <stever@eecs.umich.edu>
Thu, 25 Mar 2004 07:29:10 +0000 (23:29 -0800)
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

base/hashmap.hh
cpu/exec_context.cc
sim/process.cc

index 995e98a901aacb7febae8f4ceeff217e400c609e..59c1fe3aacb7b2c1510aadf94aebda24be31b1b4 100644 (file)
@@ -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 {
index eedd8b8a8de1cd40775346987713200453df41e3..e7d3e0b91a9a77cfc8b2a51641ddc627d9b3d68b 100644 (file)
@@ -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
 
index c5eee4527b5e5e37e2088f476d7a6c862f548d2b..28d59e22c19269fd16c4c27c28453ca0094dcd37 100644 (file)
@@ -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;