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 ---