LCOV - code coverage report
Current view: top level - legacy/ascend950/unified_platform/ccu/ccu_representation/reps/common - ccu_rep_store_var.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 20 20
Test Date: 2026-08-17 10:19:35 Functions: 100.0 % 3 3

            Line data    Source code
       1              : /*
       2              :  * Copyright (c) Huawei Technologies Co., Ltd. 2026-2026. All rights reserved.
       3              :  * Description: ccu representation store implementation file
       4              :  * Create: 2026-01-12
       5              :  */
       6              : 
       7              : #include "ccu_rep.h"
       8              : #include "string_util.h"
       9              : 
      10              : namespace Hccl {
      11              : namespace CcuRep {
      12              : 
      13            4 :     CcuRepStoreVar::CcuRepStoreVar(const Variable& src, const Variable& var) : src(src), var(var)
      14              :     {
      15            4 :         type = CcuRepType::STORE;
      16            4 :         instrCount = 7; // 7: Store包含7条指令
      17            4 :     }
      18              : 
      19            4 :     bool CcuRepStoreVar::Translate(CcuInstr*& instr, uint16_t& instrId, const TransDep& dep)
      20              :     {
      21            4 :         this->instrId = instrId;
      22            4 :         translated = true;
      23            4 :         uint64_t varAddr = dep.xnBaseAddr + CCU_RESOURCE_XN_PER_SIZE * var.Id();
      24              : 
      25            4 :         LoadGSAXnInstr(instr++, dep.commGsa[0], dep.reserveGsaId, src.Id());
      26            4 :         LoadImdToGSAInstr(instr++, dep.commGsa[1], varAddr);
      27            4 :         LoadImdToXnInstr(instr++, dep.commXn[0], dep.memTokenInfo, CCU_LOAD_TO_XN_SEC_INFO);
      28            4 :         LoadImdToXnInstr(instr++, dep.commXn[1], dep.ccuResSpaceTokenInfo, CCU_LOAD_TO_XN_SEC_INFO);
      29            4 :         LoadImdToXnInstr(instr++, dep.commXn[2], CCU_RESOURCE_XN_PER_SIZE);
      30            4 :         TransLocMemToLocMemInstr(
      31            4 :             instr++, dep.commGsa[0], dep.commXn[0], dep.commGsa[1], dep.commXn[1], dep.commXn[2],
      32            4 :             dep.reserveChannalId[0], dep.commSignal, mask, 0, 0, 1, 1);
      33            4 :         SetCKEInstr(instr++, 0, 0, dep.commSignal, mask, 1);
      34            4 :         instrId += instrCount;
      35              : 
      36            4 :         return translated;
      37              :     }
      38              : 
      39            4 :     std::string CcuRepStoreVar::Describe() { return StringFormat("Store Var([%llu], [%u])", src.Id(), var.Id()); }
      40              : 
      41              : }; // namespace CcuRep
      42              : }; // namespace Hccl
        

Generated by: LCOV version 2.0-1