[llvm-commits] [llvm] r128037 - /llvm/trunk/lib/MC/MCExpr.cpp
Owen Anderson
resistor at mac.com
Mon Mar 21 16:13:43 PDT 2011
Author: resistor
Date: Mon Mar 21 18:13:43 2011
New Revision: 128037
URL: http://llvm.org/viewvc/llvm-project?rev=128037&view=rev
Log:
Add support for Thumb interworking addresses for symbol offsets that get constant folded very early.
This fixes SPASS with -integrated-as. <rdar://problem/9165399>
Modified:
llvm/trunk/lib/MC/MCExpr.cpp
Modified: llvm/trunk/lib/MC/MCExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCExpr.cpp?rev=128037&r1=128036&r2=128037&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCExpr.cpp (original)
+++ llvm/trunk/lib/MC/MCExpr.cpp Mon Mar 21 18:13:43 2011
@@ -310,6 +310,11 @@
if (AD.getFragment() == BD.getFragment()) {
Addend += (AD.getOffset() - BD.getOffset());
+ // Pointers to Thumb symbols need to have their low-bit set to allow
+ // for interworking.
+ if (Asm->isThumbFunc(&SA))
+ Addend |= 1;
+
// Clear the symbol expr pointers to indicate we have folded these
// operands.
A = B = 0;
More information about the llvm-commits
mailing list