llvm-6502/include/llvm/MC
Rafael Espindola a23cc6a1ea Add r224985 back with fixes.
The fixes are to note that AArch64 has additional restrictions on when local
relocations can be used. In particular, ld64 requires that relocations to
cstring/cfstrings use linker visible symbols.

Original message:

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@226503 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 21:11:14 +00:00
..
MCParser Add const. NFC. 2014-11-11 05:11:47 +00:00
ConstantPools.h [Modules] Add some missing includes to make files compile stand-alone. 2014-10-12 22:49:26 +00:00
MachineLocation.h Add inequality operator for MachineLocation. 2014-04-01 21:54:52 +00:00
MCAsmBackend.h Add r224985 back with fixes. 2015-01-19 21:11:14 +00:00
MCAsmInfo.h Recommit r224935 with a fix for the ObjC++/AArch64 bug that that revision 2015-01-09 18:55:42 +00:00
MCAsmInfoCOFF.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 07:02:02 +00:00
MCAsmInfoDarwin.h Recommit r224935 with a fix for the ObjC++/AArch64 bug that that revision 2015-01-09 18:55:42 +00:00
MCAsmInfoELF.h Move getNonexecutableStackSection up to the base ELF class. 2014-10-15 15:44:16 +00:00
MCAsmLayout.h Move getBaseSymbol somewhere the COFF writer can use. 2014-05-01 13:24:25 +00:00
MCAssembler.h Add r224985 back with fixes. 2015-01-19 21:11:14 +00:00
MCCodeEmitter.h
MCCodeGenInfo.h
MCContext.h Add the llvm.frameallocate and llvm.recoverframeallocation intrinsics 2015-01-13 00:48:10 +00:00
MCDirectives.h Darwin: Add assembler directives to create version-min load commands. 2014-03-18 22:09:05 +00:00
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 [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
MCELF.h [MC] Constify MCELF::GetVisibility and MCELF::getOther 2014-07-11 17:34:44 +00:00
MCELFObjectWriter.h [MC] Pass MCSymbolData to needsRelocateWithSymbol 2014-07-20 23:15:06 +00:00
MCELFStreamer.h Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
MCELFSymbolFlags.h ARM: take care not to set the ThumbFunc bit on TLS data symbols 2014-06-30 09:37:24 +00:00
MCExpr.h ARM: add support for segment base relocations (SBREL) 2015-01-11 04:39:18 +00:00
MCExternalSymbolizer.h Remove redundant symbolization support from MCDisassembler interface. 2014-04-11 20:07:58 +00:00
MCFixedLenDisassembler.h
MCFixup.h Fix pr19645. 2014-05-03 19:57:04 +00:00
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 Fixing missing C++ mode comment 2014-09-29 15:55:18 +00:00
MCInstrAnalysis.h
MCInstrDesc.h Target: Allow target specific operand types 2015-01-12 19:33:09 +00:00
MCInstrInfo.h
MCInstrItineraries.h don't repeat function name in comments 2014-10-07 17:28:04 +00:00
MCLabel.h
MCLinkerOptimizationHint.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
MCMachObjectWriter.h Add r224985 back with fixes. 2015-01-19 21:11:14 +00:00
MCMachOSymbolFlags.h
MCObjectFileInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MCObjectStreamer.h Revert r221150, as it broke sanitizer tests 2014-11-03 12:19:03 +00:00
MCObjectWriter.h Add r224985 back with fixes. 2015-01-19 21:11:14 +00:00
MCRegisterInfo.h MCRegisterInfo: Add MCSubRegIndexIterator. 2014-12-10 01:13:06 +00:00
MCRelocationInfo.h
MCSchedule.h typos 2014-10-07 17:00:16 +00:00
MCSection.h
MCSectionCOFF.h CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF 2014-07-14 22:57:27 +00:00
MCSectionELF.h raw_ostream: Forward declare OpenFlags and include FileSystem.h only where necessary. 2014-04-29 23:26:49 +00:00
MCSectionMachO.h MC: Use MachO::SectionType for MCSectionMachO::getType's return type 2014-03-07 18:49:54 +00:00
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 Temporarily remove assert while I dig in to issues that it's causing for LLDB. 2014-03-27 22:45:42 +00:00
MCTargetAsmParser.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
MCTargetOptions.h Migrate ABIName to MCTargetOptions so that it can be shared between 2015-01-14 00:50:31 +00:00
MCTargetOptionsCommandFlags.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
MCValue.h Fix pr19645. 2014-05-03 19:57:04 +00:00
MCWin64EH.h MC: split Win64EHUnwindEmitter into a shared streamer 2014-08-07 02:59:41 +00:00
MCWinCOFFObjectWriter.h MC: introduce ability to restrict recorded relocations 2014-05-21 23:17:50 +00:00
MCWinCOFFStreamer.h Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
MCWinEH.h MC Win64: Put unwind info for COMDAT code into the same COMDAT group 2014-09-04 17:42:03 +00:00
SectionKind.h
StringTableBuilder.h Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
SubtargetFeature.h Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already. 2014-08-30 16:48:02 +00:00
YAML.h Invert the MC -> Object dependency. 2014-07-03 02:01:39 +00:00