Home | History | Annotate | Download | only in MC

Lines Matching refs:Asm

312 bool MCExpr::EvaluateAsAbsolute(int64_t &Res, const MCAssembler &Asm) const {
313 return EvaluateAsAbsolute(Res, &Asm, 0, 0);
316 bool MCExpr::EvaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm,
331 EvaluateAsRelocatableImpl(Value, Asm, Layout, Addrs, /*InSet*/ Addrs);
340 static void AttemptToFoldSymbolOffsetDifference(const MCAssembler *Asm,
356 if (!Asm->getWriter().IsSymbolRefDifferenceFullyResolved(*Asm, A, B, InSet))
359 MCSymbolData &AD = Asm->getSymbolData(SA);
360 MCSymbolData &BD = Asm->getSymbolData(SB);
367 if (Asm->isThumbFunc(&SA))
386 Addend += (Layout->getSymbolOffset(&Asm->getSymbolData(A->getSymbol())) -
387 Layout->getSymbolOffset(&Asm->getSymbolData(B->getSymbol())));
393 if (Asm->isThumbFunc(&SA))
416 /// NOTE: It is really important to have both the Asm and Layout arguments.
418 /// is done (see the object streamer for example) and having the Asm argument
420 static bool EvaluateSymbolicAdd(const MCAssembler *Asm,
436 assert((!Layout || Asm) &&
440 if (Asm) {
451 AttemptToFoldSymbolOffsetDifference(Asm, Layout, Addrs, InSet, LHS_A, LHS_B,
453 AttemptToFoldSymbolOffsetDifference(Asm, Layout, Addrs, InSet, LHS_A, RHS_B,
455 AttemptToFoldSymbolOffsetDifference(Asm, Layout, Addrs, InSet, RHS_A, LHS_B,
457 AttemptToFoldSymbolOffsetDifference(Asm, Layout, Addrs, InSet, RHS_A, RHS_B,
486 const MCAssembler *Asm,
506 bool Ret = Sym.getVariableValue()->EvaluateAsRelocatableImpl(Res, Asm,
524 if (!AUE->getSubExpr()->EvaluateAsRelocatableImpl(Value, Asm, Layout,
558 if (!ABE->getLHS()->EvaluateAsRelocatableImpl(LHSValue, Asm, Layout,
560 !ABE->getRHS()->EvaluateAsRelocatableImpl(RHSValue, Asm, Layout,
572 return EvaluateSymbolicAdd(Asm, Layout, Addrs, InSet, LHSValue,
578 return EvaluateSymbolicAdd(Asm, Layout, Addrs, InSet, LHSValue,