sve_mem.isa (14106:293e3f4b1321) | sve_mem.isa (14109:7d2f3bed8ea3) |
---|---|
1// Copyright (c) 2017-2018 ARM Limited | 1// Copyright (c) 2017-2019 ARM Limited |
2// All rights reserved 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license 9// terms below provided that you ensure that this notice is replicated --- 545 unchanged lines hidden (view full) --- 555 if (%(pred_check_code)s) { 556 fault = readMemAtomic(xc, traceData, EA, memData, 557 this->memAccessFlags); 558 } 559 560 if (fault == NoFault) { 561 %(fault_status_reset_code)s; 562 %(memacc_code)s; | 2// All rights reserved 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license 9// terms below provided that you ensure that this notice is replicated --- 545 unchanged lines hidden (view full) --- 555 if (%(pred_check_code)s) { 556 fault = readMemAtomic(xc, traceData, EA, memData, 557 this->memAccessFlags); 558 } 559 560 if (fault == NoFault) { 561 %(fault_status_reset_code)s; 562 %(memacc_code)s; |
563 %(op_wb)s; | 563 if (traceData) { 564 traceData->setData(memData); 565 } |
564 } else { 565 %(fault_status_set_code)s; 566 if (firstFault) { 567 for (index = 0; 568 index < numElems && !(%(pred_check_code)s); 569 index++); 570 571 if (index < elemIndex) { 572 fault = NoFault; 573 memData = 0; 574 %(memacc_code)s; | 566 } else { 567 %(fault_status_set_code)s; 568 if (firstFault) { 569 for (index = 0; 570 index < numElems && !(%(pred_check_code)s); 571 index++); 572 573 if (index < elemIndex) { 574 fault = NoFault; 575 memData = 0; 576 %(memacc_code)s; |
575 %(op_wb)s; | 577 if (traceData) { 578 traceData->setData(memData); 579 } |
576 } 577 } 578 } 579 return fault; 580 } 581}}; 582 583def template SveGatherLoadMicroopInitiateAcc {{ --- 49 unchanged lines hidden (view full) --- 633 %(op_rd)s; 634 635 MemElemType memData = 0; 636 if (xc->readMemAccPredicate()) { 637 getMem(pkt, memData, traceData); 638 } 639 640 %(memacc_code)s; | 580 } 581 } 582 } 583 return fault; 584 } 585}}; 586 587def template SveGatherLoadMicroopInitiateAcc {{ --- 49 unchanged lines hidden (view full) --- 637 %(op_rd)s; 638 639 MemElemType memData = 0; 640 if (xc->readMemAccPredicate()) { 641 getMem(pkt, memData, traceData); 642 } 643 644 %(memacc_code)s; |
641 %(op_wb)s; | 645 if (traceData) { 646 traceData->setData(memData); 647 } |
642 643 return NoFault; 644 } 645}}; 646 647def template SveScatterStoreMicroopExecute {{ 648 %(tpl_header)s 649 Fault %(class_name)s%(tpl_args)s::execute(ExecContext *xc, --- 614 unchanged lines hidden --- | 648 649 return NoFault; 650 } 651}}; 652 653def template SveScatterStoreMicroopExecute {{ 654 %(tpl_header)s 655 Fault %(class_name)s%(tpl_args)s::execute(ExecContext *xc, --- 614 unchanged lines hidden --- |