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:
parent
595c1b34f8
commit
1264624890
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user