Esempio n. 1
0
//_________________________________________________________________________________________________
void SwitchInst::setTarget(U_32 i, Node* bb)
{
    assert(bb->isBlockNode());
    
    ConstantAreaItem * cai = getConstantAreaItem();
    assert(i<cai->getSize()/sizeof(Node*));
    ((Node**)cai->getValue())[i]=bb;
}
Esempio n. 2
0
//_________________________________________________________________________________________________
void SwitchInst::replaceTarget(Node * bbFrom, Node * bbTo)
{
    assert(bbTo->isBlockNode());
    ConstantAreaItem * cai = getConstantAreaItem();
    Node** bbs=(Node**)cai->getValue();
#ifdef _DEBUG
    bool found = false;
#endif
    for (U_32 i=0, n=cai->getSize()/sizeof(Node*); i<n; i++) {
        if (bbs[i]==bbFrom) {
#ifdef _DEBUG
            found = true;
#endif
            bbs[i]=bbTo; 
        }
    }
    assert(found);
}
Esempio n. 3
0
Node* SwitchInst::getTarget(U_32 i)const
{
    ConstantAreaItem * cai = getConstantAreaItem();
    assert(i<cai->getSize()/sizeof(Node*));
    return ((Node**)cai->getValue())[i];
}