From dd18e28c6247469e93a27afaedd846105d9327ea Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 16 Dec 2010 18:36:25 +0000 Subject: [PATCH] MC/Expr: Add a doxyment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121988 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCExpr.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/MC/MCExpr.cpp b/lib/MC/MCExpr.cpp index 756e7598d5d..a3ef71f6306 100644 --- a/lib/MC/MCExpr.cpp +++ b/lib/MC/MCExpr.cpp @@ -290,6 +290,20 @@ bool MCExpr::EvaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm, return true; } +/// \brief Evaluate the result of an add between (conceptually) two MCValues. +/// +/// This routine conceptually attempts to construct an MCValue: +/// Result = (Result_A - Result_B + Result_Cst) +/// from two MCValue's LHS and RHS where +/// Result = LHS + RHS +/// and +/// Result = (LHS_A - LHS_B + LHS_Cst) + (RHS_A - RHS_B + RHS_Cst). +/// +/// This routine attempts to aggresively fold the operands such that the result +/// is representable in an MCValue, but may not always succeed. +/// +/// \returns True on success, false if the result is not representable in an +/// MCValue. static bool EvaluateSymbolicAdd(const MCAssembler *Asm, const MCAsmLayout *Layout, const SectionAddrMap *Addrs, -- 2.34.1