mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-01 01:26:56 +00:00
Darwin assembler improved relocs when w/o subsections_via_symbols.
When the file isn't being built with subsections-via-symbols, symbol differences involving non-local symbols can be resolved more aggressively. Needed for gas compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146054 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -584,9 +584,14 @@ IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
|
||||
// requires the compiler to use .set to absolutize the differences between
|
||||
// symbols which the compiler knows to be assembly time constants, so we
|
||||
// don't need to worry about considering symbol differences fully resolved.
|
||||
//
|
||||
// If the file isn't using sub-sections-via-symbols, we can make the
|
||||
// same assumptions about any symbol that we normally make about
|
||||
// assembler locals.
|
||||
|
||||
if (!Asm.getBackend().hasReliableSymbolDifference()) {
|
||||
if (!SA.isTemporary() || !SA.isInSection() || &SecA != &SecB)
|
||||
if ((!SA.isTemporary() && Asm.getSubsectionsViaSymbols()) ||
|
||||
!SA.isInSection() || &SecA != &SecB)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user