Deleted Added
sdiff udiff text old ( 3221:669a04468c0d ) new ( 3228:f47f69e61ded )
full compact
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 612 unchanged lines hidden (view full) ---

621 DPRINTF(LSQUnit, "Doing memory access for inst [sn:%lli] PC %#x\n",
622 load_inst->seqNum, load_inst->readPC());
623
624 assert(!load_inst->memData);
625 load_inst->memData = new uint8_t[64];
626
627 ++usedPorts;
628
629 PacketPtr data_pkt = new Packet(req, Packet::ReadReq, Packet::Broadcast);
630 data_pkt->dataStatic(load_inst->memData);
631
632 LSQSenderState *state = new LSQSenderState;
633 state->isLoad = true;
634 state->idx = load_idx;
635 state->inst = load_inst;
636 data_pkt->senderState = state;
637
638 // if we the cache is not blocked, do cache access
639 if (!lsq->cacheBlocked()) {
640 if (!dcachePort->sendTiming(data_pkt)) {
641 if (data_pkt->result == Packet::BadAddress) {
642 delete data_pkt;
643 return TheISA::genMachineCheckFault();
644 }
645
646 // If the access didn't succeed, tell the LSQ by setting
647 // the retry thread id.
648 lsq->setRetryTid(lsqID);
649 }
650 }

--- 13 unchanged lines hidden (view full) ---

664 // refetched, and re-executed.
665 isLoadBlocked = true;
666 loadBlockedHandled = false;
667 blockedLoadSeqNum = load_inst->seqNum;
668 // No fault occurred, even though the interface is blocked.
669 return NoFault;
670 }
671
672 if (data_pkt->result != Packet::Success) {
673 DPRINTF(LSQUnit, "LSQUnit: D-cache miss!\n");
674 DPRINTF(Activity, "Activity: ld accessing mem miss [sn:%lli]\n",
675 load_inst->seqNum);
676 } else {
677 DPRINTF(LSQUnit, "LSQUnit: D-cache hit!\n");
678 DPRINTF(Activity, "Activity: ld accessing mem hit [sn:%lli]\n",
679 load_inst->seqNum);
680 }
681
682 return NoFault;
683}
684
685template <class Impl>
686template <class T>
687Fault
688LSQUnit<Impl>::write(Request *req, T &data, int store_idx)
689{

--- 17 unchanged lines hidden ---