Lines Matching refs:gpuDynInst

150         getRegisterIndex(int operandIndex, GPUDynInstPtr gpuDynInst) override
180 void execute(GPUDynInstPtr gpuDynInst);
382 getRegisterIndex(int operandIndex, GPUDynInstPtr gpuDynInst) override
436 initiateAcc(GPUDynInstPtr gpuDynInst) override
440 gpuDynInst->statusBitVector = gpuDynInst->exec_mask;
443 for (int i = 0; i < gpuDynInst->computeUnit()->wfSize(); ++i)
444 if (gpuDynInst->exec_mask[i])
445 gpuDynInst->statusVector.push_back(num_dest_operands);
447 gpuDynInst->statusVector.push_back(0);
452 c0 *d = &((c0*)gpuDynInst->d_data)
453 [k * gpuDynInst->computeUnit()->wfSize()];
455 for (int i = 0; i < gpuDynInst->computeUnit()->wfSize(); ++i) {
456 if (gpuDynInst->exec_mask[i]) {
457 Addr vaddr = gpuDynInst->addr[i] + k * sizeof(c0);
461 *d = gpuDynInst->wavefront()->ldsChunk->
466 gpuDynInst->computeUnit()->masterId(),
467 0, gpuDynInst->wfDynId);
469 gpuDynInst->setRequestFlags(req);
473 if (gpuDynInst->computeUnit()->shader->
475 gpuDynInst->isAcquire()) {
479 gpuDynInst->execContinuation =
482 gpuDynInst->useContinuation = true;
486 gpuDynInst->useContinuation = false;
489 gpuDynInst->computeUnit()->sendRequest(gpuDynInst,
497 gpuDynInst->updateStats();
501 completeAcc(GPUDynInstPtr gpuDynInst) override
527 Wavefront *w = gpuDynInst->wavefront();
545 &((c1*)gpuDynInst->d_data)[k * w->computeUnit->wfSize()];
548 if (gpuDynInst->exec_mask[i]) {
566 int loadVrfBankConflictCycles = gpuDynInst->computeUnit()->
567 vrf[w->simdId]->exec(gpuDynInst->seqNum(), w, regVec,
568 sizeof(c0), gpuDynInst->time);
571 gpuDynInst->computeUnit()->globalMemoryPipe
575 gpuDynInst->computeUnit()->localMemoryPipe
582 execLdAcq(GPUDynInstPtr gpuDynInst) override
587 if (gpuDynInst->computeUnit()->shader->separate_acquire_release
588 && gpuDynInst->isAcquire()) {
589 gpuDynInst->statusBitVector = VectorMask(1);
590 gpuDynInst->useContinuation = false;
593 gpuDynInst->computeUnit()->masterId(),
594 0, gpuDynInst->wfDynId);
596 gpuDynInst->computeUnit()->injectGlobalMemFence(gpuDynInst, false, req);
677 getRegisterIndex(int operandIndex, GPUDynInstPtr gpuDynInst) override
698 void execute(GPUDynInstPtr gpuDynInst) override;
942 getRegisterIndex(int operandIndex, GPUDynInstPtr gpuDynInst) override
1006 initiateAcc(GPUDynInstPtr gpuDynInst) override
1011 if (gpuDynInst->computeUnit()->shader->separate_acquire_release
1012 && gpuDynInst->isRelease()) {
1014 gpuDynInst->statusBitVector = VectorMask(1);
1015 gpuDynInst->execContinuation = &GPUStaticInst::execSt;
1016 gpuDynInst->useContinuation = true;
1019 gpuDynInst->computeUnit()->masterId(),
1020 0, gpuDynInst->wfDynId);
1022 gpuDynInst->computeUnit()->injectGlobalMemFence(gpuDynInst, false, req);
1029 execSt(gpuDynInst);
1035 void completeAcc(GPUDynInstPtr gpuDynInst) override { }
1042 execSt(GPUDynInstPtr gpuDynInst) override
1046 gpuDynInst->statusBitVector = gpuDynInst->exec_mask;
1049 for (int i = 0; i < gpuDynInst->computeUnit()->wfSize(); ++i)
1050 if (gpuDynInst->exec_mask[i])
1051 gpuDynInst->statusVector.push_back(num_src_operands);
1053 gpuDynInst->statusVector.push_back(0);
1057 c0 *d = &((c0*)gpuDynInst->d_data)
1058 [k * gpuDynInst->computeUnit()->wfSize()];
1060 for (int i = 0; i < gpuDynInst->computeUnit()->wfSize(); ++i) {
1061 if (gpuDynInst->exec_mask[i]) {
1062 Addr vaddr = gpuDynInst->addr[i] + k * sizeof(c0);
1066 gpuDynInst->wavefront()->ldsChunk->write<c0>(vaddr,
1071 gpuDynInst->computeUnit()->masterId(),
1072 0, gpuDynInst->wfDynId);
1074 gpuDynInst->setRequestFlags(req);
1080 gpuDynInst->useContinuation = false;
1081 gpuDynInst->computeUnit()->sendRequest(gpuDynInst,
1090 gpuDynInst->updateStats();
1153 getRegisterIndex(int operandIndex, GPUDynInstPtr gpuDynInst) override
1173 void execute(GPUDynInstPtr gpuDynInst) override;
1443 getRegisterIndex(int operandIndex, GPUDynInstPtr gpuDynInst)
1477 initiateAcc(GPUDynInstPtr gpuDynInst) override
1482 if (gpuDynInst->computeUnit()->shader->separate_acquire_release
1483 && (gpuDynInst->isRelease()
1484 || gpuDynInst->isAcquireRelease())) {
1486 gpuDynInst->statusBitVector = VectorMask(1);
1488 gpuDynInst->execContinuation = &GPUStaticInst::execAtomic;
1489 gpuDynInst->useContinuation = true;
1493 gpuDynInst->computeUnit()->masterId(),
1494 0, gpuDynInst->wfDynId);
1496 gpuDynInst->computeUnit()->injectGlobalMemFence(gpuDynInst, false, req);
1503 execAtomic(gpuDynInst);
1508 completeAcc(GPUDynInstPtr gpuDynInst) override
1519 Wavefront *w = gpuDynInst->wavefront();
1525 CType *p1 = &((CType*)gpuDynInst->d_data)[0];
1528 if (gpuDynInst->exec_mask[i]) {
1544 int loadVrfBankConflictCycles = gpuDynInst->computeUnit()->
1545 vrf[w->simdId]->exec(gpuDynInst->seqNum(), w, regVec,
1546 sizeof(CType), gpuDynInst->time);
1549 gpuDynInst->computeUnit()->globalMemoryPipe
1553 gpuDynInst->computeUnit()->localMemoryPipe
1559 void execute(GPUDynInstPtr gpuDynInst) override;
1566 execAtomic(GPUDynInstPtr gpuDynInst) override
1568 gpuDynInst->statusBitVector = gpuDynInst->exec_mask;
1572 c0 *d = &((c0*) gpuDynInst->d_data)[0];
1573 c0 *e = &((c0*) gpuDynInst->a_data)[0];
1574 c0 *f = &((c0*) gpuDynInst->x_data)[0];
1576 for (int i = 0; i < gpuDynInst->computeUnit()->wfSize(); ++i) {
1577 if (gpuDynInst->exec_mask[i]) {
1578 Addr vaddr = gpuDynInst->addr[i];
1581 Wavefront *wavefront = gpuDynInst->wavefront();
1626 gpuDynInst->computeUnit()->masterId(),
1627 0, gpuDynInst->wfDynId,
1628 gpuDynInst->makeAtomicOpFunctor<c0>(e,
1631 gpuDynInst->setRequestFlags(req);
1635 if (gpuDynInst->computeUnit()->shader->
1637 (gpuDynInst->isAcquire())) {
1641 gpuDynInst->execContinuation =
1644 gpuDynInst->useContinuation = true;
1647 gpuDynInst->useContinuation = false;
1650 gpuDynInst->computeUnit()->sendRequest(gpuDynInst, i,
1660 gpuDynInst->updateStats();
1666 execAtomicAcq(GPUDynInstPtr gpuDynInst) override
1671 if (gpuDynInst->computeUnit()->shader->separate_acquire_release
1672 && gpuDynInst->isAcquire()) {
1673 gpuDynInst->statusBitVector = VectorMask(1);
1677 gpuDynInst->useContinuation = false;
1680 gpuDynInst->computeUnit()->masterId(),
1681 0, gpuDynInst->wfDynId);
1683 gpuDynInst->computeUnit()->injectGlobalMemFence(gpuDynInst, false, req);