summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/reg_dep_map.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/inorder/reg_dep_map.cc')
-rw-r--r--src/cpu/inorder/reg_dep_map.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/cpu/inorder/reg_dep_map.cc b/src/cpu/inorder/reg_dep_map.cc
index 9898de43d..075c31208 100644
--- a/src/cpu/inorder/reg_dep_map.cc
+++ b/src/cpu/inorder/reg_dep_map.cc
@@ -103,6 +103,14 @@ RegDepMap::insert(DynInstPtr inst)
inst->seqNum, i, raw_idx, flat_idx);
inst->flattenDestReg(i, flat_idx);
+
+ if (flat_idx == TheISA::ZeroReg) {
+ DPRINTF(IntRegs, "[sn:%i]: Ignoring Insert-Dependency tracking for "
+ "ISA-ZeroReg (Int. Reg %i).\n", inst->seqNum,
+ flat_idx);
+ continue;
+ }
+
insert(reg_type, flat_idx, inst);
}
}
@@ -134,8 +142,17 @@ RegDepMap::remove(DynInstPtr inst)
for (int i = 0; i < dest_regs; i++) {
+ RegIndex flat_idx = inst->flattenedDestRegIdx(i);
+
+ if (flat_idx == TheISA::ZeroReg) {
+ DPRINTF(IntRegs, "[sn:%i]: Ignoring Remove-Dependency tracking for "
+ "ISA-ZeroReg (Int. Reg %i).\n", inst->seqNum,
+ flat_idx);
+ continue;
+ }
+
InOrderCPU::RegType reg_type = cpu->getRegType(inst->destRegIdx(i));
- remove(reg_type, inst->flattenedDestRegIdx(i), inst);
+ remove(reg_type, flat_idx, inst);
}
}
}