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
};
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
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;
};
-const int NumMiscArchRegs = MISCREG_NUMMISCREGS;
const int NumMiscRegs = MISCREG_NUMMISCREGS;
}
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
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
/*
* 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
using X86ISAInst::MaxInstSrcRegs;
using X86ISAInst::MaxInstDestRegs;
using X86ISAInst::MaxMiscDestRegs;
-const int NumMiscArchRegs = NUM_MISCREGS;
const int NumMiscRegs = NUM_MISCREGS;
const int NumIntArchRegs = NUM_INTREGS;
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
};