diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2010-12-17 01:07:28 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2010-12-17 01:07:28 +0000 |
| commit | 9af1335b5d444a9bb63d25bfef5525be98261773 (patch) | |
| tree | b1f4063d4e40e7076efc8ead0c2d8da6bf9a0359 /llvm/lib/MC | |
| parent | 218a3f2441c89751e1ae4686359bd844510855e6 (diff) | |
| download | bcm5719-llvm-9af1335b5d444a9bb63d25bfef5525be98261773.tar.gz bcm5719-llvm-9af1335b5d444a9bb63d25bfef5525be98261773.zip | |
MC: Simplify (remove unnecessary MCAssembler argument, obsoleted by containment
in MCAsmLayout).
llvm-svn: 122011
Diffstat (limited to 'llvm/lib/MC')
| -rw-r--r-- | llvm/lib/MC/MCExpr.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/llvm/lib/MC/MCExpr.cpp b/llvm/lib/MC/MCExpr.cpp index f7ed35374e4..3e43cd8d97b 100644 --- a/llvm/lib/MC/MCExpr.cpp +++ b/llvm/lib/MC/MCExpr.cpp @@ -304,8 +304,7 @@ bool MCExpr::EvaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm, /// /// \returns True on success, false if the result is not representable in an /// MCValue. -static bool EvaluateSymbolicAdd(const MCAssembler *Asm, - const MCAsmLayout *Layout, +static bool EvaluateSymbolicAdd(const MCAsmLayout *Layout, const SectionAddrMap *Addrs, bool InSet, const MCValue &LHS,const MCSymbolRefExpr *RHS_A, @@ -337,17 +336,14 @@ static bool EvaluateSymbolicAdd(const MCAssembler *Asm, // Absolutize symbol differences between defined symbols when we have a // layout object and the target requests it. - - assert((!Layout || Asm) && - "Must have an assembler object if layout is given!"); - - if (Asm && A && B) { + if (Layout && A && B) { + const MCAssembler &Asm = Layout->getAssembler(); const MCSymbol &SA = A->getSymbol(); const MCSymbol &SB = B->getSymbol(); - const MCObjectFormat &F = Asm->getBackend().getObjectFormat(); + const MCObjectFormat &F = Asm.getBackend().getObjectFormat(); if (SA.isDefined() && SB.isDefined() && F.isAbsolute(InSet, SA, SB)) { - MCSymbolData &AD = Asm->getSymbolData(A->getSymbol()); - MCSymbolData &BD = Asm->getSymbolData(B->getSymbol()); + MCSymbolData &AD = Asm.getSymbolData(A->getSymbol()); + MCSymbolData &BD = Asm.getSymbolData(B->getSymbol()); if (AD.getFragment() == BD.getFragment()) { Res = MCValue::get(+ AD.getOffset() @@ -474,13 +470,13 @@ bool MCExpr::EvaluateAsRelocatableImpl(MCValue &Res, return false; case MCBinaryExpr::Sub: // Negate RHS and add. - return EvaluateSymbolicAdd(Asm, Layout, Addrs, InSet, LHSValue, + return EvaluateSymbolicAdd(Layout, Addrs, InSet, LHSValue, RHSValue.getSymB(), RHSValue.getSymA(), -RHSValue.getConstant(), Res); case MCBinaryExpr::Add: - return EvaluateSymbolicAdd(Asm, Layout, Addrs, InSet, LHSValue, + return EvaluateSymbolicAdd(Layout, Addrs, InSet, LHSValue, RHSValue.getSymA(), RHSValue.getSymB(), RHSValue.getConstant(), Res); |

