Lines Matching refs:LHS

57 static bool EvaluateDirectiveSubExpr(PPValue &LHS, unsigned MinPrec,
452 /// PeekTok, and whose precedence is PeekPrec. This returns the result in LHS.
457 static bool EvaluateDirectiveSubExpr(PPValue &LHS, unsigned MinPrec,
464 << LHS.getRange();
482 if (Operator == tok::ampamp && LHS.Val == 0)
484 else if (Operator == tok::pipepipe && LHS.Val != 0)
486 else if (Operator == tok::question && LHS.Val == 0)
495 PPValue RHS(LHS.getBitWidth());
517 // the LHS of the '?'. The grammar rule is:
538 llvm::APSInt Res(LHS.getBitWidth());
548 Res.setIsUnsigned(LHS.isUnsigned()|RHS.isUnsigned());
552 if (!LHS.isUnsigned() && LHS.Val.isNegative())
554 << LHS.Val.toString(10, true) + " to " +
555 LHS.Val.toString(10, false)
556 << LHS.getRange() << RHS.getRange();
561 << LHS.getRange() << RHS.getRange();
563 LHS.Val.setIsUnsigned(Res.isUnsigned());
572 Res = LHS.Val % RHS.Val;
575 << LHS.getRange() << RHS.getRange();
581 if (LHS.Val.isSigned())
582 Res = llvm::APSInt(LHS.Val.sdiv_ov(RHS.Val, Overflow), false);
584 Res = LHS.Val / RHS.Val;
587 << LHS.getRange() << RHS.getRange();
594 Res = llvm::APSInt(LHS.Val.smul_ov(RHS.Val, Overflow), false);
596 Res = LHS.Val * RHS.Val;
601 if (LHS.isUnsigned()) {
602 Overflow = ShAmt >= LHS.Val.getBitWidth();
604 ShAmt = LHS.Val.getBitWidth()-1;
605 Res = LHS.Val << ShAmt;
607 Res = llvm::APSInt(LHS.Val.sshl_ov(ShAmt, Overflow), false);
614 if (ShAmt >= LHS.getBitWidth())
615 Overflow = true, ShAmt = LHS.getBitWidth()-1;
616 Res = LHS.Val >> ShAmt;
620 if (LHS.isUnsigned())
621 Res = LHS.Val + RHS.Val;
623 Res = llvm::APSInt(LHS.Val.sadd_ov(RHS.Val, Overflow), false);
626 if (LHS.isUnsigned())
627 Res = LHS.Val - RHS.Val;
629 Res = llvm::APSInt(LHS.Val.ssub_ov(RHS.Val, Overflow), false);
632 Res = LHS.Val <= RHS.Val;
636 Res = LHS.Val < RHS.Val;
640 Res = LHS.Val >= RHS.Val;
644 Res = LHS.Val > RHS.Val;
648 Res = LHS.Val != RHS.Val;
652 Res = LHS.Val == RHS.Val;
656 Res = LHS.Val & RHS.Val;
659 Res = LHS.Val ^ RHS.Val;
662 Res = LHS.Val | RHS.Val;
665 Res = (LHS.Val != 0 && RHS.Val != 0);
669 Res = (LHS.Val != 0 || RHS.Val != 0);
677 << LHS.getRange() << RHS.getRange();
678 Res = RHS.Val; // LHS = LHS,RHS -> RHS.
684 << tok::colon << LHS.getRange() << RHS.getRange();
692 bool AfterColonLive = ValueLive && LHS.Val == 0;
693 PPValue AfterColonVal(LHS.getBitWidth());
704 // Now that we have the condition, the LHS and the RHS of the :, evaluate.
705 Res = LHS.Val != 0 ? RHS.Val : AfterColonVal.Val;
719 << LHS.getRange() << RHS.getRange();
726 << LHS.getRange() << RHS.getRange();
728 // Put the result back into 'LHS' for our next iteration.
729 LHS.Val = Res;
730 LHS.setEnd(RHS.getRange().getEnd());