llvm-project/llvm/lib/MC
Andrew Paverd 0139c8af8d [CFGuard] Add address-taken IAT tables and delay-load support
This patch adds support for creating Guard Address-Taken IAT Entry Tables (.giats$y sections) in object files, matching the behavior of MSVC. These contain lists of address-taken imported functions, which are used by the linker to create the final GIATS table.
Additionally, if any DLLs are delay-loaded, the linker must look through the .giats tables and add the respective load thunks of address-taken imports to the GFIDS table, as these are also valid call targets.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D87544
2020-11-17 18:24:45 -08:00
..
MCDisassembler llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
MCParser ELFAsmParser: Remove non-SHF_ALLOC or non-executable sections' line info/address ranges contribution for -g 2020-11-16 20:02:25 -08:00
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
ConstantPools.cpp
ELFObjectWriter.cpp Revert "Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets" 2020-08-07 10:56:33 -07:00
MCAsmBackend.cpp Support dwarf fission for wasm object files 2020-09-17 14:42:41 -07:00
MCAsmInfo.cpp [MC] Default MCAsmInfo::UseIntegratedAssembler to true 2020-04-11 10:13:52 -07:00
MCAsmInfoCOFF.cpp [MC] Default MCAsmInfo::UseIntegratedAssembler to true 2020-04-11 10:13:52 -07:00
MCAsmInfoDarwin.cpp [MC] Rename MCSection*::getSectionName() to getName(). NFC 2020-04-15 16:48:14 -07:00
MCAsmInfoELF.cpp
MCAsmInfoWasm.cpp
MCAsmInfoXCOFF.cpp [AIX] asm output: use character literals in byte lists for strings 2020-09-29 21:14:41 -04:00
MCAsmMacro.cpp [ms] [llvm-ml] Enable support for MASM-style macro procedures 2020-11-04 10:29:57 -05:00
MCAsmStreamer.cpp [AsmPrinter] Use getMnemonic for instruction-mix remark. 2020-11-17 12:12:47 +00:00
MCAssembler.cpp [MC] Fix an assert in MCAssembler::writeSectionData to be aware of errors 2020-10-29 23:11:18 -07:00
MCCodeEmitter.cpp
MCCodeView.cpp [MC][NFC] Use camelCase style for functions in MCObjectStreamer 2020-04-20 20:09:20 -07:00
MCContext.cpp [XCOFF] Enable explicit sections on AIX 2020-11-09 16:27:38 +00:00
MCDwarf.cpp [MC] Rename a misnamed function. NFC. 2020-06-18 20:18:19 +07:00
MCELFObjectTargetWriter.cpp
MCELFStreamer.cpp [MC] Make MCStreamer aware of AsmParser's StartTokLoc 2020-11-02 12:32:07 -08:00
MCExpr.cpp [WebAssembly] Add new relocation type for TLS data symbols 2020-11-13 07:59:29 -08:00
MCFragment.cpp [X86] support .nops directive 2020-08-03 11:50:56 -07:00
MCInst.cpp
MCInstPrinter.cpp
MCInstrAnalysis.cpp [MC] Move MCInstrAnalysis::evaluateBranch to X86MCInstrAnalysis::evaluateBranch 2020-04-29 23:23:52 -07:00
MCInstrDesc.cpp
MCInstrInfo.cpp
MCLabel.cpp
MCLinkerOptimizationHint.cpp
MCMachOStreamer.cpp [MC] Make MCStreamer aware of AsmParser's StartTokLoc 2020-11-02 12:32:07 -08:00
MCMachObjectTargetWriter.cpp
MCNullStreamer.cpp [MC] Make MCStreamer aware of AsmParser's StartTokLoc 2020-11-02 12:32:07 -08:00
MCObjectFileInfo.cpp [CFGuard] Add address-taken IAT tables and delay-load support 2020-11-17 18:24:45 -08:00
MCObjectStreamer.cpp [X86] support .nops directive 2020-08-03 11:50:56 -07:00
MCObjectWriter.cpp
MCRegisterInfo.cpp
MCSchedule.cpp [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
MCSection.cpp [MC] Resolve the difference of symbols in consecutive MCDataFragements 2020-09-09 12:35:43 -07:00
MCSectionCOFF.cpp [MC][COFF][ELF] Reject instructions in IMAGE_SCN_CNT_UNINITIALIZED_DATA/SHT_NOBITS sections 2020-04-15 21:02:47 -07:00
MCSectionELF.cpp Introduce and use a new section type for the bb_addr_map section. 2020-10-08 11:13:19 -07:00
MCSectionMachO.cpp [MC] Replace MCSection*::getName() with MCSection::getName(). NFC 2020-04-15 18:35:27 -07:00
MCSectionWasm.cpp MCSectionWasm.h - reduce includes to forward declarations. NFC. 2020-06-27 10:03:34 +01:00
MCSectionXCOFF.cpp [XCOFF][AIX] Use TE storage mapping class when large code model is enabled 2020-08-10 19:52:10 +00:00
MCStreamer.cpp [AsmParser] Add source location to all errors related to .cfi directives 2020-11-11 17:00:07 +00:00
MCSubtargetInfo.cpp [X86][MC][Target] Initial backend support a tune CPU to support -mtune 2020-08-14 15:31:50 -07:00
MCSymbol.cpp
MCSymbolELF.cpp
MCSymbolXCOFF.cpp [AIX][XCOFF] change the operand of branch instruction from symbol name to qualified symbol name for function declarations 2020-08-11 15:26:19 -04:00
MCTargetOptions.cpp [MC] Add --dwarf64 to generate DWARF64 debug info [1/7] 2020-06-16 15:50:13 +07:00
MCTargetOptionsCommandFlags.cpp [MC] Add --dwarf64 to generate DWARF64 debug info [1/7] 2020-06-16 15:50:13 +07:00
MCValue.cpp
MCWasmObjectTargetWriter.cpp
MCWasmStreamer.cpp [WebAssembly][MC] Remove useless overrides in MCWasmStreamer 2020-11-17 07:09:49 -08:00
MCWin64EH.cpp [MC] [Win64EH] Try to generate packed unwind info where possible 2020-09-23 09:03:01 +03:00
MCWinCOFFStreamer.cpp [MC] Make MCStreamer aware of AsmParser's StartTokLoc 2020-11-02 12:32:07 -08:00
MCWinEH.cpp
MCXCOFFObjectTargetWriter.cpp
MCXCOFFStreamer.cpp [MC] Make MCStreamer aware of AsmParser's StartTokLoc 2020-11-02 12:32:07 -08:00
MachObjectWriter.cpp [MC] Rename MCSection*::getSectionName() to getName(). NFC 2020-04-15 16:48:14 -07:00
StringTableBuilder.cpp [MC] Adjust StringTableBuilder for linked Mach-O binaries 2020-10-22 19:19:41 -07:00
SubtargetFeature.cpp
WasmObjectWriter.cpp [WebAssembly] Added R_WASM_FUNCTION_OFFSET_I64 for use with DWARF DW_AT_low_pc 2020-11-13 09:32:31 -08:00
WinCOFFObjectWriter.cpp [COFF] Aliases resolve directly to defined external targets 2020-09-28 16:12:45 -04:00
XCOFFObjectWriter.cpp [XCOFF][AIX] Handle TOC entries that could not be reached by positive range in small code model 2020-09-14 13:41:34 +00:00