isa: clean up register constants
authorSteve Reinhardt <steve.reinhardt@amd.com>
Tue, 15 Oct 2013 18:22:43 +0000 (14:22 -0400)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Tue, 15 Oct 2013 18:22:43 +0000 (14:22 -0400)
Clean up and add some consistency to the *_Base_DepTag
constants as well as some related register constants:
- Get rid of NumMiscArchRegs, TotalArchRegs, and TotalDataRegs
  since they're never used and not always defined
- Set FP_Base_DepTag = NumIntRegs when possible (i.e.,
  every case except x86)
- Set Ctrl_Base_DepTag = FP_Base_DepTag + NumFloatRegs
  (this was true before, but wasn't always expressed
  that way)
- Drastically reduce the number of arbitrary constants
  appearing in these calculations

src/arch/alpha/registers.hh
src/arch/mips/registers.hh
src/arch/sparc/miscregs.hh
src/arch/sparc/registers.hh
src/arch/x86/registers.hh

index e1f50ddc292e8981aae0172fd9e7d86fbec7299a..6f0b02c7f14026e15a4997ae960f9b58737afc8f 100644 (file)
@@ -88,23 +88,20 @@ const RegIndex SyscallSuccessReg = 19;
 const int NumIntArchRegs = 32;
 const int NumPALShadowRegs = 8;
 const int NumFloatArchRegs = 32;
-const int NumMiscArchRegs = NUM_MISCREGS;
 
 const int NumIntRegs = NumIntArchRegs + NumPALShadowRegs;
 const int NumFloatRegs = NumFloatArchRegs;
-const int NumMiscRegs = NumMiscArchRegs;
+const int NumMiscRegs = NUM_MISCREGS;
 
 const int TotalNumRegs =
     NumIntRegs + NumFloatRegs + NumMiscRegs;
 
-const int TotalDataRegs = NumIntRegs + NumFloatRegs;
-
 // These enumerate all the registers for dependence tracking.
 enum DependenceTags {
     // 0..31 are the integer regs 0..31
     // 32..63 are the FP regs 0..31, i.e. use (reg + FP_Base_DepTag)
-    FP_Base_DepTag = 40,
-    Ctrl_Base_DepTag = 72,
+    FP_Base_DepTag = NumIntRegs,
+    Ctrl_Base_DepTag = FP_Base_DepTag + NumFloatRegs,
     Max_DepTag = Ctrl_Base_DepTag + NumMiscRegs + NumInternalProcRegs
 };
 
index 807fd825f3856ffe34b97cc390911750800fdf31..911e09d4106d747ea456cbeda6b0a6ac10862c48 100644 (file)
@@ -115,15 +115,6 @@ const int ReturnAddressReg = 31;
 
 const int SyscallPseudoReturnReg = 3;
 
-//@TODO: Implementing ShadowSets needs to
-//edit this value such that:
-//TotalArchRegs = NumIntArchRegs * ShadowSets
-const int TotalArchRegs = NumIntArchRegs;
-
-// These help enumerate all the registers for dependence tracking.
-const int FP_Base_DepTag = NumIntRegs;
-const int Ctrl_Base_DepTag = FP_Base_DepTag + NumFloatRegs;
-
 // Enumerate names for 'Control' Registers in the CPU
 // Reference MIPS32 Arch. for Programmers, Vol. III, Ch.8
 // (Register Number-Register Select) Summary of Register
@@ -281,9 +272,11 @@ enum MiscRegIndex{
     MISCREG_NUMREGS
 };
 
-const int TotalDataRegs = NumIntRegs + NumFloatRegs;
-
 const int NumMiscRegs = MISCREG_NUMREGS;
+
+// These help enumerate all the registers for dependence tracking.
+const int FP_Base_DepTag = NumIntRegs;
+const int Ctrl_Base_DepTag = FP_Base_DepTag + NumFloatRegs;
 const int Max_DepTag = Ctrl_Base_DepTag + NumMiscRegs;
 
 const int TotalNumRegs = NumIntRegs + NumFloatRegs + NumMiscRegs;
index 7008b6b36d92e171d6629b62cd9cd5dc0d35f6ce..b55fb7d44d428a82b95d1763c1c0d08fc0bdc9ec 100644 (file)
@@ -155,7 +155,6 @@ struct STS
 };
 
 
-const int NumMiscArchRegs = MISCREG_NUMMISCREGS;
 const int NumMiscRegs = MISCREG_NUMMISCREGS;
 
 }
index 8c61a070ceed623812868889097c0937308982f1..ffcfafcbabae2388b2a99601cfbf62bcb1d8ce5e 100644 (file)
@@ -57,13 +57,6 @@ typedef union
 
 typedef uint16_t RegIndex;
 
-// These enumerate all the registers for dependence tracking.
-enum DependenceTags {
-    FP_Base_DepTag = 32*3+9,
-    Ctrl_Base_DepTag = FP_Base_DepTag + 64,
-    Max_DepTag = Ctrl_Base_DepTag + NumMiscRegs
-};
-
 // semantically meaningful register indices
 const int ZeroReg = 0;      // architecturally meaningful
 // the rest of these depend on the ABI
@@ -80,6 +73,13 @@ const int NumIntRegs = (MaxGL + 1) * 8 + NWindows * 16 + NumMicroIntRegs;
 
 const int TotalNumRegs = NumIntRegs + NumFloatRegs + NumMiscRegs;
 
+// These enumerate all the registers for dependence tracking.
+enum DependenceTags {
+    FP_Base_DepTag = NumIntRegs,
+    Ctrl_Base_DepTag = FP_Base_DepTag + NumFloatRegs,
+    Max_DepTag = Ctrl_Base_DepTag + NumMiscRegs
+};
+
 } // namespace SparcISA
 
 #endif
index 20385a960d5c585872eed4647854c3a4fcb53000..e811ed2d3b5f0bbf73456896789ad1263fa537f0 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 The Hewlett-Packard Development Company
+ * Copyright (c) 2013 Advanced Micro Devices, Inc.
  * All rights reserved.
  *
  * The license below extends only to copyright in the software and shall
@@ -50,7 +51,6 @@ namespace X86ISA
 using X86ISAInst::MaxInstSrcRegs;
 using X86ISAInst::MaxInstDestRegs;
 using X86ISAInst::MaxMiscDestRegs;
-const int NumMiscArchRegs = NUM_MISCREGS;
 const int NumMiscRegs = NUM_MISCREGS;
 
 const int NumIntArchRegs = NUM_INTREGS;
@@ -58,26 +58,18 @@ const int NumIntRegs =
     NumIntArchRegs + NumMicroIntRegs +
     NumPseudoIntRegs + NumImplicitIntRegs;
 
-//Each 128 bit xmm register is broken into two effective 64 bit registers.
+// Each 128 bit xmm register is broken into two effective 64 bit registers.
+// Add 8 for the indices that are mapped over the fp stack
 const int NumFloatRegs =
-    NumMMXRegs + 2 * NumXMMRegs + NumMicroFpRegs;
-const int NumFloatArchRegs = NumFloatRegs + 8;
+    NumMMXRegs + 2 * NumXMMRegs + NumMicroFpRegs + 8;
 
 // These enumerate all the registers for dependence tracking.
 enum DependenceTags {
-    //There are 16 microcode registers at the moment. This is an
-    //unusually large constant to make sure there isn't overflow.
+    // FP_Base_DepTag must be large enough to be bigger than any integer
+    // register index which has the IntFoldBit (1 << 6) set.  To be safe
+    // we just start at (1 << 7) == 128.
     FP_Base_DepTag = 128,
-    Ctrl_Base_DepTag =
-        FP_Base_DepTag +
-        //mmx/x87 registers
-        8 +
-        //xmm registers
-        16 * 2 +
-        //The microcode fp registers
-        8 +
-        //The indices that are mapped over the fp stack
-        8,
+    Ctrl_Base_DepTag = FP_Base_DepTag + NumFloatRegs,
     Max_DepTag = Ctrl_Base_DepTag + NumMiscRegs
 };