1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

Add support for Thumb interworking addresses for symbol offsets that get constant folded very early.

This fixes SPASS with -integrated-as.  <rdar://problem/9165399>

llvm-svn: 128037
This commit is contained in:
Owen Anderson 2011-03-21 23:13:43 +00:00
parent 595c1b34f8
commit 1264624890

View File

@ -310,6 +310,11 @@ static void AttemptToFoldSymbolOffsetDifference(const MCAssembler *Asm,
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;