SPARC: Get rid of the state keeping track of register frames.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 25 Feb 2009 18:22:25 +0000 (10:22 -0800)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 25 Feb 2009 18:22:25 +0000 (10:22 -0800)
src/arch/sparc/intregfile.cc
src/arch/sparc/intregfile.hh

index 7c20d5169694ec2781a7d90a1e7b3c752d174758..49e41ed93515d975ab7a6fa7011ae7a318a300e4 100644 (file)
@@ -53,18 +53,11 @@ string SparcISA::getIntRegName(RegIndex index)
 
 void IntRegFile::clear()
 {
-    int x;
-    for (x = 0; x < MaxGL; x++)
-        memset(regGlobals[x], 0, sizeof(IntReg) * RegsPerFrame);
-    for(int x = 0; x < 2 * NWindows; x++)
-        memset(regSegments[x], 0, sizeof(IntReg) * RegsPerFrame);
     memset(regs, 0, sizeof(IntReg) * NumIntRegs);
 }
 
 IntRegFile::IntRegFile()
 {
-    offset[Globals] = 0;
-    regView[Globals] = regGlobals[0];
     clear();
 }
 
@@ -72,20 +65,6 @@ IntReg IntRegFile::readReg(int intReg)
 {
     DPRINTF(IntRegs, "Read register %d = 0x%x\n", intReg, regs[intReg]);
     return regs[intReg];
-    /* XXX Currently not used. When used again regView/offset need to be
-     * serialized!
-    IntReg val;
-    if(intReg < NumIntArchRegs)
-        val = regView[intReg >> FrameOffsetBits][intReg & FrameOffsetMask];
-    else if((intReg -= NumIntArchRegs) < NumMicroIntRegs)
-        val = microRegs[intReg];
-    else
-        panic("Tried to read non-existant integer register %d, %d\n",
-                NumIntArchRegs + NumMicroIntRegs + intReg, intReg);
-
-    DPRINTF(IntRegs, "Read register %d = 0x%x\n", intReg, val);
-    return val;
-    */
 }
 
 void IntRegFile::setReg(int intReg, const IntReg &val)
@@ -96,42 +75,16 @@ void IntRegFile::setReg(int intReg, const IntReg &val)
         regs[intReg] = val;
     }
     return;
-    /* XXX Currently not used. When used again regView/offset need to be
-     * serialized!
-    if(intReg)
-    {
-        DPRINTF(IntRegs, "Wrote register %d = 0x%x\n", intReg, val);
-        if(intReg < NumIntArchRegs)
-            regView[intReg >> FrameOffsetBits][intReg & FrameOffsetMask] = val;
-        else if((intReg -= NumIntArchRegs) < NumMicroIntRegs)
-            microRegs[intReg] = val;
-        else
-            panic("Tried to set non-existant integer register\n");
-    } */
 }
 
 void IntRegFile::serialize(std::ostream &os)
 {
     SERIALIZE_ARRAY(regs, NumIntRegs);
     SERIALIZE_ARRAY(microRegs, NumMicroIntRegs);
-
-    /* the below doesn't seem needed unless gabe makes regview work*/
-    unsigned int x;
-    for(x = 0; x < MaxGL; x++)
-        SERIALIZE_ARRAY(regGlobals[x], RegsPerFrame);
-    for(x = 0; x < 2 * NWindows; x++)
-        SERIALIZE_ARRAY(regSegments[x], RegsPerFrame);
 }
 
 void IntRegFile::unserialize(Checkpoint *cp, const std::string &section)
 {
     UNSERIALIZE_ARRAY(regs, NumIntRegs);
     UNSERIALIZE_ARRAY(microRegs, NumMicroIntRegs);
-
-    /* the below doesn't seem needed unless gabe makes regview work*/
-    unsigned int x;
-    for(x = 0; x < MaxGL; x++)
-        UNSERIALIZE_ARRAY(regGlobals[x], RegsPerFrame);
-    for(unsigned int x = 0; x < 2 * NWindows; x++)
-        UNSERIALIZE_ARRAY(regSegments[x], RegsPerFrame);
 }
index 9a086f08af654a42aba5d17a4d5580d83930bd32..9bbb469eff8c756d9cd6252affed3ace38990238 100644 (file)
@@ -42,8 +42,6 @@ class Checkpoint;
 
 namespace SparcISA
 {
-    class RegFile;
-
     //This function translates integer register file indices into names
     std::string getIntRegName(RegIndex);
 
@@ -52,39 +50,10 @@ namespace SparcISA
 
     class IntRegFile
     {
-      private:
-        friend class RegFile;
       protected:
-        //The number of bits needed to index into each 8 register frame
-        static const int FrameOffsetBits = 3;
-        //The number of bits to choose between the 4 sets of 8 registers
-        static const int FrameNumBits = 2;
-
-        //The number of registers per "frame" (8)
-        static const int RegsPerFrame = 1 << FrameOffsetBits;
-        //A mask to get the frame number
-        static const uint64_t FrameNumMask =
-                (FrameNumBits == sizeof(int)) ?
-                (unsigned int)(-1) :
-                (1 << FrameNumBits) - 1;
-        static const uint64_t FrameOffsetMask =
-                (FrameOffsetBits == sizeof(int)) ?
-                (unsigned int)(-1) :
-                (1 << FrameOffsetBits) - 1;
-
-        IntReg regGlobals[MaxGL+1][RegsPerFrame];
-        IntReg regSegments[2 * NWindows][RegsPerFrame];
         IntReg microRegs[NumMicroIntRegs];
         IntReg regs[NumIntRegs];
 
-        enum regFrame {Globals, Outputs, Locals, Inputs, NumFrames};
-
-        IntReg * regView[NumFrames];
-
-        static const int RegGlobalOffset = 0;
-        static const int FrameOffset = (MaxGL + 1) * RegsPerFrame;
-        int offset[NumFrames];
-
       public:
 
         void clear();