From: Mitch Hayenga Date: Tue, 1 Apr 2014 19:22:06 +0000 (-0500) Subject: cpu: Fix case where o3 lsq could print out uninitialized data X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e4086878f62f5eacb84b9bf2183975e92ff564f5;p=gem5.git cpu: Fix case where o3 lsq could print out uninitialized data 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. --- diff --git a/src/cpu/o3/lsq_unit.hh b/src/cpu/o3/lsq_unit.hh index 724d2cb0b..0978e721b 100644 --- a/src/cpu/o3/lsq_unit.hh +++ b/src/cpu/o3/lsq_unit.hh @@ -711,8 +711,7 @@ LSQUnit::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::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; diff --git a/src/cpu/o3/lsq_unit_impl.hh b/src/cpu/o3/lsq_unit_impl.hh index 89c30aa46..416f3e7e7 100644 --- a/src/cpu/o3/lsq_unit_impl.hh +++ b/src/cpu/o3/lsq_unit_impl.hh @@ -155,12 +155,12 @@ LSQUnit::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;