llvm-6502/include/llvm/MC
Rafael Espindola 8093abb745 Add r224985 back with a fix.
The issues was that AArch64 has additional restrictions on when local
relocations can be used. We have to take those into consideration when
deciding to put a L symbol in the symbol table or not.

Original message:

Remove doesSectionRequireSymbols.

In an assembly expression like

bar:
.long L0 + 1

the intended semantics is that bar will contain a pointer one byte past L0.

In sections that are merged by content (strings, 4 byte constants, etc), a
single position in the section doesn't give the linker enough information.
For example, it would not be able to tell a relocation must point to the
end of a string, since that would look just like the start of the next.

The solution used in ELF to use relocation with symbols if there is a non-zero
addend.

In MachO before this patch we would just keep all symbols in some sections.

This would miss some cases (only cstrings on x86_64 were implemented) and was
inefficient since most relocations have an addend of 0 and can be represented
without the symbol.

This patch implements the non-zero addend logic for MachO too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225048 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-31 17:19:34 +00:00
..
MCParser Add const. NFC. 2014-11-11 05:11:47 +00:00
ConstantPools.h
MachineLocation.h
MCAsmBackend.h Add r224985 back with a fix. 2014-12-31 17:19:34 +00:00
MCAsmInfo.h Refactor duplicated code. 2014-12-29 15:18:31 +00:00
MCAsmInfoCOFF.h
MCAsmInfoDarwin.h Refactor duplicated code. 2014-12-29 15:18:31 +00:00
MCAsmInfoELF.h
MCAsmLayout.h
MCAssembler.h Add r224985 back with a fix. 2014-12-31 17:19:34 +00:00
MCCodeEmitter.h
MCCodeGenInfo.h
MCContext.h
MCDirectives.h
MCDisassembler.h MCDisassembler::getInstruction():: Prune also "\param Region", since it was removed in r221751. [-Wdocumentation] 2014-11-12 07:42:26 +00:00
MCDwarf.h
MCELF.h
MCELFObjectWriter.h
MCELFStreamer.h
MCELFSymbolFlags.h
MCExpr.h Add support for small-model PIC for PowerPC. 2014-11-12 15:16:30 +00:00
MCExternalSymbolizer.h
MCFixedLenDisassembler.h
MCFixup.h
MCFixupKindInfo.h
MCInst.h Use C++ typed enums instead of 'unsigned char' for MCInst Kind. NFC. 2014-12-01 18:46:43 +00:00
MCInstBuilder.h
MCInstPrinter.h
MCInstrAnalysis.h
MCInstrDesc.h
MCInstrInfo.h
MCInstrItineraries.h
MCLabel.h
MCLinkerOptimizationHint.h
MCMachObjectWriter.h Add r224985 back with a fix. 2014-12-31 17:19:34 +00:00
MCMachOSymbolFlags.h
MCObjectFileInfo.h
MCObjectStreamer.h
MCObjectWriter.h Add r224985 back with a fix. 2014-12-31 17:19:34 +00:00
MCRegisterInfo.h MCRegisterInfo: Add MCSubRegIndexIterator. 2014-12-10 01:13:06 +00:00
MCRelocationInfo.h
MCSchedule.h
MCSection.h
MCSectionCOFF.h
MCSectionELF.h
MCSectionMachO.h
MCStreamer.h Fix typo 2014-12-06 02:14:41 +00:00
MCSubtargetInfo.h Change the name to be in style. 2014-12-03 18:39:44 +00:00
MCSymbol.h MC: Label definitions are permitted after .set directives 2014-12-24 10:27:50 +00:00
MCSymbolizer.h
MCTargetAsmParser.h
MCTargetOptions.h
MCTargetOptionsCommandFlags.h
MCValue.h
MCWin64EH.h
MCWinCOFFObjectWriter.h
MCWinCOFFStreamer.h
MCWinEH.h
SectionKind.h
StringTableBuilder.h Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
SubtargetFeature.h
YAML.h