From 3b50c9ec7f87c07a8002eb442513c6114f4a141f Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Wed, 18 Jan 2012 00:23:57 +0000 Subject: Move some ARM specific MCAssmebler bits into the ARMAsmBackend. llvm-svn: 148364 --- llvm/lib/MC/MCAssembler.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'llvm/lib/MC/MCAssembler.cpp') diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index 1cb97ce61fc..e3cfae84ee0 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/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; } -- cgit v1.2.3