MIPS specific fixes ... the main thing is that SMT threads get their own stack space...
authorKorey Sewell <ksewell@umich.edu>
Fri, 14 Jul 2006 08:52:08 +0000 (04:52 -0400)
committerKorey Sewell <ksewell@umich.edu>
Fri, 14 Jul 2006 08:52:08 +0000 (04:52 -0400)
src/arch/mips/isa_traits.hh:
    MaxAddr is defined in config.py now
src/arch/mips/process.cc:
    adjust process so SMT threads get their own stack space
src/arch/mips/process.hh:
    add stack_start static variable

--HG--
extra : convert_revision : 73fdf3da9831d86536651835d209806c7f0d59da

src/arch/mips/isa_traits.hh
src/arch/mips/process.cc
src/arch/mips/process.hh

index ff994bef99b1fa17368d0a2dd75702116e126d14..2f485c7fd990aaa24b07dbb72d1b008bb749427a 100644 (file)
@@ -129,7 +129,7 @@ namespace MipsISA
     template <class TC>
     void zeroRegisters(TC *tc);
 
-    const Addr MaxAddr = (Addr)-1;
+//    const Addr MaxAddr = (Addr)-1;
 
     void copyRegs(ThreadContext *src, ThreadContext *dest);
 
index 031c2030ec10f3b6cc5b0467e0e1136001f8b808..cb847fe04fbe2811b0a94a346c9ffeb385765fc4 100644 (file)
@@ -41,6 +41,8 @@
 using namespace std;
 using namespace MipsISA;
 
+Addr MipsLiveProcess::stack_start = 0x7FFFFFFF;
+
 MipsLiveProcess::MipsLiveProcess(const std::string &nm, ObjectFile *objFile,
         System *_system, int stdin_fd, int stdout_fd, int stderr_fd,
         std::vector<std::string> &argv, std::vector<std::string> &envp)
@@ -49,10 +51,11 @@ MipsLiveProcess::MipsLiveProcess(const std::string &nm, ObjectFile *objFile,
 {
     // Set up stack. On MIPS, stack starts at the top of kuseg
     // user address space. MIPS stack grows down from here
-    stack_base = 0x7FFFFFFF;
+    stack_base = stack_start;
 
     // Set pointer for next thread stack.  Reserve 8M for main stack.
     next_thread_stack_base = stack_base - (8 * 1024 * 1024);
+    stack_start = next_thread_stack_base;
 
     // Set up break point (Top of Heap)
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
index b0ef20399022b2313c4511b82006d1183200d371..4baee134b50f2efb60ac87c099f66f66b8c376eb 100644 (file)
@@ -50,6 +50,9 @@ class MipsLiveProcess : public LiveProcess
                 std::vector<std::string> &envp);
 
     void startup();
+
+
+    static Addr stack_start;
 };