summaryrefslogtreecommitdiff
path: root/cpu/beta_cpu/comm.hh
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/beta_cpu/comm.hh')
-rw-r--r--cpu/beta_cpu/comm.hh22
1 files changed, 15 insertions, 7 deletions
diff --git a/cpu/beta_cpu/comm.hh b/cpu/beta_cpu/comm.hh
index 849a6c797..e327a83b9 100644
--- a/cpu/beta_cpu/comm.hh
+++ b/cpu/beta_cpu/comm.hh
@@ -9,6 +9,7 @@
using namespace std;
// Find better place to put this typedef.
+// The impl might be the best place for this.
typedef short int PhysRegIndex;
template<class Impl>
@@ -45,6 +46,14 @@ struct SimpleIEWSimpleCommit {
int size;
DynInstPtr insts[Impl::MaxWidth + 1];
+
+ bool squash;
+ bool branchMispredict;
+ bool branchTaken;
+ uint64_t mispredPC;
+ uint64_t nextPC;
+ unsigned globalHist;
+ InstSeqNum squashedSeqNum;
};
template<class Impl>
@@ -63,10 +72,15 @@ struct TimeBufStruct {
bool predIncorrect;
uint64_t branchAddr;
+ InstSeqNum doneSeqNum;
+
+ // Might want to package this kind of branch stuff into a single
+ // struct as it is used pretty frequently.
bool branchMispredict;
bool branchTaken;
uint64_t mispredPC;
uint64_t nextPC;
+ unsigned globalHist;
};
decodeComm decodeInfo;
@@ -84,17 +98,10 @@ struct TimeBufStruct {
renameComm renameInfo;
struct iewComm {
- bool squash;
bool stall;
// Also eventually include skid buffer space.
unsigned freeIQEntries;
-
- bool branchMispredict;
- bool branchTaken;
- uint64_t mispredPC;
- uint64_t nextPC;
- InstSeqNum squashedSeqNum;
};
iewComm iewInfo;
@@ -108,6 +115,7 @@ struct TimeBufStruct {
bool branchTaken;
uint64_t mispredPC;
uint64_t nextPC;
+ unsigned globalHist;
// Think of better names here.
// Will need to be a variety of sizes...