Lines Matching refs:BO
146 bool ByteCodeExprGen<Emitter>::VisitBinaryOperator(const BinaryOperator *BO) { in VisitBinaryOperator() argument
147 const Expr *LHS = BO->getLHS(); in VisitBinaryOperator()
148 const Expr *RHS = BO->getRHS(); in VisitBinaryOperator()
151 switch (BO->getOpcode()) { in VisitBinaryOperator()
166 return this->bail(BO); in VisitBinaryOperator()
169 if (Optional<PrimType> T = classify(BO->getType())) { in VisitBinaryOperator()
175 auto Discard = [this, T, BO](bool Result) { in VisitBinaryOperator()
178 return DiscardResult ? this->emitPop(*T, BO) : true; in VisitBinaryOperator()
181 switch (BO->getOpcode()) { in VisitBinaryOperator()
183 return Discard(this->emitEQ(*LT, BO)); in VisitBinaryOperator()
185 return Discard(this->emitNE(*LT, BO)); in VisitBinaryOperator()
187 return Discard(this->emitLT(*LT, BO)); in VisitBinaryOperator()
189 return Discard(this->emitLE(*LT, BO)); in VisitBinaryOperator()
191 return Discard(this->emitGT(*LT, BO)); in VisitBinaryOperator()
193 return Discard(this->emitGE(*LT, BO)); in VisitBinaryOperator()
195 return Discard(this->emitSub(*T, BO)); in VisitBinaryOperator()
197 return Discard(this->emitAdd(*T, BO)); in VisitBinaryOperator()
199 return Discard(this->emitMul(*T, BO)); in VisitBinaryOperator()
201 return this->bail(BO); in VisitBinaryOperator()
205 return this->bail(BO); in VisitBinaryOperator()