当前位置: 首页>>代码示例>>C++>>正文


C++ BasicBlock::getIRManager方法代码示例

本文整理汇总了C++中BasicBlock::getIRManager方法的典型用法代码示例。如果您正苦于以下问题:C++ BasicBlock::getIRManager方法的具体用法?C++ BasicBlock::getIRManager怎么用?C++ BasicBlock::getIRManager使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BasicBlock的用法示例。


在下文中一共展示了BasicBlock::getIRManager方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: setOpnd

//_________________________________________________________________________________________________
void Inst::setOpnd(U_32 index, Opnd * opnd)
{
    Opnd ** opnds = getOpnds();
    if (index < opndCount) {
        Constraint cc = opnds[index]->getConstraint(Opnd::ConstraintKind_Initial);
        opnds[index] = opnd;
        if(!hasKind(Kind_PseudoInst) 
            && (getOpndRoles()[index] & OpndRole_Explicit) 
            && cc != opnd->getConstraint(Opnd::ConstraintKind_Initial)
            && !Encoder::isOpndAllowed(opcodeGroup, getExplicitOpndIndexFromOpndRoles(getOpndRoles()[index]), opnd->getConstraint(Opnd::ConstraintKind_Initial), getForm()==Form_Extended, true)
            ) {

            BasicBlock * bb = getBasicBlock();

            //instruction must be inserted into a basic block to be modifiable.
            //it caused by necessity of reference to irManager for implicit operands
            //assigning (flags, for example)
            assert(bb);
            assignOpcodeGroup(&bb->getIRManager());
            assert(opcodeGroup);
        }

    } else{
        opnds[(index - opndCount) / 4]->setMemOpndSubOpnd((MemOpndSubOpndKind)((index - opndCount) & 3), opnd);
    }
    verify();
}
开发者ID:unitedroad,项目名称:harmony-for-haiku,代码行数:28,代码来源:Ia32Inst.cpp


注:本文中的BasicBlock::getIRManager方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。