]> granicus.if.org Git - clang/commit
AArch64: Implement support for the shadowcallstack attribute.
authorPeter Collingbourne <peter@pcc.me.uk>
Wed, 4 Apr 2018 21:55:44 +0000 (21:55 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Wed, 4 Apr 2018 21:55:44 +0000 (21:55 +0000)
commitdeddcb8899c7e7657cc79a0e96e3a532638769c7
tree8b07cfbb1bcf8d7c8dad70d7787a539aa3eec51e
parentaf0e708bd214e13b22da1ce3006b52b4f18056bc
AArch64: Implement support for the shadowcallstack attribute.

The implementation of shadow call stack on aarch64 is quite different to
the implementation on x86_64. Instead of reserving a segment register for
the shadow call stack, we reserve the platform register, x18. Any function
that spills lr to sp also spills it to the shadow call stack, a pointer to
which is stored in x18.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@329236 91177308-0d34-0410-b5e6-96231b3b80d8
docs/ShadowCallStack.rst
lib/Driver/SanitizerArgs.cpp
lib/Driver/ToolChain.cpp
test/Driver/sanitizer-ld.c