# Node ID 59d9267be2f253ce35d7cd584b2d95fa09518217 # Parent 6e0b6e8da5f0277137e9e429df1be2aae15388c0 diff --git a/src/cpu/o3/iew_impl.hh b/src/cpu/o3/iew_impl.hh --- a/src/cpu/o3/iew_impl.hh +++ b/src/cpu/o3/iew_impl.hh @@ -793,25 +793,6 @@ } else if (instQueue.isFull(tid)) { DPRINTF(IEW,"[tid:%i]: Stall: IQ is full.\n",tid); ret_val = true; - } else if (ldstQueue.isFull(tid)) { - DPRINTF(IEW,"[tid:%i]: Stall: LSQ is full\n",tid); - - if (ldstQueue.numLoads(tid) > 0 ) { - - DPRINTF(IEW,"[tid:%i]: LSQ oldest load: [sn:%i] \n", - tid,ldstQueue.getLoadHeadSeqNum(tid)); - } - - if (ldstQueue.numStores(tid) > 0) { - - DPRINTF(IEW,"[tid:%i]: LSQ oldest store: [sn:%i] \n", - tid,ldstQueue.getStoreHeadSeqNum(tid)); - } - - ret_val = true; - } else if (ldstQueue.isStalled(tid)) { - DPRINTF(IEW,"[tid:%i]: Stall: LSQ stall detected.\n",tid); - ret_val = true; } return ret_val; @@ -1074,8 +1055,13 @@ ++iewIQFullEvents; break; - } else if (ldstQueue.isFull(tid)) { - DPRINTF(IEW, "[tid:%i]: Issue: LSQ has become full.\n",tid); + } + + // Check LSQ if inst is LD/ST + if ((inst->isLoad() && ldstQueue.lqFull(tid)) || + (inst->isStore() && ldstQueue.sqFull(tid))) { + DPRINTF(IEW, "[tid:%i]: Issue: %s has become full.\n",tid, + inst->isLoad() ? "LQ" : "SQ"); // Call function to start blocking. block(tid);