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-07-28 12:11:00 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(instr++, dep.commGsa[0], dep.commXn[0], dep.commGsa[1], dep.commXn[1], dep.commXn[2],
      31            4 :                              dep.reserveChannalId[0], dep.commSignal, mask, 0, 0, 1, 1);
      32            4 :     SetCKEInstr(instr++, 0, 0, dep.commSignal, mask, 1);
      33            4 :     instrId += instrCount;
      34              : 
      35            4 :     return translated;
      36              : }
      37              : 
      38            4 : std::string CcuRepStoreVar::Describe()
      39              : {
      40            4 :     return StringFormat("Store Var([%llu], [%u])", src.Id(), var.Id());
      41              : }
      42              : 
      43              : }; // namespace CcuRep
      44              : }; // namespace Hccl
        

Generated by: LCOV version 2.0-1