mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
3960b83ba4
X86 Supports Indirect Branch Tracking (IBT) as part of Control-Flow Enforcement Technology (CET). IBT instruments ENDBR instructions used to specify valid targets of indirect call / jmp. The `nocf_check` attribute has two roles in the context of X86 IBT technology: 1. Appertains to a function - do not add ENDBR instruction at the beginning of the function. 2. Appertains to a function pointer - do not track the target function of this pointer by adding nocf_check prefix to the indirect-call instruction. This patch implements `nocf_check` context for Indirect Branch Tracking. It also auto generates `nocf_check` prefixes before indirect branchs to jump tables that are guarded by range checks. Differential Revision: https://reviews.llvm.org/D41879 llvm-svn: 327767 |
||
---|---|---|
.. | ||
AddDiscriminators.cpp | ||
ASanStackFrameLayout.cpp | ||
BasicBlockUtils.cpp | ||
BreakCriticalEdges.cpp | ||
BuildLibCalls.cpp | ||
BypassSlowDivision.cpp | ||
CallPromotionUtils.cpp | ||
CloneFunction.cpp | ||
CloneModule.cpp | ||
CMakeLists.txt | ||
CodeExtractor.cpp | ||
CtorUtils.cpp | ||
DemoteRegToStack.cpp | ||
EntryExitInstrumenter.cpp | ||
EscapeEnumerator.cpp | ||
Evaluator.cpp | ||
FlattenCFG.cpp | ||
FunctionComparator.cpp | ||
FunctionImportUtils.cpp | ||
GlobalStatus.cpp | ||
ImportedFunctionsInliningStatistics.cpp | ||
InlineFunction.cpp | ||
InstructionNamer.cpp | ||
IntegerDivision.cpp | ||
LCSSA.cpp | ||
LibCallsShrinkWrap.cpp | ||
LLVMBuild.txt | ||
Local.cpp | ||
LoopSimplify.cpp | ||
LoopUnroll.cpp | ||
LoopUnrollPeel.cpp | ||
LoopUnrollRuntime.cpp | ||
LoopUtils.cpp | ||
LoopVersioning.cpp | ||
LowerInvoke.cpp | ||
LowerMemIntrinsics.cpp | ||
LowerSwitch.cpp | ||
Mem2Reg.cpp | ||
MetaRenamer.cpp | ||
ModuleUtils.cpp | ||
NameAnonGlobals.cpp | ||
OrderedInstructions.cpp | ||
PredicateInfo.cpp | ||
PromoteMemoryToRegister.cpp | ||
SanitizerStats.cpp | ||
SimplifyCFG.cpp | ||
SimplifyIndVar.cpp | ||
SimplifyInstructions.cpp | ||
SimplifyLibCalls.cpp | ||
SplitModule.cpp | ||
SSAUpdater.cpp | ||
StripGCRelocates.cpp | ||
StripNonLineTableDebugInfo.cpp | ||
SymbolRewriter.cpp | ||
UnifyFunctionExitNodes.cpp | ||
Utils.cpp | ||
ValueMapper.cpp | ||
VNCoercion.cpp |