lsq_unit_impl.hh (3221:669a04468c0d) | lsq_unit_impl.hh (3230:e86a03911728) |
---|---|
1/* 2 * Copyright (c) 2004-2005 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; --- 402 unchanged lines hidden (view full) --- 411 412 // If the instruction faulted, then we need to send it along to commit 413 // without the instruction completing. 414 if (load_fault != NoFault) { 415 // Send this instruction to commit, also make sure iew stage 416 // realizes there is activity. 417 // Mark it as executed unless it is an uncached load that 418 // needs to hit the head of commit. | 1/* 2 * Copyright (c) 2004-2005 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; --- 402 unchanged lines hidden (view full) --- 411 412 // If the instruction faulted, then we need to send it along to commit 413 // without the instruction completing. 414 if (load_fault != NoFault) { 415 // Send this instruction to commit, also make sure iew stage 416 // realizes there is activity. 417 // Mark it as executed unless it is an uncached load that 418 // needs to hit the head of commit. |
419 if (!(inst->req->getFlags() & UNCACHEABLE) || inst->isAtCommit()) { | 419 if (!(inst->req->isUncacheable()) || inst->isAtCommit()) { |
420 inst->setExecuted(); 421 } 422 iewStage->instToCommit(inst); 423 iewStage->activityThisCycle(); 424 } 425 426 return load_fault; 427} --- 180 unchanged lines hidden (view full) --- 608 609 DPRINTF(LSQUnit, "D-Cache: Writing back store idx:%i PC:%#x " 610 "to Addr:%#x, data:%#x [sn:%lli]\n", 611 storeWBIdx, inst->readPC(), 612 req->getPaddr(), *(inst->memData), 613 inst->seqNum); 614 615 // @todo: Remove this SC hack once the memory system handles it. | 420 inst->setExecuted(); 421 } 422 iewStage->instToCommit(inst); 423 iewStage->activityThisCycle(); 424 } 425 426 return load_fault; 427} --- 180 unchanged lines hidden (view full) --- 608 609 DPRINTF(LSQUnit, "D-Cache: Writing back store idx:%i PC:%#x " 610 "to Addr:%#x, data:%#x [sn:%lli]\n", 611 storeWBIdx, inst->readPC(), 612 req->getPaddr(), *(inst->memData), 613 inst->seqNum); 614 615 // @todo: Remove this SC hack once the memory system handles it. |
616 if (req->getFlags() & LOCKED) { 617 if (req->getFlags() & UNCACHEABLE) { | 616 if (req->isLocked()) { 617 if (req->isUncacheable()) { |
618 req->setScResult(2); 619 } else { 620 if (cpu->lockFlag) { 621 req->setScResult(1); 622 DPRINTF(LSQUnit, "Store conditional [sn:%lli] succeeded.", 623 inst->seqNum); 624 } else { 625 req->setScResult(0); --- 353 unchanged lines hidden --- | 618 req->setScResult(2); 619 } else { 620 if (cpu->lockFlag) { 621 req->setScResult(1); 622 DPRINTF(LSQUnit, "Store conditional [sn:%lli] succeeded.", 623 inst->seqNum); 624 } else { 625 req->setScResult(0); --- 353 unchanged lines hidden --- |