63 gpuDynInst->latency.init(gpuDynInst->computeUnit());
64 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
80 gpuDynInst->computeUnit()->scalarMemoryPipe
81 .issueRequest(gpuDynInst);
118 gpuDynInst->latency.init(gpuDynInst->computeUnit());
119 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
135 gpuDynInst->computeUnit()->scalarMemoryPipe.
136 issueRequest(gpuDynInst);
172 gpuDynInst->latency.init(gpuDynInst->computeUnit());
173 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
189 gpuDynInst->computeUnit()->scalarMemoryPipe.
190 issueRequest(gpuDynInst);
226 gpuDynInst->latency.init(gpuDynInst->computeUnit());
227 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
243 gpuDynInst->computeUnit()->scalarMemoryPipe.
244 issueRequest(gpuDynInst);
280 gpuDynInst->latency.init(gpuDynInst->computeUnit());
281 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
297 gpuDynInst->computeUnit()->scalarMemoryPipe.
298 issueRequest(gpuDynInst);
335 gpuDynInst->latency.init(gpuDynInst->computeUnit());
336 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
352 gpuDynInst->computeUnit()->scalarMemoryPipe
353 .issueRequest(gpuDynInst);
373 :
Inst_SMEM(iFmt,
"s_buffer_load_dwordx2")
391 gpuDynInst->latency.init(gpuDynInst->computeUnit());
392 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
408 gpuDynInst->computeUnit()->scalarMemoryPipe
409 .issueRequest(gpuDynInst);
429 :
Inst_SMEM(iFmt,
"s_buffer_load_dwordx4")
447 gpuDynInst->latency.init(gpuDynInst->computeUnit());
448 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
464 gpuDynInst->computeUnit()->scalarMemoryPipe
465 .issueRequest(gpuDynInst);
485 :
Inst_SMEM(iFmt,
"s_buffer_load_dwordx8")
503 gpuDynInst->latency.init(gpuDynInst->computeUnit());
504 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
520 gpuDynInst->computeUnit()->scalarMemoryPipe
521 .issueRequest(gpuDynInst);
541 :
Inst_SMEM(iFmt,
"s_buffer_load_dwordx16")
559 gpuDynInst->latency.init(gpuDynInst->computeUnit());
560 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
576 gpuDynInst->computeUnit()->scalarMemoryPipe
577 .issueRequest(gpuDynInst);
617 gpuDynInst->latency.init(gpuDynInst->computeUnit());
618 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
626 std::memcpy((
void*)gpuDynInst->scalar_data, sdata.
rawDataPtr(),
639 gpuDynInst->computeUnit()->scalarMemoryPipe.
640 issueRequest(gpuDynInst);
674 gpuDynInst->latency.init(gpuDynInst->computeUnit());
675 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
683 std::memcpy((
void*)gpuDynInst->scalar_data, sdata.
rawDataPtr(),
696 gpuDynInst->computeUnit()->scalarMemoryPipe.
697 issueRequest(gpuDynInst);
731 gpuDynInst->latency.init(gpuDynInst->computeUnit());
732 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
740 std::memcpy((
void*)gpuDynInst->scalar_data, sdata.
rawDataPtr(),
741 sizeof(gpuDynInst->scalar_data));
753 gpuDynInst->computeUnit()->scalarMemoryPipe.
754 issueRequest(gpuDynInst);
771 :
Inst_SMEM(iFmt,
"s_buffer_store_dword")
803 :
Inst_SMEM(iFmt,
"s_buffer_store_dwordx2")
835 :
Inst_SMEM(iFmt,
"s_buffer_store_dwordx4")
954 sdst = (
ScalarRegU64)gpuDynInst->computeUnit()->curCycle();
void execute(GPUDynInstPtr) override
Inst_SMEM__S_ATC_PROBE_BUFFER(InFmt_SMEM *)
~Inst_SMEM__S_ATC_PROBE_BUFFER()
void execute(GPUDynInstPtr) override
~Inst_SMEM__S_ATC_PROBE()
Inst_SMEM__S_ATC_PROBE(InFmt_SMEM *)
~Inst_SMEM__S_BUFFER_LOAD_DWORDX16()
Inst_SMEM__S_BUFFER_LOAD_DWORDX16(InFmt_SMEM *)
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_LOAD_DWORDX2(InFmt_SMEM *)
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_SMEM__S_BUFFER_LOAD_DWORDX2()
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_SMEM__S_BUFFER_LOAD_DWORDX4()
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_LOAD_DWORDX4(InFmt_SMEM *)
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_LOAD_DWORDX8(InFmt_SMEM *)
~Inst_SMEM__S_BUFFER_LOAD_DWORDX8()
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_SMEM__S_BUFFER_LOAD_DWORD()
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_LOAD_DWORD(InFmt_SMEM *)
void execute(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_STORE_DWORDX2(InFmt_SMEM *)
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_SMEM__S_BUFFER_STORE_DWORDX2()
void execute(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_STORE_DWORDX4(InFmt_SMEM *)
~Inst_SMEM__S_BUFFER_STORE_DWORDX4()
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_BUFFER_STORE_DWORD(InFmt_SMEM *)
~Inst_SMEM__S_BUFFER_STORE_DWORD()
void execute(GPUDynInstPtr) override
~Inst_SMEM__S_DCACHE_INV_VOL()
Inst_SMEM__S_DCACHE_INV_VOL(InFmt_SMEM *)
Inst_SMEM__S_DCACHE_INV(InFmt_SMEM *)
~Inst_SMEM__S_DCACHE_INV()
void execute(GPUDynInstPtr) override
Inst_SMEM__S_DCACHE_WB_VOL(InFmt_SMEM *)
~Inst_SMEM__S_DCACHE_WB_VOL()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
Inst_SMEM__S_DCACHE_WB(InFmt_SMEM *)
~Inst_SMEM__S_DCACHE_WB()
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_SMEM__S_LOAD_DWORDX16()
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_LOAD_DWORDX16(InFmt_SMEM *)
Inst_SMEM__S_LOAD_DWORDX2(InFmt_SMEM *)
void execute(GPUDynInstPtr) override
Read 2 dwords from scalar data cache.
~Inst_SMEM__S_LOAD_DWORDX2()
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_LOAD_DWORDX4(InFmt_SMEM *)
~Inst_SMEM__S_LOAD_DWORDX4()
void initiateAcc(GPUDynInstPtr) override
~Inst_SMEM__S_LOAD_DWORDX8()
Inst_SMEM__S_LOAD_DWORDX8(InFmt_SMEM *)
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
Read 1 dword from scalar data cache.
Inst_SMEM__S_LOAD_DWORD(InFmt_SMEM *)
void completeAcc(GPUDynInstPtr) override
~Inst_SMEM__S_LOAD_DWORD()
void execute(GPUDynInstPtr) override
Inst_SMEM__S_MEMREALTIME(InFmt_SMEM *)
~Inst_SMEM__S_MEMREALTIME()
Inst_SMEM__S_MEMTIME(InFmt_SMEM *)
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
Inst_SMEM__S_STORE_DWORDX2(InFmt_SMEM *)
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_SMEM__S_STORE_DWORDX2()
void initiateAcc(GPUDynInstPtr) override
Inst_SMEM__S_STORE_DWORDX4(InFmt_SMEM *)
~Inst_SMEM__S_STORE_DWORDX4()
void completeAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_SMEM__S_STORE_DWORD()
void completeAcc(GPUDynInstPtr) override
Inst_SMEM__S_STORE_DWORD(InFmt_SMEM *)
void initMemRead(GPUDynInstPtr gpuDynInst)
initiate a memory read access for N dwords
void calcAddr(GPUDynInstPtr gpu_dyn_inst, ConstScalarOperandU64 &addr, ScalarRegU32 offset)
For normal s_load_dword/s_store_dword instruction addresses.
void initMemWrite(GPUDynInstPtr gpuDynInst)
initiate a memory write access for N dwords
void read() override
read from and write to the underlying register(s) that this operand is referring to.
std::enable_if< Condition, DataType >::type rawData() const
we store scalar data in a std::array, however if we need the full operand data we use this method to ...
void panicUnimplemented() const
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< GPUDynInst > GPUDynInstPtr