Commit Graph

4 Commits

Author SHA1 Message Date
Matthias Braun e19f1300d6 X86: Consistently declare pass initializers in X86.h; NFC
This avoids declaring them twice: in X86TargetMachine.cpp and the file
implementing the pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345801 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 00:38:01 +00:00
Vlad Tsyrklevich a379fe24fe ShadowCallStack/x86_64: Ignore pseudo-machine instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329656 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-10 01:31:01 +00:00
Vlad Tsyrklevich d42d9e83ae Fix bad #include path in r329139
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329140 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-04 01:34:42 +00:00
Vlad Tsyrklevich 484fd96051 Add the ShadowCallStack pass
Summary:
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.

Reviewers: pcc, vitalybuka

Reviewed By: pcc

Subscribers: cryptoad, eugenis, craig.topper, mgorny, llvm-commits, kcc

Differential Revision: https://reviews.llvm.org/D44802

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329139 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-04 01:21:16 +00:00