Lines Matching defs:pg
24 void Condition::Compile(PandaGen *pg, const ir::Expression *expr, Label *falseLabel)
43 RegScope rs(pg);
44 VReg lhs = pg->AllocReg();
46 binExpr->Left()->Compile(pg);
47 pg->StoreAccumulator(binExpr, lhs);
48 binExpr->Right()->Compile(pg);
49 pg->Condition(binExpr, binExpr->OperatorType(), lhs, falseLabel);
53 binExpr->Left()->Compile(pg);
54 pg->BranchIfFalse(binExpr, falseLabel);
56 binExpr->Right()->Compile(pg);
57 pg->BranchIfFalse(binExpr, falseLabel);
61 auto *endLabel = pg->AllocLabel();
63 binExpr->Left()->Compile(pg);
64 pg->BranchIfTrue(binExpr, endLabel);
66 binExpr->Right()->Compile(pg);
67 pg->BranchIfFalse(binExpr, falseLabel);
68 pg->SetLabel(binExpr, endLabel);
77 expr->AsUnaryExpression()->Argument()->Compile(pg);
79 pg->Negate(expr);
80 pg->BranchIfFalse(expr, falseLabel);
85 expr->Compile(pg);
86 pg->BranchIfFalse(expr, falseLabel);