changeset 2dfacb598d6d in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=2dfacb598d6d
description:
        inorder: InstSeqNum bug
        Because int and not InstSeqNum was used in a couple of places, you can
        overflow the int type and thus get wierd bugs when the sequence number
        is negative (or some wierd value)

diffstat:

 src/cpu/inorder/resources/agen_unit.cc        |  2 +-
 src/cpu/inorder/resources/branch_predictor.cc |  2 +-
 src/cpu/inorder/resources/execution_unit.cc   |  2 +-
 src/cpu/inorder/resources/fetch_seq_unit.cc   |  2 +-
 src/cpu/inorder/resources/tlb_unit.cc         |  2 +-
 src/cpu/inorder/resources/use_def.cc          |  2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diffs (72 lines):

diff -r f35852d5788f -r 2dfacb598d6d src/cpu/inorder/resources/agen_unit.cc
--- a/src/cpu/inorder/resources/agen_unit.cc    Wed Feb 23 16:35:04 2011 -0500
+++ b/src/cpu/inorder/resources/agen_unit.cc    Wed Feb 23 16:35:18 2011 -0500
@@ -55,7 +55,7 @@
 #if TRACING_ON
     ThreadID tid = inst->readTid();
 #endif
-    int seq_num = inst->seqNum;
+    InstSeqNum seq_num = inst->seqNum;
 
     switch (agen_req->cmd)
     {
diff -r f35852d5788f -r 2dfacb598d6d 
src/cpu/inorder/resources/branch_predictor.cc
--- a/src/cpu/inorder/resources/branch_predictor.cc     Wed Feb 23 16:35:04 
2011 -0500
+++ b/src/cpu/inorder/resources/branch_predictor.cc     Wed Feb 23 16:35:18 
2011 -0500
@@ -69,7 +69,7 @@
     ResourceRequest* bpred_req = reqs[slot_num];
     DynInstPtr inst = bpred_req->inst;
     ThreadID tid = inst->readTid();
-    int seq_num = inst->seqNum;
+    InstSeqNum seq_num = inst->seqNum;
 
     switch (bpred_req->cmd)
     {
diff -r f35852d5788f -r 2dfacb598d6d src/cpu/inorder/resources/execution_unit.cc
--- a/src/cpu/inorder/resources/execution_unit.cc       Wed Feb 23 16:35:04 
2011 -0500
+++ b/src/cpu/inorder/resources/execution_unit.cc       Wed Feb 23 16:35:18 
2011 -0500
@@ -85,7 +85,7 @@
     ResourceRequest* exec_req = reqs[slot_num];
     DynInstPtr inst = reqs[slot_num]->inst;
     Fault fault = NoFault;
-    int seq_num = inst->seqNum;
+    InstSeqNum seq_num = inst->seqNum;
     Tick cur_tick = curTick();
 
     if (cur_tick == serializeTick) {
diff -r f35852d5788f -r 2dfacb598d6d src/cpu/inorder/resources/fetch_seq_unit.cc
--- a/src/cpu/inorder/resources/fetch_seq_unit.cc       Wed Feb 23 16:35:04 
2011 -0500
+++ b/src/cpu/inorder/resources/fetch_seq_unit.cc       Wed Feb 23 16:35:18 
2011 -0500
@@ -76,7 +76,7 @@
     DynInstPtr inst = fs_req->inst;
     ThreadID tid = inst->readTid();
     int stage_num = fs_req->getStageNum();
-    int seq_num = inst->seqNum;
+    InstSeqNum seq_num = inst->seqNum;
 
     DPRINTF(InOrderFetchSeq, "[tid:%i]: Current PC is %s\n", tid,
             pc[tid]);
diff -r f35852d5788f -r 2dfacb598d6d src/cpu/inorder/resources/tlb_unit.cc
--- a/src/cpu/inorder/resources/tlb_unit.cc     Wed Feb 23 16:35:04 2011 -0500
+++ b/src/cpu/inorder/resources/tlb_unit.cc     Wed Feb 23 16:35:18 2011 -0500
@@ -109,7 +109,7 @@
 
     DynInstPtr inst = tlb_req->inst;
     ThreadID tid = inst->readTid();
-    int seq_num = inst->seqNum;
+    InstSeqNum seq_num = inst->seqNum;
     int stage_num = tlb_req->getStageNum();
 
     tlb_req->fault = NoFault;
diff -r f35852d5788f -r 2dfacb598d6d src/cpu/inorder/resources/use_def.cc
--- a/src/cpu/inorder/resources/use_def.cc      Wed Feb 23 16:35:04 2011 -0500
+++ b/src/cpu/inorder/resources/use_def.cc      Wed Feb 23 16:35:18 2011 -0500
@@ -145,7 +145,7 @@
 
     DynInstPtr inst = ud_req->inst;
     ThreadID tid = inst->readTid();
-    int seq_num = inst->seqNum;
+    InstSeqNum seq_num = inst->seqNum;
     int ud_idx = ud_req->useDefIdx;
 
     // If there is a non-speculative instruction
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to