lsq_impl.hh (14194:967b9c450b04) lsq_impl.hh (14297:b4519e586f5e)
1/*
2 * Copyright (c) 2011-2012, 2014, 2017-2018 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 673 unchanged lines hidden (view full) ---

682 thread[tid].dumpInsts();
683 }
684}
685
686template<class Impl>
687Fault
688LSQ<Impl>::pushRequest(const DynInstPtr& inst, bool isLoad, uint8_t *data,
689 unsigned int size, Addr addr, Request::Flags flags,
1/*
2 * Copyright (c) 2011-2012, 2014, 2017-2018 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 673 unchanged lines hidden (view full) ---

682 thread[tid].dumpInsts();
683 }
684}
685
686template<class Impl>
687Fault
688LSQ<Impl>::pushRequest(const DynInstPtr& inst, bool isLoad, uint8_t *data,
689 unsigned int size, Addr addr, Request::Flags flags,
690 uint64_t *res, AtomicOpFunctor *amo_op,
690 uint64_t *res, AtomicOpFunctorPtr amo_op,
691 const std::vector<bool>& byteEnable)
692{
693 // This comming request can be either load, store or atomic.
694 // Atomic request has a corresponding pointer to its atomic memory
695 // operation
696 bool isAtomic M5_VAR_USED = !isLoad && amo_op;
697
698 ThreadID tid = cpu->contextToThread(inst->contextId());

--- 13 unchanged lines hidden (view full) ---

712 req = inst->savedReq;
713 assert(req);
714 } else {
715 if (needs_burst) {
716 req = new SplitDataRequest(&thread[tid], inst, isLoad, addr,
717 size, flags, data, res);
718 } else {
719 req = new SingleDataRequest(&thread[tid], inst, isLoad, addr,
691 const std::vector<bool>& byteEnable)
692{
693 // This comming request can be either load, store or atomic.
694 // Atomic request has a corresponding pointer to its atomic memory
695 // operation
696 bool isAtomic M5_VAR_USED = !isLoad && amo_op;
697
698 ThreadID tid = cpu->contextToThread(inst->contextId());

--- 13 unchanged lines hidden (view full) ---

712 req = inst->savedReq;
713 assert(req);
714 } else {
715 if (needs_burst) {
716 req = new SplitDataRequest(&thread[tid], inst, isLoad, addr,
717 size, flags, data, res);
718 } else {
719 req = new SingleDataRequest(&thread[tid], inst, isLoad, addr,
720 size, flags, data, res, amo_op);
720 size, flags, data, res, std::move(amo_op));
721 }
722 assert(req);
723 if (!byteEnable.empty()) {
724 req->_byteEnable = byteEnable;
725 }
726 inst->setRequest();
727 req->taskId(cpu->taskId());
728

--- 467 unchanged lines hidden ---
721 }
722 assert(req);
723 if (!byteEnable.empty()) {
724 req->_byteEnable = byteEnable;
725 }
726 inst->setRequest();
727 req->taskId(cpu->taskId());
728

--- 467 unchanged lines hidden ---