cpu: Fix case where o3 lsq could print out uninitialized data
authorMitch Hayenga <Mitch.Hayenga@ARM.com>
Tue, 1 Apr 2014 19:22:06 +0000 (14:22 -0500)
committerMitch Hayenga <Mitch.Hayenga@ARM.com>
Tue, 1 Apr 2014 19:22:06 +0000 (14:22 -0500)
In the O3 LSQ, data read/written is printed out in DPRINTFs.  However,
the data field is treated as a character string with a null terminated.
However the data field is not encoded this way.  This patch removes
that possibility by removing the data part of the print.

src/cpu/o3/lsq_unit.hh
src/cpu/o3/lsq_unit_impl.hh

index 724d2cb0b91b92ec2e65ca2f89fac754e2ce2a51..0978e721b56fe9d83450ed5427257785521e2400 100644 (file)
@@ -711,8 +711,7 @@ LSQUnit<Impl>::read(Request *req, Request *sreqLow, Request *sreqHigh,
                     storeQueue[store_idx].data + shift_amt, req->getSize());
 
             DPRINTF(LSQUnit, "Forwarding from store idx %i to load to "
-                    "addr %#x, data %#x\n",
-                    store_idx, req->getVaddr(), data);
+                    "addr %#x\n", store_idx, req->getVaddr());
 
             PacketPtr data_pkt = new Packet(req, MemCmd::ReadReq);
             data_pkt->dataStatic(load_inst->memData);
@@ -916,9 +915,9 @@ LSQUnit<Impl>::write(Request *req, Request *sreqLow, Request *sreqHigh,
 {
     assert(storeQueue[store_idx].inst);
 
-    DPRINTF(LSQUnit, "Doing write to store idx %i, addr %#x data %#x"
+    DPRINTF(LSQUnit, "Doing write to store idx %i, addr %#x"
             " | storeHead:%i [sn:%i]\n",
-            store_idx, req->getPaddr(), data, storeHead,
+            store_idx, req->getPaddr(), storeHead,
             storeQueue[store_idx].inst->seqNum);
 
     storeQueue[store_idx].req = req;
index 89c30aa462c661956f209d5ee01911e7332abb68..416f3e7e736a6b1859b298ad5eedbe1e9ccc455e 100644 (file)
@@ -155,12 +155,12 @@ LSQUnit<Impl>::init(O3CPU *cpu_ptr, IEW *iew_ptr, DerivO3CPUParams *params,
     cpu = cpu_ptr;
     iewStage = iew_ptr;
 
-    DPRINTF(LSQUnit, "Creating LSQUnit%i object.\n",id);
-
     lsq = lsq_ptr;
 
     lsqID = id;
 
+    DPRINTF(LSQUnit, "Creating LSQUnit%i object.\n",id);
+
     // Add 1 for the sentinel entry (they are circular queues).
     LQEntries = maxLQEntries + 1;
     SQEntries = maxSQEntries + 1;