mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-02 16:56:50 +00:00
ARM Thumb symbol references in assembly need the low bit set.
Add support for a missed case when the symbols in a difference expression are in the same section but not the same fragment. rdar://10924681 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151345 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d18134f116
commit
0db1241416
@ -357,6 +357,11 @@ static void AttemptToFoldSymbolOffsetDifference(const MCAssembler *Asm,
|
||||
if (Addrs && (&SecA != &SecB))
|
||||
Addend += (Addrs->lookup(&SecA) - Addrs->lookup(&SecB));
|
||||
|
||||
// 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