本文整理汇总了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();
}