3c3
< * Copyright (c) 2010-2013 ARM Limited
---
> * Copyright (c) 2010-2014 ARM Limited
102c102,111
< //iewStage->ldstQueue.removeMSHR(inst->threadNumber,inst->seqNum);
---
> if (state->cacheBlocked) {
> // This is the first half of a previous split load,
> // where the 2nd half blocked, ignore this response
> DPRINTF(IEW, "[sn:%lli]: Response from first half of earlier "
> "blocked split load recieved. Ignoring.\n", inst->seqNum);
> delete state;
> delete pkt->req;
> delete pkt;
> return;
> }
143,144c152
< isStoreBlocked(false), isLoadBlocked(false),
< loadBlockedHandled(false), storeInFlight(false), hasPendingPkt(false)
---
> isStoreBlocked(false), storeInFlight(false), hasPendingPkt(false)
198,199d205
< blockedLoadSeqNum = 0;
<
201,202d206
< isLoadBlocked = false;
< loadBlockedHandled = false;
635c639
< } else if (!loadBlocked()) {
---
> } else {
790c794
< if (isStoreBlocked || lsq->cacheBlocked()) {
---
> if (isStoreBlocked) {
1027,1034d1030
< if (isLoadBlocked) {
< if (squashed_num < blockedLoadSeqNum) {
< isLoadBlocked = false;
< loadBlockedHandled = false;
< blockedLoadSeqNum = 0;
< }
< }
<
1221d1216
< lsq->setRetryTid(lsqID);
1247d1241
< lsq->setRetryTid(InvalidThreadID);
1259d1252
< lsq->setRetryTid(lsqID);
1261,1265d1253
< } else if (isLoadBlocked) {
< DPRINTF(LSQUnit, "Loads squash themselves and all younger insts, "
< "no need to resend packet.\n");
< } else {
< DPRINTF(LSQUnit, "Retry received but LSQ is no longer blocked.\n");