lsq_unit_impl.hh (8591:8f23aeaf6a91) | lsq_unit_impl.hh (8592:30a97c4198df) |
---|---|
1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 520 unchanged lines hidden (view full) --- 529 if (inst->isLoad()) { 530 // If this load is to the same block as an external snoop 531 // invalidate that we've observed then the load needs to be 532 // squashed as it could have newer data 533 if (ld_inst->hitExternalSnoop) { 534 if (!memDepViolator || 535 ld_inst->seqNum < memDepViolator->seqNum) { 536 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] " | 1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 520 unchanged lines hidden (view full) --- 529 if (inst->isLoad()) { 530 // If this load is to the same block as an external snoop 531 // invalidate that we've observed then the load needs to be 532 // squashed as it could have newer data 533 if (ld_inst->hitExternalSnoop) { 534 if (!memDepViolator || 535 ld_inst->seqNum < memDepViolator->seqNum) { 536 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] " |
537 " and [sn:%lli] at address %#x\n", inst->seqNum, 538 ld_inst->seqNum, ld_eff_addr1); | 537 "and [sn:%lli] at address %#x\n", 538 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); |
539 memDepViolator = ld_inst; 540 541 ++lsqMemOrderViolation; 542 543 return new GenericISA::M5PanicFault( 544 "Detected fault with inst [sn:%lli] and " 545 "[sn:%lli] at address %#x\n", 546 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); --- 8 unchanged lines hidden (view full) --- 555 inst_eff_addr1, inst->seqNum, ld_inst->seqNum); 556 } else { 557 // A load/store incorrectly passed this store. 558 // Check if we already have a violator, or if it's newer 559 // squash and refetch. 560 if (memDepViolator && ld_inst->seqNum > memDepViolator->seqNum) 561 break; 562 | 539 memDepViolator = ld_inst; 540 541 ++lsqMemOrderViolation; 542 543 return new GenericISA::M5PanicFault( 544 "Detected fault with inst [sn:%lli] and " 545 "[sn:%lli] at address %#x\n", 546 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); --- 8 unchanged lines hidden (view full) --- 555 inst_eff_addr1, inst->seqNum, ld_inst->seqNum); 556 } else { 557 // A load/store incorrectly passed this store. 558 // Check if we already have a violator, or if it's newer 559 // squash and refetch. 560 if (memDepViolator && ld_inst->seqNum > memDepViolator->seqNum) 561 break; 562 |
563 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] and [sn:%lli]" 564 " at address %#x\n", inst->seqNum, ld_inst->seqNum, 565 ld_eff_addr1); | 563 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] and " 564 "[sn:%lli] at address %#x\n", 565 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); |
566 memDepViolator = ld_inst; 567 568 ++lsqMemOrderViolation; 569 570 return new GenericISA::M5PanicFault("Detected fault with " 571 "inst [sn:%lli] and [sn:%lli] at address %#x\n", 572 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); 573 } --- 721 unchanged lines hidden --- | 566 memDepViolator = ld_inst; 567 568 ++lsqMemOrderViolation; 569 570 return new GenericISA::M5PanicFault("Detected fault with " 571 "inst [sn:%lli] and [sn:%lli] at address %#x\n", 572 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); 573 } --- 721 unchanged lines hidden --- |