[PATCH] D44802: Add the ShadowCallStack pass

Vlad Tsyrklevich via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 22 12:49:42 PDT 2018


vlad.tsyrklevich created this revision.
vlad.tsyrklevich added a reviewer: pcc.
Herald added subscribers: llvm-commits, mgorny.

The ShadowCallStack pass instruments functions marked with the
shadowcallstack attribute. The instrumented prolog saves the return
address to [gs:offset] where offset is stored and updated in [gs:0].
The instrumented epilog loads/updates the return address from [gs:0]
and checks that it matches the return address on the stack before
returning.


Repository:
  rL LLVM

https://reviews.llvm.org/D44802

Files:
  lib/Target/X86/CMakeLists.txt
  lib/Target/X86/ShadowCallStack.cpp
  lib/Target/X86/X86.h
  lib/Target/X86/X86TargetMachine.cpp
  test/CodeGen/X86/O0-pipeline.ll
  test/CodeGen/X86/shadow-call-stack.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44802.139495.patch
Type: text/x-patch
Size: 14651 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180322/36826efb/attachment.bin>


More information about the llvm-commits mailing list