[PATCH] D40482: [X86] Instrument Control Flow For Indirect Branch Tracking

Oren Ben Simhon via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 27 03:19:09 PST 2017


oren_ben_simhon created this revision.
Herald added a subscriber: mgorny.

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


Repository:
  rL LLVM

https://reviews.llvm.org/D40482

Files:
  include/llvm/Target/TargetOptions.h
  lib/Target/TargetMachine.cpp
  lib/Target/X86/CMakeLists.txt
  lib/Target/X86/X86.h
  lib/Target/X86/X86IndirectBranchTracking.cpp
  lib/Target/X86/X86InstrSystem.td
  lib/Target/X86/X86TargetMachine.cpp
  test/CodeGen/X86/indirect-branch-tracking.ll
  test/MC/X86/cet-encoding.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40482.124331.patch
Type: text/x-patch
Size: 17506 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171127/904f6a58/attachment.bin>


More information about the llvm-commits mailing list