SE/FS: Remove the last uses of FULL_SYSTEM from SPARC.
authorGabe Black <gblack@eecs.umich.edu>
Mon, 31 Oct 2011 09:58:24 +0000 (02:58 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 31 Oct 2011 09:58:24 +0000 (02:58 -0700)
src/arch/sparc/SConscript
src/arch/sparc/faults.cc
src/arch/sparc/isa/formats/mem/util.isa
src/arch/sparc/ua2005.cc

index 974d60ddc7a8e4270c70315aac530d44acc1ba98..75a3590e735bc9c9882b5814087d461be2894074 100644 (file)
@@ -36,9 +36,16 @@ if env['TARGET_ISA'] == 'sparc':
     Source('faults.cc')
     Source('interrupts.cc')
     Source('isa.cc')
+    Source('linux/linux.cc')
+    Source('linux/process.cc')
+    Source('linux/syscalls.cc')
     Source('nativetrace.cc')
     Source('pagetable.cc')
+    Source('process.cc')
     Source('remote_gdb.cc')
+    Source('solaris/process.cc')
+    Source('solaris/solaris.cc')
+    Source('system.cc')
     Source('tlb.cc')
     Source('ua2005.cc')
     Source('utility.cc')
@@ -46,25 +53,12 @@ if env['TARGET_ISA'] == 'sparc':
 
     SimObject('SparcInterrupts.py')
     SimObject('SparcNativeTrace.py')
+    SimObject('SparcSystem.py')
     SimObject('SparcTLB.py')
 
     DebugFlag('Sparc', "Generic SPARC ISA stuff")
     DebugFlag('RegisterWindows', "Register window manipulation")
 
-    if env['FULL_SYSTEM']:
-        SimObject('SparcSystem.py')
-
-        Source('system.cc')
-    else:
-        Source('process.cc')
-
-        Source('linux/linux.cc')
-        Source('linux/process.cc')
-        Source('linux/syscalls.cc')
-
-        Source('solaris/process.cc')
-        Source('solaris/solaris.cc')
-
     # Add in files generated by the ISA description.
     isa_desc_files = env.ISADesc('isa/main.isa')
     # Only non-header files need to be compiled.
index 584b8299c80b04fd35ee72f872552e1004b56fc6..a737b328d5ae2d55badc2725bda3503481a06052 100644 (file)
 
 #include "arch/sparc/faults.hh"
 #include "arch/sparc/isa_traits.hh"
+#include "arch/sparc/process.hh"
 #include "arch/sparc/types.hh"
 #include "base/bitfield.hh"
 #include "base/trace.hh"
 #include "sim/full_system.hh"
 #include "cpu/base.hh"
 #include "cpu/thread_context.hh"
-#if !FULL_SYSTEM
-#include "arch/sparc/process.hh"
-#endif
 #include "mem/page_table.hh"
 #include "sim/process.hh"
 #include "sim/full_system.hh"
@@ -666,64 +664,64 @@ FastDataAccessMMUMiss::invoke(ThreadContext *tc, StaticInstPtr inst)
 void
 SpillNNormal::invoke(ThreadContext *tc, StaticInstPtr inst)
 {
-#if !FULL_SYSTEM
-    doNormalFault(tc, trapType(), false);
+    if (FullSystem) {
+        SparcFaultBase::invoke(tc, inst);
+    } else {
+        doNormalFault(tc, trapType(), false);
 
-    Process *p = tc->getProcessPtr();
+        Process *p = tc->getProcessPtr();
 
-    //XXX This will only work in faults from a SparcLiveProcess
-    SparcLiveProcess *lp = dynamic_cast<SparcLiveProcess *>(p);
-    assert(lp);
+        //XXX This will only work in faults from a SparcLiveProcess
+        SparcLiveProcess *lp = dynamic_cast<SparcLiveProcess *>(p);
+        assert(lp);
 
-    // Then adjust the PC and NPC
-    tc->pcState(lp->readSpillStart());
-#else
-    SparcFaultBase::invoke(tc, inst);
-#endif
+        // Then adjust the PC and NPC
+        tc->pcState(lp->readSpillStart());
+    }
 }
 
 void
 FillNNormal::invoke(ThreadContext *tc, StaticInstPtr inst)
 {
-#if !FULL_SYSTEM
-    doNormalFault(tc, trapType(), false);
+    if (FullSystem) {
+        SparcFaultBase::invoke(tc, inst);
+    } else {
+        doNormalFault(tc, trapType(), false);
 
-    Process *p = tc->getProcessPtr();
+        Process *p = tc->getProcessPtr();
 
-    //XXX This will only work in faults from a SparcLiveProcess
-    SparcLiveProcess *lp = dynamic_cast<SparcLiveProcess *>(p);
-    assert(lp);
+        //XXX This will only work in faults from a SparcLiveProcess
+        SparcLiveProcess *lp = dynamic_cast<SparcLiveProcess *>(p);
+        assert(lp);
 
-    // Then adjust the PC and NPC
-    tc->pcState(lp->readFillStart());
-#else
-    SparcFaultBase::invoke(tc, inst);
-#endif
+        // Then adjust the PC and NPC
+        tc->pcState(lp->readFillStart());
+    }
 }
 
 void
 TrapInstruction::invoke(ThreadContext *tc, StaticInstPtr inst)
 {
-#if !FULL_SYSTEM
-    // In SE, this mechanism is how the process requests a service from the
-    // operating system. We'll get the process object from the thread context
-    // and let it service the request.
+    if (FullSystem) {
+        SparcFaultBase::invoke(tc, inst);
+    } else {
+        // In SE, this mechanism is how the process requests a service from
+        // the operating system. We'll get the process object from the thread
+        // context and let it service the request.
 
-    Process *p = tc->getProcessPtr();
+        Process *p = tc->getProcessPtr();
 
-    SparcLiveProcess *lp = dynamic_cast<SparcLiveProcess *>(p);
-    assert(lp);
+        SparcLiveProcess *lp = dynamic_cast<SparcLiveProcess *>(p);
+        assert(lp);
 
-    lp->handleTrap(_n, tc);
+        lp->handleTrap(_n, tc);
 
-    // We need to explicitly advance the pc, since that's not done for us
-    // on a faulting instruction
-    PCState pc = tc->pcState();
-    pc.advance();
-    tc->pcState(pc);
-#else
-    SparcFaultBase::invoke(tc, inst);
-#endif
+        // We need to explicitly advance the pc, since that's not done for us
+        // on a faulting instruction
+        PCState pc = tc->pcState();
+        pc.advance();
+        tc->pcState(pc);
+    }
 }
 
 } // namespace SparcISA
index 06206c02bed4cfd8060f897318df5785dbb0b9c5..d6eee8a4dddd9e5ac7e970ed72003597dc0eb55e 100644 (file)
@@ -326,9 +326,8 @@ let {{
     '''
 
     TruncateEA = '''
-#if !FULL_SYSTEM
-                EA = Pstate<3:> ? EA<31:0> : EA;
-#endif
+                if (!FullSystem)
+                    EA = Pstate<3:> ? EA<31:0> : EA;
     '''
 }};
 
index 70c8c18e68158e648aecf6185f890b06ad74d53b..e6ab64de9c7e10fc14eeba5314b3507eee40c8b6 100644 (file)
@@ -36,6 +36,7 @@
 #include "debug/Quiesce.hh"
 #include "debug/Timer.hh"
 #include "sim/system.hh"
+#include "sim/full_system.hh"
 
 using namespace SparcISA;
 using namespace std;
@@ -224,10 +225,8 @@ ISA::setFSReg(int miscReg, const MiscReg &val, ThreadContext *tc)
             DPRINTF(Quiesce, "Cpu executed quiescing instruction\n");
             // Time to go to sleep
             tc->suspend();
-#if FULL_SYSTEM
-            if (tc->getKernelStats())
+            if (FullSystem && tc->getKernelStats())
                 tc->getKernelStats()->quiesce();
-#endif
         }
         break;