rename_impl.hh (9527:68154bc0e0ea) | rename_impl.hh (9531:1114ead790eb) |
---|---|
1/* 2 * Copyright (c) 2010-2012 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 --- 586 unchanged lines hidden (view full) --- 595 --insts_available; 596 597 continue; 598 } 599 600 DPRINTF(Rename, "[tid:%u]: Processing instruction [sn:%lli] with " 601 "PC %s.\n", tid, inst->seqNum, inst->pcState()); 602 | 1/* 2 * Copyright (c) 2010-2012 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 --- 586 unchanged lines hidden (view full) --- 595 --insts_available; 596 597 continue; 598 } 599 600 DPRINTF(Rename, "[tid:%u]: Processing instruction [sn:%lli] with " 601 "PC %s.\n", tid, inst->seqNum, inst->pcState()); 602 |
603 // Check here to make sure there are enough destination registers 604 // to rename to. Otherwise block. 605 if (renameMap[tid]->numFreeEntries() < inst->numDestRegs()) { 606 DPRINTF(Rename, "Blocking due to lack of free " 607 "physical registers to rename to.\n"); 608 blockThisCycle = true; 609 insts_to_rename.push_front(inst); 610 ++renameFullRegistersEvents; 611 612 break; 613 } 614 |
|
603 // Handle serializeAfter/serializeBefore instructions. 604 // serializeAfter marks the next instruction as serializeBefore. 605 // serializeBefore makes the instruction wait in rename until the ROB 606 // is empty. 607 608 // In this model, IPR accesses are serialize before 609 // instructions, and store conditionals are serialize after 610 // instructions. This is mainly due to lack of support for --- 25 unchanged lines hidden (view full) --- 636 637 renamedSerializing++; 638 639 inst->setSerializeHandled(); 640 641 serializeAfter(insts_to_rename, tid); 642 } 643 | 615 // Handle serializeAfter/serializeBefore instructions. 616 // serializeAfter marks the next instruction as serializeBefore. 617 // serializeBefore makes the instruction wait in rename until the ROB 618 // is empty. 619 620 // In this model, IPR accesses are serialize before 621 // instructions, and store conditionals are serialize after 622 // instructions. This is mainly due to lack of support for --- 25 unchanged lines hidden (view full) --- 648 649 renamedSerializing++; 650 651 inst->setSerializeHandled(); 652 653 serializeAfter(insts_to_rename, tid); 654 } 655 |
644 // Check here to make sure there are enough destination registers 645 // to rename to. Otherwise block. 646 if (renameMap[tid]->numFreeEntries() < inst->numDestRegs()) { 647 DPRINTF(Rename, "Blocking due to lack of free " 648 "physical registers to rename to.\n"); 649 blockThisCycle = true; 650 insts_to_rename.push_front(inst); 651 ++renameFullRegistersEvents; 652 653 break; 654 } 655 | |
656 renameSrcRegs(inst, inst->threadNumber); 657 658 renameDestRegs(inst, inst->threadNumber); 659 660 ++renamed_insts; 661 662 663 // Put instruction in rename queue. --- 700 unchanged lines hidden --- | 656 renameSrcRegs(inst, inst->threadNumber); 657 658 renameDestRegs(inst, inst->threadNumber); 659 660 ++renamed_insts; 661 662 663 // Put instruction in rename queue. --- 700 unchanged lines hidden --- |