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; |
563 if (traceData) { 564 traceData->setData(memData); 565 } |
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; |
577 if (traceData) { 578 traceData->setData(memData); 579 } |
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; |
645 if (traceData) { 646 traceData->setData(memData); 647 } |
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 --- |