summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/resources/use_def.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/inorder/resources/use_def.hh')
-rw-r--r--src/cpu/inorder/resources/use_def.hh12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/cpu/inorder/resources/use_def.hh b/src/cpu/inorder/resources/use_def.hh
index 6c76d8ab5..41d758dd7 100644
--- a/src/cpu/inorder/resources/use_def.hh
+++ b/src/cpu/inorder/resources/use_def.hh
@@ -68,8 +68,12 @@ class UseDefUnit : public Resource {
virtual void squash(DynInstPtr inst, int stage_num,
InstSeqNum squash_seq_num, ThreadID tid);
+ void updateAfterContextSwitch(DynInstPtr inst, ThreadID tid);
+
const InstSeqNum maxSeqNum;
+ void regStats();
+
protected:
RegDepMap *regDepMap[ThePipeline::MaxThreads];
@@ -84,14 +88,18 @@ class UseDefUnit : public Resource {
InstSeqNum floatRegSize[ThePipeline::MaxThreads];
+ Stats::Average uniqueRegsPerSwitch;
+ std::map<unsigned, bool> uniqueRegMap;
+
public:
class UseDefRequest : public ResourceRequest {
public:
typedef ThePipeline::DynInstPtr DynInstPtr;
public:
- UseDefRequest(UseDefUnit *res, DynInstPtr inst, int stage_num, int res_idx,
- int slot_num, unsigned cmd, int use_def_idx)
+ UseDefRequest(UseDefUnit *res, DynInstPtr inst, int stage_num,
+ int res_idx, int slot_num, unsigned cmd,
+ int use_def_idx)
: ResourceRequest(res, inst, stage_num, res_idx, slot_num, cmd),
useDefIdx(use_def_idx)
{ }