mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-20 03:23:01 +02:00
b468feac4d
CET (Control-Flow Enforcement Technology) introduces a new mechanism called IBT (Indirect Branch Tracking). According to IBT, each Indirect branch should land on dedicated ENDBR instruction (End Branch). The new pass adds ENDBR instructions for every indirect jmp/call (including jumps using jump tables / switches). For more information, please see the following: https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf Differential Revision: https://reviews.llvm.org/D40482 Change-Id: Icb754489faf483a95248f96982a4e8b1009eb709 llvm-svn: 322062
72 lines
2.0 KiB
CMake
72 lines
2.0 KiB
CMake
set(LLVM_TARGET_DEFINITIONS X86.td)
|
|
|
|
tablegen(LLVM X86GenRegisterInfo.inc -gen-register-info)
|
|
tablegen(LLVM X86GenDisassemblerTables.inc -gen-disassembler)
|
|
tablegen(LLVM X86GenInstrInfo.inc -gen-instr-info)
|
|
tablegen(LLVM X86GenAsmWriter.inc -gen-asm-writer)
|
|
tablegen(LLVM X86GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
|
|
tablegen(LLVM X86GenAsmMatcher.inc -gen-asm-matcher)
|
|
tablegen(LLVM X86GenDAGISel.inc -gen-dag-isel)
|
|
tablegen(LLVM X86GenFastISel.inc -gen-fast-isel)
|
|
tablegen(LLVM X86GenCallingConv.inc -gen-callingconv)
|
|
tablegen(LLVM X86GenSubtargetInfo.inc -gen-subtarget)
|
|
tablegen(LLVM X86GenEVEX2VEXTables.inc -gen-x86-EVEX2VEX-tables)
|
|
tablegen(LLVM X86GenRegisterBank.inc -gen-register-bank)
|
|
tablegen(LLVM X86GenGlobalISel.inc -gen-global-isel)
|
|
|
|
if (X86_GEN_FOLD_TABLES)
|
|
tablegen(LLVM X86GenFoldTables.inc -gen-x86-fold-tables)
|
|
endif()
|
|
|
|
add_public_tablegen_target(X86CommonTableGen)
|
|
|
|
set(sources
|
|
X86AsmPrinter.cpp
|
|
X86CallFrameOptimization.cpp
|
|
X86CallingConv.cpp
|
|
X86CallLowering.cpp
|
|
X86CmovConversion.cpp
|
|
X86DomainReassignment.cpp
|
|
X86ExpandPseudo.cpp
|
|
X86FastISel.cpp
|
|
X86FixupBWInsts.cpp
|
|
X86FixupLEAs.cpp
|
|
X86FixupSetCC.cpp
|
|
X86FloatingPoint.cpp
|
|
X86FrameLowering.cpp
|
|
X86InstructionSelector.cpp
|
|
X86ISelDAGToDAG.cpp
|
|
X86ISelLowering.cpp
|
|
X86IndirectBranchTracking.cpp
|
|
X86InterleavedAccess.cpp
|
|
X86InstrFMA3Info.cpp
|
|
X86InstrInfo.cpp
|
|
X86EvexToVex.cpp
|
|
X86LegalizerInfo.cpp
|
|
X86MCInstLower.cpp
|
|
X86MachineFunctionInfo.cpp
|
|
X86MacroFusion.cpp
|
|
X86OptimizeLEAs.cpp
|
|
X86PadShortFunction.cpp
|
|
X86RegisterBankInfo.cpp
|
|
X86RegisterInfo.cpp
|
|
X86SelectionDAGInfo.cpp
|
|
X86ShuffleDecodeConstantPool.cpp
|
|
X86Subtarget.cpp
|
|
X86TargetMachine.cpp
|
|
X86TargetObjectFile.cpp
|
|
X86TargetTransformInfo.cpp
|
|
X86VZeroUpper.cpp
|
|
X86WinAllocaExpander.cpp
|
|
X86WinEHState.cpp
|
|
)
|
|
|
|
add_llvm_target(X86CodeGen ${sources})
|
|
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(Disassembler)
|
|
add_subdirectory(InstPrinter)
|
|
add_subdirectory(MCTargetDesc)
|
|
add_subdirectory(TargetInfo)
|
|
add_subdirectory(Utils)
|