Lines Matching defs:branch
463 struct branch_info * branch;
549 branch = &s->Branches[s->CurrentBranchDepth++];
550 branch->If = newip;
551 branch->Else = -1;
552 branch->Endif = -1;
562 rc_error(s->C, "%s: got ELSE outside a branch", __FUNCTION__);
566 branch = &s->Branches[s->CurrentBranchDepth - 1];
567 branch->Else = newip;
574 rc_error(s->C, "%s: got ELSE outside a branch", __FUNCTION__);
578 branch = &s->Branches[s->CurrentBranchDepth - 1];
579 branch->Endif = newip;
581 s->Code->inst[branch->Endif].inst2 = R500_FC_OP_JUMP
584 | R500_FC_B_OP0_DECR /* decrement branch counter if stay */
585 | R500_FC_B_OP1_NONE /* no branch counter if stay */
588 s->Code->inst[branch->Endif].inst3 = R500_FC_JUMP_ADDR(branch->Endif + 1);
589 s->Code->inst[branch->If].inst2 = R500_FC_OP_JUMP
592 | R500_FC_B_OP0_INCR /* increment branch counter if stay */
596 if (branch->Else >= 0) {
597 /* increment branch counter also if jump */
598 s->Code->inst[branch->If].inst2 |= R500_FC_B_OP1_INCR;
599 s->Code->inst[branch->If].inst3 = R500_FC_JUMP_ADDR(branch->Else + 1);
601 s->Code->inst[branch->Else].inst2 = R500_FC_OP_JUMP
605 | R500_FC_B_OP1_DECR /* decrement branch counter if jump */
608 s->Code->inst[branch->Else].inst3 = R500_FC_JUMP_ADDR(branch->Endif + 1);
610 /* don't touch branch counter on jump */
611 s->Code->inst[branch->If].inst2 |= R500_FC_B_OP1_NONE;
612 s->Code->inst[branch->If].inst3 = R500_FC_JUMP_ADDR(branch->Endif + 1);