diff options
author | Jim Grosbach <grosbach@apple.com> | 2012-01-18 00:23:57 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2012-01-18 00:23:57 +0000 |
commit | 9b5b125c34b47e0e7eef2548acee8bf1448c4b71 (patch) | |
tree | 94ac286ee5aab98135e64016fd2b811a61864773 /lib/MC | |
parent | 31867660cb81ea2b1d1a6ffa7d09c91acb754a8b (diff) | |
download | external_llvm-9b5b125c34b47e0e7eef2548acee8bf1448c4b71.zip external_llvm-9b5b125c34b47e0e7eef2548acee8bf1448c4b71.tar.gz external_llvm-9b5b125c34b47e0e7eef2548acee8bf1448c4b71.tar.bz2 |
Move some ARM specific MCAssmebler bits into the ARMAsmBackend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148364 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r-- | lib/MC/MCAssembler.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp index 1cb97ce..e3cfae8 100644 --- a/lib/MC/MCAssembler.cpp +++ b/lib/MC/MCAssembler.cpp @@ -273,13 +273,10 @@ bool MCAssembler::evaluateFixup(const MCAsmLayout &Layout, Value = Target.getConstant(); - bool IsThumb = false; if (const MCSymbolRefExpr *A = Target.getSymA()) { const MCSymbol &Sym = A->getSymbol().AliasedSymbol(); if (Sym.isDefined()) Value += Layout.getSymbolOffset(&getSymbolData(Sym)); - if (isThumbFunc(&Sym)) - IsThumb = true; } if (const MCSymbolRefExpr *B = Target.getSymB()) { const MCSymbol &Sym = B->getSymbol().AliasedSymbol(); @@ -302,12 +299,8 @@ bool MCAssembler::evaluateFixup(const MCAsmLayout &Layout, Value -= Offset; } - // ARM fixups based from a thumb function address need to have the low - // bit set. The actual value is always at least 16-bit aligned, so the - // low bit is normally clear and available for use as an ISA flag for - // interworking. - if (IsThumb) - Value |= 1; + // Let the backend adjust the fixup value if necessary. + Backend.processFixupValue(*this, Layout, Fixup, DF, Target, Value); return IsResolved; } |