llvm-project/llvm/lib/Target/X86/InstPrinter
Oren Ben Simhon fdd72fd522 [X86] Added support for nocf_check attribute for indirect Branch Tracking
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
2018-03-17 13:29:46 +00:00
..
CMakeLists.txt
LLVMBuild.txt
X86ATTInstPrinter.cpp [X86] Added support for nocf_check attribute for indirect Branch Tracking 2018-03-17 13:29:46 +00:00
X86ATTInstPrinter.h [X86] Fix some Include What You Use warnings; other minor fixes (NFC). 2017-02-06 21:55:43 +00:00
X86InstComments.cpp [X86] Remove use of MVT class from the ShuffleDecode library. 2018-03-12 16:43:11 +00:00
X86InstComments.h [X86] Move the AC_EVEX_2_VEX AsmComments enum to X86InstrInfo.h from X86InstComments.h. 2018-03-10 05:15:22 +00:00
X86IntelInstPrinter.cpp [X86] Added support for nocf_check attribute for indirect Branch Tracking 2018-03-17 13:29:46 +00:00
X86IntelInstPrinter.h [X86] Fix some Include What You Use warnings; other minor fixes (NFC). 2017-02-06 21:55:43 +00:00