本文整理汇总了C++中StateVector::setLocal方法的典型用法代码示例。如果您正苦于以下问题:C++ StateVector::setLocal方法的具体用法?C++ StateVector::setLocal怎么用?C++ StateVector::setLocal使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StateVector
的用法示例。
在下文中一共展示了StateVector::setLocal方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: clone
/***
* Returns a shallow copy
*/
StateVector* StateVector::clone() {
StateVector *clone = new (gc) StateVector(currentReferences->size(), gc);
for (int32_t i = 0; i < getNumberOfLocals(); i++) {
TessaInstruction* currentReference = getLocal(i);
clone->setLocal(i, currentReference);
}
return clone;
}
示例2: createNewBasicBlock
/***
* You can get the basic block object by asking the Label to give you the basic block
* When you create a basic block, it also creates the parameter instructions for the current number of local variables.
* If you are tracking more than just local variables, you have to manually create a parameter instruction later.
*/
TessaVM::BasicBlock* TessaCreationApi::createNewBasicBlock() {
TessaVM::BasicBlock* newBasicBlock = currentFunction->createNewBasicBlock();
this->switchToBasicBlock(newBasicBlock);
int localCount = currentFunction->getLocalCount();
StateVector* beginStateVector = new (gc) StateVector(localCount, gc);
for (int i = 0; i < localCount; i++) {
beginStateVector->setLocal(i, new (gc) ParameterInstruction(NULL, newBasicBlock));
}
StateVector* endStateVector = beginStateVector->clone();
newBasicBlock->setBeginState(beginStateVector);
newBasicBlock->setEndState(endStateVector);
return newBasicBlock;
}
示例3: setLocalVariable
void TessaCreationApi::setLocalVariable(int localVariableNumber, TessaInstruction* newReference) {
StateVector* endState = currentFunction->getCurrentBasicBlock()->getEndState();
endState->setLocal(localVariableNumber, newReference);
}
示例4: trackExtraVariableInEntryState
void TessaCreationApi::trackExtraVariableInEntryState(int index, TessaInstruction* reference, int startingNumberOfLocals) {
BasicBlock* currentBlock = currentFunction->getCurrentBasicBlock();
StateVector* beginState = currentBlock->getBeginState();
//AvmAssert(index + startingNumberOfLocals <= beginState->getNumberOfLocals());
beginState->setLocal(index + startingNumberOfLocals, reference);
}