llvm-6502/lib/MC
David Majnemer 16d8031f94 MC, COFF: Use relocations for function references inside the section
Referencing one symbol from another in the same section does not
generally require a relocation.  However, the MS linker has a feature
called /INCREMENTAL which enables incremental links.  It achieves this
by creating thunks to the actual function and redirecting all
relocations to point to the thunk.

This breaks down with the old scheme if you have a function which
references, say, itself.  On x86_64, we would use %rip relative
addressing to reference the start of the function from out current
position.  This would lead to miscompiles because other references might
reference the thunk instead, breaking function pointer equality.

This fixes PR21520.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221678 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-11 08:43:57 +00:00
..
MCDisassembler Use a StringRefMemoryObject. NFC. 2014-11-07 01:09:51 +00:00
MCParser Add const. NFC. 2014-11-11 05:11:47 +00:00
CMakeLists.txt
ConstantPools.cpp
ELFObjectWriter.cpp Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
LLVMBuild.txt
MachObjectWriter.cpp Don't produce relocations for a difference in a section with no symbols. 2014-11-04 22:10:33 +00:00
Makefile
MCAsmBackend.cpp
MCAsmInfo.cpp Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCAsmInfoCOFF.cpp
MCAsmInfoDarwin.cpp Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCAsmInfoELF.cpp Move getNonexecutableStackSection up to the base ELF class. 2014-10-15 15:44:16 +00:00
MCAsmStreamer.cpp Revert r221150, as it broke sanitizer tests 2014-11-03 12:19:03 +00:00
MCAssembler.cpp [MC] Make bundle alignment mode setting idempotent and support nested bundles 2014-10-15 17:10:04 +00:00
MCCodeEmitter.cpp
MCCodeGenInfo.cpp
MCContext.cpp Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
MCDwarf.cpp Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCELF.cpp
MCELFObjectTargetWriter.cpp
MCELFStreamer.cpp Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
MCExpr.cpp MC: Shrink MCSymbolRefExpr by only storing the bits we need. 2014-10-11 17:57:27 +00:00
MCInst.cpp
MCInstPrinter.cpp
MCInstrAnalysis.cpp
MCLabel.cpp
MCLinkerOptimizationHint.cpp
MCMachObjectTargetWriter.cpp
MCMachOStreamer.cpp Add and update reset() and doInitialization() methods to MC* and passes. 2014-09-17 09:25:36 +00:00
MCNullStreamer.cpp Remove method that is identical to the base class one. 2014-10-14 17:38:38 +00:00
MCObjectFileInfo.cpp [mips64] Fix MIPS64 exception personality encoding 2014-11-05 22:42:31 +00:00
MCObjectStreamer.cpp Revert r221150, as it broke sanitizer tests 2014-11-03 12:19:03 +00:00
MCObjectWriter.cpp
MCRegisterInfo.cpp
MCSection.cpp
MCSectionCOFF.cpp MC: Fix MCSectionCOFF::PrintSwitchToSection 2014-09-20 20:40:50 +00:00
MCSectionELF.cpp delete function name from comment 2014-10-09 21:23:39 +00:00
MCSectionMachO.cpp
MCStreamer.cpp Revert r221150, as it broke sanitizer tests 2014-11-03 12:19:03 +00:00
MCSubtargetInfo.cpp
MCSymbol.cpp
MCSymbolizer.cpp
MCTargetOptions.cpp
MCValue.cpp
MCWin64EH.cpp
MCWinEH.cpp
StringTableBuilder.cpp MachObjectWriter: optimize the string table for common suffices 2014-10-06 17:05:19 +00:00
SubtargetFeature.cpp
WinCOFFObjectWriter.cpp MC, COFF: Use relocations for function references inside the section 2014-11-11 08:43:57 +00:00
WinCOFFStreamer.cpp MC, COFF: Use relocations for function references inside the section 2014-11-11 08:43:57 +00:00
YAML.cpp