lsq_unit.hh (7598:c0ae58952ed0) lsq_unit.hh (7720:65d338a8dba4)
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;

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

525 // Make sure this isn't an uncacheable access
526 // A bit of a hackish way to get uncached accesses to work only if they're
527 // at the head of the LSQ and are ready to commit (at the head of the ROB
528 // too).
529 if (req->isUncacheable() &&
530 (load_idx != loadHead || !load_inst->isAtCommit())) {
531 iewStage->rescheduleMemInst(load_inst);
532 ++lsqRescheduledLoads;
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;

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

525 // Make sure this isn't an uncacheable access
526 // A bit of a hackish way to get uncached accesses to work only if they're
527 // at the head of the LSQ and are ready to commit (at the head of the ROB
528 // too).
529 if (req->isUncacheable() &&
530 (load_idx != loadHead || !load_inst->isAtCommit())) {
531 iewStage->rescheduleMemInst(load_inst);
532 ++lsqRescheduledLoads;
533 DPRINTF(LSQUnit, "Uncachable load [sn:%lli] PC %#x\n",
534 load_inst->seqNum, load_inst->readPC());
533 DPRINTF(LSQUnit, "Uncachable load [sn:%lli] PC %s\n",
534 load_inst->seqNum, load_inst->pcState());
535
536 // Must delete request now that it wasn't handed off to
537 // memory. This is quite ugly. @todo: Figure out the proper
538 // place to really handle request deletes.
539 delete req;
540 if (TheISA::HasUnalignedMemAcc && sreqLow) {
541 delete sreqLow;
542 delete sreqHigh;

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

682 delete sreqHigh;
683 }
684
685 return NoFault;
686 }
687 }
688
689 // If there's no forwarding case, then go access memory
535
536 // Must delete request now that it wasn't handed off to
537 // memory. This is quite ugly. @todo: Figure out the proper
538 // place to really handle request deletes.
539 delete req;
540 if (TheISA::HasUnalignedMemAcc && sreqLow) {
541 delete sreqLow;
542 delete sreqHigh;

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

682 delete sreqHigh;
683 }
684
685 return NoFault;
686 }
687 }
688
689 // If there's no forwarding case, then go access memory
690 DPRINTF(LSQUnit, "Doing memory access for inst [sn:%lli] PC %#x\n",
691 load_inst->seqNum, load_inst->readPC());
690 DPRINTF(LSQUnit, "Doing memory access for inst [sn:%lli] PC %s\n",
691 load_inst->seqNum, load_inst->pcState());
692
693 assert(!load_inst->memData);
694 load_inst->memData = new uint8_t[64];
695
696 ++usedPorts;
697
698 // if we the cache is not blocked, do cache access
699 bool completedFirst = false;

--- 144 unchanged lines hidden ---
692
693 assert(!load_inst->memData);
694 load_inst->memData = new uint8_t[64];
695
696 ++usedPorts;
697
698 // if we the cache is not blocked, do cache access
699 bool completedFirst = false;

--- 144 unchanged lines hidden ---