summaryrefslogtreecommitdiff
path: root/src/arch/sparc/intregfile.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-12-06 05:42:09 -0500
committerGabe Black <gblack@eecs.umich.edu>2006-12-06 05:42:09 -0500
commitc541be3a48dc8252fe26e020122039a5e9b9193c (patch)
treecd1830624086aef389b09d8def4817ec807bcc6c /src/arch/sparc/intregfile.hh
parent4d8a0541dd16cf358c16dc8ad474717fcbed753f (diff)
downloadgem5-c541be3a48dc8252fe26e020122039a5e9b9193c.tar.xz
Changed the integer register file to work with flattened indices.
--HG-- extra : convert_revision : c5153c3c712e5d18b5233e1fd205806adcb30654
Diffstat (limited to 'src/arch/sparc/intregfile.hh')
-rw-r--r--src/arch/sparc/intregfile.hh10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/arch/sparc/intregfile.hh b/src/arch/sparc/intregfile.hh
index 59f767e8e..503f3c453 100644
--- a/src/arch/sparc/intregfile.hh
+++ b/src/arch/sparc/intregfile.hh
@@ -34,6 +34,7 @@
#include "arch/sparc/isa_traits.hh"
#include "arch/sparc/types.hh"
+#include "base/bitfield.hh"
#include <string>
@@ -54,15 +55,19 @@ namespace SparcISA
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;
- static const int FrameNumMask =
+ //A mask to get the frame number
+ static const uint64_t FrameNumMask =
(FrameNumBits == sizeof(int)) ?
(unsigned int)(-1) :
(1 << FrameNumBits) - 1;
- static const int FrameOffsetMask =
+ static const uint64_t FrameOffsetMask =
(FrameOffsetBits == sizeof(int)) ?
(unsigned int)(-1) :
(1 << FrameOffsetBits) - 1;
@@ -70,6 +75,7 @@ namespace SparcISA
IntReg regGlobals[MaxGL][RegsPerFrame];
IntReg regSegments[2 * NWindows][RegsPerFrame];
IntReg microRegs[NumMicroIntRegs];
+ IntReg regs[NumIntRegs];
enum regFrame {Globals, Outputs, Locals, Inputs, NumFrames};